dwarf2out.c (dwarf2out_begin_function): Set cold_text_section and output cold_text_se...
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-11-27  Jan Hubicka  <jh@suse.cz>
2
3         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
4         and output cold_text_section_label.
5         (dwarf2out_init): Don't do that there.
6         (dwarf2out_finish): Handle cold section end label only if cold
7         section was used.
8
9 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
10
11         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
12         VLA variables.
13
14 2010-11-27  Richard Guenther  <rguenther@suse.de>
15
16         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
17         (gimple_assign_ssa_name_copy_p): Likewise.
18         (gimple_assign_unary_nop_p): Use is_gimple_assign.
19         (is_gimple_cast): Remove.
20         (gimple_assign_single_p): Move ...
21         * gimple.h (gimple_assign_single_p): ... here.
22         (is_gimple_cast): Remove.
23         (gimple_assign_rhs_code): Simplify.
24         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
25         instead of is_gimple_cast.
26         * ipa-type-escape.c (look_for_casts): Likewise.
27
28 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
29
30         * doc/options.texi (Enum, EnumValue): Document new record types.
31         (Enum): Document new option flag.
32         * opt-functions.awk
33         * optc-gen.awk: Handle enumerated option arguments.
34         * opth-gen.awk: Handle enumerated option arguments.
35         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
36         enum_value_to_arg): New.
37         (decode_cmdline_option): Handle enumerated arguments.
38         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
39         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
40         * opts.c (print_filtered_help, print_specific_help): Take
41         lang_mask arguments.
42         (print_filtered_help): Handle printing values of enumerated
43         options.  Print possible arguments for enumerated options.
44         (print_specific_help): Update call to print_filtered_help.
45         (common_handle_option): Update calls to print_specific_help.  Use
46         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
47         handle OPT_ffp_contract_, OPT_fexcess_precision_,
48         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
49         OPT_fira_region_ here.
50         * opts.h (enum cl_var_type): Add CLVC_ENUM.
51         (struct cl_option): Add var_enum.
52         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
53         struct cl_enum, cl_enums, cl_enums_count): New.
54         (CL_ERR_ENUM_ARG): Define.
55         (CL_ERR_NEGATIVE): Update value.
56         (enum_value_to_arg): Declare.
57         * common.opt (flag_ira_algorithm, flag_ira_region,
58         flag_fp_contract_mode, flag_excess_precision_cmdline,
59         default_visibility, flag_tls_default): Remove Variable entries.
60         (help_enum_printed): New Variable.
61         (fdiagnostics-show-location=): Use Enum.  Add associated
62         SourceInclude, Enum and EnumValue entries.
63         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
64         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
65         associated Enum and EnumValue entries.
66
67 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
68
69         PR target/46623
70         * config/microblaze/microblaze.c (microblaze_block_move_straight):
71         Use XALLOCAVEC.
72         (microblaze_option_override): Don't use C++ style comments.
73         (save_restore_insns): Remove unused variable base_offset.
74         (microblaze_expand_prologue): Remove unused variable insn.
75         (microblaze_secondary_reload): Adjust type to match target.h .
76         (microblaze_elf_in_small_data_p): Move declarations to start of block.
77         (microblaze_expand_move): Likewise.
78         * config/microblaze/microblaze.h (LARGE_INT):
79         Avoid signed / unsigned comparisons.
80         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
81         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
82         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
83
84 2010-11-26  Michael Matz  <matz@suse.de>
85
86         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
87
88         * passes.c (init_optimization_passes): Remove superfluous
89         copy-prop pass.
90
91 2010-11-26  Richard Guenther  <rguenther@suse.de>
92
93         PR lto/46648
94         * gimple.c (gtc_visit): Do not return true for members of an
95         SCC still being processed but the current lattice value of
96         the member.  Treat SCC members comparison state as lattice,
97         starting at equal, eventually dropping to unequal.
98         (gimple_types_compatible_p_1): Likewise.
99
100 2010-11-26  Richard Guenther  <rguenther@suse.de>
101
102         PR middle-end/46559
103         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
104         for location list processing.
105
106 2010-11-26  Richard Guenther  <rguenther@suse.de>
107
108         PR lto/46560
109         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
110         flags manually.
111
112 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
113
114         * config/s390/s390.c (print_operand_address): Replace assert with
115         error message.
116         (print_operand): Replace assertions, gcc_unreachable and
117         fatal_insn with error messages.
118
119 2010-11-26  Richard Guenther  <rguenther@suse.de>
120
121         PR tree-optimization/46665
122         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
123
124 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
125
126         * config/arm/arm.c (arm_option_override): enable loop array
127         prefetching at -O3 for suitable targets, and configure params.
128         * config/arm/arm-protos.h (struct tune_params): Add fields for
129         configuring loop array prefetching.
130
131 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
132
133         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
134
135 2010-11-26  Richard Guenther  <rguenther@suse.de>
136
137         PR tree-optimization/46664
138         * tree-affine.c (aff_combination_to_tree): Add rest last.
139
140 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
141
142         PR target/33637
143         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
144         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
145         * configure: Regenerated.
146         * exec-tool.in: Not quoting command, may have extra arguments.
147
148 2010-11-26  Richard Guenther  <rguenther@suse.de>
149
150         PR tree-optimization/46528
151         PR debug/46338
152         * profile.c (branch_prob): Do not split blocks based on locations
153         from debug statements.
154
155 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
156
157         PR middle-end/46647
158         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
159         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
160
161         PR bootstrap/45700
162         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
163         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
164         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
165         build6_loc): Define.
166         * fold-const.c (protected_set_expr_location_unshare): New inline.
167         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
168         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
169         pedantic_omit_one_operand_loc, omit_two_operands_loc,
170         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
171         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
172         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
173         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
174         instead of buildN followed by SET_EXPR_LOCATION or
175         protected_set_expr_location.
176         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
177         Use buildN_stat_loc instead of buildN_stat followed by
178         SET_EXPR_LOCATION.
179
180 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
181
182         * Makefile.in (s-tm-texi): Remove spurous tab.
183
184 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
185
186         PR debug/46258
187         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
188         debug stmts.
189
190 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
191
192         * toplev.c (finalize): Add no_backend parameter.  Don't finish
193         passes when preprocessing only.  Adjust...
194         (do_compile): ... caller.
195
196 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
197
198         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
199         flag_unsafe_math_optimizations.
200         (negsf2): Likewise.
201         Move fnegabs related patterns together.  Only use fmpynfadd instruction
202         to negate a multiply if !flag_signed_zeros is true.
203
204 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
205
206         * gengtype-state.c (read_state_structures): Initialize "previous".
207
208 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
209             Jeremie Salvucci  <jeremie.salvucci@free.fr>
210
211         * gengtype-state.c: Add new file.
212
213         * gengtype.c (type count): New variable.
214         (new_structure, find_param_structure, create_pointer)
215         (create_array): Use it to set state_number in types.
216         (dump_everything): Improve comment.
217         (main): Call read_state and write_state. Print type_count.
218
219         * gengtype.h (type_lineloc): New function.
220         (read_state, write_state): New declarations.
221
222         * Makefile.in (GENGTYPE_FLAGS): New variable.
223         (s-gtype): Run gengtype twice and generate gtype.state.
224         (build/gengtype-state.o): New rule.
225         (build/gengtype$(build_exeext)): Link gengtype-state.o.
226         (mostlyclean): Update comment.  Remove gtype.state.
227
228 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
229
230         PR middle-end/46637
231         * combine.c (try_combine): When substing i2dest for i2src, pass
232         1 as last argument even if
233         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
234
235 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
236
237         PR middle-end/46647
238         * builtins.c (target_char_cast): Check INTEGER_CST instead of
239         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
240
241 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
242
243         * target.def (supports_split_stack, except_unwind_info): Take
244         gcc_options parameters.
245         * targhooks.c (default_except_unwind_info,
246         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
247         gcc_options parameters.
248         * targhooks.h (default_except_unwind_info,
249         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
250         prototypes.
251         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
252         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
253         Document that hooks must not be modified.
254         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
255         * doc/tm.texi: Regenerate.
256         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
257         &global_options to targetm.except_unwind_info.
258         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
259         dwarf2out_begin_prologue, dwarf2out_frame_init,
260         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
261         &global_options to targetm.except_unwind_info.
262         * except.c (init_eh, finish_eh_generation,
263         gate_convert_to_eh_region_ranges,
264         output_one_function_exception_table): Pass &global_options to
265         targetm.except_unwind_info.
266         * expr.c (build_personality_function): Pass &global_options to
267         targetm.except_unwind_info.
268         * function.c (expand_function_end): Pass &global_options to
269         targetm.except_unwind_info.
270         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
271         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
272         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
273         and targetm.supports_split_stack.  Remove assertions about opts
274         and opts_set.
275         (common_handle_option): Remove assertions about opts, opts_set and dc.
276         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
277         &global_options to targetm.except_unwind_info.
278         * tree.c (build_common_builtin_nodes: Pass &global_options to
279         targetm.except_unwind_info.
280         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
281         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
282         thumb1_expand_prologue, thumb1_output_function_prologue,
283         arm_unwind_emit, arm_output_fn_unwind): Update calls to
284         arm_except_unwind_info.
285         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
286         parameter.
287         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
288         parameter.
289         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
290         ia64_reorg, ia64_asm_unwind_emit): Update calls to
291         ia64_except_unwind_info.
292         * config/pa/pa.c (pa_option_override): Pass &global_options to
293         targetm.except_unwind_info.
294         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
295         Remove prototype.
296
297 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
298
299         * cgraphunit.c (process_function_and_variable_attributes):
300         Mark dllexport-ed function/variables as needed.
301         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
302         as externally visible.
303
304 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
305
306         PR rtl-optimization/46585
307         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
308         (vinsn_init): Skip computation of dependencies for local NOPs.
309         (vinsn_delete): Don't try to free regsets for local NOPs.
310         (setup_nop_and_exit_insns): Change definition of nop_pattern.
311
312 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
313
314         PR rtl-optimization/46602
315         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
316         (tidy_control_flow): Here.
317
318 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
319             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
320
321         PR bootstrap/45888
322         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
323         Fix target.def pathname in timestamp comparison.
324
325 2010-11-24  Richard Henderson  <rth@redhat.com>
326
327         * config/ia64/predicates.md (pmpyshr_operand): New.
328         * config/ia64/ia64.c (ia64_expand_unpack): New.
329         (ia64_expand_widen_mul_v4hi): New.
330         (ia64_expand_widen_sum): Update for pattern renames.
331         (ia64_expand_dot_prod_v8qi): Likewise.
332         * config/ia64/ia64-protos.h: Update.
333         * config/ia64/vect.md (vecwider): New mode attribute.
334         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
335         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
336         (pmpyshr2, pmpyshr2_u): New.
337         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
338         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
339         (mulv2si3): New.
340         (vec_pack_ssat_v4hi): Rename from pack2_sss.
341         (vec_pack_usat_v4hi): Rename from *pack2_uss.
342         (vec_pack_ssat_v2si): Rename from pack4_sss.
343         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
344         vec_select operation.
345         (vec_interleave_highv8qi): Similarly.
346         (mux1_alt): Rename from *mux1_alt.
347         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
348         (vec_interleave_lowv4hi): Rename from unpack2_l.
349         (vec_interleave_highv4hi): Rename from unpack2_h.
350         (mix2_r): Rename from *mix2_r.
351         (mix2_l): Similarly.
352         (vec_extract_evenodd_helper): New.
353         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
354         (vec_interleave_lowv2si): Rename from *unpack4_l.
355         (vec_interleave_highv2si): Rename from *unpack4_h.
356         (vec_extract_evenv2si, vec_extract_oddv2si): New.
357         (vec_interleave_lowv2sf): Rename from fmix_r.
358         (vec_interleave_highv2sf): Rename from *fmix_l.
359         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
360         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
361         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
362         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
363
364 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
365
366         * targhooks.c (default_except_unwind_info): Remove
367         MUST_USE_SJLJ_EXCEPTIONS case.
368         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
369         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
370         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
371         * doc/tm.texi: Regenerate.
372         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
373
374 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
375
376         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
377         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
378         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
379         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
380         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
381
382 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
383
384         PR target/46519
385         * config/i386/i386.c (ix86_expand_call): Don't check
386         TREE_THIS_VOLATILE.
387
388 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
389
390         PR target/46519
391         * config/i386/i386.c (upper_128bits_state): New.
392         (block_info_def): Remove upper_128bits_set and done.  Add state,
393         referenced, count, processed and rescanned.
394         (check_avx256_stores): Updated.
395         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
396         Call note_stores only if needed.  Set referenced and count.
397         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
398         (rescan_move_or_delete_vzeroupper): New.
399         (move_or_delete_vzeroupper):  Process and rescan all all basic
400         blocks instead of predecessor blocks of all exit points.
401         (ix86_option_override_internal): Enable vzeroupper optimization
402         only for -fexpensive-optimizations and not optimizing for size.
403         (use_avx256_p): Removed.
404         (init_cumulative_args): Don't set use_avx256_p.
405         (ix86_function_arg): Likewise.
406         (ix86_expand_move): Likewise.
407         (ix86_expand_vector_move_misalign): Likewise.
408         (ix86_local_alignment): Likewise.
409         (ix86_minimum_alignment): Likewise.
410         (ix86_expand_epilogue): Don't check use_avx256_p when generating
411         vzeroupper.
412         (ix86_expand_call): Likewise.
413
414         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
415         and use_avx256_p.  Add rescan_vzeroupper_p.
416
417 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
418
419         * toplev.c: Include <signal.h>.
420
421 2010-11-24  Richard Guenther  <rguenther@suse.de>
422
423         PR lto/43218
424         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
425         conflicting function signatures as non-inlineable.
426
427 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
428
429         PR rtl-optimization/46614
430         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
431          (deps_analyze_insn): Mark JUMP_INSNs in
432         last_pending_memory_flush that weren't added through
433         flush_pending_lists with NON_FLUSH_JUMP_KIND.
434         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
435         on INSN_LIST instead of JUMP_P check on its operand.
436         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
437
438 2010-11-24  Richard Guenther  <rguenther@suse.de>
439
440         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
441
442 2010-11-24  Richard Guenther  <rguenther@suse.de>
443
444         PR lto/46606
445         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
446         a FIELD_DECL that is type correct issue a warning and fixup
447         with a VIEW_CONVERT_EXPR.
448
449 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
450
451         * doc/invoke.texi (Options for Debugging Your Program or GCC):
452         Explain static numbering of dump files.
453
454 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
455
456         * common.opt (user_vect_verbosity_level): New Variable entry.
457         (ftree-vectorizer-verbose=): Mark as UInteger.
458         * flag-types.h (enum vect_verbosity_levels): Move from enum
459         verbosity_levels in tree-vectorizer.h.
460         * opts.c: Don't include tree.h.
461         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
462         gcc_options parameter; take integer option argument.
463         (common_handle_option): Update call to vect_set_verbosity_level.
464         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
465         (vect_set_verbosity_level): Move to opts.c.
466         (vect_verbosity_level, vect_print_dump_info): Update for change of
467         enum name.
468         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
469         (vect_print_dump_info): Update for change of enum name.
470         * tree.h (vect_set_verbosity_level): Remove.
471         * Makefile.in (opts.o): Update dependencies.
472
473 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
474
475         PR middle-end/46629
476         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
477         instead of insn with any_condjump_p.
478
479 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
480
481         * config/mips/loongson.md: Change the description comment of the file
482         and update the copyright years.
483         (define_insn "<u>div<mode>3): Add loongson3a support.
484         (define_insn "<u>mod<mode>3"): Likewise.
485         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
486         mul<mode>3_mul3_loongson.
487         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
488         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
489
490 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
491
492         * common.opt (initial_max_fld_align, flag_debug_asm,
493         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
494         flag_print_asm_name, graph_dump_format, help_printed,
495         help_columns, flag_opts_finished): New Variable entries.
496         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
497         frandom-seed=): Mark deferred.
498         (fsched-verbose=): Use UInteger and Var.
499         * flags.h (set_struct_debug_option, flag_print_asm_name,
500         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
501         graph_dump_format): Don't declare here.
502         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
503         * opts-global.c: Include dbgcnt.h and debug.h.
504         (decode_options): Pass location to finish_options.
505         (handle_common_deferred_options): Check flag_dump_all_passed.
506         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
507         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
508         OPT_fstack_limit.
509         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
510         (set_struct_debug_option): Add location_t parameter.  Update
511         recursive call.  Use error_at.
512         (default_options_optimization): Use error_at.
513         (finish_options): Add location_t parameter.  Use
514         opts->x_flag_opts_finished instead of first_time_p.  Use
515         opts->x_optimize instead of optimize.  Use error_at.  Pass
516         location to inform.
517         (print_filtered_help): Use opts->x_help_printed to track what
518         options have been printed.
519         (print_specific_help): Use opts->x_help_columns to track number of
520         columns.
521         (common_handle_option): Pass locations and gcc_options pointers to
522         more functions.  Use warning_at instead of fnotice and warning.
523         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
524         OPT_fdebug_prefix_map_.  Use error_at.  Set
525         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
526         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
527         OPT_fsched_verbose_.
528         (handle_param): Add location_r parameter.  Use error_at.
529         (set_debug_level): Add location_r parameter.  Use error_at and
530         warning_at.
531         (setup_core_dumping): Add diagnostic_context parameter.
532         (decode_d_option): Add gcc_options, location_t and
533         diagnostic_context parameters and use them instead of global
534         state.  Use warning_at.
535         (enable_warning_as_error): Use error_at.
536         * opts.h (finish_options): Update prototype.
537         (set_struct_debug_option): Declare here.
538         * rtl.h (fix_sched_param): Remove.
539         * stor-layout.c (initial_max_fld_align): Remove.
540         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
541         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
542         (process_options): Set maximum_field_alignment.
543         * tree.h (initial_max_fld_align) Don't declare here.
544         * Makefile.in (opts.o, opts-global.o): Update dependencies.
545
546 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
547
548         * flag-types.h (struct visibility_flags): Don't declare here.
549         * flags.h (strip_off_ending, fast_math_flags_set_p,
550         fast_math_flags_struct_set_p): Declare here.
551         (visibility_options): Don't declare here.
552         * opts-common.c (option_enabled, get_option_state): Move from
553         opts.c.
554         * opts-global.c: Include diagnostic.h instead of
555         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
556         and toplev.h.
557         (const_char_p, ignored_options, in_fnames, num_in_fnames,
558         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
559         print_ignored_options, unknown_option_callback,
560         post_handling_callback, lang_handle_option, add_input_filename,
561         read_cmdline_options, initial_lang_mask, init_options_once,
562         decode_cmdline_options_to_array_default_mask,
563         set_default_handlers, decode_options): Move from opts.c.
564         (print_ignored_options): Use warning_at instead of saving and
565         restoring input_location.
566         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
567         instead of expr.h.  Don't include langhooks.h, except.h or
568         lto-streamer.h.  Add more comments on includes.
569         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
570         toplev.c.
571         (visibility_options): Move to c-family/c-common.c.
572         (const_char_p, ignored_options, in_fnames, num_in_fnames,
573         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
574         print_ignored_options, unknown_option_callback,
575         post_handling_callback, lang_handle_option, add_input_filename,
576         read_cmdline_options, initial_lang_mask, init_options_once,
577         decode_cmdline_options_to_array_default_mask,
578         set_default_handlers, decode_options): Move to opts-global.c.
579         (target_handle_option, default_options_optimization,
580         finish_options, common_handle_option): Remove static.
581         (option_enabled, get_option_state): Move to opts-common.c.
582         * opts.h (common_handle_option, target_handle_option,
583         finish_options, default_options_optimization): Declare.
584         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
585         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
586         opts.c.
587         * toplev.h (strip_off_ending, decode_d_option,
588         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
589         declare here.
590         * Makefile.in (opts.o, opts-global.o): Update dependencies.
591
592 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
593
594         PR driver/42690
595         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
596         options, replace by call of pass-through-libs spec function to process
597         link_gcc_c_sequence spec.
598         (lto_libgcc_spec): Delete variable.
599         (static_specs[]): Remove related entry.
600         (static_spec_functions[]): Add new entry for pass-through-libs.
601         (main): Don't generate deleted lto_libgcc_spec.
602         (pass_through_libs_spec_func): New function to implement the new
603         pass-through-libs spec function.
604         * doc/invoke.texi (pass-through-libs): Document new spec function.
605
606 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
607
608         * doc/options.texi (Warning, Optimization): Document.
609
610 2010-11-23  Jan Hubicka  <jh@suse.cz>
611
612         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
613         (tree_decl_with_vis): Add implicit_section_name_p.
614         * targhooks.h (default_function_section): Declare.
615         * target.def (function_section): New hook.
616         * defaults.h (HOT_TEXT_SECTION_NAME,
617         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
618         * predict.c (choose_function_section): Remove.
619         (estimate_bb_frequencies): Do not use choose_function_section.
620         * coretypes.h (enum node_frequency): Move here from cgraph.h
621         * cgraph.h (enum node_frequency): Remove.
622         * varasm.c (initialize_cold_section_name, unlikely_text_section,
623         unlikely_text_section_p): Remove.
624         (named_subsection_entry): New structure.
625         (get_text_section): New function.
626         (default_function_section): New function.
627         (function_section_1): Break out from ...; handle profile info.
628         (function_section): ... here.
629         (unlikely_text_section): Remove.
630         (unlikely_text_section_p): Use function_section_1.
631         (assemble_start_function): Do not initialize cold section.
632         (default_section_type_flags): Do not special case cold subsection.
633         (switch_to_section): Likewise.
634         * output.h (get_text_section): Define.
635         * config/i386/winnt.c: Do not special case cold section.
636         * config/darwin-protos.h (darwin_function_section): Declare.
637         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
638         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
639         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
640         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
641         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
642         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
643         * config/darwin.c (machopic_select_section): Use
644         darwin_function_section.
645         (darwin_function_section): New function.
646         * config/darwin.h (HOT_TEXT_SECTION_NAME,
647         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
648         (TARGET_ASM_FUNCTION_SECTION): Define.
649         * system.h (HOT_TEXT_SECTION_NAME,
650         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
651
652 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
653
654         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
655         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
656
657 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
658
659         PR middle-end/46499
660         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
661         following unconditional jumps.
662
663 2010-11-23  Richard Guenther  <rguenther@suse.de>
664
665         * doc/md.texi (386 constraints): Clarify A constraint documentation.
666
667 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
668             Jeremie Salvucci  <jeremie.salvucci@free.fr>
669
670         * gengtype.c (enum typekind, struct options)
671         (struct nested_ptr_data, struct pair, NUM_PARAM)
672         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
673         Move to gengtype.h.
674         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
675         Remove static, add zero state_number.
676         (typedefs, structures, param_structs, variables): Remove static.
677         (create_option): Remove.
678         (create_string_option, create_type_option, create_nested_option):
679         New functions.
680         (create_nested_ptr_option): Use create_nested_option.
681         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
682         new create*option functions.
683         (process_gc_options): Adjust for discriminated option.
684         (output_mangled_typename): Handle TYPE_NONE.
685         (walk_type): Test option kinds.
686         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
687         (write_func_for_structure, write_type, write_local, write_root)
688         (write_roots, note_def_vec, dump_options): Adjust for
689         discriminated option.
690
691         * gengtype.h (typedefs, structures, param_structs, variables
692         enum typekind): Move from gengtype.c
693         (enum option_kind): New discriminating enumeration.
694         (struct options): Becomes discriminated.
695         (struct nested_ptr_data): Nove from gengtype.c
696         (create_string_option, create_type_option, create_nested_option)
697         (create_nested_ptr_option): New functions
698         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
699         (UNION_OR_STRUCT_P): Move from gengtype.c
700
701         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
702         discriminated options.
703
704 2010-11-23  Richard Guenther  <rguenther@suse.de>
705
706         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
707         twice.  Avoid re-allocating the ops vector all the time.
708
709 2010-11-23  Richard Guenther  <rguenther@suse.de>
710
711         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
712         is_gimple_min_invariant, group tree code checks to allow
713         combining them.
714         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
715         of is_gimple_reg.
716
717 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
718
719         * config.gcc (sparc*-*-*): Reorder.
720
721 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
722
723         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
724         Remove ENABLE_CHECKING around DBGPRINTF.
725
726 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
727
728         * common.opt (exit_after_options, write_symbols, debug_info_level,
729         use_gnu_debug_info_extensions): New Variable entries.
730         (fprofile-dir=): Use Var.
731         * flag-types.h (enum debug_info_level): Rename to enum
732         debug_info_levels.
733         * flags.h (write_symbols, debug_info_level,
734         use_gnu_debug_info_extensions): Remove declarations.
735         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
736         (set_struct_debug_option): Make static variables const.
737         (use_gnu_debug_info_extensions): Remove.
738         (set_debug_level, print_filtered_help, print_specific_help,
739         fast_math_flags_set_p): Take gcc_options parameters and use them
740         in place of global variables.
741         (print_filtered_help): Make new_help non-static.
742         (print_specific_help): Update call to print_filtered_help.
743         (common_handle_option): Update calls to print_specific_help.  Use
744         gcc_options structure for more settings.  Make --help table
745         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
746         set_debug_level.
747         * toplev.c (profile_data_prefix): Remove.
748         * toplev.h (profile_data_prefix, exit_after_options): Remove
749         declarations.
750         (fast_math_flags_set_p): Update prototype.
751         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
752         Update call to fast_math_flags_set_p.
753
754 2010-11-22  Richard Henderson  <rth@redhat.com>
755
756         PR target/46434
757         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
758         return the address register extracted.
759         (crx_decompose_address): Update the extracted address register.
760
761 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
762
763         PR driver/43335
764         * gcc.c (main): Don't crash when lto-wrapper program is not found.
765
766 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
767
768         PR target/46608
769         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
770         * config/picochip/picochip-protos.h: Don't include "target.h" .
771         (picochip_secondary_reload): Don't declare.
772
773         PR target/46613
774         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
775         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
776         static.
777
778 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
779
780         PR bootstrap/46609
781         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
782         (source_dot_c_frul): Likewise.
783
784 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
785
786         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
787
788 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
789
790         PR bootstrap/44970
791         * Makefile.in (fwprop.o) Add sparseset.h.
792         * fwprop.c: Include sparseset.h
793         (struct find_occurrence_data, find_occurrence_callback,
794         find_occurrence): Remove.
795         (active_defs, active_defs_check, register_active_defs,
796         update_df_init, update_uses): New.
797         (update_df): Rewrite.
798         (try_fwprop_subst, forward_propagate_asm): Add calls to
799         update_df_init and update_df.
800         (fwprop_init): Allocate active_defs and active_defs_check.
801         (fwprop_done): Free them.
802         (fwprop, fwprop_addr): Adjust comments.
803         * df.h (df_uses_create): Declare.
804         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
805         (df_ref_create): Return result of df_ref_create_structure directly.
806         (df_ref_create_structure): Call df_install_ref_incremental when
807         no collection_rec is passed.
808         (df_ref_record): Do not create multiword hard reg info when no
809         collection_rec is passed.
810         (df_uses_create): New.
811
812 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
813
814         PR middle-end/43057
815         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
816         setting location.
817
818 2010-11-22  Richard Guenther  <rguenther@suse.de>
819
820         * gimple-fold.c (maybe_fold_reference): When canonicalizing
821         MEM_REFs, preserve volatileness.
822         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
823         addresses.
824
825 2010-11-22  Richard Guenther  <rguenther@suse.de>
826
827         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
828
829 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
830
831         PR rtl-optimization/45652
832         * alias.c (get_reg_base_value): New.
833         * rtl.h (get_reg_base_value): Add prototype.
834         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
835         non-null REG_BASE_VALUE for renaming.
836
837 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
838             Basile Starynkevitch  <basile@starynkevitch.net>
839
840         * gengtype.c: Include xregex.h and obstack.h
841         Added comments about role of get_output_file_with_visibility and
842         our regexpr machinery.
843         (frul_actionrout_t, struct file_rule_st): New.
844         (hader_dot_h_frul, source_dot_c_frul): New functions.
845         (NULL_REGEX,  NULL_FRULACT): New.
846         (files_rules): New.
847         (matching_file_name_substitute): New function.
848         (get_output_file_with_visibility): Updated comments and rewritten
849         to use the new files_rules machinery.
850
851         * Makefile.in (XREGEX_H): Added variable.
852         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
853
854 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
855
856         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
857
858 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
859
860         * target.def (conditional_register_usage): Define.
861         * reginfo.c (init_reg_sets_1): Call
862         targetm.conditional_register_usage.
863         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
864         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
865         for making it a hook.
866         * doc/tm.texi: Regenerate.
867         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
868         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
869         New function.
870         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
871         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
872         * config/arc/arc.c (arc_conditional_register_usage): ...here.
873         New function.
874         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
875         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
876         * config/arm/arm.c (arm_conditional_register_usage): ...here.
877         New function.
878         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
879         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
880         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
881         * config/bfin/bfin.c (conditional_register_usage): Move code into...
882         (bfin_conditional_register_usage): ...here.  New function.
883         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
884         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
885         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
886         * config/cris/cris.c (cris_conditional_register_usage): Make static.
887         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
888         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
889         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
890         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
891         * config/frv/frv.c (frv_conditional_register_usage): Make static.
892         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
893         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
894         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
895         New function.
896         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
897         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
898         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
899         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
900         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
901         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
902         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
903         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
904         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
905         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
906         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
907         New function.
908         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
909         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
910         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
911         Delete.
912         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
913         static.
914         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
915         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
916         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
917         * config/mep/mep.c (mep_conditional_register_usage): Make static.
918         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
919         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
920         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
921         * config/mips/mips.c (mips_conditional_register_usage): Make static.
922         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
923         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
924         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
925         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
926         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
927         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
928         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
929         ...here.  New function.
930         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
931         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
932         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
933         * config/pa/pa.c (pa_conditional_register_usage): ...here.
934         New function.
935         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
936         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
937         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
938         New function.
939         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
940         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
941         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
942         Delete.
943         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
944         static.
945         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
946         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
947         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
948         * config/rx/rx.c (rx_conditional_register_usage): Make static.
949         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
950         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
951         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
952         * config/s390/s390.c (s390_conditional_register_usage): Make static.
953         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
954         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
955         * config/score/score.c (score_conditional_register_usage): ...here.
956         New function.
957         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
958         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
959         * config/sh/sh.c (sh_conditional_register_usage): ...here.
960         New function.
961         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
962         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
963         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
964         New function.
965         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
966         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
967         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
968         * config/spu/spu.c (spu_conditional_register_usage): Make static.
969         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
970         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
971         * config/v850/v850.c (v850_conditional_register_usage): ...here.
972         New function.
973         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
974
975 2010-11-21  Jan Hubicka  <jh@suse.cz>
976             Dominique d'Humieres <dominiq@lps.ens.ft>
977
978         PR target/46510
979         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
980         finalize external decls.
981
982 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
983
984         * system.h (strerror): Poison.
985
986 2010-11-21  Richard Henderson  <rth@redhat.com>
987
988         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
989         for infq/huge_valq.
990
991 2010-11-21  Richard Henderson  <rth@redhat.com>
992
993         PR rtl-optimization/46571
994         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
995         (compute_hash_table_work): Use NONDEBUG_INSN_P.
996
997 2010-11-21  Paul Koning  <ni1d@arrl.net>
998
999         * config/mips/pdp11.md (negsi2): Fix wrong code.
1000
1001 2010-11-21  Paul Koning  <ni1d@arrl.net>
1002
1003         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
1004         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1005
1006 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
1007
1008         * config/mips/mips.c (machine_function): Rename load_label_length to
1009         load_label_num_insns.
1010         (mips_load_label_length): Rename to...
1011         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
1012         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
1013
1014 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1015
1016         PR target/46533
1017         * config/alpha/predicates.md (direct_call_operand): Return false
1018         for !TARGET_SMALL_TEXT targets.
1019
1020 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
1021
1022         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
1023         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
1024         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
1025         * doc/tm.texi: Regenerate.
1026         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
1027         HANDLE_PRAGMA_WEAK): Poison.
1028         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1029         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1030         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
1031         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
1032         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1033         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1034         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1035         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
1036         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1037         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
1038         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1039         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
1040         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1041         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1042         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1043         (HANDLE_PRAGMA_WEAK): Don't undefine.
1044         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1045         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
1046         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1047         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
1048         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1049         (HANDLE_PRAGMA_WEAK): Don't undefine.
1050         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1051         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
1052         (HANDLE_PRAGMA_PACK): Don't undefine.
1053         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
1054         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1055         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1056         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1057         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
1058         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1059         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1060         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1061         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
1062         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1063         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
1064         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1065         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1066         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1067         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1068         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
1069         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1070
1071 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
1072
1073         PR target/31100
1074         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
1075         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
1076         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
1077
1078 2010-11-20  Jan Hubicka  <jh@suse.cz>
1079
1080         * cgraph.c (ld_plugin_symbol_resolution_names): New.
1081         (dump_cgraph_node): Dump resolution.
1082         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
1083         (cgraph_comdat_can_be_unshared_p): Dclare.
1084         * lto-streamer-out.c (produce_symtab): Use
1085         cgraph_comdat_can_be_unshared_p.
1086         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
1087         (cgraph_comdat_can_be_unshared_p): New function based on logic
1088         in cgraph_externally_visible_p.
1089         (cgraph_externally_visible_p): Use it.
1090         (varpool_externally_visible_p): Virtual tables can be unshared.
1091         * varpool.c (dump_varpool_node): Dump resolution.
1092
1093 2010-11-20  Jan Hubicka  <jh@suse.cz>
1094
1095         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
1096
1097 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1098
1099         PR other/46202
1100         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
1101         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
1102         shell quoting.
1103         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
1104         (install-strip): New target.
1105         (STRIPPROG): New variable, exported if STRIP is set.
1106         * doc/install.texi (Final install): Minor markup and code style
1107         fixes.  Document install-strip target.
1108
1109 2010-11-20  Paul Koning  <ni1d@arrl.net>
1110
1111         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
1112         pdp11_regno_reg_class): New functions.
1113         * config/pdp11/pdp11.md (define_constants): Add register numbers.
1114         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
1115         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
1116         functions.
1117         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
1118         frame pointer and argument pointer pseudo-registers.
1119         (ARG_POINTER_REGNUM): Define.
1120         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
1121         argument pointer.
1122         (FIRST_PARM_OFFSET): Update for argument pointer.
1123         (INITIAL_FRAME_POINTER_OFFSET): Delete.
1124         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
1125         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
1126         frame pointer and argument pointer.
1127
1128 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
1129
1130         PR debug/46561
1131         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
1132         when looking for immediate uses.
1133
1134         PR tree-optimization/45830
1135         * stmt.c (expand_switch_using_bit_tests_p): New function.
1136         (expand_case): Use it.
1137         * tree.h (expand_switch_using_bit_tests_p): New prototype.
1138         * tree-switch-conversion.c (struct switch_conv_info): Add
1139         bit_test_uniq, bit_test_count and bit_test_bb fields.
1140         (check_range): Fix a comment.
1141         (check_process_case): Compute bit_test_uniq and bit_test_count.
1142         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
1143         allocation.
1144         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
1145         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
1146         (array_value_type): New function.
1147         (build_one_array): Use it, if it returned different type,
1148         fold_convert all constructor fields and convert back to the
1149         wider type in the generated code.
1150         (process_switch): Initialize bit_test_uniq, bit_test_count and
1151         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
1152         returned true.
1153
1154 2010-11-19  Michael Matz  <matz@suse.de>
1155
1156         PR tree-optimization/46077
1157         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
1158
1159 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
1160
1161         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1162         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
1163         function.
1164         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1165
1166 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
1167
1168         * mode-switching.c (optimize_mode_switching): Use
1169         FOR_BB_INSNS instead of open-coded loop.
1170         * cfgrtl.c (redirect_branch_edge): Ditto.
1171
1172 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
1173
1174         PR target/46436
1175         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
1176         to accomodate 32 bit HOST_WIDE_INT.
1177         (m68hc11_emit_logical): Remove unused variable insn.
1178         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
1179         this_insn_uses_iy before use.
1180
1181         PR target/46434
1182         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
1183
1184 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
1185
1186         PR c/46547
1187         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
1188         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
1189
1190 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
1191
1192         * doc/extend.texi (Function attributes): Document PowerPC target
1193         attributes that are supported.
1194         (Pragmas): Document that PowerPC now supports target pragmas.
1195
1196         * doc/options.texi (TargetVariable): Document TargetVariable,
1197         HeaderInclude, and SourceInclude.
1198
1199         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
1200         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
1201         -ffp-contract=off.
1202
1203         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
1204         SourceInclude directives.  Fix a cut+paste error with target save
1205         enum variables.  Sort enums in the structures after ints and
1206         before shorts.
1207         * opth-gen.awk: Ditto.
1208
1209         * configure.ac: Add support for HeaderInclude and SourceInclude option
1210         directives to add the appropriate files to the dependency lists.
1211         * configure: Regenerate.
1212         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
1213         (OPTIONS_C_EXTRA): New variable for SourceInclude.
1214         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
1215         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
1216         (gcc-options.o): Ditto.
1217         * opt-include.awk: New awk script to handle HeaderInclude and
1218         TargetInclude.
1219
1220         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
1221         gets saved in the target options.
1222         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
1223         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
1224         (-mprototype): Ditto.
1225         (-mbit-word): ditto.
1226         (-mregnames): Ditto.
1227         (-msecure-plt): Ditto.
1228         (-mbss-plt): Ditto.
1229         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
1230         (-mpowerpc-gfxopt): Ditto.
1231         (-mmfcrf): Ditto.
1232         (-mpopcntb): Ditto.
1233         (-mfprnd): Ditto.
1234         (-mcmpb): Ditto.
1235         (-mmmfpgpr): Ditto.
1236         (-maltivec): Ditto.
1237         (-mhard-dfp): Ditto.
1238         (-mmulhw): Ditto.
1239         (-mdlmzb): Ditto.
1240         (-mmultiple): Ditto.
1241         (-mstring): Ditto.
1242         (-mpopcntd): Ditto.
1243         (-mfriz): Ditto.
1244         (-mvsx): Ditto.
1245         (-mno-update): Ditto.
1246         (-mavoid-indexed-addresses): Ditto.
1247         (-mtls-markers): Ditto.
1248         (-msched-epilog): Ditto.
1249         (-msched-prolog): Ditto.
1250         (-maix-struct-return): Ditto.
1251         (-msvr4-struct-return): Ditto.
1252         (-mxl-compat): Ditto.
1253         (-mrecip-precision): Ditto.
1254         (-mfp-in-toc): Ditto.
1255         (-msum-in-toc): Ditto.
1256         (-mvrsave): Ditto.
1257         (-mblock-move-inline-limit=): Ditto.
1258         (-misel): Ditto.
1259         (-mpaired): Ditto.
1260         (-mlongcall): Ditto.
1261         (-mgen-cell-microcode): Ditto.
1262         (-mwarn-cell-microcode): Ditto.
1263         (-mwarn-altivec-long): Ditto.
1264         (-mprioritize-restricted-insns=): Ditto.
1265         (-msingle-float): Ditto.
1266         (-mdouble-float): Ditto.
1267         (-msimple-fpu): Ditto.
1268         (-mxilinx-fpu): Ditto.
1269         * config/rs6000/aix64.opt (-mpe): Ditto.
1270
1271         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
1272         (rs6000_cpu): Move variable to be a target variable.  Rename
1273         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
1274         -mdebug=<xxx> variables into a single int.
1275         (rs6000_always_hint): Ditto.
1276         (rs6000_sched_groups): Ditto.
1277         (rs6000_align_branch_targets): Ditto.
1278         (rs6000_sched_costly_dep): Ditto.
1279         (rs6000_sched_insert_nops): Ditto.
1280         (rs6000_long_double_type_size): Ditto.
1281         (rs6000_ieeequad): Ditto.
1282         (rs6000_altivec_abi): Ditto.
1283         (rs6000_spe): Ditto.
1284         (rs6000_spe_abi): Ditto.
1285         (rs6000_float_gprs): Ditto.
1286         (rs6000_darwin64_abi): Ditto.
1287         (can_override_loop_align): Ditto.
1288         (rs6000_sdata): Ditto.
1289         (rs6000_tls_size): Ditto.
1290         (rs6000_current_abi): Ditto.
1291         (rs6000_traceback): Ditto.
1292         (rs6000_alignment_flags): Ditto.
1293         (rs6000_current_cmodel): Ditto.
1294         (rs6000_recip_control): Ditto.
1295         (rs6000_cpu_index): Ditto.
1296         (rs6000_tune_index): Ditto.
1297         (rs6000_debug): Ditto.
1298         (rs6000_target_flags_explict): Ditto.
1299
1300         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
1301         declaration.
1302
1303         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
1304         cmodel.  Change all uses.
1305
1306         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
1307         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
1308         Rename cmodel to rs6000_current_cmodel.
1309         (rs6000_sched_groups): Ditto.
1310         (rs6000_align_branch_targets): Ditto.
1311         (rs6000_sched_costly_dep): Ditto.
1312         (rs6000_sched_insert_nops): Ditto.
1313         (rs6000_long_double_type_size): Ditto.
1314         (rs6000_ieeequad): Ditto.
1315         (rs6000_altivec_abi): Ditto.
1316         (rs6000_spe): Ditto.
1317         (rs6000_spe_abi): Ditto.
1318         (rs6000_float_gprs): Ditto.
1319         (rs6000_darwin64_abi): Ditto.
1320         (can_override_loop_align): Ditto.
1321         (rs6000_sdata): Ditto.
1322         (rs6000_tls_size): Ditto.
1323         (rs6000_current_abi): Ditto.
1324         (rs6000_traceback): Ditto.
1325         (rs6000_alignment_flags): Ditto.
1326         (rs6000_current_cmodel): Ditto.
1327         (rs6000_recip_control): Ditto.
1328         (rs6000_cpu_index): Ditto.
1329         (rs6000_tune_index): Ditto.
1330         (rs6000_debug): Ditto.
1331         (rs6000_target_flags_explict): Ditto.
1332         (rs6000_sched_insert_nops_str): Make static.
1333         (rs6000_sched_costly_dep_str): Ditto.
1334         (rs6000_recip_name): Ditto.
1335         (rs6000_abi_name): Ditto.
1336         (rs6000_sdata_name): Ditto.
1337         (enum rs6000_traceback_name): Move to rs6000-opts.h.
1338         (rs6000_parse_tls_size_option): Delete.
1339         (rs6000_valid_attribute_p): New function for target attributes and
1340         pragmas.
1341         (rs6000_function_specific_save): Ditto.
1342         (rs6000_function_specific_restore): Ditto.
1343         (rs6000_function_specific_print): Ditto.
1344         (rs6000_can_inline_p): Ditto.
1345         (rs6000_set_current_function): Ditto.
1346         (rs6000_inner_target_options): Ditto.
1347         (rs6000_debug_target_options): Ditto.
1348         (rs6000_pragma_target_parse): Ditto.
1349         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
1350         attributes and pragmas.
1351         (TARGET_OPTION_SAVE): Ditto.
1352         (TARGET_OPTION_RESTORE): Ditto.
1353         (TARGET_OPTION_PRINT): Ditto.
1354         (TARGET_CAN_INLINE_P): Ditto.
1355         (TARGET_SET_CURRENT_FUNCTION): Ditto.
1356         (POWER_MASKS): Move to file level scope from the
1357         rs6000_option_override_internal function.
1358         (POWERPC_MASKS): Ditto.
1359         (ISA_*_MASKS): Ditto.
1360         (struct rs6000_ptt): Ditto.
1361         (processor_target_table): Ditto.
1362         (rs6000_cpu_name_lookup): Map cpu name to an index in
1363         processor_target_table.
1364         (rs6000_debug_reg_global): Print more information on processor
1365         options for -mdebug=reg.
1366         (rs6000_init_hard_regno_mode_ok): Add support for target
1367         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
1368         Allow -mdebug=val1,val2.  Rename cmodel variable.
1369         (rs6000_option_override_internal): Ditto.
1370         (rs6000_option_override): Ditto.
1371         (rs6000_handle_option): Ditto.
1372         (rs6000_conditional_register_usage): Add debug trace message.
1373         (struct rs6000_opt_mask): New for target attribute/pragma support.
1374         (rs6000_opt_masks): Ditto.
1375         (struct rs6000_opt_var): Ditto.
1376         (rs6000_opt_vars): Ditto.
1377         (rs6000_previous_function): Ditto.
1378
1379         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
1380         wasn't already included.
1381         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
1382         (enum processor_type): Ditto.
1383         (rs6000_cpu): Ditto.
1384         (enum fpu_type_t): Ditto.
1385         (fpu_type): Ditto.
1386         (enum rs6000_dependence_cost): Ditto.
1387         (enum rs6000_nop_insertion): Ditto.
1388         (enum group_termination): Ditto.
1389         (rs6000_long_double_type_size): Ditto.
1390         (rs6000_ieeequad): Ditto.
1391         (rs6000_altivec_abi): Ditto.
1392         (rs6000_spe_abi): Ditto.
1393         (rs6000_spe): Ditto.
1394         (rs6000_float_gprs): Ditto.
1395         (rs6000_alignment_flags): Ditto.
1396         (rs6000_sched_insert_nops): Ditto.
1397         (enum rs6000_vector): Ditto.
1398         (enum rs6000_abi): Ditto.
1399         (rs6000_current_opt): Ditto.
1400         (rs6000_debug_*): Delete.
1401         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
1402         (TARGET_DEBUG*): Ditto.
1403
1404         * config/rs6000/rs6000-opts.h: New header file to define the enums
1405         that are used in target variables that are now defined in rs6000.opt.
1406
1407         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
1408         rs6000-opts.h.
1409         (rs6000_sdata): Ditto.
1410         (rs6000_abi_name): Delete.
1411         (rs6000_sdata_name): Ditto.
1412         (rs6000_tls_size_string): Ditto.
1413
1414 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
1415
1416         * common.opt (debug_struct_ordinary, debug_struct_generic): New
1417         Variable entries.
1418         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
1419         should_emit_struct_debug): Move from opts.c.
1420         * flag-types.h (enum debug_struct_file): Move from opts.c.
1421         * flags.h (should_emit_struct_debug): Remove.
1422         (base_of_path): Declare.
1423         (set_struct_debug_option): Add gcc_options parameter.
1424         * optc-gen.awk, opth-gen.awk: Handle array variables.
1425         * opts.c (enum debug_struct_file, debug_struct_ordinary,
1426         debug_struct_generic): Remove.
1427         (set_struct_debug_option): Add gcc_options parameter.
1428         (base_of_path): Remove static.
1429         (main_input_basename, main_input_baselength, matches_main_base,
1430         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
1431         Remove.
1432         * toplev.c (main_input_basename, main_input_baselength): Define
1433         here.
1434         * toplev.h (main_input_basename, main_input_baselength): Declare
1435         here.
1436
1437 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
1438
1439         * common.opt (flag_instrument_functions_exclude_functions,
1440         flag_instrument_functions_exclude_files): New Variable definitions.
1441         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
1442         * gimplify.c (char_p): Declare type and vectors.
1443         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
1444         * opts.c (flag_instrument_functions_exclude_functions,
1445         flag_instrument_functions_exclude_files): Remove.
1446         (add_comma_separated_to_vector): Take void **.
1447         (flag_instrument_functions_exclude_p): Move to gimplify.c.
1448         (common_handle_option): Use options structure for
1449         -finstrument-functions-exclude- options.
1450
1451 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
1452
1453         * doc/options.texi (Var): Document effects of Defer.
1454         (Defer): Document.
1455         * opt-functions.awk (var_type, var_set): Handle deferred options.
1456         * opts-common.c (set_option): Handle CLVC_DEFER.
1457         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
1458         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
1459         fstack-limit-symbol=): Mark as deferred.
1460         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
1461         plugin.h.
1462         (print_filtered_help): Don't report state of CLVC_DEFER options.
1463         (common_handle_option): Move code for OPT_fcall_used_,
1464         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
1465         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
1466         OPT_fstack_limit_symbol_ to opts-global.c.
1467         (option_enabled, get_option_state): Handle CLVC_DEFER.
1468         * opts.h: Include vec.h.
1469         (enum cl_var_type): Add CLVC_DEFER.
1470         (cl_deferred_option): Define type and vectors.
1471         (handle_common_deferred_options): Declare.
1472         * opts-global.c: New.
1473         * toplev.c (toplev_main): Call handle_common_deferred_options
1474         * Makefile.in (OPTS_H): Include $(VEC_H).
1475         (OBJS-common): Include opts-global.o.
1476         (opts.o): Update dependencies.
1477         (opts-global.o): Add dependencies.
1478
1479 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
1480
1481         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
1482         to objc_declare_protocols.
1483
1484 2010-11-19  Richard Guenther  <rguenther@suse.de>
1485
1486         PR lto/45789
1487         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
1488         IDENTIFIERs do not stream TREE_TYPE.
1489         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
1490
1491 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
1492
1493         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
1494
1495 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
1496
1497         PR target/45870
1498         * dwarf2out.c (const_ok_for_output_1): Don't complain about
1499         non-delegitimized TLS UNSPECs.
1500
1501 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
1502             Ian Lance Taylor  <iant@google.com>
1503
1504         * config/darwin-c.c (darwin_additional_format_types): Export.
1505
1506 2010-11-18  Paul Koning  <ni1d@arrl.net>
1507
1508         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
1509         pointer.
1510
1511 2010-11-18  Paul Koning  <ni1d@arrl.net>
1512
1513         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
1514         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
1515         * config/pdp11/pdp11.opt (-mabshi): Delete.
1516
1517 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
1518
1519         * resource.h (struct resources): Fix typo in the comment.
1520
1521 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
1522
1523         PR target/46546
1524         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
1525
1526 2010-11-18  Richard Henderson  <rth@redhat.com>
1527
1528         PR middle-end/46515
1529         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
1530         maybe_copy_epilogue_insn; handle prologue insns as well.
1531         * rtl.h, cfglayout.c: Update for rename.
1532         * recog.c (peep2_attempt): Copy prologue/epilogue data for
1533         RTX_FRAME_RELATED_P insns.
1534
1535 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
1536
1537         PR middle-end/46534
1538         * builtins.c (fold_builtin_printf): Don't copy and modify string
1539         before build_string_literal, instead modify what
1540         build_string_literal returned.
1541
1542 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
1543
1544         PR c/33193
1545         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
1546         REALPART_EXPR and IMAGPART_EXPR.
1547
1548 2010-11-18  Richard Guenther  <rguenther@suse.de>
1549
1550         PR tree-optimization/46172
1551         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
1552         function.
1553         (slpeel_tree_peel_loop_to_edge): Call it.
1554
1555 2010-11-18  Jeff Law  <law@redhat.com>
1556
1557         PR middle-end-optimization/46297
1558         * postreload.c (reload_combine_note_store): Deal with embedded
1559         side effects in MEM expressions.
1560
1561 2010-11-18  Richard Guenther  <rguenther@suse.de>
1562
1563         PR lto/45089
1564         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
1565         when checking is not enabled.
1566
1567 2010-11-18  Richard Guenther  <rguenther@suse.de>
1568
1569         PR lto/46525
1570         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
1571         type leaders.
1572         (gimple_register_canonical_type): Also cache the canoncial type
1573         for non type leaders.
1574
1575 2010-11-18  Richard Guenther  <rguenther@suse.de>
1576
1577         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
1578
1579 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
1580
1581         PR middle-end/46518
1582         * sel-sched-ir.c (init_expr): Use the correct type for
1583         target_available.
1584         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
1585
1586 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
1587
1588         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
1589         as well as -mrelocatable at the same time.
1590
1591 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
1592
1593         PR target/46422
1594         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
1595         Call the clz builtin.
1596
1597 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
1598             Steve Ellcey  <sje@cup.hp.com>
1599
1600         PR middle-end/31490
1601         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
1602         if section attribute used.
1603
1604 2010-11-17  Jan Hubicka  <jh@suse.cz>
1605
1606         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
1607         expand errno setting variant when optimizing for size.
1608
1609 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
1610
1611         * postreload.c (reload_combine): Call control_flow_insn_p only once.
1612         Reverse backward loop.  Fix formatting issues.
1613
1614 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
1615
1616         * c-parser.c (c_token_is_qualifier,
1617         c_parser_next_token_is_qualifier): New.
1618         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
1619         Improve error message on specs->tagdef_seen_p.
1620         (c_parser_struct_or_union_specifier): Improve error recovery.
1621         (c_parser_declspecs): Move exit condition on C_ID_ID early.
1622         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
1623         using c_parser_next_token_is_qualifier; extend it to cover
1624         a ctsk_tagdef typespec and !typespec_ok in general.
1625
1626 2010-11-17  Richard Guenther  <rguenther@suse.de>
1627
1628         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
1629         (gimple_mod_pow2_value_transform): Likewise.
1630         (gimple_mod_subtract_transform): Likewise.
1631
1632 2010-11-17  Richard Guenther  <rguenther@suse.de>
1633
1634         PR lto/46504
1635         * gimple.c (gimple_register_canonical_type): Make sure to only
1636         make type leaders canonical types.
1637
1638 2010-11-17  Michael Matz  <matz@suse.de>
1639
1640         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
1641         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
1642         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
1643         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
1644         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
1645         (pass_build_ssa): ... but here.
1646         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
1647         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
1648         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
1649         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
1650         * predict.c (rebuild_frequencies): Ditto.
1651         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
1652         * emit-rtl.c (verify_rtl_sharing): Ditto.
1653         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
1654         * tree-ssa-live.c (remove_unused_locals): Ditto.
1655         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
1656         * tree-ssa.c (pass_early_warn_uninitialized,
1657         execute_update_addresses_taken, pass_update_address_taken): Ditto.
1658         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
1659         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
1660         * passes.c (pass_postreload, execute_todo): Ditto.
1661         * tree-ssanames.c (pass_release_ssa_names): Ditto.
1662
1663 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
1664
1665         * doc/invoke.texi (-dy): Remove.
1666         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
1667         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
1668         * langhooks.c (lhd_do_nothing_i): Remove.
1669         * langhooks.h (lang_hooks.parse_file): Take no arguments.
1670         * toplev.c (set_yydebug): Remove.
1671         (compile_file): Update call to lang_hooks.parse_file.
1672         (decode_d_option): Don't handle -dy.
1673
1674 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
1675
1676         PR rtl-optimization/46440
1677         * combine.c (update_cfg_for_uncondjump): When changing
1678         an indirect jump into unconditional jump, remove BARRIERs
1679         from bb's footer.
1680
1681 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
1682
1683         * opts.c (target_handle_option): Do not assert that loc ==
1684         UNKNOWN_LOCATION.
1685
1686 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
1687             Richard Guenther  <rguenther@suse.de>
1688
1689         PR middle-end/45838
1690         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
1691         call_may_clobber_ref_p_1): Return true for __sync_* and some
1692         OpenMP builtins that act as threading barriers.
1693
1694 2010-11-17  Richard Guenther  <rguenther@suse.de>
1695
1696         PR tree-optimization/46498
1697         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
1698
1699 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1700
1701         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
1702         (xtensa_function_arg_boundary): ...this.
1703         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
1704         thinko in declaration.
1705         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
1706         number of parameters to picochip_function_arg_boundary.
1707         (picochip_arg_advance): Likewise.
1708
1709 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1710
1711         PR target/46512
1712         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
1713         under check for type.
1714
1715 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1716
1717         * ifcvt.c (dead_or_predicable): Fix typo.
1718
1719 2010-11-16  Richard Henderson  <rth@redhat.com>
1720
1721         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
1722         * config/s390/s390.opt (mfused-madd): Remove.
1723         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
1724         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
1725         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
1726         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
1727
1728 2010-11-16  Richard Henderson  <rth@redhat.com>
1729
1730         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
1731         * config/rs6000/rs6000.opt (mfused-madd): Remove.
1732         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
1733         (*altivec_vmaddfp_1): Remove.
1734         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
1735         (altivec_mulv4sf3): Expand to FMA directly.
1736         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
1737         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
1738         * config/rs6000/paired.md (paired_madds0): Use FMA.
1739         (paired_madds1): Likewise.
1740         (*paired_madd): Rename from paired_madd; use FMA.
1741         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
1742         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
1743         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
1744         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
1745         (rs6000_emit_madd): Use fma_optab.
1746         (rs6000_emit_msub): Use fms_optab.
1747         (rs6000_emit_nmsub): Expand the FMA pattern directly.
1748         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
1749         (*fmasf4_fpr): Rename from fmasf4_fpr.
1750         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
1751         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
1752         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
1753         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
1754         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
1755         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
1756         (*fmadf4_fpr): Rename from fmadf4_fpr.
1757         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
1758         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
1759         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
1760         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
1761         (fmasf4, fmadf4): Macroize into...
1762         (fma<FMA_F>4): ... here.
1763         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
1764         (nfma<FMA_F>4, nfms<FMA_F>4): New.
1765         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
1766         TARGET_FUSED_MADD.
1767         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
1768         (*vsx_fmadd<mode>4_1): Remove.
1769         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
1770         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
1771         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
1772         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
1773         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
1774         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
1775         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
1776
1777 2010-11-16  Richard Henderson  <rth@redhat.com>
1778
1779         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
1780         (fmasf4, fnmadf4, fnmasf4): Likewise.
1781         (unnamed plus+mult insns and splitters): Delete.
1782
1783 2010-11-16  Richard Henderson  <rth@redhat.com>
1784
1785         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
1786         (fnma<VSF>4): Rename from fnms_<VSF>.
1787         (fms<VSF>4): Rename from fms_<VSF>.
1788         (fma<VDF>4): Rename from fma_<VDF>.
1789         (fms<VDF>4): Rename from fms_<VDF>.
1790         (nfma<VDF>4): Rename from fnma_<VDF>.
1791         (nfms<VDF>4): Rename from fnms_<VDF>.
1792         (fnma<VDF>4, fnms<VDF>4): New expanders.
1793         (floatunsdisf2): Update for the renames.
1794         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
1795         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
1796
1797 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1798
1799         PR rtl-optimization/46490
1800         * combine.c (expand_compound_operation): Fix thinko.
1801
1802 2010-11-16  Richard Henderson  <rth@redhat.com>
1803
1804         PR target/46470
1805         * recog.c (peep2_attempt): Convert frame-related info when possible.
1806         (peep2_fill_buffer): Allow frame-related insns into the buffer.
1807         (peephole2_optimize): Allow peep2_attempt to fail.
1808
1809 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1810
1811         PR rtl-optimization/46315
1812         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
1813         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
1814         extracted from...
1815         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
1816         (remove_reg_equal_equiv_notes_for_defs): ...this.
1817         (delete_unmarked_insns): Adjust to above renaming.
1818         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
1819         referring to registers set in the insns being moved, if any.
1820
1821         * df-core.c (df_ref_dump): New function extracted from...
1822         (df_refs_chain_dump): ...here.  Call it.
1823         (df_regs_chain_dump): Likewise.
1824         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
1825         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
1826
1827 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
1828
1829         PR rtl-optimization/46395
1830         * postreload.c (reload_combine): Invalidate register use
1831         information on all control flow insns.
1832
1833         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
1834         LABEL_REF in UNSPEC operand.
1835
1836 2010-11-16  Jan Hubicka  <jh@suse.cz>
1837
1838         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
1839         when !flag_toplevel_reorder do not remove unless variable is
1840         COMDAT or ARTIFICIAL.
1841         * ipa.c (varpool_can_remove_if_no_refs): ... here.
1842         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
1843         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
1844         * varpool.c (decide_is_variable_needed): Do not handle visibility
1845         issues.
1846         (varpool_finalize_decl): Likewise.
1847         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
1848         update outdated comment on DECL_RTL_SET_P check.
1849
1850 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1851
1852         * config/sol2.h (NM_FLAGS): Define.
1853         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
1854         * doc/tm.texi: Update.
1855
1856 2010-11-16  Nick Clifton  <nickc@redhat.com>
1857
1858         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
1859         (msubsf4): Rename to fmssf4, and use fma.
1860         (nmaddsf4): Rename to fnmasf4 and use fma.
1861         (nmsubsf4): Rename to fnmssf4 and use fma.
1862
1863 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
1864
1865         PR target/44762
1866         * config/score/score3.c (score3_return_in_memory): Constify arguments.
1867         (score3_in_small_data_p, score3_function_value): Likewise.
1868         (score3_trampoline_init): Use LCT_NORMAL.
1869         (score3_print_operand): Initialize code as UNKNOWN.
1870         * config/score/predicates.md (score_load_multiple_operation):
1871         Remove unused variable.
1872         (score_store_multiple_operation): Likewise.
1873         * config/score/score7.c (score7_return_in_memory): Constify arguments.
1874         (score7_in_small_data_p, score7_function_value): Likewise.
1875         (score7_trampoline_init): Use LCT_NORMAL.
1876         (score7_print_operand): Initialize code as UNKNOWN.
1877         * config/score/score3.h (score3_return_in_memory): Update prototype.
1878         (score3_in_small_data_p, score3_function_value): Likewise.
1879         * config/score/score-protos.h (score_function_value): Likewise.
1880         * config/score/score7.h (score7_return_in_memory): Update prototype.
1881         (score7_in_small_data_p, score7_function_value): Likewise.
1882         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
1883         (score_return_in_memory, score_pass_by_reference): Constify arguments.
1884         (score_output_mi_thunk, score_function_prologue): Don't return a value.
1885         (score_function_epilogue, score_in_small_data_p): Likewise.
1886         (score_option_override, score_asm_trampoline_template): Likewise.
1887         (score_trampoline_init, score_print_operand): Likewise.
1888         (score_print_operand_address, score_prologue): Likewise.
1889         (score_epilogue, score_call, score_call_value): Likewise.
1890         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
1891         (score_function_arg_advance): Likewise. Make static.
1892         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
1893         (score_function_arg, score_legitimate_address_p): Make static.
1894         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
1895         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
1896         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
1897         Allow (W) == HOST_BITS_PER_WIDE_INT.
1898
1899         PR java/46386
1900         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
1901         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
1902
1903 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1904
1905         * config/arc/arc.c: Delete pasto.
1906         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
1907
1908 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
1909
1910         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
1911         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
1912         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
1913         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1914         (mn10300_preferred_reload_class,
1915         mn10300_preferred_output_reload_class): New functions.
1916
1917 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1918
1919         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
1920         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
1921         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
1922         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
1923
1924 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1925
1926         * builtins.c (std_gimplify_va_arg_expr): Use
1927         targetm.calls.function_arg_boundary.
1928         * function.c (assign_parms, locate_and_pad_parm): Likewise.
1929         * calls.c (struct arg_data): Update comment.
1930         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
1931         * target.def (function_arg_boundary): Define.
1932         * targhooks.h (default_function_arg_boundary): Declare.
1933         * targhooks.c (default_function_arg_boundary): Define.
1934         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
1935         TARGET_FUNCTION_ARG_BOUNDARY.
1936         (FUNCTION_ARG_BOUNDARY): Delete.
1937         (TARGET_FUNCTION_ARG_BOUNDARY): New.
1938         * doc/tm.texi: Regenerate.
1939         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
1940         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
1941         * config/arc/arc.c (arc_function_arg_boundary): Define.
1942         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1943         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
1944         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
1945         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
1946         (arm_function_arg_boundary): Define.
1947         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1948         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
1949         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
1950         * config/frv/frv.c (frv_function_arg_boundary): Make static.
1951         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1952         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
1953         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
1954         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
1955         (ix86_compat_function_arg_boundary): Take and return unsigned int.
1956         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1957         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
1958         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
1959         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
1960         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1961         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
1962         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
1963         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1964         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
1965         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
1966         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
1967         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1968         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
1969         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
1970         * config/mips/mips.c (mips_function_arg_boundary): Make static.
1971         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1972         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
1973         * config/pa/pa.c (pa_function_arg_boundary): Define.
1974         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1975         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
1976         * config/picochip/picochip-protos.h
1977         (picochip_get_function_arg_boundary): Delete.
1978         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
1979         Rename to...
1980         (picochip_function_arg_boundary): ...this.  Make static.
1981         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
1982         (picochip_arg_advance): Adjust.
1983         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1984         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
1985         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
1986         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
1987         (rs6000_function_arg_boundary): ...this.  Make static.
1988         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
1989         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1990         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
1991         * config/rx/rx.c (rx_function_arg_boundary): Define.
1992         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1993         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
1994         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
1995         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1996         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
1997         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
1998         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
1999         (xtensa_function_arg_boundary): ...this.  Make static.
2000         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2001
2002 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2003
2004         * expr.c (alignment_for_piecewise_move): New function.
2005         (widest_int_mode_for_size): New function.
2006         (move_by_pieces, move_by_pieces_ninsns): Call them.
2007         (can_store_by_pieces, store_by_pieces_1): Likewise.
2008
2009 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2010
2011         * gcc.c (char_p): Define.  Define a VEC of it.
2012         (n_linker_options, n_assembler_options, n_preprocessor_options):
2013         Delete.
2014         (linker_options, assembler_options, preprocessor_options): Convert
2015         to a VEC.
2016         (add_preprocessor_option): Adjust.
2017         (add_assembler_option): Adjust.
2018         (add_linker_option): Adjust.
2019         (do_specs_vec): New function.
2020         (do_spec_1): Call it.  Adjust for new types.
2021
2022 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2023
2024         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
2025         (sreal.o, statistics.o, stringpool.o): Likewise.
2026
2027 2010-11-16  Richard Guenther  <rguenther@suse.de>
2028
2029         PR tree-optimization/44545
2030         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
2031         statements are not reassociatable.
2032         (reassociate_bb): Likewise.
2033
2034 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2035
2036         * bitmap.c: Delete unnecessary includes.
2037         * ebitmap.c: Likewise.
2038         * et-forest.c: Likewise.
2039         * sreal.c: Likewise.
2040         * statistics.c: Likewise.
2041         * stringpool.c: Likewise.
2042         * double-int.c: Add comment for inclusion of tm.h.
2043
2044 2010-11-16  Richard Guenther  <rguenther@suse.de>
2045
2046         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
2047         (visit_nary_op): ... this.
2048         (visit_binary_op): Remove.
2049         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
2050
2051 2010-11-16  Richard Guenther  <rguenther@suse.de>
2052
2053         PR middle-end/45172
2054         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
2055
2056 2010-11-16  Nick Clifton  <nickc@redhat.com>
2057
2058         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
2059         record is packed.
2060
2061 2010-11-15  Richard Henderson  <rth@redhat.com>
2062
2063         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
2064         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
2065         DOT_PROD_EXPR.
2066
2067 2010-11-15  Richard Henderson  <rth@redhat.com>
2068
2069         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
2070         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
2071         fma rtx_code.
2072
2073 2010-11-15  Richard Henderson  <rth@redhat.com>
2074
2075         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
2076         and *mulsubsf4 respectively.  Use fma rtx_code.
2077
2078 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
2079
2080         * gcc.c: Include "vec.h".
2081         (argbuf): Make into a VEC.
2082         (argbuf_length, argbuf_index): Remove.
2083         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
2084         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
2085         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
2086         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
2087         (gcc.o): Depend on $(VEC_H).
2088
2089 2010-11-15  Richard Henderson  <rth@redhat.com>
2090
2091         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
2092         via FMA if unsafe math.
2093         (insert_var_expansion_initialization): Handle FMA.
2094         (combine_var_copies_in_loop_exit): Likewise.
2095
2096 2010-11-15  Richard Henderson  <rth@redhat.com>
2097
2098         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
2099         * config/ia64/ia64.opt: Remove mfused-madd.
2100         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
2101         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
2102         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
2103         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
2104         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
2105         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
2106         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
2107         (fmav2sf4): Rename from fpma; use FMA code.
2108         (fmsv2sf4): Rename from fpms; use FMA code.
2109         (fnmav2sf4): Rename from *fpnma; use FMA code.
2110         * config/ia64/ia64.md (MODE_SDF): New iterator.
2111         (suffix): New mode attribute.
2112         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
2113         (fmssf4): Rename from *fmssf4.
2114         (fnmasf4): Rename from *nfmasf4.
2115         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
2116         (*nmadddf4, *nmadddf4_truncsf): Remove.
2117         (fmsdf4): Rename from *fmsdf4.
2118         (fnmadf4): Rename from *nfmadf4.
2119         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
2120         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
2121         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
2122         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
2123         (fmsxf4): Rename from *fmsxf4.
2124         (fnmaxf4): Rename from *nfmaxf4.
2125         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
2126         (*fnmaxf_trunc_<MODE_SDF>): New.
2127
2128 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2129
2130         PR tree-optimization/46461
2131         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
2132         a gimple val.
2133
2134 2010-11-15  Ian Lance Taylor  <iant@google.com>
2135
2136         * godump.c: New file.
2137         * common.opt (fdump-go-spec=): New option.
2138         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
2139         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
2140         (TYPE_SYMTAB_IS_DIE): Define.
2141         (struct tree_type): Change GTY for symtab field to use
2142         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
2143         to pick the union field.
2144         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
2145         (dump_go_spec_init): Declare.
2146         * toplev.c (process_options): Handle flag_dump_go_spec.
2147         * debug.c: Include "tree.h".
2148         (do_nothing_debug_hooks): Set tree_type_symtab_field.
2149         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
2150         * dbxout.c (dbx_debug_hooks): Likewise.
2151         (xcoff_debug_hooks): Likewise.
2152         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
2153         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
2154         SDB_DEBUGGING_INFO is not defined.
2155         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
2156         (Overall Options): Document -fdump-go-spec.
2157         * Makefile.in (OBJS-common): Add godump.o.
2158         (debug.o): Add dependency on $(TREE_H).
2159         (godump.o): New target.
2160         (GTFILES): Add $(srcdir)/godump.c.
2161
2162 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2163
2164         PR debug/46095
2165         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
2166         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
2167         style < 0, add REG_FRAME_RELATED_EXPR.
2168
2169         PR debug/46387
2170         * rtl.h (vt_equate_reg_base_value): New prototype.
2171         * alias.c (vt_equate_reg_base_value): New function.
2172         * var-tracking.c (vt_init_cfa_base): Use it.
2173
2174 2010-11-15  Jan Hubicka  <jh@suse.cz>
2175             Diego Novillo  <dnovillo@google.com>
2176
2177         PR lto/41528
2178         * doc/lto.texi: Add.
2179         * doc/gccint.texi: Add reference to lto.texi.
2180         * doc/invoke.texi: Update user documentation for LTO.
2181         Move internal flags to lto.texi
2182
2183 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
2184
2185         * c-typeck.c (build_unary_op): Use
2186         objc_build_incr_expr_for_property_ref to build the pre/post
2187         increment/decrement of an Objective-C property ref, and skip the
2188         lvalue_or_else check in that case.
2189
2190 2010-11-15  Martin Jambor  <mjambor@suse.cz>
2191
2192         PR tree-optimization/46349
2193         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
2194         (contains_vce_or_bfcref_p): Likewise.
2195         (sra_modify_assign): Use them.
2196
2197 2010-11-15  Richard Guenther  <rguenther@suse.de>
2198
2199         PR tree-optimization/46467
2200         * tree-ssa-structalias.c (do_structure_copy): Properly treat
2201         variables without subvars.
2202
2203 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
2204
2205         * config/picochip/picochip.c (file header): Picochip name change.
2206         * config/picochip/picochip.md (file header): Likewise.
2207         * config/picochip/predicates.md (file header): Likewise.
2208         * config/picochip/dfa_space.md (file header): Likewise.
2209         * config/picochip/dfa_speed.md (file header): Likewise.
2210         * config/picochip/picochip.h(file header): Likewise.
2211         * config/picochip/constraints.md (file header): Likewise.
2212         * config/picochip/picochip-protos.h (file header): Likewise.
2213         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
2214         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
2215         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
2216         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
2217         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
2218         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
2219         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
2220         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
2221         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
2222         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
2223         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
2224         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
2225         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
2226         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
2227
2228 2010-11-15  Richard Guenther  <rguenther@suse.de>
2229
2230         PR bootstrap/46474
2231         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
2232
2233 2010-11-15  Nick Clifton  <nickc@redhat.com>
2234
2235         * config/stormy16/stormy16.c (direct_return): Do not generate a
2236         direct return for interrupt handlers.
2237
2238 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
2239
2240         * Makefile.in (tm.texi): Replace with rule for:
2241         ($(srcdir)/doc/tm.texi).
2242         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
2243         $(srcdir)/doc/tm.texi .
2244         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
2245         tm.texi .
2246
2247         PR target/46427
2248         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
2249
2250         PR bootstrap/45444
2251         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
2252         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
2253
2254         PR target/46432
2255         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
2256
2257 2010-11-15  Richard Guenther  <rguenther@suse.de>
2258
2259         PR lto/44150
2260         * lto-opts.c (lto_write_options): Write -fexceptions even if
2261         not set by the user.
2262
2263 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2264
2265         PR c/46462
2266         * c-decl.c (declspecs_add_type): Make variables with error types
2267         integers.
2268         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
2269         do not start a declaration before an Objective-C foreach.
2270         (c_parser_declaration_or_fndef): Improve recovery after unknown
2271         type name.
2272         (c_parser_for_statement): Hoist entrance of "foreach context"
2273         before ifs, add corresponding reset where it was missing.  Do
2274         not set objc_could_be_foreach_context for C.
2275
2276 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
2277
2278         PR tree-optimization/45722
2279         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
2280         this is a reference to a component.
2281         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
2282         (ipa_note_param_call): Adjust comment.
2283
2284 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
2285
2286         * config/mips/mips.c (machine_function): Remove
2287         initialized_mips16_gp_pseudo_p.
2288         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
2289         detect whether a pseudo has already been created.  Unconditionally
2290         create a new one if not.
2291         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
2292         expanding to rtl.  Create a new pseudo otherwise, if allowed.
2293
2294 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
2295
2296         PR target/43440
2297         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
2298         * tm.texi: Regenerated.
2299         * output.h (decode_reg_name_and_count): Declare.
2300         * varasm.c (decode_reg_name_and_count): New function.
2301         (decode_reg_name): Reimplement using decode_reg_name_and_count.
2302         * reginfo.c (fix_register): Use decode_reg_name_and_count and
2303         iterate over all regs used.
2304         * stmt.c (expand_asm_operands): Likewise.
2305         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
2306         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
2307         multiple machine registers.
2308
2309 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
2310
2311         * stor-layout.c (place_union_field): Do not put location information
2312         on offset expressions.
2313         (place_field): Likewise.
2314         (finalize_record_size): Likewise on size expressions.
2315         (finalize_type_size): Likewise.
2316         (layout_type): Likewise.
2317
2318 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
2319
2320         PR debug/42889
2321         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
2322         * df-core.c (df_set_bb_dirty_nonrl): Remove.
2323         * df.h (df_set_bb_dirty_nonlr): Likewise.
2324
2325 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
2326
2327         * config/mips/mips.md (call_internal): Pass curr_insn to
2328         mips_split_call.
2329         (call_internal_direct): Ditto.
2330         (call_value_internal): Ditto.
2331         (call_value_internal_direct): Ditto.
2332         (call_value_multiple_internal): Ditto.
2333         * config/mips/mips.c (mips_split_call): Do not copy
2334         CALL_INSN_FUNCTION_USAGE here.
2335
2336 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
2337
2338         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
2339         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
2340         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
2341         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
2342         (TUNE_LOONGSON_3A): Define.
2343         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
2344         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
2345         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
2346         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
2347         (mips_rtx_cost_data): Add Loongson-3A.
2348
2349 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
2350
2351         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
2352         switches.
2353
2354 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
2355
2356         * dwarf2out.c (macinfo_entry): New struct.
2357         (output_comp_unit): Emit the section start label here and flag that we
2358         will emit an info section.
2359         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
2360         emitting directly.
2361         (dwarf2out_end_source_file): Likewise.
2362         (dwarf2out_define): Likewise.
2363         (dwarf2out_undef): Likewise.
2364         (output_macinfo): New.
2365         (dwarf2out_init): Do not emit debug section switches here, allocate a
2366         vec for macinfo, when required.
2367         (dwarf2out_finish): First switch to debug_abbrev_section here.
2368         debug_line_section,  debug_macinfo_section, Likewise.
2369         Check that the pubtypes table has at least one unpruned entry before
2370         trying to emit it.
2371
2372 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2373
2374         PR c/20385
2375         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
2376         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
2377         token lookahead.
2378         (c_parser_compound_statement_nostart, c_parser_label,
2379         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
2380         (c_parser_declaration_or_fndef): Detect the case now matched by
2381         c_parser_next_tokens_start_declaration, give error and correct it.
2382
2383 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2384
2385         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
2386         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
2387         with typespec_kind.
2388         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
2389         (shadow_tag_warned, check_compound_literal_type): Adjust
2390         uses of tag_defined_p.
2391         (declspecs_add_type): Set typespec_kind.
2392         * c-parser.c (c_parser_declaration_or_fndef,
2393         c_parser_declspecs, c_parser_struct_declaration,
2394         c_parser_parameter_declaration, c_parser_type_name,
2395         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
2396         of type_seen_p.
2397         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
2398         tag_defined_p, pass ctsk_firstref through.
2399
2400 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2401
2402         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
2403         (struct format_wanted_type): Replace field "name" with "kind", add
2404         "format_start" and "format_length".
2405         (check_format_info_main): Fill in new fields.  Fill in
2406         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
2407         after the final NUL outside the while loop.  Do not include
2408         width and precision modifiers in the format_start/format_length
2409         of the main format.
2410         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
2411         arguments.  Compute WANTED_TYPE first so that format_type_warning
2412         can be called for missing arguments.  Adjust calls to
2413         format_type_warning.
2414         (format_type_warning): Fetch as much information as possible
2415         from format_wanted_type.  Adjust printing now that every
2416         warning has a "descr", as well as for missing argument warnings
2417         and to include % sign for format specifiers.
2418
2419 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
2420
2421         PR rtl-optimization/46204
2422         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
2423         Update all callers.  Do not recompute topological order.  Adjust
2424         fallthrough edges following a degenerate conditional jump.
2425
2426 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
2427
2428         * opts-common.c (control_warning_option): New.
2429         * opts.c (set_default_handlers): New.
2430         (decode_options): Use set_default_handlers and
2431         control_warning_option.
2432         (common_handle_option): Update call to enable_warning_as_error.
2433         (enable_warning_as_error): Take gcc_options parameters.  Use
2434         control_warning_option.
2435         * opts.h (set_default_handlers, control_warning_option): Declare.
2436
2437 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
2438
2439         * Makefile.in (OPTS_H): Define.
2440         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
2441         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
2442         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
2443         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
2444         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
2445         * gcc.c (driver_handle_option): Take location_t parameter.
2446         (process_command, do_self_spec): Update calls to
2447         read_cmdline_option.
2448         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
2449         * langhooks.c (lhd_handle_option): Take location_t parameter.
2450         * langhooks.h (handle_option): Take location_t parameter.
2451         * lto-opts.c (lto_reissue_options): Update call to set_option.
2452         * opts-common.c (handle_option): Make static.  Take location_t
2453         parameter and pass it to other functions.
2454         (handle_generated_option): Take location_t parameter and pass it
2455         to other functions.
2456         (read_cmdline_option): Take location_t parameter and pass it to
2457         other functions.  Use warning_at and error_at.
2458         (set_option): Take location_t parameter and pass it to other
2459         functions.
2460         * opts.c (common_handle_option): Take location_t parameter and
2461         pass it to other functions.
2462         (enable_warning_as_error): Make static.  Take location_t parameter
2463         and pass it to other functions.
2464         (lang_handle_option): Take location_t parameter and pass it to
2465         other functions.
2466         (target_handle_option): Take location_t parameter.
2467         (read_cmdline_options, maybe_default_option,
2468         maybe_default_options, default_options_optimization,
2469         decode_options): Take location_t parameter and pass it to other
2470         functions.
2471         * opts.h: Include input.h.
2472         (struct cl_option_handler_func, decode_options, set_option,
2473         handle_generated_option, read_cmdline_option): Take location_t
2474         parameters.
2475         (handle_option, enable_warning_as_error): Remove.
2476         * toplev.c (toplev_main): Update call to decode_options.
2477
2478 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
2479
2480         * graphite-cloog-util.c (oppose_constraint,
2481         cloog_matrix_to_ppl_constraint,
2482         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
2483         CLooG isl uses unsigned integers.  This triggered a warning.
2484
2485 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
2486
2487         PR target/46438
2488         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
2489         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
2490         (xtensa_function_arg_1): De-constify cum.
2491         (xtensa_expand_prologue): Use add_reg_note.
2492
2493         PR target/46435
2494         * config/cris/cris.c (saved_regs_mentioned): Delete.
2495         (cris_reload_address_legitimized): Cast itype to enum reload_type.
2496         Remove unused variable op0p.
2497         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
2498         (cris_emit_movem_store): Use add_reg_note.
2499
2500         PR bootstrap/46456
2501         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
2502
2503 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
2504
2505         * function.c (expand_function_end): Set the locator of the prologue on
2506         the stack checking insns.
2507
2508 2010-11-12  Richard Henderson  <rth@redhat.com>
2509
2510         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
2511         * config/xtensa/xtensa.opt (mfused-madd): Remove.
2512         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
2513         MASK_FUSED_MADD.
2514         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
2515         (fnmasf4): Rename from mulsubsf3; use fma.
2516
2517 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
2518             Richard Henderson  <rth@redhat.com>
2519
2520         PR target/46428
2521         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
2522         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
2523         comparison.
2524
2525 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
2526
2527         * opts-common.c (decode_cmdline_option): Initialize separate_args.
2528
2529 2010-11-12  Jan Hubicka  <jh@suse.cz>
2530
2531         * doc/invoke.texi (early-inlining-insns): Update default.
2532         * params.def (early-inlining-insns): Default to 10.
2533
2534 2010-11-12  Olivier Hainque  <hainque@adacore.com>
2535
2536         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
2537
2538 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2539
2540         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
2541         (SUPPORTS_INIT_PRIORITY): Define.
2542
2543 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
2544
2545         PR target/46430
2546         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
2547         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
2548         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
2549         (avr_device_to_devicelib): Likewise.
2550         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
2551         into block.
2552         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
2553         (zero_extendhidi2, zero_extendsidi2): Likewise.
2554         * config/avr/avr.c (avr_num_arg_regs): Constify type.
2555         (avr_return_addr_rtx): De-constify tem.
2556         (avr_rotate_bytes): Move declarations to start of block.
2557         Don't use variable length array.  Put nested if/else into block.
2558
2559         PR rtl-optimization/46433
2560         * var-tracking.c: Include tm_p.h .
2561
2562         PR bootstrap/44756
2563         PR build/44767
2564         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
2565         should be unsigned.
2566         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
2567         * doc/tm.texi: Regenerate.
2568
2569         PR target/46412
2570         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
2571         * config/bfin/bfin.c: Include sel-sched.h .
2572         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
2573         (expand_interrupt_handler_prologue): Remove unused variable insn.
2574         (bfin_load_pic_reg): Likewise.
2575         (bfin_rtx_costs): Make code / outer_code variables of type
2576         enum rtx_code, copied from re-named parameters.
2577         (bfin_local_alignment): Change align argument and return type
2578         to unsigned.
2579         (bfin_adjust_cost): Remove unused variable insn_type.
2580         Declare variables at start of block.
2581         (struct loop_info): Rename to...
2582         (struct loop_info_d).
2583         (workaround_rts_anomaly): Change type of icode to int.
2584         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
2585         with int-typed variable.
2586         (note_np_check_stores): Likewise.
2587         (trapping_loads_p): Remove unused variable pat.
2588         (bfin_expand_binop_builtin): Use expand_normal.
2589         (bfin_expand_unop_builtin): Likewise.
2590         (bfin_expand_builtin): Likewise.  Set tmode before use.
2591
2592         PR middle-end/44769
2593         * final.c (split_double): Don't use BITS_PER_WORD directly in
2594         shift count.
2595
2596         PR target/46431
2597         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
2598         assignment.
2599
2600         PR target/46450
2601         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
2602         Use add_reg_note.
2603         (xstormy16_function_arg): Dereference cum.
2604         (xstormy16_expand_builtin): Use expand_normal.
2605         Change type of omode to enum machine_mode.
2606         (combine_bnp): Rename and to and_insn.
2607
2608         PR target/46437
2609         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
2610         localreg.
2611
2612 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
2613
2614         PR debug/46375
2615         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
2616
2617 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
2618
2619         PR lto/46376
2620         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
2621
2622 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
2623
2624         PR c/44782
2625         * common.opt (fmax-errors=): New option.
2626         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
2627         * diagnostic.h (struct diagnostic_context): Add max_errors field.
2628         * diagnostic.c (diagnostic_initialize): Initialize it.
2629         (diagnostic_action_after_output): Exit if more than max_errors
2630         have been output.
2631         * doc/invoke.texi (Warning Options): Add -fmax-errors.
2632         (-fmax-errors): Document.
2633
2634 2010-11-11  Richard Henderson  <rth@redhat.com>
2635
2636         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
2637
2638 2010-11-11  Richard Henderson  <rth@redhat.com>
2639
2640         * config/fused-madd.opt: New file.
2641         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
2642         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
2643         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
2644         * config/i386/i386.opt (mfused-madd): Remove.
2645         * config/i386/sse.md (split_fma): Remove.
2646         (split_fms, split_fnma, split_fnms): Remove.
2647
2648 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
2649
2650         PR target/46088
2651         * config/i386/i386.md (*ashl<mode>3_cconly,
2652         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
2653         change nonimmediate_operand predicate to register_operand.
2654
2655 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
2656
2657         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
2658
2659 2010-11-11  Jan Hubicka  <jh@suse.cz>
2660
2661         * opts.c (finish_options): Do not error on -flto-partition alone.
2662
2663         * doc/invoke.texi (-fwhopr): Merge into -flto section.
2664         (-flto-partition): Document none.
2665         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
2666         * lto-wrapper.c: Update comment.
2667         (run_gcc): Update LTO option parsing.
2668         * opts.c (finish_options): add support -flto-partition=none
2669         (common_handle_option): Remove fwhopr.
2670         * common.opt: Turn fwhopr into flto.
2671         * collect2.c (main): Update option handling.
2672         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
2673         * ipa-split.c (execute_split_functions): Remove flag_whopr.
2674         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
2675         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
2676         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
2677
2678 2010-11-11  Jan Hubicka  <jh@suse.cz>
2679
2680         PR tree-optimize/40436
2681         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
2682         (eliminated_by_inlining_prob): ... this one; return 50% probability
2683         for SRA.
2684         (estimate_function_body_sizes): Update use of
2685         eliminated_by_inlining_prob; estimate static function size
2686         for 2 instructions.
2687
2688 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
2689
2690         PR target/44749
2691         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
2692         declare.  Change type of argument four to type int.
2693         (mep_secondary_input_reload_class): Returns enum reg_class.
2694         (mep_secondary_output_reload_class): Likewise.
2695         (mep_function_value): Change types of arguments to cont_tree.
2696         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
2697         argument four to type int.
2698         (mep_secondary_input_reload_class): Returns enum reg_class.
2699         (mep_secondary_output_reload_class): Likewise.
2700         (mep_function_value): Change types of arguments to cont_tree.
2701         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
2702         mep_regno_reg_class to enum reg_class.
2703
2704 2010-11-11  Richard Henderson  <rth@redhat.com>
2705
2706         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
2707         that the target has the exact fma operation that we matched.
2708
2709 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
2710
2711         * reginfo.c (fix_register): Avoid inserting English word in
2712         diagnostic sentence.  Use %qs for quoting and %'.
2713
2714 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
2715
2716         * config/i386/driver-i386.c (host_detect_local_cpu): Support
2717         Intel processor family 6, model 0x2c.
2718
2719 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
2720
2721         * opts.c (warning_as_error_callback,
2722         register_warning_as_error_callback): Remove.
2723         (enable_warning_as_error): Don't use warning_as_error_callback.
2724         * opts.h (register_warning_as_error_callback): Remove.
2725
2726 2010-11-11  Richard Henderson  <rth@redhat.com>
2727
2728         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
2729         in between the MULT and the PLUS/MINUS.
2730
2731 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
2732
2733         PR middle-end/46388
2734         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
2735         BLKmode mode for it.
2736         (expand_expr_real_1): Similarly for op0.
2737
2738 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2739
2740         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
2741         Document optional target selector.
2742
2743 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
2744
2745         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
2746         assembling high and low parts of size if not using 32-bit HWINT; else
2747         use DECL_SIZE_UNITS, not DECL_SIZE.
2748
2749 2010-11-11  Martin Jambor  <mjambor@suse.cz>
2750
2751         PR tree-optimization/46383
2752         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
2753         offsets.
2754         (compute_complex_ancestor_jump_func): Likewise.
2755         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
2756
2757 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
2758
2759         PR debug/46150
2760         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
2761         true if expr1->hash != expr2->hash.
2762
2763 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
2764
2765         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
2766         diagnostics with lowercase letters.
2767         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
2768         lowercase letters.
2769         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
2770         diagnostic.
2771         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2772         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
2773         lowercase letters.
2774         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2775         Remove trailing ' ' from diagnostic.
2776         * config/avr/avr.c (print_operand_address): Start diagnostic with
2777         a lowercase letter and remove trailing '.'.
2778         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
2779         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
2780         with lowercase letters.  Use %' in diagnostics.  Remove trailing
2781         '.' from diagnostics.
2782         (bfin_handle_longcall_attribute): Use %' in diagnostic.
2783         * config/cris/cris.c (cris_split_movdx,
2784         cris_expand_pic_call_address): Start diagnostics with lowercase
2785         letters.
2786         (cris_asm_output_label_ref): Use %' in diagnostic.
2787         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
2788         letter.
2789         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
2790         lowercase letter.
2791         * config/darwin-c.c (version_as_macro): Start diagnostic with a
2792         lowercase letter.
2793         * config/darwin-driver.c (darwin_default_min_version): Use %' in
2794         diagnostic.
2795         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
2796         diagnostic.
2797         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2798         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
2799         diagnostics.
2800         * config/i386/i386.c (ix86_option_override_internal): Write
2801         diagnostic as a single sentence without trailing '.'.  Use %' in
2802         diagnostics.
2803         (ix86_function_sseregparm, classify_argument): Start diagnostics
2804         with lowercase letters.
2805         (ix86_expand_prologue): Use %' in diagnostic.
2806         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
2807         diagnostic.
2808         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
2809         lowercase letter.
2810         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
2811         diagnostic.
2812         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2813         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
2814         '`' in help text.
2815         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
2816         lowercase letter.
2817         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
2818         lowercase letters.
2819         * config/microblaze/microblaze.c (microblaze_handle_option):
2820         Remove trailing '.' from diagnostic.
2821         (print_operand): Start diagnostic with a lowercase letter.
2822         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
2823         lowercase letters.  Avoid '`' in diagnostics.
2824         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
2825         lowercase letters.  Avoid '`' in diagnostics.
2826         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
2827         lowercase letters.  Avoid '`' in diagnostics.
2828         * config/picochip/picochip.c (picochip_option_override,
2829         picochip_emit_save_register, picochip_function_arg,
2830         picochip_output_label, picochip_output_internal_label,
2831         picochip_asm_output_opcode, picochip_output_cbranch,
2832         picochip_output_compare, picochip_output_branch,
2833         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
2834         diagnostics. Start diagnostics with lowercase letters.  Use %' in
2835         diagnostics.
2836         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
2837         "SPE" capitalization.  Start diagnostic with a lowercase letter.
2838         (rs6000_handle_option): Start diagnostics with lowercase letters.
2839         (def_builtin): Remove trailing '.' from diagnostic.
2840         (rs6000_savres_routine_name): Start diagnostic with a lowercase
2841         letter.
2842         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
2843         diagnostic.
2844         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
2845         lowercase letter.
2846         * config/s390/s390.c (s390_option_override) Start diagnostics with
2847         lowercase letters.  Use %' in diagnostic.
2848         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
2849         lowercase letters.
2850         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
2851         diagnostic.
2852         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
2853         diagnostic.
2854         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
2855         diagnostic.
2856         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2857         * config/spu/spu.c (spu_option_override): Start diagnostics with
2858         lowercase letters.  Use %qs for quoting in diagnostics.
2859         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
2860         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
2861         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
2862         from diagnostic.
2863         * convert.c (convert_to_integer, convert_to_vector): Use %' in
2864         diagnostics.
2865         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
2866         letter and use "cannot" spelling.
2867         * expmed.c (extract_fixed_bit_field): Start diagnostic with
2868         lowercase letter and format as a single sentence without '.'.
2869         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
2870         Use %' in diagnostics.
2871         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
2872         Use %' in diagnostics.
2873         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
2874         Use %' in diagnostics.
2875         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
2876         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
2877         with lowercase letters and remove tailing '.' and '\n'.
2878         * lto-cgraph.c (input_profile_summary): Start diagnostic with
2879         lowercase letter and remove trailing '.'.
2880         (input_cgraph): Start diagnostics with lowercase letters and
2881         remove trailing '\n'.
2882         * opts.c (finish_options, common_handle_option): Start diagnostics
2883         with lowercase letters and remove trailing '.'.  Fix typo in
2884         diagnostic.
2885         * passes.c (position_pass): Start diagnostic with lowercase letter.
2886         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
2887         register_callback, try_init_one_plugin): Start diagnostics with
2888         lowercase letters.
2889         * reload1.c (spill_failure): Use %' in diagnostic.
2890         (gen_reload): Start diagnostic with a lowercase letter.
2891         * stor-layout.c (place_field): Start diagnostic with a lowercase
2892         letter.
2893         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
2894         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
2895         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
2896         Start diagnostics with lowercase letters, remove trailing '.' and
2897         use %' in diagnostics.
2898         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
2899         (verify_ssa): Don't split diagnostic across two error calls.
2900         Spell out "number" and use %' in diagnostic.
2901         * value-prof.c (visit_hist, check_counter): Start diagnostics with
2902         lowercase letters.
2903
2904 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
2905
2906         PR middle-end/46419
2907         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
2908         (_mm_cvtpu16_ps): Ditto.
2909
2910 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
2911
2912         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
2913         warn_larger_than, larger_than_size, warn_frame_larger_than,
2914         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
2915         default_visibility, flag_tls_default): New Variable declarations.
2916         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
2917         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
2918         (v): Declare as Common and document here.
2919         * flags.h (default_visibility, flag_generate_lto,
2920         warn_larger_than, larger_than_size, warn_frame_larger_than,
2921         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
2922         flag_shlib, flag_excess_precision_cmdline): Remove.
2923         (set_Wstrict_aliasing): Update prototype.
2924         * gcc.c (verbose_flag): Remove.
2925         (driver_handle_option): Add diagnostic_context parameter.  Don't
2926         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
2927         incrementing it.
2928         * opts-common.c (handle_option): Pass dc to handler.
2929         * opts.c (warn_larger_than, larger_than_size,
2930         warn_frame_larger_than, frame_larger_than_size,
2931         default_visibility): Remove.
2932         (common_handle_option): Add diagnostic_context parameter.
2933         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
2934         gcc_options parameters.
2935         (lang_handle_option, target_handle_option, read_cmdline_options,
2936         decode_options): Add diagnostic_context parameters.
2937         (finish_options): Access option state through opts pointer where
2938         possible.
2939         (common_handle_option): Access option state through opts pointer
2940         where possible.  Do not set local static variable verbose.  Do not
2941         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
2942         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
2943         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
2944         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
2945         OPT_fwhopr_.  Do not explicitly set .opt file variables for
2946         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
2947         (set_Wstrict_aliasing): Add gcc_options parameter.
2948         * opts.h (struct cl_option_handler_func): Add diagnostic_context
2949         parameter to handler.
2950         (decode_options): Add diagnostic_context parameter.
2951         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
2952         asm_file_name, flag_generate_lto, flag_gen_aux_info,
2953         aux_info_file_name, flag_shlib, flag_tls_default,
2954         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
2955         (toplev_main): Pass global_dc to decode_options.
2956         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
2957         aux_info_file_name, asm_file_name): Remove.
2958         * tree.h (flag_tls_default): Remove.
2959
2960 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
2961
2962         PR target/45986
2963         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
2964         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
2965
2966 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
2967
2968         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
2969         (x86_64-*-*): Likewise.
2970         * config/i386/cpuid.h: Define TBM bit.
2971         * config/i386/driver-i386.c (host_detect_local_cpu): Define
2972         and set has_tbm.
2973         * config/i386/i386-c.c (ix86_target_macros_internal): Check
2974         isa_flag for TBM.
2975         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
2976         (OPTION_MASK_ISA_TBM_UNSET): New.
2977         (ix86_handle_option): Handle -mtbm.
2978         (isa_opts): Add -mtbm.
2979         (enum pta_flags): Add PTA_TBM.
2980         (ix86_option_override_internal): Add TBM support.
2981         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
2982         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
2983         (IX86_BUILTIN_BEXTRI64): Likewise.
2984         (bdesc_args): Add TBM intrinsics.
2985         (ix86_expand_builtin): Add TBM specific case.
2986         * config/i386/i386.h (TARGET_TBM): New for TBM.
2987         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
2988         (tbm_bextri_<mode>): Likewise.
2989         (*tbm_blcfill_<mode>): Likewise.
2990         (*tbm_blci_<mode>): Likewise.
2991         (*tbm_blcic_<mode>): Likewise.
2992         (*tbm_blcmsk_<mode>): Likewise.
2993         (*tbm_blcs_<mode>): Likewise.
2994         (*tbm_blsfill_<mode>): Likewise.
2995         (*tbm_blsic_<mode>): Likewise.
2996         (*tbm_t1mskc_<mode>): Likewise.
2997         (*tbm_tzmsk_<mode>): Likewise.
2998         * config/i386/i386.opt: Add -mtbm.
2999         * config/i386/tbmintrin.h (__bextri_u32): New.
3000         (__blcfill_u32): Likewise.
3001         (__blci_u32): Likewise.
3002         (__blcic_u32): Likewise.
3003         (__blcmsk_u32): Likewise.
3004         (__blcs_u32): Likewise.
3005         (__blsfill_u32): Likewise.
3006         (__blsic_u32): Likewise.
3007         (__t1mskc_u32): Likewise.
3008         (__tzmsk_u32): Likewise.
3009         (__bextri_u64): Likewise.
3010         (__blcfill_u64): Likewise.
3011         (__blci_u64): Likewise.
3012         (__blcic_u64): Likewise.
3013         (__blcmsk_u64): Likewise.
3014         (__blcs_u64): Likewise.
3015         (__blsfill_u64): Likewise.
3016         (__blsic_u64): Likewise.
3017         (__t1mskc_u64): Likewise.
3018         (__tzmsk_u64): Likewise.
3019         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
3020         * doc/invoke.texi: Document -mtbm.
3021         * doc/extend.texi: Document TBM built-in functions.
3022
3023 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
3024
3025         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
3026         (x86_64-*-*): Likewise.
3027         * config/i386/cpuid.h: Define BMI bit.
3028         * config/i386/driver-i386.c (host_detect_local_cpu): Define
3029         and set has_bmi.
3030         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3031         isa_flag for BMI.
3032         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
3033         (OPTION_MASK_ISA_BMI_UNSET): New.
3034         (ix86_handle_option): Handle -mbmi.
3035         (isa_opts): Add -mbmi.
3036         (enum pta_flags): Add PTA_BMI.
3037         (ix86_option_override_internal): Add BMI support.
3038         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
3039         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
3040         (IX86_BUILTIN_BEXTR64): Likewise.
3041         (IX86_BUILTIN_CTZS): Likewise.
3042         (bdesc_args): Add BMI intrinsics.
3043         (ix86_expand_args_builtin): Add BMI specific cases.
3044         * config/i386/i386.h (TARGET_BMI): New for BMI.
3045         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
3046         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
3047         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
3048         (UNSPEC_TZCNT): Likewise.
3049         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
3050         (bmi_andn_<mode>): New for BMI.
3051         (bmi_bextr_<mode>): Likewise.
3052         (bmi_blsi_<mode>): Likewise.
3053         (bmi_blsmsk_<mode>): Likewise.
3054         (bmi_blsr_<mode>): Likewise.
3055         * config/i386/i386.opt: Add -mbmi.
3056         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
3057         * config/i386/bmiintrin.h (__lzcnt_u16): New.
3058         (__tzcnt_u16): Likewise.
3059         (__andn_u32): Likewise.
3060         (__bextr_u32): Likewise.
3061         (__blsi_u32): Likewise.
3062         (__blsmsk_u32): Likewise.
3063         (__blsr_u32): Likewise.
3064         (__lzcnt_u32): Likewise.
3065         (__tzcnt_u32): Likewise.
3066         (__andn_u64): Likewise.
3067         (__bextr_u64): Likewise.
3068         (__blsi_u64): Likewise.
3069         (__blsmsk_u64): Likewise.
3070         (__blsr_u64): Likewise.
3071         (__lzcnt_u64): Likewise.
3072         (__tzcnt_u64): Likewise.
3073         * doc/invoke.texi: Document -mbmi and -mno-bmi.
3074         * doc/extend.texi: Document BMI built-in functions.
3075
3076 2010-11-10  Jan Hubicka  <jh@suse.cz>
3077
3078         PR tree-optimize/46228
3079         * doc/invoke.texi (comdat-sharing-probability): Document.
3080         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
3081         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
3082
3083 2010-11-10  Jan Hubicka  <jh@suse.cz>
3084
3085         PR tree-optimize/46228
3086         * cgraph.c (cgraph_propagate_frequency): Fix typo.
3087
3088 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
3089
3090         PR tree-optimization/46414
3091         * tree-inline.c (estimate_move_cost): Check preferred vector
3092         mode for vector type.
3093
3094 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3095
3096         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
3097
3098 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
3099
3100         PR tree-optimization/45971
3101         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
3102         for phi nodes analyzable by scev.
3103
3104 2010-11-10  Richard Guenther  <rguenther@suse.de>
3105
3106         PR tree-optimization/44964
3107         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
3108
3109 2010-11-10  Martin Jambor  <mjambor@suse.cz>
3110
3111         PR tree-optimization/46351
3112         PR tree-optimization/46377
3113         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
3114         aggregate bit-fields.
3115
3116 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3117
3118         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3119         * doc/tm.texi: Regenerate.
3120         * opts-common.c (tm.h): Don't include.
3121         (target_option_translations): Remove.
3122         (decode_cmdline_options_to_array): Don't handle translating options.
3123         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
3124         * config/darwin-driver.c: Don't condition includes on
3125         CROSS_DIRECTORY_STRUCTURE.
3126         (darwin_default_min_version): Make static.
3127         (darwin_driver_init): New.  Call darwin_default_min_version if not
3128         CROSS_DIRECTORY_STRUCTURE.
3129         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3130         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
3131         (ASM_SPEC): Add %{static}.
3132         (darwin_default_min_version): Don't declare.
3133         (darwin_driver_init): Declare.
3134         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
3135         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
3136         * config/darwin.opt (all_load, allowable_client,
3137         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
3138         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
3139         exported_symbols_list, filelist, findirect-virtual-calls,
3140         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
3141         framework, fterminated-vtables, gfull, gused, image_base, init,
3142         install_name, multi_module, multiply_defined,
3143         multiply_defined_unused, no_dead_strip_inits_and_terms,
3144         seg_addr_table, seg_addr_table_filename, segaddr,
3145         segs_read_only_addr, segs_read_write_addr, single_module,
3146         umbrella, unexported_symbols_list, weak_reference_mismatches,
3147         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
3148         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
3149         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
3150         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
3151         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
3152         (ASM_SPEC): Add %{static}.
3153         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
3154         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3155         (DRIVER_SELF_SPECS): Handle options formerly in
3156         TARGET_OPTION_TRANSLATE_TABLE.
3157         * config/mep/mep.opt (mfar): New.
3158         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3159         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
3160         TARGET_OPTION_TRANSLATE_TABLE.
3161         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
3162         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
3163         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
3164         ffix-and-continue, findirect-data): New.
3165         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3166         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
3167         (mnofpu): Define mask and use Report here.
3168
3169 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3170
3171         * config/s390/s390.c (s390_emit_prologue): Report the stack
3172         size if -fstack-usage is used.
3173
3174 2010-11-10  Richard Guenther  <rguenther@suse.de>
3175
3176         PR tree-optimization/46398
3177         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
3178
3179 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
3180
3181         PR target/44760
3182         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
3183         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
3184         GP_REG_OR_PSEUDO_STRICT_P.
3185         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
3186         unexpected alternative.
3187         (*movsf_internal): Likewise.
3188         (indirect_jump): Replace call to non-existant function with call to
3189         internal_error.
3190         (tablejump): Likewise.
3191         * config/iq2000/iq2000.c: Include df.h .
3192         (iq2000_function_arg_advance): Use CONST_CAST2.
3193         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
3194         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
3195         a non-zero function address.
3196         (iq2000_initial_elimination_offset): Add gcc_unreachable for
3197         unexpected value of FROM.
3198         (symbolic_expression_p): Delete.
3199         (iq2000_function_value): Constify func.
3200         (expand_one_builtin): Use expand_normal.
3201         (iq2000_print_operand): Don't print VALUE if calculating it failed.
3202
3203         PR rtl-optimization/44764
3204         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
3205
3206         PR target/46407
3207         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
3208         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
3209         with ATTRIBUTE_UNUSED.
3210         (valid_psw_flag): Constify parameter which.
3211         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
3212
3213         PR target/46415
3214         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
3215         (mmix_dbx_register_number): Likewise.
3216         * config/mmix/mmix.c: Include df.h .
3217         (mmix_local_alignment): Change argument basic_align and return type
3218         to unsigned.
3219         (mmix_dbx_register_number): Change argument and return type to
3220         unsigned.
3221         (mmix_expand_prologue): Use add_reg_note.
3222
3223         PR target/46417
3224         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
3225         (spu_split_store): Use aform.
3226         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
3227
3228 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3229
3230         PR/46268
3231         * doc/gty.texi (GTY Options): Clarify that variable_size produces
3232         allocators taking size in bytes, compare with length option.  Add
3233         size calculation example.
3234         (Invoking the garbage collector): Ensure that sentences are
3235         followed by two spaces.  Describe that pointer fields must be
3236         initialized at ggc_collect call.
3237         (Troubleshooting): New section.
3238
3239 2010-11-09  Jan Hubicka  <jh@suse.cz>
3240
3241         PR tree-optimization/40436
3242         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
3243         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
3244         normal instructions; be sure bultin is not implemented in this file;
3245         compute non-zero return cost.
3246         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
3247         * tree-inline.h (eni_weights_d): Add return cost.
3248
3249 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
3250
3251         * c-parser.c (c_parser_struct_declaration): Handle declaration
3252         specifiers followed by CPP_CLOSE_BRACE.
3253
3254 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3255
3256         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
3257         split occurs before reload, and we allocate memory at the time of
3258         the split, not during expansion.  Add attributes.
3259         (floatsi<mode>2_lfiwax_mem): Ditto.
3260         (floatunssi<mode>2_lfiwzx): Ditto.
3261         (floatunssi<mode>2_lfiwzx_mem): Ditto.
3262         (floatsidf2): Ditto.
3263         (floatunssisf2): Ditto.
3264         (floatunssidf2): Ditto.
3265         (fix_trunc<mode>si2): Ditto.
3266         (fix_trunc<mode>si2_stfiwx): Ditto.
3267         (fix_trunc<mode>si2_internal): Ditto.
3268         (fix_trunc<mode>si2): Ditto.
3269         (fix_trunc<mode>di2): Ditto.
3270         (fixuns_trunc<mode>si2_stfiwx): Ditto.
3271         (floatsisf2): Ditto.
3272         (floatdidf2_mem): Ditto.
3273         (floatunsdidf2_mem): Ditto.
3274         (floatunsdidf2): Ditto.
3275         (floatdisf2_internal1): Ditto.
3276         (floatdisf2_mem): Ditto.
3277         (floatunsdisf2_mem): Ditto.
3278         (floatsi<mode>2_lfiwax_mem2): Delete.
3279         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
3280         (fix_trunc<mode>si2_mem): Ditto.
3281         (fixuns_trunc<mode>si2_mem): Ditto.
3282         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
3283         type operations to reduce copying the values to multiple memory slots.
3284         (roundu32<mode>2_fprs): Ditto.
3285
3286         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
3287         PRE_INC, PRE_DEC, PRE_MODIFY.
3288         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
3289
3290         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
3291         Delete prototype.
3292
3293 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
3294
3295         PR target/43808
3296         * cfgexpand.c (partition_stack_vars): Call
3297         update_alias_info_with_stack_vars unconditionally.
3298         (update_alias_info_with_stack_vars): Allow unused
3299         unreferenced vars when not optimizing.
3300
3301 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
3302
3303         PR tree-optimization/46036
3304         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
3305         add_to_dst_predicate_list.
3306
3307 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
3308
3309         PR debug/46171
3310         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
3311         earlier.
3312         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
3313         argument, call dead_debug_reset when adding REG_UNUSED note.
3314         (dead_debug_reset): New function.
3315         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
3316         df_create_unused_note callers.
3317
3318 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
3319
3320         * config/fr30/fr30.c: Include "df.h".
3321
3322 2010-11-09  Richard Guenther  <rguenther@suse.de>
3323
3324         PR tree-optimization/46355
3325         * tree-loop-distribution.c (tree_loop_distribution): Do not
3326         distribute loops without a single exit.
3327
3328 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3329
3330         PR rtl-optimization/46237
3331         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
3332         saved hard regs if they might get partially clobbered.
3333
3334 2010-11-09  Paul Koning  <ni1d@arrl.net>
3335
3336         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
3337
3338 2010-11-09  Richard Guenther  <rguenther@suse.de>
3339
3340         PR tree-optimization/46177
3341         * tree-loop-distribution.c (prop_phis): Remove.
3342         (generate_builtin): Re-use the old loop exit edge to avoid
3343         needing to update PHI nodes.
3344
3345 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
3346
3347         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
3348         type of args_size to unsigned HOST_WIDE_INT.
3349
3350         PR target/44755
3351         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
3352         * config/t-pnt16-warn: New file.
3353         * config/picochip/picochip.c (picochip_emit_stack_allocate):
3354         Use add_reg_note.
3355         (picochip_emit_save_register): Likewise.
3356         (picochip_emit_restore_register): Remove variable insn.
3357         (picochip_legitimize_address): Don't use C++ style comments.
3358         (picochip_legitimize_reload_address): Likewise.
3359         (reorder_var_tracking_notes): Remove variable vliw_start.
3360         (picochip_reorg): Cast first arguemnt to emit_note_after to
3361         enum insn_note.
3362         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
3363         (picochip_expand_builtin_3op): Likewise.
3364         (picochip_expand_builtin_2opvoid): Likewise.
3365         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
3366         (picochip_expand_array_testport): Likewise.
3367         (picochip_init_builtins): Remove unused variables.
3368         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
3369         to unsigned long, and output it as such.
3370         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
3371         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
3372         (schedType): Cast result of picochip_schedule_type to
3373         enum attr_schedType.
3374
3375         PR target/44759
3376         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
3377         conditional to type of S.
3378         (mn10300_function_arg): Remove unused variable align.
3379         (mn10300_arg_partial_bytes): Likewise.
3380         * config/mn10300/mn10300.md (attribute cpu): Cast value to
3381         enum attr_cpu.
3382
3383 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
3384
3385         PR bootstrap/46392
3386         * gengtype-parse.c (type): Call get_input_file_name to get file name.
3387
3388 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3389
3390         * tree.h (contains_placeholder_p): Fix comment.
3391         (type_contains_placeholder_p): Adjust comment.
3392         * tree.c (contains_placeholder_p): Fix comment.
3393         (type_contains_placeholder_1): Do not recurse on pointed-to types and
3394         adjust comment.
3395         (type_contains_placeholder_p): Add comment.
3396
3397 2010-11-09  Paul Koning  <ni1d@arrl.net>
3398
3399         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
3400         output of byte values.
3401
3402 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
3403
3404         PR middle-end/46360
3405         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
3406         not in SSA mode.
3407
3408 2010-11-09  Richard Guenther  <rguenther@suse.de>
3409
3410         PR middle-end/46221
3411         * varasm.c (compute_visible_aliases): New function.
3412         (remove_unreachable_alias_pairs): Aliases make a target available
3413         even though we reclaimed the cgraph node.
3414         (finish_aliases_1): Likewise.
3415         * Makefile.in (varasm.o): Add pointer-set.h dependency.
3416
3417 2010-11-09  Nick Clifton  <nickc@redhat.com>
3418
3419         * config/mn10300/mn10300-modes.def: New file.
3420
3421 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
3422             Jeremie Salvucci  <jeremie.salvucci@free.fr>
3423
3424         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
3425         (plugin_files, get_file_basename, get_file_realbasename)
3426         (get_file_langdir, error_at_line, gt_files, this_file)
3427         (system_h_file, read_input_list, create_field_all)
3428         (get_file_srcdir_relative_path, get_file_basename)
3429         (get_file_langdir, get_file_gtfilename)
3430         (get_output_file_with_visibility, get_output_file_name)
3431         (struct flist, put_mangled_filename, walk_type)
3432         (put_mangled_filename, finish_root_table, write_roots): Use
3433         input_file-s.
3434         (lang_dir_names, num_lang_dirs): Remove static.
3435         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
3436         (main): Use input_file-s.
3437
3438         * gengtype.h: (struct input_file_st, input_file): New type.
3439         (struct fileloc): Use it.
3440         (gt_files, num_gt_files, this_file, system_h_file)
3441         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
3442         (get_input_file_name): New function.
3443         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
3444         use input_file.
3445         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
3446         (get_output_file_name): Ditto.
3447
3448         * gengtype-lex.l (yybegin): Use input_file.
3449
3450         * gengtype-parse.c (parse_error): Use input_file.
3451
3452 2010-11-08  Xinliang David Li  <davidxl@google.com>
3453
3454         PR tree-optimization/46316
3455         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
3456         * double-int.h (double_int_mul_with_sign): New function.
3457         * double-int.c (double_int_mul_with_sign): New function.
3458
3459 2010-11-08  Paul Koning  <ni1d@arrl.net>
3460
3461         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
3462
3463 2010-11-08  Paul Koning  <ni1d@arrl.net>
3464
3465         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
3466
3467 2010-11-08  Paul Koning  <ni1d@arrl.net>
3468
3469         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
3470         to 8 bits.
3471
3472 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
3473
3474         PR target/46378
3475         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
3476         turn on ISA 2.04 rounding instructions for power5.
3477
3478         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
3479         not ISA 2.02.
3480
3481         PR target/45585
3482         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
3483         in FPR registers.
3484         (movdi_low_st): Ditto.
3485
3486 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
3487             Richard Henderson  <rth@redhat.com>
3488
3489         PR target/44758
3490         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
3491         (attribute acc_group): Cast value to enum attr_acc_group.
3492         (*movdi_nodouble+6): Use gen_int_mode.
3493         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
3494         if RTX_CODE is defined or not.
3495         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
3496         struct frv_io.
3497         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
3498         (frv_frame_access, frv_expand_prologue): Remove unused variables.
3499         (frv_expand_block_clear): Likewise.
3500         (frv_trampoline_init): Use LCT_NORMAL.
3501         (struct frv_packet_group): New struct, broken out of type of
3502         frv_packet.
3503         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
3504         use cast in loop counter increment.
3505         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
3506         assigning to io->type.
3507         (bdesc_set): Use rtx_code UNKNOWN in initializer.
3508         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
3509         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
3510         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
3511         (frv_read_argument): Use expand_normal.
3512
3513         PR target/44757
3514         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
3515         lm32_legitimate_constant_p.
3516         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
3517         * config/lm32/lm32.c (gen_int_relational): Make new block for
3518         LE / LT / LEU / LTU case.  Declare variables at start of block.
3519         (lm32_block_move_inline): Use XALLOCAVEC.
3520
3521 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3522
3523         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
3524
3525 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
3526
3527         * gengtype (get_output_file_for_structure): Ensure type is union
3528         or struct.
3529         (write_splay_tree_allocator_def): Use
3530         get_output_file_with_visibility.
3531
3532 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3533
3534         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
3535         to defined values in case of an error.
3536         (s390_option_override): Skip further processing if the -march
3537         parameter wasn't recognized.
3538
3539 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
3540
3541         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
3542         assert that REG is a hard register number before using it as an index.
3543
3544         PR bootstrap/46358
3545         * config/i386/i386.c (ix86_expand_split_stack_prologue):
3546         Avoid warnings when HOST_WIDE_INT is 32 bit.
3547
3548 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
3549
3550         PR target/46208
3551         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
3552         (sparc_promote_prototypes): Likewise.
3553         (sparc_promote_function_mode): Promote in 32-bit mode as well.
3554         (sparc_return_in_memory): Remove superfluous parentheses.
3555         (sparc_struct_value_rtx): Fix long lines.
3556         (sparc_function_value_1): Promote in 32-bit mode as well.
3557
3558 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
3559
3560         PR rtl-optimization/45352
3561         * sel-sched.c (find_best_expr): Do not set pneed_stall when
3562         the variable_issue hook is not implemented.
3563         (fill_insns): Remove dead variable stall_iterations.
3564         (init_seqno_1): Force EBB start for resetting sched cycles on any
3565         successor blocks of the rescheduled region.
3566         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
3567         (reset_sched_cycles_in_current_ebb): Add debug printing.
3568         New variable issued_insns.  Advance state when we have issued
3569         issue_rate insns.
3570
3571 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
3572
3573         * gengtype (main): Get here's position using POS_HERE macro for
3574         do*typedef calls.
3575
3576 2010-11-07  Ian Lance Taylor  <iant@google.com>
3577
3578         PR target/46089
3579         * config/i386/i386.c (split_stack_fn_large): New static variable.
3580         (ix86_expand_split_stack_prologue): Handle large model.
3581
3582 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
3583
3584         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
3585         all possible addressing modes.
3586
3587 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
3588
3589         PR tree-optimization/46346
3590         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
3591
3592 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
3593
3594         * config/mips/mips.c: Revert previous patch.
3595         * config/mips/mips.md: Likewise.
3596
3597 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
3598
3599         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
3600         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
3601         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
3602         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
3603         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
3604         to use FMA.
3605         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
3606         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
3607         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
3608         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
3609
3610 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
3611
3612         PR c/43384
3613         * c-decl.c (lookup_label): Labels can only be referenced in a
3614         function's scope.
3615         (store_parm_decls_oldstyle): Skip erroneous parameters.
3616
3617 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
3618
3619         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
3620         LIBCALL_VALUE): Remove macros.
3621         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3622         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3623         (fr30_function_value_regno_p, fr30_function_value,
3624         fr30_libcall_value): New functions.
3625
3626 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
3627
3628         PR middle-end/46314
3629         * target.def (generate_internal_label): New asm_out hook.
3630         * output.h (default_generate_internal_label): Declare.
3631         * varasm.c (default_generate_internal_label): Define.
3632
3633 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
3634
3635         PR target/44981
3636         * doc/extend.tex (format): Document NSString extension.
3637         (format_arg): Likewise.
3638         (Darwin Format Checks): New section.
3639         * doc/tm.texi: Document string object hooks (generated).
3640         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
3641         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
3642         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
3643         * target.def (objc_construct_string_object): Rename, amend
3644         documentation.
3645         (string_object_ref_type_p): New hook.
3646         (check_string_object_format_arg): New hook.
3647         * c-parser.c (c_parser_attributes): Allow objective-c class names as
3648         attribute identifiers.
3649         * config/darwin-c.c (darwin_cfstring_ref_p): New.
3650         (darwin_check_cfstring_format_arg): New.
3651         (darwin_additional_format_types): New.
3652         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
3653         (darwin_check_cfstring_format_arg): New.
3654         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
3655         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
3656         (TARGET_N_FORMAT_TYPES): New.
3657         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
3658
3659 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
3660             Pascal Obry  <obry@adacore.com>
3661
3662         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
3663         in 64-bit mode and 17 otherwise.
3664
3665 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3666
3667         PR debug/45939
3668         * var-tracking.c (emit_note_insn_var_location): Make sure that
3669         call related var location notes come before the normal ones.
3670
3671 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
3672
3673         PR target/46326
3674         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
3675         in the last change.
3676
3677 2010-11-05  Ian Lance Taylor  <iant@google.com>
3678
3679         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
3680
3681 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
3682
3683         PR c/44772
3684         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
3685         pointer_set_contains if DECL_NAME is NULL.
3686
3687 2010-11-05  Ian Lance Taylor  <iant@google.com>
3688
3689         PR target/46084
3690         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
3691         request enough additional space for alignment, and force alignment.
3692
3693 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
3694
3695         * config/i386/i386.c (legitimate_pic_address_disp_p):
3696         Handle UNSPEC_PCREL.
3697         (ix86_legitimate_address_p): Likewise.
3698         (legitimize_pic_address): Likewise.
3699         (output_pic_addr_const): Likewise.
3700         (ix86_delegitimize_address): Likewise.
3701         (ix86_find_base_term): Likewise.
3702         (memory_address_length): Likewise.
3703         (x86_output_mi_thunk): Handle special case x64
3704         for non local binding.
3705         * config/i386/i386.md (UNSPEC_PCREL): New.
3706         * config/i386/winnt.c (i386_pe_binds_local_p):
3707         Allow weak symbol for x64 windows with non-local binding.
3708
3709 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
3710
3711         PR target/45670
3712         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
3713         instead of EXPAND_NORMAL for base expansion.
3714
3715 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
3716
3717         * config.gcc: Support --with-fpmath=avx for x86.
3718         * config/i386/avxmath.h: New.
3719         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
3720
3721 2010-11-05  Ian Lance Taylor  <iant@google.com>
3722
3723         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
3724         * gengtype.c (walk_type): Don't recognize descbits option.
3725
3726 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
3727
3728         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
3729         WORD_SWITCH_TAKES_ARG): Remove.
3730         * doc/options.texi (Args): Document.
3731         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
3732         * doc/tm.texi: Regenerate.
3733         * opt-functions.awk (switch_flags): Handle Args.
3734         * opts-common.c: Update comment on tm.h include.
3735         (decode_cmdline_option): Handle options with multiple arguments.
3736         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
3737         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
3738         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
3739         CL_COMMON): Update values.
3740         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
3741         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
3742         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
3743         sectobjectsymbols, sectorder, segcreate, segprot): New.
3744
3745 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
3746             Uros Bizjak  <ubizjak@gmail.com>
3747
3748         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
3749         256bit AVX register is used.
3750         (ix86_expand_vector_move_misalign): Likewise.
3751         (ix86_expand_vector_move): Replace use_avx256_p with
3752         VALID_AVX256_REG_MODE.
3753
3754 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
3755
3756          PR target/44750
3757         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
3758         change.  Set $@-warn.o to -Wno-error.
3759
3760         PR bootstrap/44756
3761         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
3762         comparing it to a signed value.
3763
3764         PR middle-end/44766
3765         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
3766         PR bootstrap/44770
3767         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
3768         to i.
3769
3770         PR target/44754
3771         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
3772         (m32c_function_arg).  Add comma between arguments two and three.
3773         (m32c_promote_prototypes): Remove declaration.
3774         (current_function_special_page_vector): Likewise.
3775         (m32c_regno_reg_class): Change return type to enum reg_class.
3776         (m32c_pushm_popm): Use add_reg_note.
3777         (m32c_push_rounding): Change return type to unsigned int.
3778         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
3779         enum reload_type.
3780         (m32c_insert_attributes): Constify variable name.
3781         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
3782         (m32c_prepare_shift): Remove variable lref.
3783         (m32c_expand_movcc): Remove variable cmp.
3784         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
3785         (m32c_compare_redundant): Remove variable op2.
3786         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
3787         (m32c_pragma_memregs): Assign the number to target_memregs.
3788         (m32c_pragma_address): Remove variable var_str.
3789         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
3790         enum reg_class.
3791         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
3792         * config/m32c/bitops.md (andsi3): Add default case to switch.
3793         (iorsi3, xorsi3): Likewise.
3794         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
3795         * config/m32c/jump.md (call, call_value): Likewise.
3796         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
3797         (m32c_regno_reg_class): Likewise.
3798         (current_function_special_page_vector): Declare.
3799
3800 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
3801
3802         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
3803
3804         PR tree-optimization/46099
3805         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
3806         if it is NULL and uid wasn't found in the hash table.  Just fold the
3807         result if it is NULL otherwise.  Insert other potentially needed
3808         stmts right before current stmt instead of on the entry edge.
3809         (struct elv_data): Add gsi and reset fields.
3810         (eliminate_local_variables_1): Adjust caller.  If take_address_of
3811         failed for debug stmt, set dta->reset and return.
3812         (eliminate_local_variables_stmt): Change STMT argument for GSI,
3813         pass GSI through to the callback, handle resetting of debug stmts.
3814         (eliminate_local_variables): Adjust caller.  Process debug stmts
3815         in second phase.
3816
3817         PR middle-end/43690
3818         * gimplify.c (gimplify_asm_expr): If a "m" input is a
3819         {pre,post}{in,de}crement, fail.
3820
3821         PR debug/46307
3822         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
3823         * tree-pretty-print.c (dump_generic_node): Likewise.
3824         (op_code_prio): Likewise.
3825         * cfgexpand.c (expand_debug_expr): Likewise.
3826
3827 2010-11-04  Paul Koning  <ni1d@arrl.net>
3828
3829         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
3830         constraints.
3831
3832 2010-11-04  Chao-ying Fu  <fu@mips.com>
3833
3834         * configure.ac: Test assembler support for DSP Rev1 mult.
3835         * configure: Regenerate.
3836         * config.in: Regenerate.
3837         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
3838         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
3839         (CODE_FOR_mips_multu): New define.
3840         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
3841         dspr2_32 to dsp_32.
3842         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
3843         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
3844         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
3845         New define_expand patterns.
3846         * config/mips/constraints.md (ka): Update the constraint to test
3847         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
3848         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
3849         mips_multu): Delete.
3850         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
3851         Change target constraint to "ka".
3852         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
3853         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
3854         Emit the accumulator destination when ISA_HAS_DSP_MULT.
3855         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
3856         Emit the accumulator destination when ISA_HAS_DSP_MULT.
3857         (<u>maddsidi4): Likewise.
3858         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
3859         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
3860
3861 2010-11-04  Paul Koning  <ni1d@arrl.net>
3862
3863         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
3864
3865 2010-11-04  Paul Koning  <ni1d@arrl.net>
3866
3867         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
3868
3869 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
3870
3871         Fixed using the Objective-C 2.0 dot-syntax with class names.
3872         * c-parser.c (c_parser_next_token_starts_declspecs): In
3873         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
3874         (c_parser_next_token_starts_declaration): Same.
3875         (c_parser_postfix_expression): Parse the Objective-C 2.0
3876         dot-syntax with a class name.
3877
3878 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
3879
3880         * final.c (compute_alignments): Compute/free loop info all the time.
3881         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
3882         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
3883         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
3884         * config/rs6000/rs6000.c (cfgloop.h): Include.
3885         (can_override_loop_align): New.
3886         (rs6000_option_override_internal): Set it.
3887         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
3888         (rs6000_loop_align): New function.
3889         (rs6000_loop_align_max_skip): Likewise.
3890
3891 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3892
3893         PR driver/45703
3894         * collect2.c (main): Print --help output to stdout.  Do not
3895         exit right away, so ld --help is appended.  Add empty lines
3896         to separate output suitably.
3897
3898 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
3899
3900         PR tree-optimization/46233
3901         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
3902         after calling analyze_function, not before.
3903
3904         PR target/46234
3905         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
3906         instead of build_va_arg_indirect_ref.
3907         * config/spu/spu.c (spu_va_start): Likewise.
3908         * config/s390/s390.c (s390_va_start): Likewise.
3909
3910 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
3911
3912         PR middle-end/46292
3913         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
3914         if the innermode is not vector mode, determine the mode of a subreg
3915         by using mode_for_size of inner_size.
3916
3917 2010-11-04  Richard Guenther  <rguenther@suse.de>
3918
3919         PR rtl-optimization/46183
3920         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
3921         (execute_rtl_pre): Likewise.
3922         (execute_rtl_hoist): Likewise.
3923
3924 2010-11-04  Richard Guenther  <rguenther@suse.de>
3925
3926         PR tree-optimization/46068
3927         * ipa-split.c (consider_split): Remove gcc_unreachable.
3928
3929 2010-11-04  Richard Guenther  <rguenther@suse.de>
3930
3931         * tree-nested.c (build_addr): Use build_fold_addr_expr.
3932
3933 2010-11-04  Richard Guenther  <rguenther@suse.de>
3934
3935         PR tree-optimization/45991
3936         * gimplify.c (force_gimple_operand_1): Use the provded test
3937         function in the initial test.
3938
3939 2010-11-04  Jeff Law  <law@redhat.com>
3940
3941         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
3942         of readonly memory equivalances for const/pure calls.
3943
3944 2010-11-04  Richard Guenther  <rguenther@suse.de>
3945
3946         PR tree-optimization/45733
3947         * tree-vect-stmts.c (reverse_vec_elements): Honor the
3948         permute builtins function return type.
3949
3950 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
3951
3952         PR middle-end/44765
3953         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
3954         as an index, check it is not INVALID_REGNUM.
3955
3956         PR bootstrap/44756
3957         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
3958         unsignedp.
3959         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
3960
3961         PR bootstrap/44756
3962         * function.c (thread_prologue_and_epilogue_insns): Add
3963         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
3964
3965         PR bootstrap/44756
3966         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
3967
3968         PR target/44750
3969         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
3970         (pdp11_preferred_reload_class): Rename class to rclass.
3971         (pdp11_preferred_output_reload_class): Likewise.
3972         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
3973         ALL_COMPILERFLAGS .
3974         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
3975
3976         PR bootstrap/44756
3977         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
3978         iteration variables to enum machine_mode.
3979
3980         PR target/44751
3981         * config/h8300/h8300.c: Include df.h.
3982         (push, pop): Use add_reg_note.
3983         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
3984         (compute_a_shift_cc): Likewise.
3985         (expand_a_shift): Argument code has type enum rtx_code.
3986         (struct shift_insn): Member cc_valid has type enum attr_cc.
3987         (struct shift_info) <cc_inline, cc_special>: Likewise.
3988         enum attr_cc.
3989         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
3990         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
3991
3992 2010-11-04  Ira Rosen  <irar@il.ibm.com>
3993
3994         PR tree-optimization/46213
3995         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
3996         MINUS_EXPR only if the first operand is reduction operand.
3997
3998 2010-11-04  Richard Guenther  <rguenther@suse.de>
3999             Richard Henderson  <rth@redhat.com>
4000
4001         * tree.def (FMA_EXPR): New tree code.
4002         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
4003         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
4004         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
4005         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
4006         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
4007         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
4008         (execute_optimize_widening_mul): Call it.  Reorganize to allow
4009         dead stmt removal.  Move TODO flags ...
4010         (pass_optimize_widening_mul): ... here.
4011         * flag-types.h (enum fp_contract_mode): New enum.
4012         * common.opt (flag_fp_contract_mode): New variable.
4013         (-ffp-contract): New option.
4014         * opts.c (common_handle_option): Handle it.
4015         * doc/invoke.texi (-ffp-contract): Document.
4016         * tree.h (fold_fma): Declare.
4017         * builtins.c (fold_fma): New function.
4018         (fold_builtin_fma): Likewise.
4019         (fold_builtin_3): Call it for fma.
4020         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
4021         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
4022         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
4023         New expanders.
4024         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
4025         named patterns.
4026         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
4027         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
4028         (fms_optab, fnma_optab, fnms_optab): New defines.
4029         * gimplify.c (gimplify_expr): Handle binary truth expressions
4030         explicitly.  Handle FMA_EXPR.
4031         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
4032         operations.
4033
4034 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
4035             Richard Guenther  <rguenther@suse.de>
4036
4037         * passes.c (init_optimization_passes): Move veclower after SSA.
4038         * tree-vect-generic.c (uniform_vector_p): New function.
4039         (expand_vector_operations_1): Handle conversion.
4040         (pass_lower_vector): Update SSA form.
4041
4042 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
4043
4044         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
4045         plugin capabilities.
4046         * configure: Regenerate.
4047
4048 2010-11-03  Xinliang David Li  <davidxl@google.com>
4049
4050         PR target/46200
4051         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
4052         Adjust cbase if the use stmt is after iv update.
4053
4054 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4055
4056         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
4057
4058 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4059
4060         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
4061         comment.  Pass true to the last argument of output_stack_adjust.
4062
4063 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4064
4065         PR target/46295
4066         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
4067         if 256bit AVX register is used.
4068
4069 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
4070
4071         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
4072         xsmindp/xsmaxdp on VSX for single precision min/max.
4073         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
4074         (vsx_sminsf3): Ditto.
4075
4076 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4077
4078         * combine.c (try_combine): Fix formatting issues, improve comments and
4079         fix a pasto.
4080
4081 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4082
4083         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
4084         of the result before building binary expressions.
4085
4086 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4087
4088         PR rtl-optimization/45865
4089         * Makefile.in (df-problems.o): Revert revision 164552.
4090         * basic-block.h (enum bb_flags): Likewise.
4091         * cfgcleanup.c (block_was_dirty): Likewise.
4092         (try_forward_edges): Likewise.
4093         (try_crossjump_bb): Likewise.
4094         (try_head_merge_bb): Likewise.
4095         (try_optimize_cfg): Likewise.
4096         (cleanup_cfg): Likewise.
4097         * df-core.c (df_set_bb_dirty): Likewise.
4098         * df-problems.c: Likewise.
4099         (df_simulate_find_uses): Likewise.
4100         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
4101         (find_memory, find_memory_store): Likewise.
4102         (can_move_insns_across): Likewise.
4103         * df.h (can_move_insns_across): Likewise.
4104         * ifcvt.c (find_memory): Likewise.
4105         (dead_or_predicable): Likewise.
4106
4107 2010-11-03  Richard Guenther  <rguenther@suse.de>
4108
4109         PR middle-end/46288
4110         * predict.c (strip_predict_hints): Simply DCE builtin expect if
4111         the result is unused.
4112
4113 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4114
4115         PR tree-optimization/46009
4116         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
4117         cond_if_else_store_replacement if bb1 and bb2 have the same
4118         single successor.
4119         (cond_store_replacement): Use gimple_assign_single_p, don't
4120         check if rhs is SSA_NAME or invariant.  Call release_defs for
4121         assign.
4122         (cond_if_else_store_replacement): New function.
4123
4124 2010-11-03  Richard Guenther  <rguenther@suse.de>
4125
4126         * opts.c (finish_options): Properly check for all WHOPR
4127         flags before complaining about -flto-partition.
4128
4129 2010-11-04  Alan Modra  <amodra@gmail.com>
4130
4131         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
4132         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
4133         TARGET_SECURE_PLT.
4134         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
4135         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
4136         on input, "r" on output.
4137
4138 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
4139
4140         Implemented -fobjc-std=objc1 flag.
4141         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
4142         option.
4143         * doc/standards.texi (Standards): Updated the section on
4144         Objective-C; mention support for Objective-C 2.0 features and the
4145         new -fstd-objc=objc1 flag to disable them.
4146
4147 2010-11-03  Richard Guenther  <rguenther@suse.de>
4148
4149         PR middle-end/46241
4150         * dwarf2out.c (scope_die_for): Properly detect global scope.
4151
4152 2010-11-03  Richard Guenther  <rguenther@suse.de>
4153
4154         PR tree-optimization/46190
4155         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4156         Properly compute peel iterations.
4157
4158 2010-11-03  Richard Guenther  <rguenther@suse.de>
4159
4160         PR tree-optimization/46286
4161         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
4162         re-allocated vector data.
4163
4164 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4165
4166         PR target/46285
4167         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
4168         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
4169         is completed.
4170
4171 2010-11-03  Richard Guenther  <rguenther@suse.de>
4172
4173         PR tree-optimization/46217
4174         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
4175         flag matches.
4176         (execute_update_addresses_taken): Likewise.
4177
4178 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
4179
4180         PR bootstrap/44335
4181         * targhooks.c (targhook_words_big_endian): New function.
4182         (targhook_float_words_big_endian): Likewise.
4183         * targhooks.h (targhook_words_big_endian): Declare.
4184         (targhook_float_words_big_endian): Likewise.
4185         * target.def (words_big_endian, float_words_big_endian): New hooks.
4186
4187 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4188
4189         PR tree-optimization/46165
4190         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
4191         a normal call into noreturn call.
4192
4193 2010-11-03  Richard Guenther  <rguenther@suse.de>
4194
4195         PR middle-end/46251
4196         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
4197         not INDIRECT_REFs.
4198
4199 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4200
4201         PR tree-optimization/46107
4202         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
4203         if cfg_hook_duplicate_loop_to_header_edge failed.
4204
4205 2010-11-03  Ian Lance Taylor  <iant@google.com>
4206
4207         PR lto/46273
4208         * config.gcc: Don't set lto_binary_reader.
4209         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
4210         (Configuration): Mention --disable-lto.  Remove --with-libelf
4211         paragraph.
4212
4213 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4214
4215         PR debug/46252
4216         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
4217         prev_real_insn.
4218         * gcse.c (insert_insn_end_basic_block): Likewise.
4219
4220         PR rtl-optimization/46034
4221         PR rtl-optimization/46212
4222         PR rtl-optimization/46248
4223         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
4224         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
4225         before i0dest -> i0src substitution and pass 1 instead of 0 as last
4226         argument to subst on i2pat.
4227
4228 2010-11-02  Ian Lance Taylor  <iant@google.com>
4229
4230         * configure.ac: Use AC_SYS_LARGEFILE.
4231         * configure: Rebuild.
4232         * config.in: Rebuild.
4233
4234 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
4235
4236         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
4237         fold_convert.
4238         * c-typeck.c (build_function_call_vec): Likewise.
4239         * cfgexpand.c (expand_debug_expr): Likewise.
4240         * cgraphunit.c (assemble_thunk): Likewise.
4241         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
4242         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
4243         (fold_binary_loc, fold_ternary_loc): Likewise.
4244         * gimple-fold.c (get_symbol_constant_value): Likewise.
4245         * gimple-low.c (lower_builtin_setjmp): Likewise.
4246         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
4247         * gimplify.c (gimplify_init_constructor): Likewise.
4248         * lambda.h (build_linear_expr): Likewise.
4249         * omp-low.c (omp_reduction_init): Likewise.
4250         * tree-inline.c (remap_ssa_name): Likewise.
4251         * tree-object-size.c (compute_object_sizes): Likewise.
4252         * tree-sra.c (init_subtree_with_zero): Likewise.
4253         (sra_ipa_modify_assign): Likewise.
4254         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
4255         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
4256         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
4257         (undistribute_ops_list): Likewise.
4258         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
4259         * tree-vect-stmts.c (vectorizable_call): Likewise.
4260         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
4261         (build_zero_cst): Handle more cases directly.  Update comment.
4262
4263 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4264
4265         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
4266         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
4267
4268         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
4269         and call ix86_split_call_vzeroupper instead of
4270         ix86_split_call_pop_vzeroupper.
4271         (*call_pop_1_vzeroupper): Likewise.
4272         (*sibcall_pop_1_vzeroupper): Likewise.
4273         (*call_value_pop_0_vzeroupper): Likewise.
4274         (*call_value_pop_1_vzeroupper): Likewise.
4275         (*sibcall_value_pop_1_vzeroupper): Likewise.
4276
4277 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4278
4279         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
4280
4281 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
4282
4283         * basic-block.h (insert_insn_end_bb_new): Delete.
4284         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
4285
4286 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
4287             H.J. Lu  <hongjiu.lu@intel.com>
4288
4289         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
4290         (ix86_split_call_pop_vzeroupper): Likewise.
4291
4292         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
4293         (ix86_expand_call): Conditionally decorate calls with
4294         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
4295         (ix86_split_call_vzeroupper): New.
4296         (ix86_split_call_pop_vzeroupper): Likewise.
4297
4298         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
4299         (*call_pop_0_vzeroupper): New insn_and_split pattern.
4300         (*call_pop_1_vzeroupper): Likewise.
4301         (*sibcall_pop_1_vzeroupper): Likewise.
4302         (*call_0_vzeroupper): Likewise.
4303         (*call_1_vzeroupper): Likewise.
4304         (*sibcall_1_vzeroupper): Likewise.
4305         (*call_1_rex64_vzeroupper): Likewise.
4306         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
4307         (*call_1_rex64_large_vzeroupper): Likewise.
4308         (*sibcall_1_rex64_vzeroupper): Likewise.
4309         (*call_value_pop_0_vzeroupper): Likewise.
4310         (*call_value_pop_1_vzeroupper): Likewise.
4311         (*sibcall_value_pop_1_vzeroupper): Likewise.
4312         (*call_value_0_vzeroupper): Likewise.
4313         (*call_value_0_rex64_vzeroupper): Likewise.
4314         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
4315         (*call_value_1_vzeroupper): Likewise.
4316         (*sibcall_value_1_vzeroupper): Likewise.
4317         (*call_value_1_rex64_vzeroupper): Likewise.
4318         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
4319         (*call_value_1_rex64_large_vzeroupper): Likewise.
4320         (*sibcall_value_1_rex64_vzeroupper): Likewise.
4321
4322 2010-11-02  Ian Lance Taylor  <iant@google.com>
4323
4324         PR lto/46273
4325         * config.gcc: Revert last patch: set lto_binary_reader.
4326
4327 2010-11-02  Richard Guenther  <rguenther@suse.de>
4328
4329         PR tree-optimization/46149
4330         * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
4331         non-indirect MEM_REF variants.
4332
4333 2010-11-02  Richard Guenther  <rguenther@suse.de>
4334
4335         PR tree-optimization/46216
4336         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
4337         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
4338
4339 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4340
4341         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
4342         (*-*-osf*): Likewise.
4343         * configure: Regenerate.
4344
4345 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4346
4347         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
4348         for Intel Core 2 and Core i7.
4349
4350 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
4351
4352         Model decoder of Core 2/i7 for multipass scheduling.
4353
4354         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
4355         New type to hold target-specific data for multipass scheduling.
4356         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
4357         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
4358         Core 2/i7.
4359         (core2i7_secondary_decoder_max_insn_size,)
4360         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
4361         New static variables.
4362         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
4363         ([_]ix86_first_cycle_multipass_data): New static variable.
4364         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
4365         Implement targetm.sched hooks.
4366         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
4367         of ...
4368         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
4369         Implement new targetm.sched hooks.
4370         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
4371         targetm.sched hook to install multipass scheduling hooks on demand.
4372
4373         * doc/tm.texi.in: Document new targetm.sched hooks.
4374         * doc/tm.texi: Regenerate.
4375
4376         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
4377         (first_cycle_multipass_data_t): New typedef.
4378         (struct choice_entry: target_data): New field.
4379         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
4380         to allow target model restrictions not represented in DFA.
4381         (choose_ready, schedule_block): Update.
4382         (sched_extend_ready_list, sched_finish_ready_list): Call new target
4383         hooks to initialize target-specific data for multipass scheduling.
4384         * sched-int.h (max_issue): Update declaration.
4385         * sel-sched.c (choose_best_insn): Update.
4386         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
4387         (first_cycle_multipass_{init, fini}): Define and document new
4388         targetm.sched hooks.
4389
4390 2010-11-02  Richard Guenther  <rguenther@suse.de>
4391
4392         PR tree-optimization/46184
4393         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
4394         input vector type from the reduction operand as well.
4395
4396 2010-11-02  Richard Guenther  <rguenther@suse.de>
4397
4398         PR tree-optimization/46177
4399         * tree-loop-distribution.c (prop_phis): Use
4400         mark_virtual_phi_result_for_renaming.
4401
4402 2010-11-02  Martin Jambor  <mjambor@suse.cz>
4403
4404         PR middle-end/46120
4405         * tree.c (get_binfo_at_offset): Bail out on artificial
4406         fields.  Identify primary bases according to their offsets.
4407
4408 2010-11-02  Martin Jambor  <mjambor@suse.cz>
4409
4410         PR tree-optimization/45875
4411         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
4412         (gimple_get_relevant_ref_binfo): Detect primary bases according to
4413         their field offset.
4414
4415 2010-11-02  Ian Lance Taylor  <iant@google.com>
4416
4417         * doc/install.texi (Configuration): Note in two places that Java
4418         is not enabled by default.
4419
4420 2010-11-02  Ian Lance Taylor  <iant@google.com>
4421
4422         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
4423         (Configuration): Mention --disable-lto.  Remove --with-libelf
4424         paragraph.
4425
4426 2010-11-02  Ian Lance Taylor  <iant@google.com>
4427
4428         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
4429         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
4430         LIBELFINC.  Remove HAVE_libelf.
4431         * config.gcc: Don't set lto_binary_reader.
4432         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
4433         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
4434         (LIBS): Remove $(LIBELFLIBS).
4435         (INCLUDES): Remove $(LIBELFINC).
4436         * configure: Rebuild.
4437         * config.in: Rebuild.
4438
4439 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
4440
4441         * config/microblaze/microblaze-protos.h (function_arg): Delete.
4442         (function_arg_advance): Delete.
4443         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
4444         (FUNCTION_ARG): Delete.
4445         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
4446         (microblaze_function_arg_advance): ...this.  Make static.  Take a
4447         const_tree and a bool.
4448         (function-arg): Rename to...
4449         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
4450         and a bool.
4451         (microblaze_expand_prologue): Call targetm.calls.function_arg and
4452         targetm.calls.function_arg_advance.
4453         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4454
4455 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
4456
4457         Merge from FSF "apple/trunk" branch.
4458
4459         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
4460         * config/darwin.opt: .. to here.
4461         (matt-stubs): New option.
4462         * config/i386/darwin.opt: Delete.
4463         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
4464         (MACHO_DYNAMIC_NO_PIC_P): New.
4465         (MACHOPIC_INDIRECT): New.
4466         (MACHOPIC_PURE): New.
4467         * config/i386/darwin.h (DARWIN_X86) Define to 1.
4468         (MACHOPIC_ATT_STUB): New.
4469         (CC1_SPEC): Do not remove mdynamic-no-pic.
4470         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
4471         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
4472         (FUNCTION_PROFILER): Correct over-length line.
4473         (SUBTARGET_OVERRIDE_OPTIONS): New.
4474         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
4475         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
4476         (legitimate_constant_p): Handle mdynamic-no-pic.
4477         (ix86_legitimate_address_p): Likewise.
4478         (ix86_legitimize_address): Likewise.
4479         (ix86_expand_move): Likewise.
4480         (machopic_output_stub): Update for ATT-style stubs and
4481         mdynamic-no-pic.
4482         * config/darwin-protos.h (machopic_symbol_defined_p): New.
4483         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
4484         TARGET_DYNAMIC_NO_PIC: Remove.
4485         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
4486         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
4487         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
4488         Remove handling of mdynamic-no-pic.
4489         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
4490         Define if required.
4491         (machopic_symbol_defined_p): Do not try to use current_function_decl
4492         when generating _get_pc thunks within stubs.
4493         (machopic_indirect_data_reference): Rework for direct conditionals
4494         rather than #ifdefs, add x86 mdynamic-no-pic
4495         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
4496         defined value.
4497         (darwin_override_options): Handle mdynamic-no-pic here.
4498         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
4499         (machopic_lazy_symbol_ptr3_section): New.
4500         (machopic_picsymbol_stub2_section): New.
4501         (machopic_picsymbol_stub3_section): New.
4502         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
4503         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
4504         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
4505         Moved common definition from x86 and rs6000.
4506         (MACHO_DYNAMIC_NO_PIC_P): Override value.
4507         (MACHOPIC_INDIRECT): Likewise.
4508         (MACHOPIC_PURE): Likewise.
4509         * config.gcc (x86-darwin-*): Remove darwin.opt.
4510
4511 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
4512
4513         PR debug/46255
4514         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
4515         instead of gsi_last_bb.
4516
4517 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
4518             Maxim Kuvyrkov  <maxim@codesourcery.com>
4519
4520         * config/i386/i386.c (cpu_names): Add "corei7".
4521         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
4522
4523 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
4524             Maxim Kuvyrkov  <maxim@codesourcery.com>
4525
4526         Tune alignment for Intel Core i7
4527
4528         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
4529         (enum processor_type): Update comment.  Add entries for Core i7.
4530         * config/i386-c.c (ix86_target_macros_internal): Update.
4531         * config/i386.c (m_COREI7{_32,_64}): New macros.
4532         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
4533         (processor_target_table): Tune alignment for Core i7.
4534         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
4535
4536         * doc/invoke.texi: Document "corei7" option value.
4537
4538 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
4539             Maxim Kuvyrkov  <maxim@codesourcery.com>
4540             H.J. Lu  <hjl.tools@gmail.com>
4541
4542         Basic support for Intel Core i7
4543
4544         * i386.c (ix86_option_override_internal): Add entry for corei7, use
4545         generic tuning.  Use generic32 when compiling for 32-bit ABI.
4546
4547 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
4548
4549         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
4550         sections and call darwin_asm_dwarf_section() to handle them.
4551         (darwin_asm_dwarf_section): New.
4552         (darwin_file_start): Remove code emitting dwarf section symbols.
4553
4554 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
4555
4556         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
4557         explicitly disable stack protection when building libgcc.
4558         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
4559
4560 2010-11-01  Jason Merrill  <jason@redhat.com>
4561
4562         * fold-const.c (fold_indirect_ref_1): Handle folding
4563         POINTER_PLUS_EXPR to ARRAY_REF.
4564
4565 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
4566
4567         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
4568         (sh_delegitimize_address): New function.
4569
4570 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
4571
4572         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
4573         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
4574         (CC1_SPEC): Don't handle -target.
4575         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
4576         options.
4577         * config/darwin.opt (Zallowable_client, Zbundle_loader,
4578         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
4579         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
4580         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
4581         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
4582         Zweak_reference_mismatches, client_name, compatibility_version,
4583         current_version, dylinker_install_name, pagezero_size,
4584         read_only_relocs, seg1addr, segs_read_only_addr,
4585         segs_read_write_addr, sub_library, sub_umbrella): New.
4586         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
4587         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
4588         * config/freebsd.opt: New.
4589         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
4590         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
4591         * config/rpath.opt: New.
4592         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
4593         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
4594         Use rpath.opt.
4595
4596 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
4597
4598         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
4599         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
4600         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
4601         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
4602         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
4603         Document that options in .opt files do not need to be included.
4604         * doc/tm.texi: Regenerate.
4605         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
4606         * opts-common.c: Update comment on tm.h include.
4607         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
4608         * system.h (SWITCH_TAKES_ARG): Poison.
4609         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
4610         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
4611         in darwin.opt.
4612         (LINK_COMMAND_SPEC_A): Don't include %{x}.
4613         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
4614         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
4615         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
4616         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
4617         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
4618         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
4619         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
4620         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
4621         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
4622         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
4623         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
4624         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
4625         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
4626         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
4627         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
4628         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
4629         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
4630         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
4631         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
4632         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
4633         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
4634         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
4635         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
4636
4637 2010-11-01  Paul Koning  <ni1d@arrl.net>
4638
4639         * config/pdp11/pdp11.md: Use iterators.
4640         (addqi3, subqi3, iorsi3, xorsi3): Delete.
4641
4642 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
4643
4644         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
4645         GCC_INSN_FLAGS_H.
4646         * libgcov.c (__gcov_indirect_call_profiler): Set
4647         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
4648         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
4649
4650 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
4651
4652         PR tree-optimization/46259
4653
4654         Revert:
4655         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
4656         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
4657         build_vector_from_val.
4658
4659 2010-11-01  DJ Delorie  <dj@redhat.com>
4660
4661         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
4662         as well as an assertion.
4663
4664 2010-11-01  Paul Koning  <ni1d@arrl.net>
4665
4666         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
4667         complex modes in memory.
4668
4669 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
4670
4671         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
4672
4673 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
4674
4675         PR target/45250
4676         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
4677         (cfa_base_offset): New variable.
4678         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
4679         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
4680         is NULL.
4681         (vt_init_cfa_base): Initialize cfa_base_offset.
4682
4683 2010-11-01  Alan Modra  <amodra@gmail.com>
4684
4685         PR target/46030
4686         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
4687         and savres_strategy.
4688         (stack_info): New file scope var.
4689         (rs6000_init_machine_status): Init stack_info.
4690         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
4691         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
4692         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
4693         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
4694         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
4695         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
4696         (rs6000_savres_strategy): Rewrite.
4697         (rs6000_stack_info): Use "stack_info" in place of local "info".
4698         Return cached stack info when reload_completed unless ENABLE_CHECKING
4699         in which case confirm newly calculated stack info matches old info.
4700         Delay calculation of lr_save_p, set it for out of line gp save/restore
4701         as well as fp.  Call rs6000_savres_strategy from here..
4702         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
4703         (rs6000_output_function_prologue): Use info->savres_strategy to
4704         determine whether fp save/restore externs need to be emitted.
4705
4706 2010-10-31  Jason Merrill  <jason@redhat.com>
4707
4708         * tree.h (EXPR_LOC_OR_HERE): New macro.
4709         * builtins.c (c_strlen): Use it.
4710         * c-decl.c (build_enumerator): Likewise.
4711         * gimplify.c (internal_get_tmp_var): Likewise.
4712         (shortcut_cond_expr): Likewise.
4713         (gimplify_one_sizepos): Likewise.
4714
4715 2010-10-31  Richard Henderson  <rth@redhat.com>
4716
4717         * config/i386/cygming.h (TARGET_SEH): New.
4718         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
4719         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
4720         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
4721         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
4722         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
4723         (ASM_DECLARE_FUNCTION_SIZE): New.
4724         * config/i386/i386-protos.h: Update.
4725         * config/i386/i386.c (ix86_option_override_internal): Enable
4726         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
4727         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
4728         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
4729         (ix86_compute_frame_layout): For SEH, disable
4730         use_fast_prologue_epilogue, move frame pointer to the end of
4731         the frame.  Initialize hfp_save_offset.
4732         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
4733         at end of prologue for SEH.
4734         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
4735         emit blockage at beginning of epilogue.
4736         (ix86_expand_binary_operator): After reload, emit LEA if needed.
4737         (ix86_output_call_insn): New.
4738         * config/i386/i386.h (TARGET_SEH): New.
4739         (struct machine_function): Add member seh.
4740         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
4741         * config/i386/winnt.c (struct seh_frame_state): New.
4742         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
4743         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
4744         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
4745         i386_pe_start_function, i386_pe_end_function): New.
4746
4747         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
4748         as CFA_STORE in rules 12 and 13.
4749
4750 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
4751
4752         PR tree-optimization/46142
4753         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
4754         accommodate third function argument.
4755
4756 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
4757
4758         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
4759
4760 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
4761
4762         * fold-const.c (build_zero_vector): Use build_vector_from_val.
4763         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
4764         (get_initial_def_for_reduction): Likewise.
4765         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
4766         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
4767         * tree.c (build_one_cst): Likewise.
4768         (build_vector_from_val): Use types_compatible_p for assert.
4769
4770 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
4771
4772         * emit-rtl.c (mark_used_flags): New function.
4773         (set_used_flags, reset_used_flags): Call it.
4774
4775 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
4776
4777         PR middle-end/44569
4778         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
4779         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
4780
4781 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
4782
4783         PR target/46195
4784         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
4785         (ix86_compat_aligned_value_p): This.
4786         (ix86_old_function_arg_boundary): Renamed to ...
4787         (ix86_compat_function_arg_boundary): This.  Updated.
4788         (ix86_contains_aligned_value_p): New.
4789         (ix86_function_arg_boundary): Align long double parameters on
4790         stack to 4byte in 32bit.
4791
4792 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
4793
4794         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
4795         * c-parser.c (c_parser_objc_at_property_declaration): Removed
4796         parsing of RID_COPIES and RID_IVAR.  Updated call to
4797         objc_add_property_declaration.
4798         * c-typecheck.c (build_component_ref): Call
4799         objc_maybe_build_component_ref instead of objc_build_setter_call.
4800         Use objc_is_property_ref to improve Objective-C checks.
4801         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
4802         of objc_build_getter_call.
4803
4804 2010-10-29  Paul Koning  <ni1d@arrl.net>
4805
4806         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
4807         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
4808         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
4809         (REG_OK_STRICT): Move description.
4810
4811 2010-10-29  Paul Koning  <ni1d@arrl.net>
4812
4813         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
4814
4815 2010-10-29  Paul Koning  <ni1d@arrl.net>
4816
4817         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
4818
4819 2010-10-29  Paul Koning  <ni1d@arrl.net>
4820
4821         PR/41822
4822         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
4823
4824 2010-10-29  Richard Henderson  <rth@redhat.com>
4825
4826         PR rtl-opt/46226
4827         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
4828         for asm goto.
4829
4830 2010-10-29  Paul Koning  <ni1d@arrl.net>
4831
4832         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
4833         register to register move.
4834
4835 2010-10-29  Paul Koning  <ni1d@arrl.net>
4836
4837         * config/pdp11/pdp11.c (print_operand_address): Correct handling
4838         of integer constant addresses, delete vax-only logic.
4839
4840 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
4841
4842         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
4843         a conditional expression.
4844
4845 2010-10-29  Paul Koning  <ni1d@arrl.net>
4846
4847         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
4848         instruction encoding.
4849
4850 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
4851             Andrew Pinski  <pinskia@gmail.com>
4852
4853         * tree.h (build_vector_from_val): Declare.
4854         * tree.c (build_vector_from_val): New function.
4855         * c-typeck.c (build_binary_op): Handle vector shifting.
4856         * doc/extend.texi: Description of the vector shifting operation.
4857
4858 2010-10-29  Paul Koning  <pkoning@equallogic.com>
4859
4860         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
4861         pdp11_secondary_memory_needed): Declare.
4862         * config/pdp11/predicates.md (float_operand): New predicate.
4863         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
4864         (cbranchdf4, movdf): Change predicate.
4865         (movsf): Handle FPU register case.
4866         (truncdfsf2, extendsfdf2): Add FPU register case.
4867         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
4868         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
4869         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
4870         (pdp11_register_move_cost): Update cost matrix.
4871         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
4872         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
4873         pdp11_secondary_memory_needed): New function.
4874         (pdp11_return_in_memory): Add other float types.
4875         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
4876         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
4877         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
4878         REGISTER_MOVE_COST): Delete.
4879         (BASE_RETURN_VALUE_REG): Add other float types.
4880
4881 2010-10-29  Nick Clifton  <nickc@redhat.com>
4882
4883         * doc/invoke.texi: Document -mam34 and -mtune options.
4884         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
4885         (mn10300_tune_cpu): New variable.
4886         (mn10300_handle_option): Handle -mam34 and -mtune options.
4887         (mn10300_option_override): Convert tune string into tune cpu variable.
4888         (mn10300_legitimate_constant_p): Delete unused local variable.
4889         (is_load_insn): New function.
4890         (is_store_insn): New function.
4891         (mn10300_adjust_schedule_cost): New function.
4892         (TARGET_SCHED_ADJUST_COST): Define.
4893         * config/mn10300/mn10300.opt (mam34): New option.
4894         (mtune): New option.
4895         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
4896         (enum processor_type): Add AM34.
4897         (TARGET_AM34): Define.
4898         * config/mn10300/mn10300.md (attr cpu): Add am34.
4899         Add pipeline description.
4900         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
4901         Remove unneeded alternatives.  Add timing attribute.
4902         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
4903         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
4904         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
4905         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
4906         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
4907         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
4908         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
4909         float_conditional_branch, jump, indirect_jump, tablejump,
4910         call_internal, call_value_internal, zero_extendqisi2_am33,
4911         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
4912         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
4913         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
4914         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
4915         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
4916         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
4917         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
4918         return_internal_regs, store_movm, return, call_next_insn):
4919         Add timing attribute.
4920         (am33_subsi3): Add missing clobber of CC_REG.
4921         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
4922         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
4923         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
4924         extendqisi2): Fix predicates.
4925         (call_internal, call_internal_value): Separate alternatives.
4926         * config/mn10300/t-mn10300: Add AM34 multilib.
4927
4928 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
4929
4930         * config/sh/sh.c (sh_promote_function_mode): Use
4931         default_promote_function_mode if !sh_promote_prototypes.
4932
4933 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
4934
4935         * recog.c (split_all_insns): Remove dead code.
4936
4937 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4938
4939         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4940
4941 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4942
4943         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
4944         (FUNCTION_ARG_ADVANCE): Delete.
4945         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
4946         functions.
4947         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
4948         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
4949         (TARGET_FUNCTION_ARG_ADVANCE): Define.
4950
4951 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4952
4953         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
4954         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4955         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
4956         Take a const_tree and a bool.
4957         (mcore_function_arg_advance): New function.
4958         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4959
4960 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4961
4962         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
4963         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4964         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
4965         Take a const_tree and a bool.
4966         (mcore_function_arg_advance): New function.
4967         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4968
4969 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4970
4971         * config/h8300/h8300-protos.h (function_arg): Delete.
4972         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4973         * config/h8300/h8300.c (function_arg): Rename to...
4974         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
4975         a bool.
4976         (h8300_function_arg_advance): New function.
4977         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4978
4979 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4980
4981         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
4982         to...
4983         * config/arc/arc.c (arc_function_arg): ...here and...
4984         (arc_function_arg_advance): ...here.  New functions.
4985         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4986
4987 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4988
4989         * config/crx/crx-protos.h (crx_function_arg): Delete.
4990         (crx_function_arg_advance): Delete.
4991         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4992         * config/crx/crx.c (crx_function_arg): Make static.  Take a
4993         const_tree and a bool.
4994         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
4995         (enough_regs_for_param): Take a const_tree.
4996         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4997
4998 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
4999
5000         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
5001         (m68hc11_function_arg_advance): Delete.
5002         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
5003         (FUNCTION_ARG_ADVANCE): Delete.
5004         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
5005         Take a const_tree and a bool.
5006         (m68hc11_function_arg_advance): Likewise.
5007         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5008
5009 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5010
5011         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
5012         (xstormy16_function_arg_advance): Delete.
5013         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
5014         (FUNCTION_ARG_ADVANCE): Delete.
5015         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
5016         Take a const_tree and a bool.
5017         (xstormy16_function_arg_advance): Likewise.  Return void, updating
5018         the CUM parameter instead.
5019         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5020
5021 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5022
5023         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
5024         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5025         (MOXIE_FUNCTION_ARG_SIZE): Move to...
5026         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
5027         (moxie_function_arg): Make static.  Take a const_tree and a bool.
5028         (moxie_function_arg_advance): New function.
5029         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5030
5031 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5032
5033         * config/mn10300/mn10300-protos.h (function_arg): Delete.
5034         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
5035         (FUNCTION_ARG_ADVANCE): Delete.
5036         * config/mn10300/mn10300.c (function_arg): Rename to...
5037         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
5038         and a bool.
5039         (mn10300_function_arg_advance): New function.
5040         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5041
5042 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5043
5044         * config/iq2000/iq2000-protos.h (function_arg): Delete.
5045         (function_arg_advance): Delete.
5046         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5047         * config/iq2000/iq2000.c (function_arg): Rename to...
5048         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
5049         a bool.
5050         (function_arg_advance): Rename to...
5051         (iq2000_function_arg_advance): ...this.  Make static.  Take a
5052         const_tree and a bool.
5053         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
5054         iq2000_function_arg.
5055         (iq2000_pass_by_reference): Call iq2000_function_arg).
5056         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5057
5058 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5059
5060         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
5061         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5062         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
5063         const_tree.
5064         (fr30_function_arg): New function.
5065         (fr30_function_arg_advance): New function.
5066         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5067
5068 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5069
5070         * config/frv/frv-protos.h (frv_function_arg): Delete.
5071         (frv_function_arg_advance): Delete.
5072         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5073         * config/frv/frv.c (frv_function_arg): Rename to...
5074         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
5075         (frv_function_arg, frv_function_incoming_arg): New functions.
5076         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
5077         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5078         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5079
5080 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
5081
5082         PR target/46153
5083         * config/i386/sse.md (sse_movhlps_exp): Use destination
5084         returned from ix86_fixup_binary_operands to expand insn.
5085         (sse_movlhps_exp): Ditto.
5086         (sse_loadhps_exp): Ditto.
5087         (sse_loadlps_exp): Ditto.
5088         (sse2_loadhpd_exp): Ditto.
5089         (sse2_loadlpd_exp): Ditto.
5090
5091 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
5092
5093         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
5094         constants in thumb2.
5095
5096 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
5097
5098         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
5099         arithmetics in masking operations.
5100         (contains_muldiv): Likewise.
5101         (try_combine): Likewise.
5102         (find_split_point): Likewise.
5103         (combine_simplify_rtx): Likewise.
5104         (simplify_if_then_else): Likewise.
5105         (simplify_set): Likewise.
5106         (expand_compound_operation): Likewise.
5107         (expand_field_assignment): Likewise.
5108         (make_extraction): Likewise.
5109         (extract_left_shift): Likewise.
5110         (make_compound_operation): Likewise.
5111         (force_to_mode): Likewise.
5112         (make_field_assignment): Likewise.
5113         (reg_nonzero_bits_for_combine): Likewise.
5114         (simplify_shift_const_1): Likewise.
5115         (simplify_comparison): Likewise.
5116
5117 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
5118
5119         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
5120         (ia64_function_arg_advance): Delete.
5121         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
5122         (FUNCTION_ARG_ADVANCE): Delete.
5123         * config/ia64/ia64.c (ia64_function_arg): Rename to...
5124         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
5125         bool arguments.
5126         (ia64_function_arg, ia64_function_incoming_arg): New functions.
5127         (ia64_function_arg_advance): Make static.  Take a const_tree and
5128         a bool.
5129         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5130         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5131
5132 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
5133
5134         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
5135         (TARGET_GET_RAW_ARG_MODE): New.
5136         * doc/tm.texi: Regenerate.
5137         * target.def (get_raw_result_mode): New.
5138         (get_raw_arg_mode): New.
5139         * targhooks.c (default_get_reg_raw_mode): New.
5140         * targhooks.h (default_get_reg_raw_mode): New.
5141         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
5142         (apply_result_size): Ditto.
5143         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
5144         (TARGET_GET_RAW_RESULT_MODE): Define.
5145         (TARGET_GET_RAW_ARG_MODE): Ditto.
5146
5147 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5148
5149         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
5150         for newer Solaris 10 release.
5151         (sparc_fallback_frame_state): Likewise.
5152
5153 2010-10-27  Jason Merrill  <jason@redhat.com>
5154
5155         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
5156         variables sooner.
5157
5158 2010-10-27  Jie Zhang  <jie@codesourcery.com>
5159             Maxim Kuvyrkov  <maxim@codesourcery.com>
5160
5161         * haifa-sched.c (ISSUE_POINTS): Remove.
5162         (max_issue): Don't issue more than issue_rate instructions.
5163
5164 2010-10-27  Ian Lance Taylor  <iant@google.com>
5165
5166         PR target/46197
5167         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
5168         (split_stack_return): Replace UNSPEC_STACK_CHECK with
5169         UNSPECV_SPLIT_STACK_RETURN.
5170
5171 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
5172
5173         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
5174
5175         * config/i386/i386.c (block_info): New.
5176         (BLOCK_INFO): Likewise.
5177         (call_avx256_state): Likewise.
5178         (check_avx256_stores): Likewise.
5179         (move_or_delete_vzeroupper_2): Likewise.
5180         (move_or_delete_vzeroupper_1): Likewise.
5181         (move_or_delete_vzeroupper): Likewise.
5182         (use_avx256_p): Likewise.
5183         (function_pass_avx256_p): Likewise.
5184         (flag_opts): Add -mvzeroupper.
5185         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
5186         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
5187         is disabled.
5188         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
5189         generate vzeroupper.
5190         (init_cumulative_args): Add an int to indicate caller.  Set
5191         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
5192         based on return type.
5193         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
5194         caller_pass_avx256_p based on argument type.
5195         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
5196         is used, but not returned by caller.
5197         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
5198         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
5199         is used.
5200         (ix86_minimum_alignment): Likewise.
5201         (ix86_expand_special_args_builtin): Set target to
5202         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
5203         (ix86_reorg): Run the vzeroupper optimization if needed.
5204
5205         * config/i386/i386.h (ix86_args): Add caller.
5206         (INIT_CUMULATIVE_ARGS): Updated.
5207         (machine_function): Add use_vzeroupper_p, use_avx256_p,
5208         caller_pass_avx256_p, caller_return_avx256_p,
5209         callee_pass_avx256_p and callee_return_avx256_p.
5210
5211         * config/i386/i386.opt (-mvzeroupper): New.
5212
5213         * config/i386/predicates.md (vzeroupper_operation): Removed.
5214
5215         * config/i386/sse.md (avx_vzeroupper): Removed.
5216         (*avx_vzeroupper): Removed.
5217         (avx_vzeroupper): New.
5218
5219         * doc/invoke.texi: Document -mvzeroupper.
5220
5221 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5222
5223         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
5224         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
5225         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
5226
5227 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5228             Olivier Hainque  <hainque@adacore.com>
5229
5230         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
5231         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
5232         fs->signal_frame instead.
5233
5234 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5235
5236         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
5237         parsing of RID_COPIES and RID_IVAR.
5238
5239 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5240
5241         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
5242         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
5243         Do not use objc_set_property_attr, but use local variables
5244         instead.  Detect repeated usage of setter, getter and ivar
5245         attributes.  Improved error processing when a setter name does not
5246         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
5247         that the token is a keyword.  Updated call to
5248         objc_add_property_declaration.
5249
5250 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5251
5252         * c-parser.c (c_parser_objc_at_property): Renamed to
5253         c_parser_objc_at_property_declaration.  Updated calls to
5254         objc_add_property_variable, now objc_add_property_declaration.
5255         Code rewritten to be much more robust in recovering from syntax
5256         errors.  Added comments.
5257         (c_parser_objc_property_attrlist): Removed.
5258         (c_parser_external_declaration): Updated calls to
5259         c_parser_objc_at_property, now
5260         c_parser_objc_at_property_declaration.
5261         (c_parser_objc_methodprotolist): Same change.
5262
5263 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5264
5265         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
5266
5267 2010-10-26  Jan Hubicka  <jh@suse.cz>
5268
5269         * ipa.c (process_references): Enqueue all referenced nodes;
5270         mark as reachable only non-external nodes.
5271         (cgraph_remove_unreachable_nodes): All referenced nodes should
5272         be enqueued; remove bogues node->needed check.
5273
5274 2010-10-26  Jan Hubicka  <jh@suse.cz>
5275
5276         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
5277         to represent OMP.
5278
5279 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5280
5281         * config/i386/i386.md (split_stack_return): Replace
5282         unspec_volatile with unspec.
5283
5284 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
5285
5286         * doc/install.texi: Fix typo in --with-sysroot description.
5287
5288 2010-10-26  Jan Hubicka  <jh@suse.cz>
5289
5290         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
5291         Use info provided by linker plugin.
5292
5293 2010-10-26  Jason Merrill  <jason@redhat.com>
5294
5295         * varasm.c (constructor_static_from_elts_p): Don't require a
5296         CONSTRUCTOR to have elements to be suitable for static
5297         initialization.  Allow ARRAY_TYPE as well.
5298
5299 2010-10-26  Jan Hubicka  <jh@suse.cz>
5300
5301         PR middle-end/45736
5302         * cgraph.c (cgraph_set_readonly_flag): Rename to...
5303         (cgraph_set_const_flags) ... this one; get also looping argument;
5304         clear constructor/destructor flags.
5305         (cgraph_set_pure_flag): Likewise.
5306         (cgraph_set_looping_const_or_pure_flag): Remove.
5307         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
5308         to optimize away static ctors/dtors; it does not work on inline clones;
5309         external functions can always be rmeoved.
5310         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
5311         inline clones; in LTO external functions always can go.
5312         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
5313         (cgraph_mark_address_taken_node): Assert that we are not taking
5314         address of inline clone.
5315         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
5316         external functions.
5317         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
5318         address taken.
5319         (ipcp_initialize_node_lattices): Only local functions can be
5320         handled without cloning.
5321         * cgraph.h (cgraph_set_readonly_flag,
5322         cgraph_set_looping_const_or_pure_flag): Remove.
5323         (cgraph_set_const_flag): Declare.
5324         (cgraph_set_pure_flag): Update.
5325         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
5326         flags setting code.
5327         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
5328         look at inline clones; fix handling of external definitions.
5329         (cgraph_postorder): Do not look at inline clones in the first pass.
5330         (function_and_variable_visibility): Drop constructors/destructor
5331         flags at pure and const functions.
5332         * tree-profile.c (tree_profiling): Update.
5333         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
5334         address taken; external functions do not account to whole program size.
5335         (cgraph_decide_inlining): Likewise; do not try to inline
5336         functions already inlined.
5337
5338 2010-10-26  Jie Zhang  <jie@codesourcery.com>
5339
5340         * doc/invoke.texi: Improve documentation of
5341         -fstrict-volatile-bitfields.
5342
5343 2010-10-26  Ira Rosen  <irar@il.ibm.com>
5344
5345         PR tree-optimization/46167
5346         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
5347         is basic block for the statement.
5348
5349 2010-10-26  Paul Koning  <ni1d@arrl.net>
5350
5351         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
5352         current definition of struct_real_format.
5353
5354 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5355
5356         PR target/44948
5357         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
5358         (ix86_function_arg_boundary): Always align parameters on stack
5359         in 64bit and align parameters with alignment >= 16byte on stack
5360         in 32bit.  Warn alignment change.
5361
5362 2010-10-26  Ian Lance Taylor  <iant@google.com>
5363
5364         PR middle-end/45687
5365         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
5366         offset.
5367
5368 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
5369
5370         Implement opaque-enum-specifiesr for C++0x
5371         * tree.h (ENUM_IS_OPAQUE): New.
5372         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
5373
5374 2010-10-26  Jie Zhang  <jie@codesourcery.com>
5375
5376         * stor-layout.c (layout_decl): Use the field's type to
5377         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
5378         * config/arm/arm.c (arm_override_options): Default to
5379         -fstrict-volatile-bitfields.
5380
5381 2010-10-25  Paul Koning  <ni1d@arrl.net>
5382
5383         * config/pdp11/pdp11.md: Add define_constants for register
5384         numbers, branch offset limits.
5385         * config/pdp11/pdp11.c: Use named constants instead of numbers.
5386         * config/pdp11.pdp11.h: Ditto.
5387
5388 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
5389
5390         * configure.ac: Use $cpu_type instead of $target to define the nop.
5391         * configure: Regenerate.
5392
5393 2010-10-25  Jie Zhang  <jie@codesourcery.com>
5394
5395         * combine.c (try_combine): If insns need to be kept around, check that
5396         they can be copied in the merged instruction.
5397
5398 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
5399
5400         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
5401         has been modified.
5402         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
5403         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
5404         it has been modified.
5405
5406 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
5407
5408         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
5409
5410 2010-10-24  Paul Koning  <ni1d@arrl.net>
5411
5412         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
5413         * config/pdp11/pdp11.c (output_jump): Ditto.
5414
5415 2010-10-24  Ian Lance Taylor  <iant@google.com>
5416
5417         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
5418
5419 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
5420
5421         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
5422         least one insn with a locus corresponding to an edge's goto_locus,
5423         disregard non-fallthru edges to the exit block and merge the blocks
5424         created for the same goto_locus.
5425
5426 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
5427
5428         * gcc.c (n_switches_alloc_debug_check): New.
5429         (set_option_handlers): New.
5430         (process_command): Use set_option_handlers.
5431         (do_self_spec): Pass spec-generated options through option handlers.
5432         (main): Also save and restore n_switches_alloc when swapping
5433         switch arrays.
5434
5435 2010-10-23  Richard Henderson  <rth@redhat.com>
5436
5437         PR target/46144
5438         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
5439         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
5440         Honor matching operands when splitting to XOR.
5441
5442 2010-10-23  Ian Lance Taylor  <iant@google.com>
5443
5444         * tree-vrp.c (extract_range_from_binary_expr): If
5445         flag_non_call_exceptions don't eliminate division by zero.
5446         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
5447
5448 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
5449
5450         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
5451         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
5452         __ORDER_PDP_ENDIAN__.
5453         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5454         (struct DWstruct): Define based on __BYTE_ORDER__.
5455         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5456         (struct INTstruct): Define based on __BYTE_ORDER__.
5457         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5458         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
5459         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
5460         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5461         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5462         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5463         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5464         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5465         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5466         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5467         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5468         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5469         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5470         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5471         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5472         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5473         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5474         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5475         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5476         * doc/tm.texi: Regenerate.
5477         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
5478         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
5479
5480 2010-10-23  Jie Zhang  <jie@codesourcery.com>
5481
5482         PR rtl-optimization/37360
5483         * config/mips/mips.c (cached_can_issue_more): New local variable.
5484         (mips_sched_reorder_1): New.
5485         (mips_sched_reorder): Use mips_sched_reorder_1.
5486         (mips_sched_reorder2): New.
5487         (mips_variable_issue): Set cached_can_issue_more.
5488         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
5489         instead of mips_sched_reorder.
5490
5491         Revert:
5492         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
5493         PR rtl-optimization/37360
5494         * haifa-sched.c (max_issue): Do not assert that we never issue more
5495         insns than issue_rate.  Add comment.
5496
5497 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
5498
5499         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
5500         location info of the expression.
5501
5502 2010-10-22  DJ Delorie  <dj@redhat.com>
5503
5504         * doc/extend.texi (Named Address Spaces): Document the M32C named
5505         address space.
5506
5507         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
5508         __far address space.
5509         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
5510         "__far" address space for R8C and M16C processor variants.
5511         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
5512         (far_addr_space_p): New.
5513         (encode_pattern_1): Add sign and zero extend support.
5514         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
5515         (m32c_extra_constraint_p2): Add SF constraint.
5516         (m32c_legitimate_address_p): Support __far addresses.
5517         (m32c_addr_space_pointer_mode): New.
5518         (m32c_addr_space_address_mode): New.
5519         (m32c_addr_space_legitimate_address_p): New.
5520         (m32c_addr_space_legitimize_address): New.
5521         (m32c_addr_space_subset_p): New.
5522         (m32c_addr_space_convert): New.
5523         (conversions): Add __far operand patterns.
5524         (m32c_prepare_move): Force constants into registers for __far moves.
5525         (m32c_split_move): __far moves are always split.
5526         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
5527         * config/m32c/mov.md (mov<mode>_far_op1): New.
5528         (mov<mode>_far_op2): New.
5529         (movqi_op): Add __far (SF) support.
5530         (movhi_op): Likewise.
5531         (movsi_splittable): Split A1A0 also.
5532
5533 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
5534             Andrew Pinski  <pinskia@gmail.com>
5535
5536         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
5537         * doc/extend.texi: New paragraph
5538
5539 2010-10-22  Paul Koning  <ni1d@arrl.net>
5540
5541         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
5542
5543 2010-10-22  DJ Delorie  <dj@redhat.com>
5544
5545         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
5546
5547 2010-10-22  Paul Koning  <ni1d@arrl.net>
5548
5549         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
5550
5551 2010-10-22  Richard Henderson  <rth@redhat.com>
5552
5553         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
5554         cases for __builtin_fma and __builtin_fmaf.
5555
5556 2010-10-22  Richard Henderson  <rth@redhat.com>
5557
5558         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
5559         NEG+USE for vectors as well.
5560         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
5561         and splitter.
5562
5563 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
5564
5565         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
5566         SWITCH_CURTAILS_COMPILATION): Remove.
5567         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
5568         * doc/tm.texi: Regenerate.
5569         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
5570
5571 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
5572
5573         * config/i386/bdver1.md: New file.
5574         * config/i386/i386.md (include "bdver1.md"): Invoke the
5575         pipeline description for bdver1.
5576         (x86_sahf_1): Add "bdver1_decode" attribute.
5577         (*cmpfp_i_mixed): Likewise.
5578         (*cmpfp_i_sse): Likewise.
5579         (*cmpfp_i_i387): Likewise.
5580         (*cmpfp_iu_mixed): Likewise.
5581         (*cmpfp_iu_sse): Likewise.
5582         (*cmpfp_iu_387): Likewise.
5583         (*swap<mode>,*swap<mode>_1): Likewise.
5584         (fixuns_trunc<mode>hi2): Likewise.
5585         (fix_trunc<mode>si_sse): Likewise.
5586         (x86_fnstcw_1): Likewise.
5587         (x86_fldcw_1): Likewise.
5588         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
5589         (*floatsi<mode>2_vector_mixed): Likewise.
5590         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
5591         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
5592         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
5593         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
5594         (*floatsi<mode>2_vector_sse): Likewise.
5595         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
5596         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
5597         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
5598         (*mul<mode>3_1): Likewise.
5599         (*mulsi3_1_zext): Likewise.
5600         (*mulhi3_1): Likewise.
5601         (*mulqi3_1): Likewise.
5602         (*<u>mul<mode><dwi>3_1): Likewise.
5603         (*<u>mulqihi3_1): Likewise.
5604         (*<s>muldi3_highpart_1): Likewise.
5605         (*<s>mulsi3_highpart_1): Likewise.
5606         (*<s>mulsi3_highpart_zext): Likewise.
5607         (x86_64_shld): Likewise.
5608         (x86_shld): Likewise.
5609         (x86_64_shrd): Likewise.
5610         (x86_shrd): Likewise.
5611         (sqrtxf2): Likewise.
5612         (sqrt_extend<mode>xf2_i387): Likewise.
5613         (*sqrt<mode>2_sse): Likewise.
5614         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
5615         (sse_cvtsi2ssq): Likewise.
5616         (sse_cvtss2si): Likewise.
5617         (sse_cvtss2si_2): Likewise.
5618         (sse_cvtss2siq): Likewise.
5619         (sse_cvtss2siq_2): Likewise.
5620         (sse_cvttss2si): Likewise.
5621         (sse_cvttss2siq): Likewise.
5622         (sse2_cvtpi2pd): Likewise.
5623         (sse2_cvttpd2pi): Likewise.
5624         (sse2_cvtsi2sd): Likewise.
5625         (sse2_cvtsi2sdq): Likewise.
5626         (sse2_cvtsd2si): Likewise.
5627         (sse2_cvtsd2si_2): Likewise.
5628         (sse2_cvtsd2siq): Likewise.
5629         (sse2_cvtsd2siq_2): Likewise.
5630         (sse2_cvttsd2si): Likewise.
5631         (sse2_cvttsd2siq): Likewise.
5632         (*sse2_cvtpd2dq): Likewise.
5633         (*sse2_cvttpd2dq): Likewise.
5634         (sse2_cvtsd2ss): Likewise.
5635         (sse2_cvtss2sd): Likewise.
5636         (*sse2_cvtpd2ps): Likewise.
5637         (sse2_cvtps2pd): Likewise.
5638
5639 2010-10-22  Richard Guenther  <rguenther@suse.de>
5640
5641         PR middle-end/46137
5642         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
5643         remove the virtual operands if they are not needed.
5644
5645 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
5646
5647         * config/i386/i386.c (processor_costs bdver1_cost): Update
5648         insn costs and architectural parameters for bdver1.
5649
5650 2010-10-22  Richard Guenther  <rguenther@suse.de>
5651
5652         * gimple.h (gimple_register_canonical_type): Declare.
5653         * gimple.c (gimple_canonical_types): New global hashtable.
5654         (struct gimple_type_leader_entry_s): New type.
5655         (gimple_type_leader): New global cache.
5656         (gimple_lookup_type_leader): New function.
5657         (gtc_visit): Query the proper cache.
5658         (gimple_types_compatible_p): Likewise.
5659         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
5660         (gimple_canonical_type_eq): New function.
5661         (gimple_register_canonical_type): Likewise.
5662         (print_gimple_types_stats): Adjust for gimple_canonical_types.
5663         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
5664         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
5665         gimple_types_compatible_p for LTO.
5666
5667 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
5668
5669         PR target/46098
5670         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
5671         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
5672         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
5673         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
5674         (<sse>_movu<ssemodesuffix>): New expander.
5675         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
5676         (avx_movdqu<avxmodesuffix>): New expander.
5677         (*sse2_movdqu): Rename from sse2_movdqu.
5678         (sse2_movdqu): New expander.
5679
5680 2010-10-22  Richard Guenther  <rguenther@suse.de>
5681
5682         PR tree-optimization/45720
5683         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
5684         Handle negative step.
5685         (vect_enhance_data_refs_alignment): Likewise.
5686         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
5687         (vect_create_cond_for_align_checks): Likewise.
5688         (vect_create_cond_for_alias_checks): Likewise.
5689
5690 2010-10-22  Ira Rosen  <irar@il.ibm.com>
5691
5692         PR tree-optimization/46126
5693         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
5694         vectorizable_shift in case of basic block vectorization.
5695
5696 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
5697
5698         * target.h (enum opt_levels, struct default_options): New.
5699         * target.def (handle_ofast): Remove hook.
5700         (target_option.optimization): Change to
5701         target_option.optimization_table.
5702         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
5703         TARGET_OPTION_OPTIMIZATION_TABLE.
5704         (CAN_DEBUG_WITHOUT_FP): Remove.
5705         * doc/tm.texi: Regenerate.
5706         * opts.c (maybe_default_option, maybe_default_options,
5707         default_options_table): New.
5708         (default_options_optimization): Take extra parameters.  Don't
5709         assert that global_options and global_options_set are in use.  Use
5710         maybe_default_options.
5711         (decode_options): Pass extra parameters to
5712         default_options_optimization.
5713         * common.opt (falign-loops): Use value 0 with Var.
5714         (frerun-cse-after-loop, ftree-ter): Remove Init.
5715         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
5716         TARGET_OPTION_OPTIMIZATION): Remove.
5717         * targhooks.c (empty_optimization_table): New.
5718         * targhooks.h (empty_optimization_table): Declare.
5719         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
5720         * config/alpha/alpha.c (alpha_option_optimization_table,
5721         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5722         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
5723         * config/arm/arm.c (arm_option_optimization: Change to
5724         arm_option_optimization_table.
5725         (TARGET_OPTION_OPTIMIZATION): Change to
5726         TARGET_OPTION_OPTIMIZATION_TABLE.
5727         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
5728         * config/avr/avr.c (avr_option_optimization_table,
5729         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5730         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
5731         * config/cris/cris.c (cris_option_optimization): Change to
5732         cris_option_optimization_table.
5733         (TARGET_OPTION_OPTIMIZATION): Change to
5734         TARGET_OPTION_OPTIMIZATION_TABLE.
5735         * config/crx/crx.c (crx_option_optimization): Change to
5736         crx_option_optimization_table.
5737         (TARGET_OPTION_OPTIMIZATION): Change to
5738         TARGET_OPTION_OPTIMIZATION_TABLE.
5739         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
5740         * config/fr30/fr30.c (fr30_option_optimization_table,
5741         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5742         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
5743         * config/frv/frv.c (frv_option_optimization_table,
5744         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5745         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
5746         * config/h8300/h8300.c (h8300_option_optimization): Change to
5747         h8300_option_optimization_table.
5748         (TARGET_OPTION_OPTIMIZATION): Change to
5749         TARGET_OPTION_OPTIMIZATION_TABLE.
5750         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
5751         * config/i386/i386.c (ix86_option_optimization): Change to
5752         ix86_option_optimization_table.
5753         (TARGET_OPTION_OPTIMIZATION): Change to
5754         TARGET_OPTION_OPTIMIZATION_TABLE.
5755         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
5756         as initializer.
5757         * config/ia64/ia64.c (ia64_option_optimization): Change to
5758         ia64_option_optimization_table.
5759         (TARGET_OPTION_OPTIMIZATION): Change to
5760         TARGET_OPTION_OPTIMIZATION_TABLE.
5761         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
5762         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
5763         initializer.
5764         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
5765         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5766         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
5767         * config/lm32/lm32.c (lm32_option_optimization_table,
5768         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5769         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
5770         * config/m32r/m32r.c (m32r_option_optimization): Change to
5771         m32r_option_optimization_table.
5772         (TARGET_OPTION_OPTIMIZATION): Change to
5773         TARGET_OPTION_OPTIMIZATION_TABLE.
5774         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
5775         CAN_DEBUG_WITHOUT_FP): Remove.
5776         * config/mcore/mcore.c (mcore_option_optimization): Change to
5777         mcore_option_optimization_table.
5778         (TARGET_OPTION_OPTIMIZATION): Change to
5779         TARGET_OPTION_OPTIMIZATION_TABLE.
5780         * config/mep/mep.c (mep_option_optimization): Change to
5781         mep_option_optimization_table.
5782         (TARGET_OPTION_OPTIMIZATION): Change to
5783         TARGET_OPTION_OPTIMIZATION_TABLE.
5784         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
5785         * config/microblaze/microblaze.c
5786         (microblaze_option_optimization_table,
5787         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5788         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
5789         * config/mips/mips.c (mips_option_optimization_table,
5790         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5791         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
5792         * config/mmix/mmix.c (mmix_option_optimization): Change to
5793         mmix_option_optimization_table.
5794         (TARGET_OPTION_OPTIMIZATION): Change to
5795         TARGET_OPTION_OPTIMIZATION_TABLE.
5796         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
5797         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
5798         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5799         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
5800         * config/pa/pa.c (pa_option_optimization_table,
5801         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5802         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
5803         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
5804         pdp11_option_optimization_table.
5805         (TARGET_OPTION_OPTIMIZATION): Change to
5806         TARGET_OPTION_OPTIMIZATION_TABLE.
5807         * config/picochip/picochip.c (picochip_option_optimization_table,
5808         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5809         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
5810         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
5811         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5812         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
5813         * config/rx/rx.c (rx_option_optimization_table,
5814         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5815         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
5816         * config/s390/s390.c (s390_option_optimization): Change to
5817         s390_option_optimization_table.
5818         (s390_option_override): Update comment.
5819         (TARGET_OPTION_OPTIMIZATION): Change to
5820         TARGET_OPTION_OPTIMIZATION_TABLE.
5821         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
5822         * config/score/score.c (score_option_optimization_table,
5823         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5824         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
5825         * config/sh/sh.c (sh_option_optimization): Change to
5826         sh_option_optimization_table.
5827         (TARGET_OPTION_OPTIMIZATION): Change to
5828         TARGET_OPTION_OPTIMIZATION_TABLE.
5829         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
5830         (sh_option_override, expand_block_move, multcosts, find_barrier,
5831         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
5832         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
5833         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
5834         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
5835         instead of TARGET_SMALLCODE.
5836         * config/sh/sh.opt (mspace): Make into an alias for -Os.
5837         * config/sparc/sparc.c (sparc_option_optimization_table,
5838         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5839         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
5840         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
5841         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5842         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
5843         * config/v850/v850.c (v850_option_optimization): Change to
5844         v850_option_optimization_table.
5845         (TARGET_OPTION_OPTIMIZATION): Change to
5846         TARGET_OPTION_OPTIMIZATION_TABLE.
5847         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
5848         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
5849         xtensa_option_optimization_table.
5850         (TARGET_OPTION_OPTIMIZATION): Change to
5851         TARGET_OPTION_OPTIMIZATION_TABLE.
5852         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
5853
5854 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
5855
5856         Based on the CFString implementation in FSF apple/trunk branch.
5857
5858         * target.def (objc_construct_string): New Hook.
5859         * doc/tm.texi (objc_construct_string): Document.
5860         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
5861         * config/t-darwin: Amend build rules for darwin.o.
5862         * config/darwin.opt: Add cfstrings flags.
5863         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
5864         (darwin_objc_construct_string): New.
5865         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
5866         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
5867         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
5868         (darwin_fold_builtin): Likewise.
5869         (darwin_build_constant_cfstring): Likewise.
5870         (darwin_objc_construct_string): Likewise.
5871         (darwin_cfstring_p): Likewise.
5872         (darwin_enter_string_into_cfstring_table): Likewise.
5873         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
5874         * config/darwin.c (darwin_running_cxx): New var.
5875         (machopic_select_section): Return cfstring_constant_object_section.
5876         (darwin_override_options): Set darwin_running_cxx.
5877         (add_builtin_field_decl): New.
5878         (darwin_init_cfstring_builtins): New.
5879         (darwin_build_constant_cfstring): New.
5880         (darwin_fold_builtin): New.
5881         (cfstring_hash): New.
5882         (cfstring_eq): New.
5883         (darwin_enter_string_into_cfstring_table): New.
5884         * config/darwin-sections.def (cfstring_constant_object_section): New.
5885         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
5886         (TARGET_OBJC_CONSTRUCT_STRING): Define.
5887
5888 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
5889
5890         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
5891         TYPE_STUB_DECL instead of TREE_CHAIN.
5892         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
5893         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
5894         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
5895         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
5896         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
5897         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
5898         Likewise.
5899         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
5900
5901 2010-10-22  Jie Zhang  <jie@codesourcery.com>
5902
5903         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
5904         (copy_blkmode_from_reg): Likewise.
5905         (read_complex_part): Likewise.
5906         (expand_expr_real_1): Calculate packedp and pass it to
5907         extract_bit_field.
5908         * expr.h (extract_bit_field): Update declaration.
5909         * calls.c (store_unaligned_arguments_into_pseudos): Update call
5910         to extract_bit_field.
5911         * expmed.c (extract_fixed_bit_field): Update calls to
5912         extract_fixed_bit_field.
5913         (store_split_bit_field): Likewise.
5914         (extract_bit_field_1): Add new argument packedp.
5915         (extract_bit_field): Add new argument packedp.
5916         (extract_fixed_bit_field): Add new argument packedp and let
5917         packed attribute override volatile.
5918         * stmt.c (expand_return): Update call to extract_bit_field.
5919
5920 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
5921
5922         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
5923
5924 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
5925
5926         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
5927         of gcc_checking_assert.
5928         * sel-sched.c (code_motion_process_successors): Likewise.
5929
5930 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
5931
5932         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
5933         when stopping because of a different locus on edge or insn.
5934         (try_optimize_cfg): Add comment.
5935         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
5936         block is a forwarder block, propagate locus on the edge.
5937         (cfg_layout_merge_blocks): Likewise.
5938
5939 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
5940
5941         PR target/45946
5942         * config/i386/i386.md (*pushti2): New insn pattern.
5943         (pushti2 splitter): New insn splitter.
5944         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
5945         DWI mode iterator.
5946
5947 2010-10-21  Paul Koning  <ni1d@arrl.net>
5948
5949         * config/pdp11/pdp11-protos.md (arith_operand,
5950         const_immediate_operand, expand_shift_operand,
5951         immediate15_operand): Delete
5952         * config/pdp11/pdp11.c: Ditto.
5953         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
5954         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
5955         EXTRA_CONSTRAINT): Delete.
5956         * config/pdp11/pdp11.md (various): Use standard constraints
5957         instead of removed ones.
5958         * config/pdp11/constraints.md: New file.
5959         * config/pdp11/predicates.md: New file.
5960
5961 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
5962
5963         PR c/45834
5964         * alias.c (true_dependence_1): Remove obsolete check for QImode.
5965         (may_alias_p): Ditto.
5966
5967 2010-10-21  Martin Jambor  <mjambor@suse.cz>
5968
5969         PR tree-optimization/45875
5970         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
5971
5972 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
5973
5974         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
5975         variables.
5976         (create_new_def_for): Likewise.
5977
5978 2010-10-21  Nick Clifton  <nickc@redhat.com>
5979
5980         * config/mn10300/mn10300.c: Fold code to 80-character width.
5981         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
5982         MEM, CONST_INT and CONST_DOUBLE.
5983         (targetm): Move initialization to end of file.
5984         (print_operand): Rename to mn10300_print_operand.
5985         (print_operand_address): Rename to mn10300_print_operand_address.
5986         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
5987         (expand_prologue): Rename to mn10300_expand_prologue.
5988         (expand_epilogue): Rename to mn10300_expand_epilogue.
5989         (initial_offset): Rename to mn10300_initial_offset.
5990         (function_arg): Rename to mn10300_function_arg.
5991         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
5992         (symbolic_operand): Rename to mn10300_symbolic_operand.
5993         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
5994         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
5995         * config/mn10300/mn10300-protos.h: Update prototypes.
5996         * config/mn10300/mn10300.h: Fold code to 80-character width.
5997         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
5998         MEM, CONST_INT and CONST_DOUBLE.
5999         (CPP_SPEC): Move to...
6000         (TARGET_CPU_CPP_BUILTINS): ... here.
6001         * config/mn10300/mn10300.md: Fold code to 80-character width.
6002         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6003         MEM, CONST_INT and CONST_DOUBLE.
6004
6005 2010-10-21  Ira Rosen  <irar@il.ibm.com>
6006
6007         PR tree-optimization/46049
6008         PR tree-optimization/46052
6009         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
6010         (vect_get_slp_defs): Add arguments.
6011         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
6012         operands to vect_get_slp_defs.
6013         (vectorizable_reduction): Fix comment, pass scalar operands to
6014         vect_get_slp_defs.
6015         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
6016         type to determine number of units in the created vector.
6017         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
6018         (vectorizable_conversion): Fix comment.
6019         (vectorizable_shift): New function.
6020         (vectorizable_operation): Move code that handles shifts to
6021         vectorizable_shift.
6022         (vectorizable_type_demotion): Fix comment, pass scalar operands to
6023         vect_get_slp_defs.
6024         (vectorizable_type_promotion, vectorizable_store): Likewise.
6025         (vectorizable_condition): Fix comment.
6026         (vect_analyze_stmt): Call vectorizable_shift.
6027         (vect_transform_stmt): Likewise.
6028         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
6029         Use it as the operand to create vectors for, except reduction
6030         initial definition and store.  Use operands type.
6031         (vect_get_slp_defs): Add new arguments.  Pass them to
6032          vect_get_constant_vectors.
6033
6034 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6035
6036         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
6037         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
6038         * cfghooks.c (fixup_reorder_chain): Likewise.
6039         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
6040         * cgraph.c (cgraph_add_thunk): Likewise.
6041         (cgraph_create_edge_1): Likewise.
6042         (cgraph_create_virtual_clone): Likewise.
6043         * ddg.c (add_cross_iteration_register_deps): Likewise.
6044         * dwarf2out.c (modified_type_die): Likewise.
6045         * emit-rtl.c (set_mem_alias_set): Likewise.
6046         * ggc-zone.c (zone_allocate_marks): Likewise.
6047         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
6048         * gimple.c (iterative_hash_gimple_type): Likewise.
6049         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
6050         (create_single_exit_edge): Likewise.
6051         * haifa-sched.c (choose_ready): Likewise.
6052         * lto-streamer-in.c (input_gimple_stmt): Likewise.
6053         * passes.c (execute_todo): Likewise.
6054         * sched-ebb.c (begin_schedule_ready): Likewise.
6055         * sel-sched.c (code_motion_process_successors): Likewise.
6056         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
6057         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
6058         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
6059         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
6060         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
6061         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
6062         (ssa_conflicts_add): Likewise.
6063         * tree-ssa-copy.c (replace_exp): Likewise.
6064         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
6065         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
6066         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
6067         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
6068         (compute_antic): Likewise.
6069         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
6070         (add_dependence): Likewise.
6071         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
6072         * tree-vrp.c (supports_overflow_infinity): Likewise.
6073         (make_overflow_infinity, negative_overflow_infinity): Likewise.
6074         (avoid_overflow_infinity, register_new_assert_for): Likewise.
6075         (process_assert_insertions_for): Likewise.
6076         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
6077         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
6078         (intersect_loc_chains, variable_merge_over_cur): Likewise.
6079
6080 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6081
6082         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
6083         * reload1.c (has_nonexceptional_receiver): Likewise.
6084         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
6085         (create_new_def_for): Likewise.
6086         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
6087         (merge_phi_nodes): Likewise.
6088         (has_abnormal_incoming_edge_p): Delete.
6089
6090 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
6091
6092         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
6093
6094 2010-10-21  Richard Guenther  <rguenther@suse.de>
6095             Michael Matz  <matz@suse.de>
6096
6097         PR tree-optimization/45764
6098         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
6099         Adjust initial misalignment for negative DR_STEP.
6100         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
6101         do not have the same alignment over the whole iteration domain.
6102
6103 2010-10-21  Richard Guenther  <rguenther@suse.de>
6104
6105         PR tree-optimization/46111
6106         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
6107
6108 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6109
6110         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
6111
6112 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6113
6114         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
6115         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
6116
6117 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6118
6119         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
6120         signal_frame.
6121         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
6122
6123 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6124
6125         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
6126         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
6127
6128 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
6129
6130         * basic-block.h (find_fallthru_edge): Define.
6131         * cfgcleanup.c (merge_blocks_move): Use it.
6132         (try_crossjump_bb): Likewise.
6133         * cfglayout.c (fixup_reorder_chains): Likewise.
6134         (fixup_fallthru_exit_predecessor): Likewise.
6135         * cfgrtl.c (rtl_split_edge): Likewise.
6136         (rtl_verify_flow_info): Likewise.
6137         * function.c (thread_prologue_and_epilogue_insns): Likewise.
6138         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
6139         * ifcvt.c (block_fallthru): Likewise.
6140         * reload1.c (fixup_abnormal_edges): Likewise.
6141         * sched-ebb.c (being_schedule_ready): Likewise.
6142         (schedule_ebb): Likwise.
6143         * sched-rgn.c (find_single_block_region): Likewise.
6144         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
6145         * tree-complex.c (expand_complex_move): Likewise.
6146         * sched-int.h (find_fallthru_edge): Rename to...
6147         (find_fallthru_edge_from): ...this.
6148         * haifa-sched.c (find_fallthru_edge): Rename to...
6149         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
6150         (init_before_recovery): Call find_fallthru_edge_from.
6151         * sel-sched-ir.c (merge_fences): Likewise.
6152         * sel-sched.c (in_fallthru_bb_p): Likewise.
6153         (move_cond_jump): Likewise.
6154
6155 2010-10-20  Paul Koning  <ni1d@arrl.net>
6156
6157         * config/pdp11/pdp11.md (various): Fix conditions on a number of
6158         insn to check for target 11/40 or higher.
6159
6160 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
6161
6162         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
6163         bool instead of a tree.
6164         (c_parser_objc_method_decl): Added bool argument.  Updated call to
6165         objc_build_method_signature.
6166         (c_parser_objc_method_definition): Do not call
6167         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
6168         c_parser_objc_method_decl and objc_start_method_definition.
6169         (c_parser_objc_methodproto): Do not call objc_set_method_type.
6170         Updated calls to c_parser_objc_method_type,
6171         c_parser_objc_method_decl and objc_add_method_declaration.
6172
6173 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
6174
6175         PR tree-optimization/45919
6176         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
6177         array members.
6178
6179         PR tree-optimization/46066
6180         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
6181         instead of gsi_last_bb.
6182
6183 2010-10-20  DJ Delorie  <dj@redhat.com>
6184
6185         * config/m32c/m32c.c (m32c_option_override): Always disable
6186         function-cse in 16-bit mode.  Indirect calls are always worse than
6187         direct calls as there is no 16-bit indirect call opcode.
6188         (m32c_override_options_after_change): New, likewise.
6189
6190 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
6191
6192         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
6193         emitting the conditional move in the inner mode of the SUBREG.
6194
6195 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
6196
6197         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
6198         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
6199         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6200         (ia64_preferred_reload_class): Make static.  Change rclass argument
6201         and result types from enum reg_class to reg_class_t.
6202
6203 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
6204
6205         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
6206         call for single operand expression.
6207
6208 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
6209
6210         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
6211         if there is a call statement to pure or const function in the block.
6212
6213 2010-10-20  Paul Koning  <pkoning@equallogic.com>
6214
6215         Fix several build errors for pdp11 target.
6216         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
6217         (cbranchdf4): Conditional on TARGET_FPU.
6218         (movdf): Ditto; correct alternatives check.
6219         (movmemhi): Fix predicate and constraint.
6220         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
6221
6222 2010-10-20  Richard Guenther  <rguenther@suse.de>
6223
6224         PR lto/45667
6225         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
6226         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
6227         (verify_gimple_assign_single): Disable ADDR_EXPR type check
6228         when in LTO.
6229
6230 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
6231
6232         PR fortran/42169
6233         * ira-emit.c (store_can_be_removed_p): Return false instead of
6234         gcc_unreachable.
6235
6236 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
6237
6238         * fold-const.c (fold_binary_loc): New transformation.
6239
6240 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
6241
6242         PR target/46085
6243         * config/i386/sse.md (reduc_splus_v8sf): Updated.
6244         (reduc_splus_v4df): Likewise.
6245
6246 2010-10-20  Richard Guenther  <rguenther@suse.de>
6247
6248         PR tree-optimization/45860
6249         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
6250         conditional store replacement for non-register type stores.
6251
6252 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
6253
6254         * stor-layout.c (skip_simple_constant_arithmetic): New function.
6255         (self_referential_size): Use it instead of skip_simple_arithmetic.
6256
6257 2010-10-20  Olivier Hainque  <hainque@adacore.com>
6258
6259         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
6260         If the current function calls eh_return, claim live all registers
6261         that we need to check for liveness otherwise.
6262
6263 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
6264
6265         * c-decl.c (c_write_global_declarations): Call
6266         objc_write_global_declarations when compiling Objective-C.
6267         * c-lang.c (finish_file): Removed.
6268
6269 2010-10-19  DJ Delorie  <dj@redhat.com>
6270
6271         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
6272         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
6273         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
6274         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
6275         * doc/tm.texi: Regenerate.
6276         * targhooks.h (default_label_align_after_barrier_max_skip,
6277         default_loop_align_max_skip, default_label_align_max_skip,
6278         default_jump_align_max_skip): Declare.
6279         * target.def (label_align_after_barrier_max_skip): New.
6280         (loop_align_max_skip): New.
6281         (label_align_max_skip): New.
6282         (jump_align_max_skip): New.
6283         * system.h (poison): Add those macros to the list.
6284         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
6285         (LOOP_ALIGN_MAX_SKIP): Remove.
6286         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
6287         (JUMP_ALIGN_MAX_SKIP): Remove.
6288         (default_label_align_after_barrier_max_skip): New.
6289         (default_loop_align_max_skip): New.
6290         (default_label_align_max_skip): New.
6291         (default_jump_align_max_skip): New.
6292         (compute_alignments): Use the new hooks.
6293         (shorten_branches): Likewise.
6294
6295 2010-10-19  Richard Henderson  <rth@redhat.com>
6296
6297         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
6298         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
6299         (fma4i_fmadd_<mode>): New.
6300         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
6301         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
6302         standard fma patterns.
6303         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
6304         enable for FMA.
6305         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
6306         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
6307         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
6308
6309 2010-10-19  Paul Koning  <pkoning@equallogic.com>
6310
6311         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
6312         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
6313
6314 2010-10-19  Richard Henderson  <rth@redhat.com>
6315
6316         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
6317         (fmadf4, *fmsdf4, *nfmadf4): New.
6318         (fmaxf4, *fmsxf4, *nfmaxf4): New.
6319
6320 2010-10-19  Michael Eager  <eager@eagercon.com>
6321
6322         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
6323         Use sjlj unwind info for exceptions.
6324
6325 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
6326
6327         PR fortran/43414
6328         * dwarf2out.c (add_calling_convention_attribute): Flag main
6329         Fortran subroutine with DW_AT_main_subprogram.
6330
6331 2010-10-19  Nick Clifton  <nickc@redhat.com>
6332
6333         * config/rx/rx.c (rx_function_value): Small integer types are
6334         promoted to SImode.
6335         (rx_promote_function_mode): New function.
6336         (TARGET_PROMOTE_FUNCTION_MODE): Define.
6337
6338 2010-10-19  Nick Clifton  <nickc@redhat.com>
6339
6340         * config/mep/mep.c (mep_print_operand): Use
6341         targetm.strip_name_encoding.
6342         (mep_output_aligned_common): Likewise.
6343
6344 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
6345
6346         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
6347
6348 2010-10-18  Richard Henderson  <rth@redhat.com>
6349
6350         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
6351         (fma (neg a) (neg b) c) and (fma a (neg b) c).
6352
6353 2010-10-18  Richard Henderson  <rth@redhat.com>
6354
6355         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
6356         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
6357         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
6358         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
6359         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
6360         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
6361         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
6362         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
6363         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
6364         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
6365         (bdesc_multi_arg): Remove the corresponding builtins.
6366         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
6367         (UNSPEC_FMA4_FMSUBADD): Remove.
6368         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
6369         * config/i386/sse.md (FMA4MODEF4): Remove.
6370         (FMAMODE): Add.
6371         (fma<mode>4): New expander.
6372         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
6373         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
6374         (*fma4i_fmsub_<mode>): Similarly.
6375         (*fma4i_fnmadd_<mode>): Similarly.
6376         (*fma4i_fnmsub_<mode>): Similarly.
6377         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
6378         with the first operand.
6379         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
6380         of explicit arithmetic.  Macroize with AVXMODEF2P.
6381         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
6382         (xop_frcz<mode>2): Macroize with FMAMODE.
6383         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
6384         the first operand.
6385         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
6386         extra negations.
6387         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
6388         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
6389         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
6390         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
6391         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
6392         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
6393         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
6394         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
6395
6396 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
6397
6398         PR rtl-optimization/45966
6399         * combine.c (try_combine): If added_sets_2, deal with the case
6400         where i0 feeds i1 and i1 feeds i2.
6401
6402 2010-10-18  Jan Hubicka  <jh@suse.cz>
6403
6404         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
6405         preserve flags before trying to guess on visibility.
6406         (varpool_externally_visible_p): New function.
6407         (function_and_variable_visibility): Use it.
6408
6409 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
6410
6411         Implemented parsing @synthesize and @dynamic for Objective-C.
6412         * c-parser.c (c_parser_external_declaration): Recognize
6413         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
6414         (c_parser_objc_at_synthesize_declaration): New.
6415         (c_parser_objc_at_dynamic_declaration): New.
6416
6417 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
6418
6419         * c-parser.c (c_parser_objc_class_declaration): After finding an
6420         error, parse the whole declaration then reset parser->error.
6421
6422 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
6423
6424         PR target/46041
6425         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
6426         * builtins.c (mode_has_fma): Ditto.
6427
6428 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
6429
6430         PR target/36898
6431         PR middle-end/43760
6432         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
6433
6434 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
6435
6436         * config/i386/i386.c (ix86_option_override_internal): Define and
6437         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
6438         default.
6439         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
6440         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
6441
6442 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
6443
6444         Merge from 'apple/trunk' branch on FSF servers.
6445         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
6446         following Objective-C change:
6447
6448         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
6449
6450         Radar 4301047
6451         * c-parse.in (objc_quals): Build objc qualifier list same way
6452         as gcc-3.3
6453
6454 2010-10-18  Jan Hubicka  <jh@suse.cz>
6455
6456         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
6457         function_and_variable_visibility): Revert accidental commit.
6458
6459 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
6460
6461         Merge from 'apple/trunk' branch on FSF servers.
6462         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
6463         the following Objective-C change:
6464
6465         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
6466
6467         Radar 4204796
6468         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
6469         'volatilized' type used in a typeof operator.
6470
6471 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
6472
6473         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
6474         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
6475         rewrite modelled on gimple_purge_dead_eh_edges.
6476         (gimple_purge_all_dead_abnormal_call_edges): New function.
6477         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
6478         directly instead of through gimple_purge_dead_abnormal_call_edges.
6479         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
6480         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
6481         removed AB side-effects from one of its statements.
6482         (init_pre): Initialize need_ab_cleanup.
6483         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
6484         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
6485
6486 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
6487
6488         PR c/46015
6489         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
6490         on computed goto argument.
6491
6492 2010-10-18  Richard Guenther  <rguenther@suse.de>
6493
6494         PR tree-optimization/45967
6495         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
6496         (could_have_pointers): Likewise.
6497         (handle_rhs_call, handle_const_call, handle_pure_call,
6498         find_func_aliases, intra_create_variable_infos): Remove calls to them.
6499         (struct fieldoff): Add must_have_pointers field.
6500         (type_must_have_pointers): New function.
6501         (field_must_have_pointers): Likewise.
6502         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
6503         Adjust field merging.
6504         (create_function_info_for): May-have-pointers of varinfo is
6505         almost always true.
6506         (create_variable_info_for_1): Likewise.
6507
6508 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
6509
6510         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
6511         of operands to vec_concat.
6512
6513 2010-10-18  Richard Guenther  <rguenther@suse.de>
6514
6515         PR lto/44950
6516         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
6517         also clear references to entries of it.
6518
6519 2010-10-18  Andi Kleen  <ak@linux.intel.com>
6520
6521         PR other/43448
6522         * gccbug.in: Remove.
6523         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
6524         (doc, distclean, install-common): Remove reference to gccbug.
6525         * configure: Regenerate.
6526         * configure.ac (all_outputs): Remove gccbug.
6527         * doc/configfiles.texi: Remove references to gccbug.
6528         * doc/sourcebuild.texi: Dito.
6529
6530 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
6531
6532         PR middle-end/46019
6533         * fold-const.c (fold_binary_loc): If integer_pow2p has
6534         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
6535
6536 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
6537             Jeremie Salvucci  <jeremie.salvucci@free.fr>
6538
6539         * gengtype.c (verbosity_level): Add variable.
6540         (set_gc_used): Count variables for verbosity.
6541         (close_output_files): Backing up files, counting written ones
6542         verbosily.
6543         (write_types): Count emitted functions for verbosity. Added
6544         debug messages.
6545         (write_enum_defn): Count structures for verbosity. Added debug
6546         messages.
6547         (gengtype_long_options): Add "verbose" & "backupdir".
6548         (print_usage): Ditto.
6549         (main): Verbose display of parsed files.
6550
6551         * gengtype.h (verbosity_level): Add declaration.
6552
6553 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
6554
6555         * gengtype.c (parse_program_options): Add allocation of
6556         plugin_files, and correct test on nb_plugin_files.
6557
6558 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
6559
6560         Merge from 'apple/trunk' branch on FSF servers.
6561
6562         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
6563
6564         Radar 4133425
6565         * c-decl.c (undeclared_variable): Issue diagnostic on
6566         private 'ivar' access.
6567
6568 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
6569
6570         PR target/46051
6571         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
6572         generated sequence to match *avx_vperm2f128<mode>_nozero.
6573         (vec_interleave_lowv4df): Ditto.
6574         (vec_interleave_highv8sf): Ditto.
6575         (vec_interleave_lowv8sf): Ditto.
6576
6577 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
6578
6579         * libgcov.c (create_file_directory): Enable it for win32 case.
6580         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
6581         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
6582         (GCOV_PREFIX_SKIP): Likewise.
6583
6584 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
6585
6586         * doc/objc.texi (GNU Objective-C runtime API): New section.
6587         (Modern GNU Objective-C runtime API): New section.
6588         (Traditional GNU Objective-C runtime API): New section.
6589         (Executing code before main): Mention that this section is
6590         specific to the GNU Objective-C runtime.
6591         (Garbage Collection): Same.
6592
6593 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
6594
6595         * c-parser.c (c_parser_for_statement): Move initialization of
6596         cond and incr before if.
6597
6598 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
6599
6600         * target.def (preferred_output_reload_class): New hook.
6601         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
6602         * doc/tm.texi: Regenerate.
6603         * targhooks.c (default_preferred_output_reload_class): New function.
6604         * targhooks.h (default_preferred_output_reload_class): Declare.
6605         * reload.c (find_dummy_reload): Change rclass argument type from
6606         enum reg_class to reg_class_t. Change this_alternative array type
6607         from enum reg_class to reg_class_t.
6608         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
6609         (push_reload): Change preferred_class variable type to reg_class_t.
6610         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
6611         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
6612         argument type from enum reg_class to reg_class_t. Use
6613         HARD_REGISTER_NUM_P predicate.
6614         * recog.h (reg_fits_class_p): Update prototype.
6615
6616         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
6617         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
6618         Remove.
6619         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
6620         static. Change regclass argument and result types from enum reg_class
6621         to reg_class_t.
6622         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
6623
6624 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
6625
6626         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
6627         visibility enum, and handle @package.
6628
6629 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
6630
6631         * doc/objc.texi (What you can and what you cannot do in +load):
6632         Document that sending messages to constant string objects in +load
6633         is not guaranteed to work.
6634
6635 2010-10-16  Jan Hubicka  <jh@suse.cz>
6636
6637         PR middle-end/44206
6638         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
6639         existence of refrences before removing the function.
6640
6641 2010-10-16  Jan Hubicka  <jh@suse.cz>
6642
6643         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
6644         only_called_at_startup and only_called_at_exit.
6645         (cgraph_propagate_frequency): Compute only_called_at_startup and
6646         only_called_at_exit.
6647         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
6648         only_called_at_exit.
6649         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
6650         flags.
6651         * predict.c (compute_function_frequency): Initialize the new flags.
6652
6653 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
6654
6655         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
6656         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
6657         on the bounds of its domain.
6658         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
6659
6660 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
6661
6662         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
6663         * config/avr/avr-protos.h (preferred_reload_class): Remove.
6664         * config/avr/avr.c (preferred_reload_class): Remove.
6665         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
6666         * config/pa/pa.c (emit_move_sequence): Update comment
6667         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
6668         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
6669         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
6670         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
6671         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
6672         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
6673         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
6674         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
6675         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
6676         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
6677         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
6678         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
6679         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
6680
6681 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
6682
6683         * opts.c (set_fast_math_flags,
6684         set_unsafe_math_optimizations_flags): Make static.
6685         * toplev.h (set_fast_math_flags,
6686         set_unsafe_math_optimizations_flags): Remove prototypes.
6687
6688 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
6689
6690         * config/arm/arm.c (arm_option_optimization): Set
6691         flag_section_anchors to 1 not 2.
6692         * config/i386/i386.c (ix86_option_override_internal): Check
6693         global_options_set.x_flag_zee and
6694         global_options_set.x_flag_omit_frame_pointer.
6695         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
6696         flag_zee to 2.
6697         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
6698         global_options_set.x_flag_omit_frame_pointer.
6699         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
6700         opts->x_flag_section_anchors to 1 not 2.
6701         * config/sh/sh.c (sh_option_optimization): Don't set
6702         flag_schedule_insns to 2.
6703         (sh_option_override): Check
6704         global_options_set.x_flag_schedule_insns.
6705         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
6706
6707 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
6708
6709         * configure.ac: Make sure inhibit_libc remains false for mingw targets
6710         as cross.
6711         * configure: Regenerated.
6712
6713 2010-10-15  Xinliang David Li  <davidxl@google.com>
6714
6715         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
6716         function.
6717         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
6718         into a recursive function.
6719
6720 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
6721
6722         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
6723         (*movdfcc_1): ditto.
6724
6725 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
6726
6727         * target.def (target_option.init_struct): New hook.
6728         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
6729         * doc/tm.texi: Regenerate.
6730         * hooks.c (hook_void_gcc_optionsp): New.
6731         * hooks.h (hook_void_gcc_optionsp): Declare.
6732         * langhooks-def.h (lhd_init_options_struct): Remove.
6733         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
6734         * langhooks.c (lhd_init_options_struct): Remove.
6735         * opts.c (init_options_struct): Also call
6736         targetm.target_option.init_struct.
6737         * config/i386/i386.c (ix86_option_init_struct,
6738         TARGET_OPTION_INIT_STRUCT): New.
6739         (ix86_option_optimization): Move some settings to
6740         ix86_option_init_struct.
6741         * config/pdp11/pdp11.c (pdp11_option_init_struct,
6742         TARGET_OPTION_INIT_STRUCT): New.
6743         (pdp11_option_optimization): Move some settings to
6744         pdp11_option_init_struct.
6745         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
6746         rs6000_option_init_struct.  Use options structure pointer.
6747         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
6748         * config/s390/s390.c (s390_option_init_struct,
6749         TARGET_OPTION_INIT_STRUCT): New.
6750         (s390_option_optimization): Don't set
6751         flag_asynchronous_unwind_tables here.
6752         * config/sh/sh.c (sh_option_init_struct,
6753         TARGET_OPTION_INIT_STRUCT): New.
6754         (sh_option_optimization): Don't set flag_finite_math_only here.
6755         * config/spu/spu.c (spu_option_optimization): Replace by
6756         spu_option_optimization.  Use options structure pointer.
6757         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
6758
6759 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6760
6761         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
6762
6763         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
6764         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
6765         (Standard names): Document fma.
6766
6767         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
6768         __FP_FAST_FMAF, __FP_FAST_FMAL.
6769
6770         * builitns.c (expand_builtin_mathfn_ternary): New function for
6771         expanding ternary math functions, like fma.
6772         (expand_builtin): Call it for the fma builtins.
6773
6774         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
6775         ops at present.
6776
6777         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
6778         vectorizable functions to support vectorizing fma.
6779
6780         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
6781         Handle fma builtins.
6782
6783         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
6784         (UNSPEC_VSX_MSUB): Ditto.
6785         (UNSPEC_VSX_NMADD): Ditto.
6786         (UNSPEC_VSX_NMSUB): Ditto.
6787         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
6788         of UNSPEC. Renumber combiner patterns.
6789         (vsx_fmsub<mode>4*): Ditto.
6790         (vsx_fnmadd<mode>4*): Ditto.
6791         (vsx_fnmsub<mode>4*): Ditto.
6792
6793         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
6794         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
6795         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
6796         (altivec_vmaddfp_1): Ditto.
6797         (altivec_vmaddfp_2): Ditto.
6798         (atlivec_mulv4sf3): Ditto.
6799         (altivec_vnmsubfp): Ditto.
6800         (altivec_vnmsubfp_1): Ditto.
6801         (altivec_vnmsubfp_2): Ditto.
6802         (altivec_vnmsubfp_3): Delete.
6803
6804         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
6805         (fmasf4_fpr): Ditto.
6806         (fmssf4_fpr): Ditto.
6807         (fnmasf4_fpr): Ditto.
6808         (fnmssf4_fpr): Ditto.
6809         (fmadf4): Ditto.
6810         (fmadf4_fpr): Ditto.
6811         (fmsdf4_fpr): Ditto.
6812         (fnmadf4_fpr): Ditto.
6813         (fnmsdf4_fpr): Ditto.
6814
6815         * optabs.h (OTI_fma): Add fma optab.
6816         (fma_optab): Ditto.
6817
6818         * genopinit.c (optabs): Set fma optab.
6819
6820         * rtl.def (FMA): Add FMA rtl.
6821
6822         * tree.h (mode_has_fma): New function to return if MODE supports a
6823         fast multiply and add instruction.
6824         * builtins.c (mode_has_fma): Ditto.
6825
6826 2010-10-15  Jan Hubicka  <jh@suse.cz>
6827
6828         * lto-streamer-out.c (write_symbol): Use pointer set of seen
6829         objects instead of bitmap.
6830         (produce_symtab): Likewise; output defined symbols first.
6831
6832 2010-10-15  Jie Zhang  <jie@codesourcery.com>
6833
6834         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
6835         Option Summary and Index.
6836
6837 2010-10-15  Richard Guenther  <rguenther@suse.de>
6838
6839         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
6840         for automatic variables again.
6841
6842 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
6843
6844         * doc/extend.texi (Variable Length): Don't refer to VLAs not
6845         conforming to C99.
6846
6847 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
6848
6849         * config/rx/rx.c (rx_option_optimization): Change to
6850         rx_override_options_after_change.  Don't change
6851         flag_lto_compression_level.  Don't check for changes to whether
6852         FPU instructions can be used.  Check and set only
6853         flag_finite_math_only, not other fast-math flags.
6854         (rx_option_override): Call rx_override_options_after_change.
6855         (TARGET_OPTION_OPTIMIZATION): Remove.
6856         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
6857
6858 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
6859
6860         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
6861         disable section anchors for lang_hooks.name[4] != 'O'.
6862
6863 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
6864
6865         * config/frv/frv.c (frv_option_optimization,
6866         TARGET_OPTION_OPTIMIZATION): Remove.
6867         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
6868
6869 2010-10-15  Michael Matz  <matz@suse.de>
6870
6871         * cgraphunit.c (clone_of_p): Define unconditionally.
6872
6873 2010-10-15  Richard Guenther  <rguenther@suse.de>
6874
6875         PR lto/45957
6876         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
6877
6878 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
6879
6880         * ifcvt.c (find_active_insn_before): New function.
6881         (find_active_insn_after): New function.
6882         (cond_exec_process_if_block): Use new functions to replace
6883         prev_active_insn() and next_active_insn().
6884
6885 2010-10-14  Yao Qi  <yao@codesourcery.com>
6886
6887         PR target/45447
6888         * config/arm/arm.c (arm_build_builtin_va_list): Assign
6889         va_list_name to TYPE_STUB_DECL (va_list_type).
6890
6891 2010-10-14  Jan Hubicka  <jh@suse.cz>
6892
6893         PR middle-end/45621
6894         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
6895         redirected to clone, be happy.
6896         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
6897         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
6898         former_clone_of unconditionally.
6899
6900 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
6901
6902         Merge from FSF apple 'trunk' branch.
6903         2006 Fariborz Jahanian  <fjahanian@apple.com>
6904
6905         Radars 4436866, 4505126, 4506903, 4517826
6906         * c-parser.c (c_parser, objc_property_attr_context) New flag.
6907         (c_lex_one_token): Handle property attributes.
6908         (c_parser_external_declaration): Handle @property.
6909         (c_parser_declaration_or_fndef): Warn on invalid attributes before
6910         @alias, @class, @end and @property objc keywords.
6911         (c_parser_objc_methodprotolist): Handle @property.
6912         (c_parser_objc_property_attrlist): New.
6913         (c_parser_objc_at_property): New.
6914         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
6915         (build_modify_expr): Likewise.
6916
6917 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
6918
6919         PR tree-optimization/46008
6920         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
6921
6922 2010-10-14  Richard Guenther  <rguenther@suse.de>
6923
6924         PR tree-optimization/44913
6925         * tree-data-ref.c (disjoint_objects_p): Remove.
6926         (dr_may_alias_p): Simplify.  Only hand the base object to
6927         the alias-oracle.
6928         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
6929         some more trees, bail out instead of asserting.
6930         (ptr_derefs_may_alias_p): Likewise.  Export.
6931         (refs_may_alias_p_1): Handle STRING_CSTs.
6932         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
6933
6934 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
6935
6936         PR c/45969
6937         * c-typeck.c (build_binary_op): Don't try to compute a semantic
6938         type with excess precision for boolean operations.
6939
6940 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
6941             Basile Starynkevitch  <basile@starynkevitch.net>
6942
6943         * gengtype.c:  Include getopt.h and version.h.
6944
6945         (lang_bitmap, struct outf, outf_p)
6946         (get_output_file_with_visibility, oprintf): Definitions moved to
6947         gengtype.h
6948         (output_files, header_file, srcdir, srcdir_len, this_file)
6949         (do_dump): No more static variables.
6950         (do_debug): New.
6951         (dbgprint_count_type_at): Added new function.
6952         (gengtype_long_options): New.
6953         (print_usage, print_version, parse_program_options): New.
6954         (main): Call parse_program_options, and removed old option
6955         handling code.  Added some debug output.
6956
6957         * gengtype.h:  Updated copyright year.
6958         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
6959         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
6960         Moved from gengtype.c to here.
6961         (do_debug, read_state_filename, write_state_filename): New variables.
6962         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
6963
6964         * Makefile.in:
6965         (REVISION): Always defined.
6966         (version.o): Removed ifdef REVISION_c.
6967         (s-gtype): Pass arguments to build/gengtype program.
6968         (build/version.o): Added building rule.
6969         (build/gengtype$(build_exeext)): Added build/version.o.
6970
6971 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
6972
6973         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
6974         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
6975         __strong macros.
6976
6977 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
6978
6979         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
6980         may_trap_or_fault_p instead of may_trap_p predicate.
6981         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
6982         (substitute_placeholder_in_expr): Likewise.
6983         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
6984         flag on MEM_REF nodes.
6985         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
6986         flags on INDIRECT_REF nodes.
6987
6988 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
6989
6990         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
6991         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
6992         (arm*-*-eabi*) <tm_file>: Likewise.
6993         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
6994         (frv-*-*linux*) <tm_file>: Likewise.
6995         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
6996         and associated helper macros.
6997         * config/frv/frv-abi.h: Delete.
6998
6999 2010-10-14  Richard Guenther  <rguenther@suse.de>
7000
7001         PR lto/44561
7002         * tree.def (NULLPTR_TYPE): New tree code.
7003         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
7004         * dwarf2out.c (is_base_type): Likewise.
7005         (gen_type_die_with_usage): Likewise.
7006         * sdbout.c (plain_type_1): Likewise.
7007         * tree.c (build_int_cst_wide): Likewise.
7008         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
7009
7010 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
7011
7012         * params.c (params_finished): New.
7013         (add_params): Assert !params_finished.
7014         (finish_params): New.
7015         (set_param_value_internal): Take params and params_set
7016         parameters.  Assert params_finished.
7017         (set_param_value, maybe_set_param_value): Take params and
7018         params_set parameters.  Update calls to set_param_value_internal.
7019         (set_default_param_value): Assert !params_finished.  Don't use
7020         set_param_value_internal.
7021         (default_param_value, init_param_values): New.
7022         * params.h (struct param_info): Change value to default_value.
7023         Remove set.
7024         (set_param_value, maybe_set_param_value): Add params and
7025         params_set parameters.
7026         (PARAM_VALUE): Get parameters from global_options.
7027         (PARAM_SET_P): Remove.
7028         (finish_params, default_param_value, init_param_values): New.
7029         * common.opt (param_values): New Variable.
7030         * config/arm/arm.c (arm_option_override): Pass extra arguments to
7031         maybe_set_param_value.
7032         * config/i386/i386.c (ix86_option_override_internal): Pass extra
7033         arguments to maybe_set_param_value.
7034         * config/picochip/picochip.c (picochip_option_override): Pass
7035         extra arguments to maybe_set_param_value.
7036         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
7037         extra arguments to maybe_set_param_value.
7038         * config/s390/s390.c (s390_option_override): Use
7039         maybe_set_param_value instead of set_param_value.  Pass extra
7040         arguments to maybe_set_param_value.
7041         * config/sparc/sparc.c (sparc_option_override): Pass extra
7042         arguments to maybe_set_param_value.
7043         * config/spu/spu.c (spu_option_override): Pass extra arguments to
7044         maybe_set_param_value.
7045         * opts.c (handle_param): Take opts and opts_set parameters.
7046         Update call to set_param_value.
7047         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
7048         initial_loop_invariant_max_bbs_in_loop): Remove.
7049         (init_options_once): Don't set them.
7050         (init_options_struct): Initialize parameters structures.
7051         (default_options_optimization): Use default_param_value when
7052         restoring defaults.  Update calls to maybe_set_param_value.
7053         (finish_options): Update calls to maybe_set_param_value.
7054         (common_handle_option): Update calls to handle_param and
7055         set_param_value.
7056         * toplev.c (DEFPARAM): Update definition for changes to param_info.
7057         (general_init): Call finish_params.
7058
7059 2010-10-14  Nick Clifton  <nickc@redhat.com>
7060
7061         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
7062         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
7063         (FIRST_PSEUDO_REGISTER): Increase by one.
7064         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
7065         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
7066         (MODES_TIEABLE): Call mn10300_modes_tieable.
7067         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
7068         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
7069         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
7070         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
7071         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
7072         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
7073         (mn10300_cc_status_mdep): Delete.
7074         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
7075         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
7076         the combine-stack-adjust pass.
7077         (print_operand): Use the mode of the comparison operation to
7078         select the comparison suffix.
7079         (notice_update_cc): Delete.
7080         (mn10300_secondary_reload_class): Remove test for stack pointer
7081         based arithmetic.
7082         (output_tst): Rename to mn10300_output_cmp.
7083         (impossible_plus_operand): Move into predicates.md.
7084         (mn10300_legitimize_address): Make static.
7085         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
7086         constant pic operands.
7087         (mn10300_legitimate_constant_p): New function.
7088         (mn10300_case_values_threshold): Make static.
7089         (mn10300_hard_regno_mode_ok): New function.
7090         (mn10300_modes_tieable): New function.
7091         (mn10300_select_cc_mode): New function.
7092         * config/mn10300/predicates.md (impossible_plus_operand): Define.
7093         * config/mn10300/mn10300-protos.h: Tidy.
7094         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
7095         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
7096         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
7097         with clobbers or sets of CC_REG.
7098         (CC_REG): Define.
7099         (mov*): Remove use of CLR instruction.
7100         (cbranch_si4_<code>): New pattern/split.
7101         (integer_conditional_branch): New pattern.
7102         (cbranch_sf4_<code>): New pattern/split.
7103         (float_conditional_branch): New pattern.
7104         (casesi): Use addsi3 pattern instead of movsi pattern to add and
7105         move a value at the same time.
7106         (cc0 peepholes): Remove.
7107
7108 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7109
7110         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
7111         on RTX_FRAME_RELATED_P insns and the insn to which
7112         NOTE_INSN_EPILOGUE_BEG is attached.
7113         * sched-vis.c (print_value): Allow NULL value.
7114
7115 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7116
7117         PR rtl-optimization/45570
7118         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
7119         assert that we are pipelining outer loops.  Allow returning
7120         zero predecessors.
7121
7122 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7123
7124         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
7125         (tidy_control_flow): Tidy vertical space.
7126         (sel_remove_bb): New variable idx.  Use it to remember the basic
7127         block index before deleting the block.
7128         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
7129         (sel_merge_blocks): ... here.
7130         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
7131
7132 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
7133
7134         * cse.c (is_dead_reg): Change into inline function that is not
7135         called through for_each_rtx.
7136         (set_live_p): Adjust caller.
7137         (insn_live_p): Don't reset DEBUG_INSNs here.
7138         (struct dead_debug_insn_data): New data.
7139         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
7140         (delete_trivially_dead_insns): If there is just one setter for the
7141         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
7142         and add DEBUG_INSN for it right before the removed setter and
7143         use the DEBUG_EXPR instead of the dead pseudo.
7144
7145 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
7146
7147         * et-forest.c (et_nca): Return NULL immediately when
7148         the dominance forest has disjoint components.
7149
7150 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
7151
7152         * ira.c (setup_class_hard_regs): Fix typo in indexing
7153         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
7154
7155 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
7156
7157         * graph.c (inbb): New variable.
7158         (start_bb): Set inbb to 1 if output is inside of a building block.
7159         (end_bb): Check if output is inside of a building block.
7160
7161 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
7162
7163         PR rtl-optimization/45912
7164         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
7165         regno of registers instead of their index to compute the alignment.
7166
7167 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
7168
7169         * config/i386/i386.c (ix86_build_const_vector): Check vector
7170         mode instead of scalar mode.
7171         (ix86_build_signbit_mask): Likewise.
7172         (ix86_expand_fp_absneg_operator): Updated.
7173         (ix86_expand_copysign): Likewise.
7174         (ix86_expand_int_vcond): Likewise.
7175         (ix86_emit_swdivsf): Likewise.
7176         (ix86_sse_copysign_to_positive): Likewise.
7177         (ix86_expand_sse_fabs): Likewise.
7178         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
7179         * config/i386/sse.md (copysign<mode>3): Likewise.
7180         (sse2_cvtudq2ps): Likewise.
7181         (vec_unpacku_float_hi_v4si): Likewise.
7182         (vec_unpacku_float_lo_v4si): Likewise.
7183
7184         * config/i386/i386.c (ix86_builtins): Add
7185         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
7186         (bdesc_args): Likewise.
7187         (ix86_builtin_vectorized_function): Support
7188         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
7189         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
7190         and IX86_BUILTIN_CVTPS2DQ256.
7191         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
7192
7193         * config/i386/sse.md (STORENT_MODE): New.
7194         (VEC_FLOAT_MODE): Likewise.
7195         (VEC_EXTRACT_MODE): Likewise.
7196         (*avx_cvtdq2pd256_2): Likewise.
7197         (vec_pack_trunc_v4df): Likewise.
7198         (vec_interleave_highv8sf): Likewise.
7199         (vec_interleave_lowv8sf): Likewise.
7200         (storent<mode>): Macroized.
7201         (<code><mode>2: absneg): Likewise.
7202         (copysign<mode>3): Likewise.
7203         (vec_extract<mode>): Likewise.
7204
7205         PR target/44180
7206         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
7207         for V8SFmode.
7208
7209 2010-10-13  Richard Guenther  <rguenther@suse.de>
7210             H.J. Lu  <hongjiu.lu@intel.com>
7211
7212         * config/i386/sse.md (reduc_splus_v8sf): Add.
7213         (reduc_splus_v4df): Likewise.
7214         (vec_unpacks_hi_v8sf): Likewise.
7215         (vec_unpacks_lo_v8sf): Likewise.
7216         (*avx_cvtps2pd256_2): Likewise.
7217         (vec_unpacks_float_hi_v8si): Likewise.
7218         (vec_unpacks_float_lo_v8si): Likewise.
7219         (vec_interleave_highv4df): Likewise.
7220         (vec_interleave_lowv4df): Likewise.
7221
7222 2010-10-13  Richard Guenther  <rguenther@suse.de>
7223
7224         PR objc/45878
7225         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
7226         alone if there are no virtual methods.
7227
7228 2010-10-13  Richard Henderson  <rth@redhat.com>
7229
7230         * expr.c (build_personality_function): Take parameter LANG instead
7231         of parameter NAME.  Build the name based on the lang prefix and the
7232         unwind method in use.
7233         * tree.c (lhd_gcc_personality): Update call to
7234         build_personality_function.
7235
7236 2010-10-13  Richard Guenther  <rguenther@suse.de>
7237
7238         PR objc/45878
7239         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
7240
7241 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
7242
7243         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
7244         Canonicalize input operands of ASM_OPERANDS insns.
7245
7246 2010-10-13  Richard Guenther  <rguenther@suse.de>
7247
7248         PR tree-optimization/45788
7249         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
7250         EH update until fixup-cfg.
7251
7252 2010-10-13  Julian Brown  <julian@codesourcery.com>
7253
7254         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
7255         from CORE_REGS and GENERAL_REGS classes.
7256         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
7257         final constraint for register preferencing.
7258
7259 2010-10-13  Richard Guenther  <rguenther@suse.de>
7260
7261         PR tree-optimization/45970
7262         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
7263         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
7264         (stmt_kills_ref_p): Likewise.
7265         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
7266
7267 2010-10-13  Richard Guenther  <rguenther@suse.de>
7268
7269         PR tree-optimization/45982
7270         * tree-ssa-structalias.c (make_constraints_to): New function.
7271         (make_constraint_to): Implement in terms of make_constraints_to.
7272         (find_func_aliases): Properly make return values of pure/const
7273         functions escape if they assign to sth that is not a pointer.
7274
7275 2010-10-13  Richard Guenther  <rguenther@suse.de>
7276
7277         PR middle-end/45874
7278         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
7279         Fixup the CFG when EH was fixed up.
7280
7281 2010-10-13  Ira Rosen  <irar@il.ibm.com>
7282
7283         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
7284         Use operand's type for POINTER_PLUS_EXPR.
7285
7286 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
7287
7288         * c-parser.c (c_parser_for_statement): Initialize incr.
7289
7290 2010-10-12  Xinliang David Li  <davidxl@google.com>
7291
7292         PR tree-optimization/45972
7293         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
7294         with too many arguments.
7295
7296 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
7297
7298         PR fortran/45636
7299         * tree-ssa-forwprop.c: Include expr.h.
7300         (constant_pointer_difference, simplify_builtin_call): New functions.
7301         (tree_ssa_forward_propagate_single_use_vars): Call
7302         simplify_builtin_call on builtin calls.
7303
7304 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
7305
7306         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
7307         (*adddi3_extend_sp32): Likewise.
7308         (*subdi3_insn_sp32): Likewise.
7309         (*subdi3_extend_sp32): Likewise.
7310         (*negdi2_sp32): Use negative test for consistency.
7311
7312 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
7313
7314         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
7315         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7316         * config/fixed-bit.h: Likewise.
7317         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7318         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7319         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
7320         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
7321         (DF_SIZE): Likewise.
7322         * doc/tm.texi: Regenerate.
7323
7324 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
7325
7326         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
7327         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
7328         (*isel_reversed_unsigned_<mode>): New.
7329         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
7330         as valid comparisons and adjust operands and output appropriately.
7331         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
7332
7333 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
7334
7335         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
7336         DATA_ALIGNMENT and add COND parameter. Update comments above.
7337         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
7338         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
7339
7340 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
7341
7342         PR bootstrap/45958
7343         * exec-tool.in: Support '-plugin' as the second option to the linker.
7344
7345 2010-10-12  Richard Henderson  <rth@redhat.com>
7346
7347         PR middle-end/45962
7348         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
7349         (expand_stack_vars): Assert large base allocated when used.
7350
7351 2010-10-12  Richard Guenther  <rguenther@suse.de>
7352
7353         * tree-ssa-structalias.c (get_constraint_for_1): Constants
7354         only point to nonlocal, not anything.
7355
7356 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
7357
7358         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
7359         unwind info for exceptions.
7360
7361 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7362
7363         PR testsuite/45851
7364         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
7365         Document optional target selector.
7366
7367 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
7368
7369         * flag-types.h: New.
7370         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
7371         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
7372         options.h.
7373         (OPTIONS_H): Define.
7374         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
7375         of options.h.
7376         * configure.ac (tm_include_list): Include options.h not flags.h.
7377         * configure: Regenerate.
7378         * flags.h: Include flag-types.h.  Include options.h at top of file
7379         again.
7380         (enum debug_info_type, enum debug_info_level, enum
7381         debug_info_usage, enum symbol_visibility, struct visibility_flags,
7382         enum ira_algorithm, enum ira_region, enum excess_precision, enum
7383         graph_dump_types, enum stack_check_type,
7384         enum warn_strict_overflow_code): Move to flag-types.h
7385         * opth-gen.awk: Include flag-types.h in options.h.
7386
7387 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
7388
7389         * expr.c (store_expr): Share code for STRING_CST and
7390         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
7391         check if target is a MEM.
7392
7393         * rtl.h: Include hashtab.h.
7394         (iterative_hash_rtx): New prototype.
7395         * rtl.c (iterative_hash_rtx): New function.
7396         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
7397         (output_loc_list): Return immediately if emitted is set, set it.
7398         (hash_loc_operands, hash_locs, hash_loc_list,
7399         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
7400         optimize_location_lists_1, optimize_location_lists): New function.
7401         (dwarf2out_finish): Call optimize_location_lists.
7402         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
7403
7404 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7405
7406         PR testsuite/45974
7407         Revert:
7408         * Makefile.in ($(lang_checks_parallel))
7409         ($(lang_checks_parallelized)): Use single quotes for
7410         $(RUNTESTFLAGS), to allow passing quoted content.
7411
7412 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7413
7414         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
7415         actual_oldval.  Use __builtin_expect.
7416         (SUBWORD_VAL_CAS): Likewise.
7417
7418 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
7419
7420         * recog.c (nonmemory_operand): Call immediate_operand for
7421         CONSTANT_P operands.
7422
7423 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
7424
7425         * config/i386/i386.md (movmem<mode>): Macroize expander from
7426         movmem{si,di} using SWI48 mode iterator.
7427         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
7428         *strmovsi_rex_1 using P mode iterator.
7429         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
7430         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
7431         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
7432         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
7433         (setmem<mode>): Macroize expander from setmem{si,di} using
7434         SWI48 mode iterator.
7435         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
7436         *strsetsi_rex_1 using P mode iterator.
7437         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
7438         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
7439         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
7440         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
7441         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
7442         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
7443         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
7444         mode iterator.
7445         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
7446         *strlenqi_rex_1 using P mode iterator.
7447
7448 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
7449
7450         PR bootstrap/45445
7451         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
7452         static functions.
7453         (mark_ref_live, mark_ref_dead): Use them.
7454         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
7455         Save the original reg, and use the new functions.
7456         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
7457         changed.
7458         (check_and_make_def_conflict): Save the original reg.
7459
7460 2010-10-11  Martin Jambor  <mjambor@suse.cz>
7461
7462         PR middle-end/45699
7463         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
7464         thunks.
7465
7466 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7467
7468         * Makefile.in ($(lang_checks_parallel))
7469         ($(lang_checks_parallelized)): Use single quotes for
7470         $(RUNTESTFLAGS), to allow passing quoted content.
7471
7472         PR bootstrap/35855
7473         * opt-functions.awk (BEGIN): New section.
7474         (lower, upper, digit, alnum): New variables.
7475         (static_var, opt_sanitized_name): Use alnum instead of character
7476         classes, for non-C locale.
7477         * optc-gen.awk: Likewise.
7478         * opth-gen.awk: Likewise.
7479
7480 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
7481
7482         * target.def (preferred_reload_class): New hook.
7483         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
7484         * doc/tm.texi: Regenerate.
7485         * targhooks.c (default_preferred_reload_class): New function.
7486         * targhooks.h (default_preferred_reload_class): Declare.
7487         * reload.c (find_dummy_reload): Change preferred_class variable type
7488         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
7489         target hook.
7490         (find_reloads): Change goal_alternative array type from int to
7491         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
7492         (push_reload, find_reloads_address_part): Use
7493         TARGET_PREFERRED_RELOAD_CLASS target hook.
7494         * reload1.c (emit_input_reload_insns): Ditto.
7495         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
7496         hook. Change rclass argument and secondary_class variable types from
7497         'enum reg_class' to reg_class_t.
7498
7499         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
7500         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
7501         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
7502         Change regclass argument and result types from enum reg_class to
7503         reg_class_t.
7504         (TARGET_PREFERRED_RELOAD_CLASS): Define.
7505
7506 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
7507
7508         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
7509         in masking operations.
7510         (simplify_const_unary_operation): Likewise.
7511         (simplify_binary_operation_1): Likewise.
7512         (simplify_const_binary_operation): Likewise.
7513         (simplify_const_relational_operation): Likewise.
7514         (simplify_ternary_operation): Likewise.
7515         (simplify_immed_subreg): Likewise.
7516
7517 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7518
7519         PR middle-end/45862
7520         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
7521         (TARGET_SUPPORTS_WEAK): New.
7522         * doc/tm.texi: Regenerate.
7523         * defaults.h (SUPPORTS_WEAK): Update comment.
7524         (TARGET_SUPPORTS_WEAK): New.
7525         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
7526         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
7527         SUPPORTS_WEAK.
7528         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
7529         make_decl_one_only): Likewise.
7530         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
7531         TARGET_SUPPORTS_WEAK.
7532         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
7533         instead of SUPPORTS_WEAK.
7534
7535 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7536
7537         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
7538
7539 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
7540
7541         * vec.h (VEC_qsort): Define.
7542         * dbxout.c (output_used_types): Use it.
7543         * df-scan.c (df_sort_and_compress_refs): Likewise.
7544         (df_sort_and_compress_mws): Likewise.
7545         * genautomata.c (uniq_sort_alt_states): Likewise.
7546         (evaluate_equiv_classes): Likewise.
7547         (output_trans_table): Likewise.
7548         (output_state): Likewise.
7549         * gimplify.c (compare_case_labels): Likewise.
7550         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
7551         * ipa.c (build_cdtor_fns): Likewise.
7552         * lto.c (lto_wpa_write_files): Likewise.
7553         * sel-sched.c (fill_vec_av_set): Likewise.
7554         * tree-predcom.c (determine_roots_comp): Likewise.
7555         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
7556         (splice_param_accesses): Likewise.
7557         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
7558         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
7559         (reassociate_bb): Likewise.
7560         * tree-ssa-sccvn.c (sort_scc): Likewise.
7561         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
7562
7563 2010-10-11  Ian Lance Taylor  <iant@google.com>
7564
7565         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
7566         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
7567         TREE_THIS_NOTRAP when appropriate.
7568         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
7569         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
7570         newly created MEM_REF.
7571
7572 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
7573
7574         Nathan Froyds patch to hooks FUNCTION_ARG etc.
7575         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
7576         (picochip_incoming_function_arg): Delete.
7577         (picochip_arg_advance): Delete.
7578         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
7579         (FUNCTION_INCOMING_ARG): Delete.
7580         (FUNCTION_ARG_ADVANCE): Delete.
7581         * config/picochip/picochip.c (picochip_function_arg): Take a
7582         const_tree and a bool.
7583         (picochip_incoming_function_arg): Likewise.
7584         (picochip_arg_advance): Likewise.
7585         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7586         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7587
7588 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7589
7590         PR middle-end/45955
7591         * ipa.c (build_cdtor): Delete endless loop.
7592
7593 2010-10-07  Andi Kleen  <ak@linux.intel.com>
7594
7595         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
7596         checksum-options.
7597         (checksum-options): Add.
7598         (cc1-dummy): Remove.
7599         (cc1-checksum): Change to run checksum over object files
7600         and options only.
7601         * dummy-checksum.c: Remove.
7602         * genchecksum.c: Update copyright.
7603         (usage): Allow multiple arguments.
7604         (BLOCKSIZE): Add.
7605         (dosum): Change for incremental checksum. Remove C output.
7606         (main): Iterate over all argument files. Add C output.
7607
7608 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
7609
7610         * params.c (set_param_value_internal): New.
7611         (set_param_value): Use set_param_value_internal.
7612         (maybe_set_param_value, set_default_param_value): New.
7613         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
7614         (maybe_set_param_value, set_default_param_value): Declare.
7615         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
7616         * config/i386/i386.c (ix86_option_override_internal): Use
7617         maybe_set_param_value.
7618         * config/ia64/ia64.c (ia64_option_default_params,
7619         TARGET_OPTION_DEFAULT_PARAMS): New.
7620         (ia64_option_optimization): Move some code to
7621         ia64_option_default_params.
7622         * config/picochip/picochip.c (picochip_option_override): Use
7623         maybe_set_param_value.
7624         * config/rs6000/rs6000.c (rs6000_option_default_params,
7625         TARGET_OPTION_DEFAULT_PARAMS): New.
7626         (rs6000_option_override_internal): Use maybe_set_param_value.
7627         (rs6000_option_optimization): Move some code to
7628         rs6000_option_default_params.
7629         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
7630         * config/sh/sh.c (sh_option_default_params,
7631         TARGET_OPTION_DEFAULT_PARAMS): New.
7632         (sh_option_optimization): Move some code to sh_option_default_params.
7633         * config/sparc/sparc.c (sparc_option_override): Use
7634         maybe_set_param_value.
7635         * config/spu/spu.c (spu_option_default_params,
7636         TARGET_OPTION_DEFAULT_PARAMS): New.
7637         (spu_option_optimization): Move some code to spu_option_default_params.
7638         (spu_option_override): Use maybe_set_param_value.
7639         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
7640         * doc/tm.texi: Regenerate.
7641         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
7642         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
7643         compiler_params.
7644         (default_options_optimization): Use maybe_set_param_value.
7645         (finish_options): Use maybe_set_param_value.
7646         * target.def (target_option.default_params): New hook.
7647         * toplev.c (general_init): Call targetm.target_option.default_params.
7648
7649 2010-10-11  Ira Rosen  <irar@il.ibm.com>
7650
7651         PR tree-optimization/45902
7652         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
7653         vector type for constants, unless it's a pointer.
7654
7655 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7656
7657         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
7658
7659 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
7660
7661         PR target/45870
7662         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
7663         (ix86_delegitimize_address): Use it.
7664
7665 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
7666
7667         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
7668
7669 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
7670
7671         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
7672         to cum struct in the call to function_arg_advance.
7673         (alpha_function_arg_advance): Mark named as unused.
7674
7675 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
7676
7677         * config/mips/mips.c (mips_handle_option): Make "value" with
7678         ATTRIBUTE_UNUSED.
7679
7680 2010-10-09  Richard Henderson  <rth@redhat.com>
7681
7682         PR rtl-opt/33721
7683         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
7684         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
7685         required_align, tidy the code a bit.  Emit split_stack code in the
7686         right place.  Mark the return value with the alignment properly.
7687         * expr.h (allocate_dynamic_stack_space): Update decl.
7688         * builtins.c (expand_builtin_apply): Update call to
7689         allocate_dynamic_stack_space.
7690         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
7691         * calls.c (initialize_argument_information): Update call to
7692         allocate_dynamic_stack_space.
7693         (expand_call): Likewise.
7694
7695         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
7696         Don't update_stack_alignment here.
7697         (alloc_stack_frame_space): Make ALIGN unsigned.
7698         (stack_var_cmp): Sort by alignment too.
7699         (partition_stack_vars): Don't merge large and small alignment vars.
7700         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
7701         Take care when BASE is not virtual_stack_vars_rtx.
7702         (expand_stack_vars): Allocate dynamic stack space for large
7703         alignment variables.
7704         (expand_one_stack_var): Update all to expand_one_stack_var_at.
7705         (defer_stack_allocation): True for large alignment vars.
7706         (update_stack_alignment): Merge into ...
7707         (expand_one_var): ... here.
7708         (gimple_expand_cfg): Place code from expand_stack_vars.
7709
7710 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7711
7712         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7713         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
7714         (pdp11_function_arg_advance): New function.
7715         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7716
7717 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7718
7719         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
7720         * libgcc2.c: Likewise.
7721
7722 2010-10-09  Richard Guenther  <rguenther@suse.de>
7723
7724         PR lto/45956
7725         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
7726         Properly check if a decl is an automatic var.
7727
7728 2010-10-09  Richard Guenther  <rguenther@suse.de>
7729
7730         PR lto/45947
7731         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
7732
7733 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7734
7735         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
7736         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7737         * config/mmix/mmix.c (mmix_function_arg): Rename to...
7738         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
7739         bool arguments.
7740         (mmix_function_arg): New function.
7741         (mmix_function_incoming_arg): New function.
7742         (mmix_function_arg_advance): New function.
7743         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7744         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7745
7746 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7747
7748         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7749         * config/vax/vax.c (vax_function_arg): New function.
7750         (vax_function_arg_advance): New function.
7751         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7752
7753 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7754
7755         * config/pa/pa-protos.h (function_arg): Delete.
7756         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7757         * config/pa/pa.c (function_arg): Rename to...
7758         (pa_function_arg): ...this.  Make static.  Take a const_tree and
7759         a bool.
7760         (pa_function_arg_advance): New function.
7761         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7762
7763 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7764
7765         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7766         * config/m68k/m68k.c (m68k_function_arg): New function.
7767         (m68k_function_arg_advance): New function.
7768         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7769
7770 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7771
7772         * config/avr/avr-protos.h (function_arg): Delete.
7773         (function_arg_advance): Delete.
7774         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7775         * config/avr/avr.c (function_arg): Rename to...
7776         (avr_function_arg): ...this.  Make static.  Take a const_tree and
7777         a bool.
7778         (function_arg_advance): Rename to...
7779         (avr_function_arg_advance): ...this.  Make static.  Take a
7780         const_tree and a bool.
7781         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7782
7783 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7784
7785         * config/alpha/alpha-protos.h (function_arg): Delete.
7786         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7787         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
7788         * config/alpha/alpha.c (function_arg): Rename to...
7789         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
7790         a bool.  Delete TARGET_ABI_UNICOSMK code.
7791         (alpha_function_arg_advance): New function.
7792         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7793
7794 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7795
7796         * config/mep/mep-protos.h (mep_function_arg): Delete.
7797         (mep_function_arg_advance): Delete.
7798         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7799         * config/mep/mep.c (mep_function_arg): Make static.  Take a
7800         const_tree and a bool.
7801         (mep_function_arg_advance): Likewise.
7802         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7803
7804 2010-10-09  Richard Guenther  <rguenther@suse.de>
7805
7806         PR tree-optimization/45945
7807         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
7808
7809 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
7810
7811         PR tree-optimization/45612
7812         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
7813         Test LABEL_DECLs as well.  Fix formatting issues.
7814         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
7815         whose label is present in NON_SSA_VARS.
7816         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
7817         as well.  Fix formatting issues.
7818         (visit_bb): Fix typos and formatting issue.
7819
7820 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7821
7822         PR tree-optimization/45950
7823         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
7824         before initializing vno->op.
7825
7826 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
7827
7828         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
7829         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
7830
7831 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
7832
7833         PR target/45913
7834         * config/i386/i386.c (ix86_binary_operator_ok): Support
7835         "andhi/andsi/anddi" as a zero-extending move.
7836
7837 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7838
7839         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
7840         into a temporary array.
7841
7842 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
7843
7844         PR tree-optimization/45903
7845         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
7846         of {A,L}SHIFTRT of MEM.
7847
7848 2010-10-08  Richard Guenther  <rguenther@suse.de>
7849
7850         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
7851         Re-construct BLOCK_VARS.
7852         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
7853         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
7854         * tree.c (free_lang_data_in_block): Remove.
7855         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
7856         Do not touch the BLOCK tree.
7857         * expr.c (expand_expr_real_1): Allow externals.
7858
7859 2010-10-08  Richard Guenther  <rguenther@suse.de>
7860
7861         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
7862         Do not output BLOCK_SUBBLOCKS.
7863         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
7864         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
7865         Re-construct BLOCK_SUBBLOCKS of parent block.
7866         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
7867         for BINFO_BASE_ACCESSES.
7868
7869 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
7870
7871         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
7872         (TREE_H): Include $(FLAGS_H) instead of options.h.
7873         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
7874         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
7875         * common.opt (flag_complex_method, flag_evaluation_order,
7876         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
7877         Variable declarations.
7878         * configure.ac (tm_include_list): Include flags.h instead of options.h.
7879         * configure: Regenerate.
7880         * flags.h: Condition out contents for target libraries.  Include
7881         options.h at end of file.
7882         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
7883         flag_evaluation_order, flag_warn_unused_result): Remove.
7884         * gcc.c (main): Intialize global_options with global_options_init.
7885         * langhooks-def.h (lhd_init_options_struct): Declare.
7886         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
7887         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
7888         * langhooks.c (lhd_init_options_struct): New.
7889         * langhooks.h (struct lang_hooks): Add init_options_struct.
7890         Update comment on init_options.
7891         * optc-gen.awk: Generate initializer for global_options_init, not
7892         global_options.
7893         * opth-gen.awk: Condition out structure declarations for target
7894         libraries.  Declare global_options_init.
7895         * opts-common.c: Include flags.h instead of options.h.
7896         * opts.c (flag_warn_unused_result): Remove.
7897         (read_cmdline_options): Take gcc_options parameters.  Pass them to
7898         read_cmdline_option.
7899         (initial_lang_mask, initial_min_crossjump_insns,
7900         initial_max_fields_for_field_sensitive,
7901         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
7902         (init_options_once): New.  Split out of decode_options.
7903         (init_options_struct): New.  Split out of decode_options.
7904         (decode_cmdline_options_to_array_default_mask): New.
7905         (default_options_optimization): New.  Split out of decode_options.
7906         (decode_options): Move most code to other functions.  Update call
7907         to read_cmdline_options.
7908         (finish_options): New.  Split out of decode_options.
7909         * opts.h (decode_options): Add gcc_options parameters.
7910         (init_options_once, init_options_struct,
7911         decode_cmdline_options_to_array_default_mask): New.
7912         * toplev.c (flag_complex_method, flag_ira_algorithm,
7913         flag_ira_region, flag_evaluation_order): Remove.
7914         (general_init): Use global_options_init for initial flag values
7915         for global_dc.
7916         (toplev_main): Call init_options_once, init_options_struct,
7917         lang_hooks.init_options_struct,
7918         decode_cmdline_options_to_array_default_mask and
7919         lang_hooks.init_option before decode_options.  Update arguments to
7920         decode_options.
7921         * tree.h: Include flags.h instead of options.h.
7922
7923 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7924
7925         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
7926
7927 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7928
7929         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
7930         Delete.
7931         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
7932         (FUNCTION_INCOMING_ARG): Delete.
7933         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
7934         (function_arg_slotno): Likewise.  Take bool arguments.
7935         (sparc_arg_partial_bytes): Update call to it.
7936         (function_arg): Rename to...
7937         (sparc_function_arg_1): ...this.  Take bool arguments.
7938         (sparc_function_arg, sparc_function_incoming_arg): New functions.
7939         (function_arg_advance): Rename to...
7940         (sparc_function_arg_advance): ...this.  Take bool argument.
7941         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
7942         (TARGET_FUNCTION_INCOMING_ARG): Define.
7943
7944 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7945
7946         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
7947         Delete.
7948         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7949         * config/bfin/bfin.c (function_arg_advance): Rename to...
7950         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
7951         and bool arguments.
7952         (function_arg): Rename to...
7953         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
7954         arguments.
7955         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7956
7957 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7958
7959         * config/score/score-protos.h (score_function_arg): Delete.
7960         (score_function_arg_advance): Delete.
7961         * config/score/score3.h (score3_function_arg_advance): Take a
7962         const_tree and a bool.
7963         (score3_function_arg): Likewise.
7964         * config/score/score7.h (score7_function_arg_advance): Likewise.
7965         (score7_function_arg): Likewise.
7966         * config/score/score3.c (score3_classify_arg): Likewise.
7967         (score3_function_arg_advance, score3_function_arg): Likewise.
7968         * config/score/score7.c (score7_classify_arg): Likewise.
7969         (score7_function_arg_advance, score7_function_arg): Likewise.
7970         * config/score/score.c (score_function_arg_advance): Likewise.
7971         (score_function_arg): Likewise.  De-const-ify `cum' argument.
7972         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7973
7974 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7975
7976         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
7977         (s390_function_arg): Delete.
7978         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7979         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
7980         (s390_function_arg_integer): Likewise.
7981         (s390_function_arg_advance): Make static.  Take a const_tree and
7982         a bool.
7983         (s390_function_arg): Likewise.
7984         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7985
7986 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7987
7988         * config/spu/spu-protos.h (spu_function_arg): Delete.
7989         * config/spu/spu.h (FUNCTION_ARG): Delete.
7990         (FUNCTION_ARG_ADVANCE): Move code to ...
7991         * config/spu/spu.c (spu_function_arg_advance): New function.
7992         (spu_function_arg): Make static.  Take a const_tree and a bool.
7993         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
7994         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7995
7996 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
7997
7998         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
7999
8000 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8001
8002         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
8003         (init_vn_nary_op_from_op): New function.
8004         (init_vn_nary_op_from_stmt): New function.
8005         (vn_nary_op_lookup_1): New function.
8006         (sizeof_vn_nary_op): New function.
8007         (alloc_vn_nary_op_noinit): New function.
8008         (alloc_vn_nary_op): New function.
8009         (vn_nary_op_insert_into): New function.
8010         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
8011         (vn_nary_op_lookup): Likewise.
8012         (vn_nary_op_lookup_stmt): Likewise.
8013         (vn_nary_op_insert_pieces): Likewise.
8014         (vn_nary_op_insert): Likewise.
8015         (vn_nary_op_insert_stmt): Likewise.
8016         (copy_nary): Likewise.
8017         (set_value_id_for_result): New function.
8018         (set_hashtable_value_ids): Call it.
8019
8020 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8021
8022         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8023         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
8024
8025 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8026
8027         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
8028         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8029
8030 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
8031
8032         PR debug/45656
8033         * cse.c (cse_extended_basic_block): Preserve cc0 info across
8034         debug isnsn.  Skip them when searching for cc0 setter.
8035         (set_live_p): Skip debug insns when searching for cc0 user.
8036
8037 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
8038
8039         PR debug/45673
8040         PR debug/45604
8041         PR debug/45419
8042         PR debug/45408
8043         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
8044         type of MEM_REFs to INTEGER_CSTs.
8045
8046 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
8047
8048         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
8049         m68hc11_print_operand_address.
8050
8051 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
8052
8053         * builtins.c (rewrite_call_expr): Move code to...
8054         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
8055         (rewrite_call_expr_array): New function.
8056         (fold_builtin_sprintf_chk_1): New function.
8057         (fold_builtin_sprintf_chk): Call it.
8058         (gimple_fold_builtin_sprintf_chk): Likewise.
8059         (fold_builtin_snprintf_chk_1): New function.
8060         (fold_builtin_snprintf_chk): Call it.
8061         (gimple_fold_builtin_snprintf_chk): Likewise.
8062         (gimple_rewrite_call_expr): Delete.
8063
8064 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8065
8066         * config.host: Update copyright year.
8067
8068 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8069
8070         * config.host (host_lto_plugin_soname): New shell variable.
8071         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
8072         * config.in: Regenerate.
8073         * configure: Regenerate.
8074         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
8075         LTO plugin shared library.
8076
8077 2010-10-07  Richard Henderson  <rth@redhat.com>
8078
8079         * target.h (enum unwind_info_type): Move ...
8080         * coretypes.h: ... here.
8081
8082 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
8083
8084         * doc/objc.texi (Fast enumeration protocol): Mention that
8085         'unsigned int' can also be used instead of 'unsigned long' in
8086         countByEnumeratingWithState:objects:count:.
8087
8088 2010-10-07  Martin Jambor  <mjambor@suse.cz>
8089
8090         * tree-sra.c (struct access): New field grp_assignment_write.
8091         (dump_access): Dump grp_assignment_write.
8092         (build_accesses_from_assign): Set grp_assignment_write.
8093         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
8094         (mark_read_status): Renamed to mark_rw_status, individual values
8095         renamed too.
8096         (analyze_access_subtree): Changed type of mark_write to
8097         mark_read_status.  Fixed propagating of mark_read and
8098         mark_write.  Changed benefit estimate.  Updated comment.
8099
8100 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
8101
8102         PR Tree-Vect/45847
8103         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
8104         check for vectype_out returned by get_vectype_for_scalar_type().
8105
8106 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
8107
8108         PR target/45805
8109         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
8110         constraint, add register specifier in instruction template.
8111         (neon_vec_pack_trunc_<mode>): Likewise.
8112         (neon_vec_<US>mult_<mode>): Add register specifier to
8113         instruction template.
8114
8115 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8116
8117         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
8118         cygwin2.o.
8119         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
8120         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
8121         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
8122         (cygwin2.o): Likewise.
8123         * config/i386/cygwin1.c: Delete file.
8124         * config/i386/cygwin2.c: Likewise.
8125         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
8126         make all {%!mno-cygwin} ones unconditional.
8127         (STARTFILE_SPEC): Likewise.
8128         (REAL_LIBGCC_SPEC): Likewise.
8129         (LIB_SPEC): Likewise.
8130         (CXX_WRAP_SPEC): Likewise.
8131         (LINK_SPEC): Likewise.
8132         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
8133         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
8134         (cygwin_gplusplus_include_dir): Delete now-unused array.
8135         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
8136         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
8137         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
8138         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
8139         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
8140         (cygwin_local_include_dir): Delete now-unused array.
8141         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
8142         (cygwin_cross_include_dir): Delete now-unused array.
8143         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
8144         (cygwin_tool_include_dir): Delete now-unused array.
8145         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
8146         (cygwin_standard_include_dir): Delete now-unused array.
8147         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
8148         (GEN_CVT_ARRAY): Delete now-unused macro definition.
8149         (cvt_to_mingw): Delete now-unused array.
8150         (mingw_scan): Remove prototype of deleted function.
8151         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
8152         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
8153         * doc/invoke.texi (-mcygwin): Don't document removed option.
8154         (-mno-cygwin): Likewise.
8155
8156 2010-10-07  Richard Guenther  <rguenther@suse.de>
8157
8158         * machmode.h (mode_for_vector): Declare.
8159         * stor-layout.c (mode_for_vector): New function, split out from ...
8160         (layout_type): ... here.
8161         * tree-vectorizer.h (current_vector_size): Declare.
8162         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
8163         mask vector type is available.
8164         (get_vectype_for_scalar_type): Rename to ...
8165         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
8166         size argument.
8167         (get_vectype_for_scalar_type): New wrapper around
8168         get_vectype_for_scalar_type_and_size using current_vector_size.
8169         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
8170         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
8171         of vect_analyze_loop here.
8172         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
8173         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
8174         to autodetect.
8175         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
8176         V8SF to V8SI conversion builtin.
8177
8178 2010-10-07  Richard Guenther  <rguenther@suse.de>
8179
8180         * target.def (autovectorize_vector_sizes): New target hook.
8181         * targhooks.c (default_autovectorize_vector_sizes): New function.
8182         * targhooks.h (default_autovectorize_vector_sizes): Declare.
8183         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
8184         Document.
8185         * doc/tm.texi: Update.
8186         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
8187         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8188
8189 2010-10-07  Richard Guenther  <rguenther@suse.de>
8190
8191         * target.def (units_per_simd_word): Rename to ...
8192         (preferred_simd_mode): ... this.  Return mode instead of size.
8193         * targhooks.c (default_units_per_simd_word): Rename to ...
8194         (default_preferred_simd_mode): ... this.  Return word_mode.
8195         * targhooks.h (default_preferred_simd_mode): Declare.
8196         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
8197         (arm_preferred_simd_mode): ... this.  Re-implement.
8198         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
8199         (ix86_preferred_simd_mode): ... this.  Re-implement.
8200         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
8201         (sparc_preferred_simd_mode): ... this.  Re-implement.
8202         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
8203         (mips_preferred_simd_mode): ... this.  Re-implement.
8204         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
8205         (rs6000_preferred_simd_mode): ... this.  Re-implement.
8206         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
8207         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
8208         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
8209         * doc/tm.texi: Update.
8210
8211 2010-10-07  Richard Guenther  <rguenther@suse.de>
8212
8213         PR middle-end/45869
8214         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
8215         of pointers.
8216
8217 2010-10-07  Alan Modra  <amodra@gmail.com>
8218
8219         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
8220         rather than sign extension by hand.
8221
8222 2010-10-07  Jan Hubicka  <jh@suse.cz>
8223
8224         PR middle-end/45926
8225         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
8226
8227 2010-10-07  Richard Guenther  <rguenther@suse.de>
8228
8229         PR bootstrap/45914
8230         * configure.ac: Fix typo.
8231         * configure: Regenerated.
8232
8233 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8234
8235         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
8236         define_builtin_std where it's unnecessary.
8237         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
8238
8239 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
8240
8241         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
8242         * doc/tm.texi.in: Regenerate.
8243         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
8244         * targhooks.c (default_class_likely_spilled_p): Don't use the
8245         CLASS_LIKELY_SPILLED_P macro.
8246
8247         * config/arm/arm.md: Update comment.
8248
8249 2010-10-06  Jan Hubicka  <jh@suse.cz>
8250
8251         * ipa.c (cgraph_remove_unreachable_nodes): External references can
8252         always be removed.
8253         (cgraph_externally_visible_p): We can not bring local comdats that
8254         are known to linker; fix handling of internal visibility.
8255         (function_and_variable_visibility): Likewise.
8256
8257 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
8258
8259         PR rtl-optimization/45394
8260         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
8261         (struct rtx_subst_pair): Remove AFTER field.
8262         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
8263         (propagate_for_debug): Remove MOVE parameter and adjust.
8264         (try_combine): In the special case where I2 is a PARALLEL, combine only
8265         destinations of SETs and set I2SRC to the I2 source.
8266         Adjust calls to propagate_for_debug throughout.
8267         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
8268         insns.
8269
8270 2010-10-06  Olivier Hainque  <hainque@adacore.com>
8271
8272         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
8273         switch on insn codes as sequence of ifs.
8274
8275 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
8276
8277         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
8278         be UI_NONE for picochip.
8279         (picochip_option_override): Do not disable exception flags.
8280         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
8281         Declare.
8282
8283 2010-10-06  Richard Guenther  <rguenther@suse.de>
8284
8285         * Makefile.in (regmove.o): Depend on $(TARGET_H).
8286
8287 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
8288
8289         Implemented fast enumeration for Objective-C.
8290         * c-parser.c (objc_could_be_foreach_context): New.
8291         (c_lex_one_token): Recognize RID_IN keyword in a potential
8292         Objective-C foreach context.
8293         (c_parser_declaration_or_fndef): Added parameter.  Accept
8294         Objective-C RID_IN keyword as terminating a declaration; in that
8295         case, return the declaration in the new parameter.
8296         (c_parser_extenral_declaration): Updated calls to
8297         c_parser_declaration_or_fndef.
8298         (c_parser_declaration_or_fndef): Same change.
8299         (c_parser_compound_statement_nostart): Same change.
8300         (c_parser_label): Same change.
8301         (c_parser_objc_methodprotolist): Same change.
8302         (c_parser_omp_for_loop): Same change.
8303         (c_parser_for_statement): Detect and parse Objective-C foreach
8304         statements.
8305         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
8306         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
8307         fast enumeration parsing code to turn off the c99 error but still
8308         perform checks on the loop declarations.
8309         * c-tree.h (check_for_loop_decls): Updated declaration.
8310         * doc/objc.texi: Document fast enumeration.
8311
8312 2010-10-06  Nick Clifton  <nickc@redhat.com>
8313
8314         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
8315         (MDR_REGNUM): Define.
8316         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
8317         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
8318         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
8319         (REGISTER_NAMES): Add MDR.
8320         (DWARF2_DEBUGGING_INFO): Define to 1.
8321         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8322         (F): New function.  Sets RTX_FRAME_RELATED_P.
8323         (mn10300_gen_multiple_store): Use F.
8324         (expand_prologue): Use F.  Use gen_movsf() to push floating
8325         point registers.
8326         (expand_epilogue): Use gen_movsf() to pop floating point registers.
8327         (mn10300_option_override): Disable combine stack adjust pass.
8328
8329 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
8330
8331         PR target/45901
8332         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
8333         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
8334
8335 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
8336
8337         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
8338         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
8339         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
8340         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
8341         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
8342         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
8343         BUILT_IN_TOUPPER): Mark as leaf.
8344
8345         PR middle-end/45838
8346         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
8347         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
8348         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
8349         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
8350         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
8351         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
8352         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
8353
8354 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
8355
8356         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
8357         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
8358         (m68hc11_class_likely_spilled_p): New function.
8359
8360 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
8361
8362         * c-parser.c (c_parser_objc_method_definition): Updated comment.
8363
8364 2010-10-05  Jan Hubicka  <jh@suse.cz>
8365
8366         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
8367         Document.
8368         * opts.c (decode_options): Handle lto partitions.
8369         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
8370         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
8371
8372 2010-10-05  Jan Hubicka  <jh@suse.cz>
8373
8374         * cgraphunit.c (assemble_function): Output thunks and aliases before
8375         the function itself.
8376
8377 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
8378
8379         * config/picochip/picochip.c (picochip_option_override): Disable
8380         exception flags for picochip.
8381
8382 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
8383
8384         * opts-common.c (handle_option, handle_generated_option,
8385         read_cmdline_option, set_option): Add diagnostic_context
8386         parameter.  Update calls among these functions.
8387         (set_option): Don't use global_dc.
8388         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
8389         (decode_options): Pass global_dc to enable_warning_as_error.
8390         (common_handle_option): Pass global_dc to enable_warning_as_error.
8391         (enable_warning_as_error): Add diagnostic_context parameter.
8392         Document parameters.  Don't use global_dc.  Pass
8393         diagnostic_context parameter to handle_generated_option.
8394         * opts.h (set_option, handle_option, handle_generated_option,
8395         read_cmdline_option, enable_warning_as_error): Add
8396         diagnostic_context parameter.
8397         * Makefile.in (lto-opts.o): Update dependencies.
8398         * coretypes.h (struct diagnostic_context, diagnostic_context):
8399         Declare here.
8400         * diagnostic.h (diagnostic_context): Don't declare typedef here.
8401         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
8402         * langhooks-def.h (struct diagnostic_context): Don't declare here.
8403         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
8404         using diagnostic_context typedef.
8405         * langhooks.c (lhd_initialize_diagnostics): Declare using
8406         diagnostic_context typedef.
8407         * langhooks.h (struct diagnostic_context): Don't declare here.
8408         (initialize_diagnostics, print_error_function): Declare using
8409         diagnostic_context typedef.
8410         * lto-opts.c: Include diagnostic.h.
8411         (lto_reissue_options): Pass global_dc to set_option.  Pass
8412         DK_UNSPECIFIED not 0.
8413         * plugin.c (plugins_internal_error_function): Declare using
8414         diagnostic_context typedef.
8415         * plugin.h (struct diagnostic_context): Don't declare here.
8416         (plugins_internal_error_function): Declare using
8417         diagnostic_context typedef.
8418
8419 2010-10-05  Olivier Hainque  <hainque@adacore.com>
8420             Nicolas Roche  <roche@adacore.com>
8421
8422         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
8423         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
8424
8425 2010-10-05  Ira Rosen  <irar@il.ibm.com>
8426
8427         PR tree-optimization/45752
8428         * tree-vect-slp.c (vect_get_mask_element): Remove static
8429         variables, make them function arguments.
8430         (vect_transform_slp_perm_load): Pass new arguments to
8431         vect_get_mask_element.
8432
8433 2010-10-05  Richard Guenther  <rguenther@suse.de>
8434
8435         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
8436         (gimple_mod_pow2): Likewise.
8437         (gimple_mod_subtract): Likewise.
8438         (gimple_ic): Likewise.
8439         (gimple_stringop_fixed_value): Likewise.
8440         * tree-profile.c (tree_init_edge_profiler): Mark profile
8441         functions nothrow and leaf.
8442         (add_abnormal_goto_call_edges): Remove.
8443         (tree_gen_edge_profiler): Work on SSA form.
8444         (tree_gen_ic_profiler): Likewise.  Simplify.
8445         (do_tree_profiling): Update SSA form.
8446         (pass_tree_profile): Remove.
8447         (do_tree_profiling): Likewise.
8448         (gate_tree_profile_ipa): New function.
8449         (pass_ipa_tree_profile): New.
8450         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
8451         state of instrumented functions.
8452         * passes.c (init_optimization_passes): Remove early non-SSA
8453         inlining.  Move profiling after early optimizations.
8454         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
8455         (pass_ipa_early_inline): Likewise.
8456         * tree-pass.h (pass_ipa_early_inline): Remove.
8457         (pass_tree_profile): Likewise.
8458         (pass_ipa_tree_profile): Declare.
8459
8460 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8461             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
8462
8463         * config/s390/s390.c (z196_cost): New.
8464         (s390_handle_arch_option): Add -march=z196.
8465         (s390_option_override): Use the new cost function and use the z10
8466         defaults also for z196.
8467         (legitimate_reload_constant_p): Adjust comment.
8468         (legitimate_reload_fp_constant_p): New function.
8469         (s390_preferred_reload_class): Distingiush between FP and Int constants.
8470         (preferred_la_operand_p): Avoid la with index on z196.
8471         (s390_adjust_priority): Trigger also for z196.
8472         (s390_issue_rate): Issue rate for z196 is 3.
8473         (s390_z10_fix_long_loop_prediction): Rename to ...
8474         (s390_fix_long_loop_prediction): ... this.
8475         (s390_reorg): Apply the z10 adjustments also for z196.
8476         (s390_loop_unroll_adjust): Do this also for z196.
8477         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
8478         (enum processor_flags): Add PF_Z196.
8479         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
8480         (TARGET_CPU_Z196, TARGET_Z196): New macros.
8481         * config.gcc: Enable z196 for --with-arch.
8482         * config/s390/2817.md: New file.
8483         * config/s390/2084.md: New type for multiply and add.
8484         * config/s390/2097.md: Likewise.
8485         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
8486         (UNSPECV_ATOMIC_OP): New constants.
8487         (fmadddf, fmaddsf): New values for type attribute.
8488         (z196prop): New insn attribute.
8489         (cpu, cpu_facility): Add z196.
8490         (ATOMIC_Z196): New code iterator.
8491         (noxa): New code attribute.
8492         (gk): New mode attribute.
8493         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
8494         Support load zero for fp constants.
8495         (fixuns_truncdddi2, fixuns_trunctddi2)
8496         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
8497         for z196.
8498         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
8499         (popcounthi2, popcountqi2): New expander.
8500         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
8501         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
8502         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
8503         insn definition.
8504         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
8505         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
8506         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
8507         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
8508         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
8509         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
8510         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
8511         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
8512         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
8513         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
8514         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
8515         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
8516         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
8517         Support new z196 instructions.
8518
8519 2010-10-05  Richard Guenther  <rguenther@suse.de>
8520
8521         PR middle-end/45877
8522         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
8523         case where gimplification optimizes away the stmt.
8524
8525 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
8526
8527         PR debug/45849
8528         * var-tracking.c (strip_pointer_flags): New function.
8529         (emit_note_insn_var_location): If rtx_equal_p check failed,
8530         retry on locations simplified with simplify_replace_fn_rtx
8531         and strip_pointer_flags as its callback.
8532
8533 2010-10-04  Jan Hubicka  <jh@suse.cz>
8534
8535         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
8536         (can_refer_decl_in_current_unit_p): ... this one; reverse return
8537         value; handle comdats too.
8538         (canonicalize_constructor_val): Use it; handle function_decls
8539         correctly.
8540         (gimple_fold_obj_type_ref_known_binfo): Likewise.
8541         * gimple.c (get_base_address): Accept all kinds of decls.
8542
8543 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
8544
8545         * flags.h (g_switch_value, g_switch_set): Remove.
8546         * opts.c (g_switch_value, g_switch_set): Remove.
8547         * config/g.opt (G): Add Var(g_switch_value).
8548         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
8549         (alpha_option_override): Check global_options_set.x_g_switch_value
8550         instead of g_switch_set.
8551         (alpha_in_small_data_p): Remove cast in comparison with
8552         g_switch_value.
8553         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
8554         g_switch_value to unsigned HOST_WIDE_INT.
8555         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
8556         with g_switch_value.
8557         (frv_handle_option): Don't handle -G here.
8558         (frv_option_override): Check global_options_set.x_g_switch_value
8559         instead of g_switch_set.  Don't modify g_switch_set.
8560         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
8561         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
8562         g_switch_value to unsigned HOST_WIDE_INT.
8563         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
8564         (ia64_option_override): Check global_options_set.x_g_switch_value
8565         instead of g_switch_set.
8566         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
8567         Remove.
8568         (lm32_in_small_data_p): Remove cast in comparison with
8569         g_switch_value.
8570         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
8571         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
8572         HOST_WIDE_INT.
8573         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
8574         (m32r_init): Check global_options_set.x_g_switch_value instead of
8575         g_switch_set.
8576         (m32r_in_small_data_p): Remove cast in comparison with
8577         g_switch_value.
8578         (m32r_file_start): Format g_switch_value with %d.
8579         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
8580         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
8581         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
8582         handle -G here.
8583         (microblaze_option_override): Check
8584         global_options_set.x_g_switch_value instead of g_switch_set.
8585         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
8586         (mips_option_override): Check global_options_set.x_g_switch_value
8587         instead of g_switch_set.
8588         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
8589         (rs6000_file_start): Format g_switch_value with %d.
8590         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
8591         comparisons with g_switch_value.
8592         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
8593         global_options_set.x_g_switch_value instead of g_switch_set.
8594         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
8595         global_options_set.x_g_switch_value instead of g_switch_set.
8596         * config/score/score.c (score_handle_option): Don't handle -G here.
8597         * config/score/score3.c (score3_option_override): Check
8598         global_options_set.x_g_switch_value instead of g_switch_set.
8599         * config/score/score7.c (score7_option_override): Check
8600         global_options_set.x_g_switch_value instead of g_switch_set.
8601
8602 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
8603
8604         * common.opt (fira-coalesce): Remove.
8605
8606         * doc/invoke.texi (flag_ira_coalesce): Remove.
8607
8608         * ira-color.c (allocno_coalesced_p): Move before
8609         copy_freq_compare_func.
8610         processed_coalesced_allocno_bitmap): Ditto.
8611         (update_conflict_hard_regno_costs): Don't use
8612         ALLOCNO_FIRST_COALESCED_ALLOCNO.
8613         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
8614         (assign_hard_reg): Assume no coalesced allocnos.
8615         (get_coalesced_allocnos_attributes): Remove.
8616         (bucket_allocno_compare_func): Assume no coalesced allocnos.
8617         (push_allocno_to_stack): Ditto.
8618         (remove_allocno_from_bucket_and_push): Use
8619         ira_print_expanded_allocno instead of print_coalesced_allocno.
8620         (push_allocnos_to_stack): Assume uncoalesced allocnos.
8621         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
8622         all_conflicting_hard_regs.
8623         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
8624         (setup_allocno_left_conflicts_size): Ditto.
8625         (put_allocno_into_bucket): Ditto.
8626         (copy_freq_compare_func): Remove.
8627         (copy_freq_compare_func, merge_allocnos): Move before
8628         coalesced_pseudo_reg_freq_compare.
8629         coalesced_allocno_conflict_p): Ditto.
8630         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
8631         parameter.  Assume it true.
8632         (color_allocnos): Assume uncoalesced allocnos.  Use
8633         ira_print_expanded_allocno instead of print_coalesced_allocno.
8634         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
8635         parameter.
8636
8637         * ira.c: Remove comment about coalescing.
8638
8639 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
8640
8641         * config/mips/mips.h (target_flags_explicit): Declare for
8642         GENERATOR_FILE.
8643
8644 2010-10-04  Andi Kleen  <ak@linux.intel.com>
8645
8646         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
8647         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
8648
8649 2010-10-04  Matthias Klose  <doko@ubuntu.com>
8650
8651         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
8652         multilib osdirname if it exists.
8653         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
8654
8655 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
8656
8657         PR middle-end/45876
8658         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
8659         arg0's type or its unsigned counterpart as utype.  Convert
8660         arg1 to utype unconditionally.
8661
8662 2010-10-04  Julian Brown  <julian@codesourcery.com>
8663
8664         * expr.c (expand_assignment): Add assertion to prevent emitting
8665         null rtx for movmisalign pattern.
8666         (expand_expr_real_1): Likewise.
8667         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
8668         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
8669         (arm_vector_alignment_reachable): New.
8670         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
8671         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
8672         (arm_print_operand): Include alignment qualifier in %A.
8673         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
8674         (movmisalign<mode>): New expander.
8675         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
8676         insn patterns.
8677
8678 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
8679
8680         * optc-gen.awk: Define global_options_set.  Don't define
8681         target_flags_explicit.
8682         * opth-gen.awk: Declare global_options_set.  Define
8683         target_flags_explicit as macro.
8684         * opts-common.c (handle_option): Take opts_set and generated_p
8685         parameters.
8686         (handle_generated_option, read_cmdline_option, set_option): Take
8687         opts_set parameter.
8688         (set_option): Use opts_set instead of hardcoding target_flags and
8689         target_flags_explicit.
8690         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
8691         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
8692         flag_value_profile_transformations_set, flag_peel_loops_set,
8693         flag_branch_probabilities_set, flag_inline_functions_set,
8694         flag_ipa_cp_set, flag_ipa_cp_clone_set,
8695         flag_predictive_commoning_set, flag_unswitch_loops_set,
8696         flag_gcse_after_reload_set): Remove.
8697         (common_handle_option, lang_handle_option, target_handle_option):
8698         Take opts_set parameter.  Assert that it is &global_options_set.
8699         (common_handle_option): Don't set _set variables.  Check opts_set
8700         instead of such variables.
8701         (enable_warning_as_error): Pass &global_options_set to
8702         handle_generated_option.
8703         * opts.h (cl_option_handler_func.handler, set_option,
8704         handle_option, handle_generated_option, read_cmdline_option): Add
8705         opts_set parameters.
8706         (handle_option): Add generated_p parameter.
8707         * config/i386/i386.c (ix86_function_specific_save,
8708         ix86_function_specific_restore): Updat for renaming of
8709         target_flags_explicit field.
8710         * config/i386/i386.opt (target_flags_explicit): Rename to
8711         ix86_target_flags_explicit.
8712         * config/ia64/ia64.c (ia64_override_options_after_change): Check
8713         global_options_set.x_flag_selective_scheduling and
8714         global_options_set.x_flag_selective_scheduling2, not
8715         sel_sched_switch_set.
8716         * flags.h (sel_sched_switch_set,
8717         flag_speculative_prefetching_set): Remove.
8718         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
8719         that it is &global_options_set.
8720         (process_command): Pass &global_options_set to read_cmdline_option.
8721         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
8722         set_option.
8723         * toplev.c (target_flags_explicit): Remove.
8724
8725 2010-10-04  Jan Hubicka  <jh@suse.cz>
8726
8727         PR middle-end/45871
8728         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
8729         use get_ref_base_and_offset to handle references.
8730         (fold_const_aggregate_ref): Update.
8731
8732 2010-10-04  Martin Jambor  <mjambor@suse.cz>
8733
8734         PR tree-optimization/45572
8735         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
8736         ipa_check_create_node_params.
8737         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
8738
8739 2010-10-04  Yao Qi  <yao@codesourcery.com>
8740
8741         * doc/passes.texi: Clean up.
8742
8743 2010-10-03  Ian Lance Taylor  <iant@google.com>
8744
8745         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
8746         referring to a field using a typedef name.
8747         (find_anonymous_field_with_type): New static function.
8748         (convert_to_anonymous_field): New static function.
8749         (convert_for_assignment): If -fplan9-extensions, permit converting
8750         pointer to struct to pointer to anonymous field.
8751         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
8752         (is_duplicate_field): New static function.
8753         (detect_field_duplicates_hash): If -fplan9-extensions, check for
8754         typedef names duplicating field names.
8755         (detect_field_duplicates): Likewise.
8756         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
8757         (C Dialect Options): Document -fplan9-extensions.
8758         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
8759
8760 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
8761
8762         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
8763         revision 164914.
8764         (vect_create_data_ref_ptr): Likewise.
8765         * tree-vect-stmts.c (vectorizable_store): Likewise.
8766         (perm_mask_for_reverse): Likewise.
8767         (reverse_vec_elements): Likewise.
8768         (vectorizable_load): Likewise.
8769
8770 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8771
8772         * cppbuiltin.c: New file.
8773         * cppbuiltin.h: New file.
8774         * Makefile.in: Take into account cppbuiltin.{h,c}.
8775
8776 2010-10-03  Andi Kleen  <ak@linux.intel.com>
8777
8778         * lto-cgraph.c (input_cgraph): Check for missing sections.
8779
8780 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
8781
8782         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
8783         to nonimmediate_operand.  Force operand 2 to register when allowed.
8784         (*<shiftrt_insn><mode>3_mask): Ditto.
8785         (*<rotate_insn><mode>3_mask): Ditto.
8786
8787 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
8788
8789         PR tree-optimization/45720
8790         PR tree-optimization/45764
8791         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
8792         Don't accept backwards consecutive accesses.
8793         (vect_create_data_ref_ptr): Disallow negative steps.
8794
8795         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
8796         (perm_mask_for_reverse): Removed.
8797         (reverse_vec_elements): Likewise.
8798         (vectorizable_load): Don't handle negative steps.
8799
8800 2010-10-02  Jan Hubicka  <jh@suse.cz>
8801
8802         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
8803         call destination is known.
8804
8805 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8806
8807         PR target/45820
8808         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
8809         earlier.
8810
8811 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8812
8813         * doc/install.texi (Configuration): Document build_configargs,
8814         host_configargs, target_configargs.
8815
8816 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
8817
8818         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
8819         (*<shiftrt_insn><mode>3_mask): Ditto.
8820         (*<rotate_insn><mode>3_mask): Ditto.
8821
8822 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
8823
8824         PR tree-optimization/44716
8825         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
8826         (HOT_TEXT_SECTION_NAME): Define.
8827
8828 2010-10-01  Nick Clifton  <nickc@redhat.com>
8829
8830         * common.opt: Add -fcombine-stack-adjustments.
8831         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
8832         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
8833         flag_combine_stack_adjustments.
8834         * doc/invoke.texi: Document the new option.
8835
8836 2010-10-01  Richard Guenther  <rguenther@suse.de>
8837
8838         PR tree-optimization/45854
8839         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
8840
8841 2010-10-01  Anthony Green  <green@moxielogic.com>
8842
8843         * config.gcc: Fix moxie-*-rtems* configuration.
8844
8845 2010-10-01  Richard Guenther  <rguenther@suse.de>
8846
8847         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
8848         (gen_decl_die): Likewise.
8849
8850 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8851
8852         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
8853         to the function code for SPU MD builtins.
8854         (spu_expand_builtin): Update.
8855         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
8856
8857 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8858
8859         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
8860         sjlj_except_unwind_info.
8861
8862 2010-10-01  Tristan Gingold  <gingold@adacore.com>
8863
8864         * configure.ac: Define the nop insn for avr*-*-*
8865         * configure: Regenerate.
8866
8867 2010-10-01  Alan Modra  <amodra@gmail.com>
8868
8869         PR target/45807
8870         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
8871         extend toc_restore_insn.
8872
8873 2010-09-30  Richard Guenther  <rguenther@suse.de>
8874
8875         PR tree-optimization/43959
8876         * function.c (gimplify_parameters): Use create_tmp_reg instead of
8877         create_tmp_var.
8878
8879 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
8880
8881         * config/sh/sh.c (sh_expand_prologue): Set
8882         current_function_static_stack_size.
8883
8884 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8885
8886         * configure.ac: Check for Solaris 8 ld with .hidden support.
8887         * configure: Regenerate.
8888
8889 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8890
8891         PR middle-end/45758
8892         * graphite.c (graphite_initialize): Call scev_reset.
8893
8894 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8895
8896         * sese.h (scev_analyzable_p): Return false for real or floating
8897         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
8898
8899 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8900
8901         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
8902         and ps.
8903         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
8904         domain.
8905         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
8906         Do not allocate ub_expr, it is passed in initialized.
8907
8908 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
8909
8910         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
8911         (build_cloog_prog): Dump CLooG input file when
8912         flag_graphite_dump_cloog is set.  This is disabled on trunk.
8913         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
8914
8915 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8916
8917         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
8918         verify_dominators for CDI_POST_DOMINATORS.
8919         * sese.h: Remove comment about CDI_POST_DOMINATORS.
8920         (recompute_all_dominators): Remove call to free_dominance_info
8921         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
8922         for CDI_POST_DOMINATORS.
8923
8924 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8925
8926         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
8927         over pbb_dim_iter_domain.
8928
8929 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8930
8931         * graphite-flattening.c: Fix comments.
8932
8933 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8934
8935         * Makefile.in (OBJS-common): Add graphite-flattening.o.
8936         (graphite-flattening.o): New rule.
8937         * common.opt (floop-flatten): New flag.
8938         * doc/invoke.texi (-floop-flatten): Documented.
8939         * graphite-flattening.c: New.
8940         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
8941         * graphite-poly.h (flatten_all_loops): Declared.
8942         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
8943         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
8944         is set, also set flag_graphite.
8945
8946 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8947
8948         * graphite-poly.c (cloog_checksum): New.
8949         * graphite-poly.h (cloog_checksum): Declared.
8950
8951 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8952
8953         * graphite-poly.c (pbb_number_of_iterations): Removed.
8954         (pbb_number_of_iterations_at_time): Correctly compute the number
8955         of iterations in the transformed loop.
8956         * graphite-poly.h (pbb_number_of_iterations): Removed.
8957
8958 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8959
8960         * graphite-poly.h (lst_update_scattering_seq): Removed.
8961         (lst_update_scattering): Correctly handle outermost loop dewey
8962         renumbering.
8963
8964 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8965
8966         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
8967         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
8968         * graphite-poly.h (lst_niter_for_loop): New.
8969
8970 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8971
8972         * graphite-poly.c (apply_poly_transforms): Do not abort when the
8973         transform read from disk is not legal.  Call fatal_error instead.
8974
8975 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8976
8977         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
8978         (print_scop_header): Removed.  Inlined in the only call place...
8979         (print_scop): ... here.
8980
8981 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8982
8983         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
8984
8985 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8986
8987         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
8988
8989 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8990
8991         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
8992         (dot_deps_stmt): Same.
8993         * graphite-poly.c (dot_lst): Same.
8994
8995 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8996
8997         * graphite-blocking.c (scop_do_strip_mine): Do not call
8998         graphite_legal_transform.
8999         (scop_do_block): Same.
9000
9001 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
9002
9003         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
9004         description.
9005
9006 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9007
9008         * tree-scalar-evolution.c (instantiate_array_ref): New.
9009         (instantiate_scev_r): Also handle ARRAY_REFs.
9010
9011 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9012
9013         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
9014         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
9015         RESULT_DECL, and FIELD_DECL.  Return false for an
9016         SSA_NAME_IS_DEFAULT_DEF.
9017         (compute_scalar_evolution_in_loop): Do not further analyze the
9018         scalar evolution when no_evolution_in_loop_p returns true.
9019
9020 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9021
9022         * tree-chrec.h (evolution_function_is_affine_p): Do not check
9023         whether CHREC_LEFT is invariant.  A function is affine when
9024         CHREC_RIGHT is invariant.
9025
9026 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9027
9028         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
9029         is_gimple_reg.
9030         (rewrite_degenerate_phi): Same.
9031         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
9032
9033 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
9034
9035         * graphite-scop-detection.c (graphite_can_represent_scev,
9036         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
9037         graphite_can_represent_loop): Remove outermost_loop.
9038
9039 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9040
9041         PR middle-end/45229
9042         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
9043         handle GIMPLE_CALLs with no LHS.
9044
9045 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9046
9047         * graphite-poly.c (init_graphite_out_file): New.
9048         (init_graphite_in_file): New.
9049         (apply_poly_transforms): Updated to enable reading and writing of
9050         multiple scop files.
9051
9052 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
9053
9054         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
9055         redundant checks.
9056
9057 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9058
9059         * graphite-clast-to-gimple.c (precision_for_value): Adjust
9060         computation of precision by 1.
9061
9062 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9063
9064         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
9065         (openscop_read_polyhedron_matrix): New.
9066         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
9067         (openscop_read_N_int): Same.
9068         * graphite-poly.c (openscop_read_N_int): New.
9069         (openscop_read_one_int): New.
9070         (openscop_read_N_string): New.
9071         (openscop_read_one_string): New.
9072         (openscop_read_powerset_matrix): New.
9073         (graphite_read_transforms): Remove.
9074         (graphite_read_scatt): New.
9075         (graphite_read_scop_file): New.
9076         (apply_poly_transforms): Updated to call graphite_read_scop_file.
9077
9078 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9079
9080         * graphite-poly.c: Change include order.
9081
9082 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9083
9084         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
9085         (cloog_matrix_nrows): New.
9086
9087 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9088
9089         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
9090         from matrix lines.
9091         * graphite-poly.c (openscop_print_scattering_function_1): Same.
9092         (print_scattering_function_1): Same.
9093         (openscop_print_pbb_domain): Same.
9094         (openscop_print_scop_context): Same.
9095         (print_scop_context): Same.
9096
9097 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
9098
9099         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
9100         (openscop_print_pdr_polyhedron): Print pph.
9101
9102 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9103
9104         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
9105         priority signed types.
9106
9107 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9108
9109         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
9110         the call to lang_hooks.types.type_for_size.  Call
9111         build_nonstandard_integer_type.
9112
9113 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9114
9115         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
9116         (openscop_print_polyhedron_matrix): New.
9117         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
9118         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
9119         (openscop_print_pdr_powerset): New.
9120         (openscop_print_powerset_matrix): New.
9121         (openscop_print_scattering_function_1): New.
9122         (print_scattering_function): Add support for scattering names and
9123         OpenScop format.
9124         (graphite_write_transforms): Remove.
9125         (print_pdr_access_layout): Updated to support OpenScop format.
9126         (print_pdr): Same.
9127         (openscop_print_pbb_domain): New.
9128         (print_pbb_body): Added a parameter to allow indicating that pbb_body
9129         is not provided.
9130         (print_pbb): Updated to call the new print_pbb_body.
9131         (openscop_print_scop_context): New.
9132         (print_scop_header): New.
9133         (print_scop): Updated to call print_scop_header.
9134         * graphite-poly.h: Document OpenScop format.
9135
9136 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
9137
9138         * config/cris/m32c.c (cris_memory_move_cost): New.
9139         (cris_register_move_cost): Make static. Change arguments type from
9140         enum reg_class to reg_class_t.
9141         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
9142         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
9143         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
9144
9145 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
9146
9147         PR target/45843
9148         * config/i386/i386.c (ix86_gimplify_va_arg): Use
9149         INTVAL (XEXP (slot, 1)) as prev_size.
9150
9151 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
9152
9153         PR target/45837
9154         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
9155         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
9156         defined.
9157         * config/rs6000/option-defaults.h (toplevel): Change #if
9158         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
9159         global option changes.
9160
9161 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
9162
9163         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
9164
9165         PR tree-optimization/31261
9166         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
9167         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
9168
9169 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9170
9171         PR bootstrap/45796
9172         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
9173         special-casing for generators and turn into ...
9174         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
9175         rule, for better error messages in case of toplevel dependency errors.
9176         (genprog): Add hooks, rename to ...
9177         (genprogerr): ... this, and let genprog also contain check,
9178         checksum, condmd.
9179         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
9180         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
9181         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
9182
9183 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
9184             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9185
9186         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
9187         for GMP, MPFR and MPC.
9188
9189 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9190
9191         * config/sparc/sparc.opt (mimpure-text): Move ...
9192         * config/sol2.opt: ... here.  Correct description.
9193         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
9194         * doc/invoke.texi (Option Summary, SPARC Options): Move
9195         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
9196         (Option Summary, Solaris 2 Options): ... here.
9197         (Submodel Options, Solaris 2 Options): New menu entry.
9198         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
9199         (Solaris 2 Options): ... here.
9200
9201 2010-09-30  Michael Eager  <eager@eagercon.com>
9202
9203         * extend.texi (interrupt_handler): Add MicroBlaze to list.
9204         (save_volatiles): Describe option for MicroBlaze.
9205         * invoke.texi: Add MicroBlaze Options.
9206         * contrib.texi: Add acknowledgment.
9207         * md.texi: Add MicroBlaze d and z constraints.
9208         * install.texi: Add microblaze-*-elf.
9209         * configure.ac: Add microblaze-*-* to target list.
9210         * configure: Regenerate.
9211         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
9212         * config/microblaze/microblaze-protos.h: New.
9213         * config/microblaze/crti.s: New.
9214         * config/microblaze/predicates.md: New.
9215         * config/microblaze/linux.h: New.
9216         * config/microblaze/microblaze.md: New.
9217         * config/microblaze/constraints.md: New.
9218         * config/microblaze/crtn.s: New.
9219         * config/microblaze/microblaze.opt: New.
9220         * config/microblaze/microblaze-c.c: New.
9221         * config/microblaze/t-microblaze: New.
9222         * config/microblaze/microblaze.c: New.
9223         * config/microblaze/microblaze.h: New.
9224
9225 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
9226
9227         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
9228         parse @optional/@required and set the flags as appropriate.
9229
9230 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
9231
9232         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
9233
9234 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
9235
9236         * opt-functions.awk (static_var): Update comment.
9237         (var_ref): Return offsetof expression or -1, not variable address.
9238         * optc-gen.awk: Generate structure field initializers instead of
9239         static variables.  Expect -1 for missing variables instead of null
9240         pointer.  Add gcc_options parameters to generated functions.
9241         * opth-gen.awk: Generate structure fields for static variables.
9242         Add gcc_options parameters to generated functions.
9243         * common.opt (optimize, optimize_size): Add variables.
9244         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
9245         &global_options to cl_target_option_restore.
9246         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
9247         &global_options to cl_optimization_restore, cl_target_option_save
9248         and cl_target_option_restore.
9249         (ix86_set_current_function): Pass &global_options to
9250         cl_target_option_restore.
9251         * config/pdp11/pdp11.h (optimize): Remove.
9252         * config/rs6000/rs6000.h (optimize): Remove.
9253         * config/sh/sh.h (optimize): Remove.
9254         * config/xtensa/xtensa.h (optimize): Remove.
9255         * coretypes.h (struct gcc_options): Declare.
9256         * diagnostic.c (diagnostic_initialize): Initialize
9257         context->option_state.
9258         (diagnostic_report_diagnostic): Pass option_state to
9259         option_enabled hook.
9260         * diagnostic.h (diagnostic_context.option_enabled): Add void *
9261         parameter.
9262         (diagnostic_context.option_state): New field.
9263         * final.c (final_start_function, final, final_scan_insn): Rename
9264         optimize parameter to optimize_p.
9265         * flags.h (optimize, optimize_size): Remove.
9266         * function.c (invoke_set_current_function_hook): Pass
9267         &global_options to cl_optimization_restore.
9268         * gcc.c (driver_handle_option): Take gcc_options parameter.
9269         Assert that it is &global_options.
9270         (process_command): Pass &global_options to read_cmdline_option.
9271         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
9272         option_enabled.
9273         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
9274         &global_options to set_option.
9275         * opts-common.c (handle_option, handle_generated_option,
9276         read_cmdline_option, set_option): Take explicit gcc_options
9277         parameters.  Use option_flag_var.
9278         (option_flag_var): New.
9279         * opts.c (common_handle_option, lang_handle_option,
9280         target_handle_option): Take gcc_options parameter.  Assert that it
9281         is &global_options.
9282         (read_cmdline_options): Pass &global_options to read_cmdline_option.
9283         (print_filtered_help): Use option_flag_var.  Pass &global_options
9284         to option_enabled.
9285         (common_handle_option): Use option_flag_var.
9286         (option_enabled): Take opts parameter.  Use option_flag_var.
9287         (get_option_state): Take gcc_options parameter.  Use
9288         option_flag_var.  Pass gcc_options parameter to option_enabled.
9289         (enable_warning_as_error): Pass &global_options to
9290         handle_generated_option.
9291         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
9292         (cl_option_handler_func.handler): Take gcc_options parameter.
9293         (option_enabled, get_option_state, set_option, handle_option,
9294         handle_generated_option, read_cmdline_option): Take gcc_options
9295         parameters.
9296         * toplev.c (optimize, optimize_size): Remove.
9297         (print_switch_values): Pass &global_options to option_enabled.
9298         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
9299         to get_option_state.
9300         (general_init): Initialize global_dc->option_state.
9301         * tree.c (build_optimization_node): Pass &global_options to
9302         cl_optimization_save.
9303         (build_target_option_node): Pass &global_options to
9304         cl_target_option_save.
9305
9306 2010-09-30  Martin Jambor  <mjambor@suse.cz>
9307
9308         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
9309         zero sized bit-fields.
9310
9311 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
9312
9313         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
9314         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
9315         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
9316         (c_parser_objc_class_declaration): Same change.
9317         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
9318         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
9319         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
9320         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
9321         and RID_AT_PUBLIC instead of RID_PUBLIC.
9322         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
9323         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
9324
9325 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
9326
9327         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
9328         Add links to current providers of packages for Solaris and IRIX.
9329
9330 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
9331
9332         Merge from 'apple/trunk' branch on FSF servers.
9333         * c-parser.c: Applied change originally in c-parse.in.
9334
9335         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
9336
9337         Radar 4281748
9338         * c-decl.c (start_decl): Check for redeclaration of class name.
9339         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
9340
9341 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
9342
9343         * config/ia64/ia64.c (ia64_builtin_decl): New.
9344         (TARGET_BUILTIN_DECL): Define.
9345         (ia64_builtins): New.
9346         (ia64_init_builtins): Save decls in ia64_builtins.
9347
9348 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
9349
9350         PR target/40457
9351         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
9352         (move2add_use_add3_insn): Likewise.
9353         (reload_cse_move2add): Likewise.
9354         * rtlanal.c (get_full_rtx_cost): New function.
9355         * rtl.h (struct full_rtx_costs): New.
9356         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
9357         costs_add_n_insns): New inline functions.
9358         (get_full_rtx_cost): Declare.
9359
9360         PR c/45054
9361         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
9362         invariants.  Check for reg_equiv_invariant.
9363         (reload): Assert that spilled_pseudos is empty when returning.
9364
9365 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
9366
9367         * config/i386/mingw32.h (TARGET_64BIT): replaced by
9368         TARGET_64BIT_DEFAULT in #if check.
9369
9370 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
9371
9372         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
9373
9374 2010-09-29  Mike Stump  <mikestump@comcast.net>
9375
9376         * config/darwin.h (flag_mkernel): Remove.
9377         (flag_apple_kext): Likewise.
9378
9379 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
9380             Jack Howarth  <howarth@bromo.med.uc.edu>
9381
9382         * config/darwin.opt (undefined): Add.
9383
9384 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
9385
9386         PR testsuite/45664
9387         * configure.ac: Add --enable-indirect-function option.
9388         * config.gcc: Add default_gnu_indirect_function.
9389         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
9390         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
9391         * varasm.c (do_assemble_alias): Adjust for macro name change.
9392         * configure: Rebuilt.
9393         * doc/install.texi: Document --enable-indirect-function.
9394
9395 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
9396
9397         * doc/options.texi (Variable, Var, Init): Update documentation
9398         without reference to VarExists.
9399         (VarExists): Remove.
9400         * common.opt, config/i386/i386.opt, config/linux.opt,
9401         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
9402         Don't use VarExists.
9403
9404 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
9405
9406         * optc-gen.awk: Generate global_options initializer instead of
9407         individual variables.  Add x_ prefix to names of structure members.
9408         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
9409         names of structure members.
9410         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
9411         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
9412         * doc/tm.texi: Regenerate.
9413         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
9414         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
9415         * c-parser.c (disable_extension_diagnostics,
9416         restore_extension_diagnostics): Update names of cpp_options members.
9417         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
9418         * common.opt (fcompare-debug-second): Don't use Var.
9419         * config/alpha/alpha.h (target_flags): Remove.
9420         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
9421         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
9422         * config/bfin/bfin.h (target_flags): Remove.
9423         * config/cris/cris.h (target_flags): Remove.
9424         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
9425         cl_target_option members.
9426         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
9427         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
9428         ix86_can_inline_p): Update names of cl_target_option members.
9429         * config/i386/i386.h (ix86_isa_flags): Remove.
9430         * config/lm32/lm32.h (target_flags): Remove.
9431         * config/mcore/mcore.h (mcore_stack_increment): Remove.
9432         * config/mcore/mcore.md (addsi3): Remove extern declaration of
9433         flag_omit_frame_pointer.
9434         * config/mep/mep.h (target_flags): Remove.
9435         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
9436         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
9437         * config/mmix/mmix.h (target_flags): Remove.
9438         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
9439         flag_expensive_optimizations): Remove.
9440         * config/s390/s390.h (flag_pic): Remove.
9441         * config/score/score-conv.h (target_flags): Remove.
9442         * config/sh/sh.h (sh_fixed_range_str): Remove.
9443         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
9444         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
9445         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9446         * diagnostic.c (diagnostic_initialize): Update names of
9447         diagnostic_context members.
9448         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
9449         warn_system_headers.
9450         (diagnostic_report_warnings_p): Update for new names.
9451         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
9452         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
9453         HARD_FRAME_POINTER_IS_ARG_POINTER.
9454         * flags.h (flag_compare_debug): Declare.
9455         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
9456         * opts.c (flag_compare_debug): Define.
9457         (common_handle_option): Update names of diagnostic_context
9458         members.  Handle -fcompare-debug-second.
9459         (fast_math_flags_struct_set_p): Update names of cl_optimization
9460         members.
9461         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9462         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9463         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9464         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9465         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9466         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
9467         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
9468         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
9469         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
9470
9471 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
9472
9473         * config/picochip/picochip.c (picochip_output_internal_label):
9474         This function can now be called for debug CFI labels, which can come
9475         in the middle of a vliw instruction.  Postpone until end of vliw.
9476
9477 2010-09-29  Richard Guenther  <rguenther@suse.de>
9478
9479         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
9480         (DECL_FILE_SCOPE_P): Use it.
9481         (TYPE_FILE_SCOPE_P): New macro.
9482
9483 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
9484
9485         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
9486         a CPP_NAME which is a reserved word, clearly separate cases for
9487         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
9488
9489 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
9490
9491         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
9492         token->value with the canonical spelling.  Do exactly like C and
9493         C++ and leave it as it is.
9494
9495 2010-09-28  Richard Henderson  <rth@redhat.com>
9496
9497         * config/alpha/alpha.c (alpha_builtins): New.
9498         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
9499         (alpha_builtin_function): New.
9500         (alpha_add_builtins, alpha_init_builtins): Use it.
9501
9502 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
9503
9504         * doc/standards.texi (Standards): Expanded the section on
9505         Objective-C and Objective-C++.
9506
9507 2010-09-28  DJ Delorie  <dj@redhat.com>
9508
9509         PR target/45800
9510         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
9511         volatile MEMs.
9512
9513 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
9514
9515         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
9516         attributes on methods.
9517          (c_parser_objc_method_definition): Handle attributes.
9518         (c_parser_objc_methodproto): Likewise.
9519         (c_parser_objc_maybe_method_attributes): New.
9520         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
9521         missing definition, similar to that in ObjC++.
9522
9523 2010-09-28  Richard Henderson  <rth@redhat.com>
9524
9525         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
9526         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
9527         (CONFIG_SJLJ_EXCEPTIONS): Remove.
9528         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
9529         (STACK_CHECK_PROTECT): Likewise.
9530         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
9531         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
9532         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
9533         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
9534         (dwarf2out_assembly_start): Likewise.
9535         * except.c (init_eh): Use targetm.except_unwind_info.
9536         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
9537         (output_one_function_exception_table): Likewise.
9538         * final.c: Unconditionally include dwarf2out.h.
9539         (final_start_function): Unconditionally call dwarf2out routines.
9540         (final_end_function, final_scan_insn): Likewise.
9541         * function.c (expand_function_end): Use targetm.except_unwind_info.
9542         * opts.c (decode_options): Use targetm.except_unwind_info.
9543         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
9544         * target.def (debug_unwind_info, except_unwind_info): New.
9545         * target.h (enum unwind_info_type): New.
9546         * targhooks.c (default_debug_unwind_info): New.
9547         (default_except_unwind_info): New.
9548         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
9549         * targhooks.h: Declare them.
9550         * tree-tailcall.c: Include "target.h"
9551         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
9552         * Makefile.in (tree-tailcall.o): Update.
9553         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
9554         (lhd_gcc_personality): Likewise.
9555
9556         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
9557         (TARGET_EXCEPT_UNWIND_INFO): New.
9558         (DWARF2_UNWIND_INFO): Update.
9559         (TARGET_DEBUG_UNWIND_INFO): New.
9560         * doc/tm.texi: Rebuild.
9561
9562         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
9563         targetm.except_unwind_info.
9564
9565         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
9566         (arm_except_unwind_info): New.
9567         (arm_compute_func_type): Use it.
9568         (arm_expand_prologue, thumb_pushpop): Likewise.
9569         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
9570         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
9571         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
9572         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
9573         (DWARF2_UNWIND_INFO): Remove.
9574         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
9575         (ARM_EABI_UNWIND_TABLES): Remove.
9576
9577         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
9578         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
9579         (ia64_except_unwind_info): New.
9580         (ia64_output_function_prologue): Use it.
9581         (ia64_add_bundle_selector_before): Likewise.
9582         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
9583         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
9584         (TARGET_UNWIND_INFO): Remove.
9585
9586         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
9587
9588 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
9589
9590         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
9591         (c_parser_objc_protocol_definition): Likewise.
9592         (c_parser_external_declaration): Provide dummy attribute arguments.
9593         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
9594         (c_parser_objc_class_definition): Handle attributes.
9595         (c_parser_objc_protocol_definition): Likewise.
9596
9597 2010-09-28  Tobias Burnus  <burnus@net-b.de>
9598
9599         PR fortran/40569
9600         PR fortran/40568
9601         * toplev.h (save_decoded_options, save_decoded_options_count):
9602         New global variables.
9603         * toplev.c (save_decoded_options, save_decoded_options_count):
9604         Export variables.
9605
9606 2010-09-28  Ian Lance Taylor  <iant@google.com>
9607
9608         * config/i386/i386.c (ix86_supports_split_stack): Test
9609         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
9610
9611 2010-09-28  Ian Lance Taylor  <iant@google.com>
9612
9613         PR target/45815
9614         * opts.c (decode_options): Don't test whether the target supports
9615         split stack if flag_split_stack == 0.
9616
9617 2010-09-28  Jan Hubicka  <jh@suse.cz>
9618
9619         * builtin-attrs.def (ATTR_LEAF): New attribute.
9620         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
9621         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
9622         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
9623         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
9624         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
9625         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
9626         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
9627         * sync-builtins.def: Annotate all builtins by leaf.
9628         * omp-builtins.def: Annotate all builtins by leaf.
9629         * builtins.def: Annotate relevant builtins with leaf attribute.
9630         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
9631         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
9632         leaf.
9633
9634 2010-09-28  Jan Hubicka  <jh@suse.cz>
9635
9636         * tree-ssa-ccp.c (fold_ctor_reference): New function.
9637         (fold_const_aggregate_ref): Use it.
9638         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
9639         into external static.
9640
9641 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9642
9643         PR target/44452
9644         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
9645         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
9646         (ix86_solaris_return_in_memory): Remove.
9647         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
9648         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
9649         (TARGET_SUBTARGET_DEFAULT): Redefine.
9650         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
9651         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
9652         (TARGET_SUBTARGET_DEFAULT): Redefine.
9653         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
9654         -mvect8-ret-in-mem.
9655         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
9656
9657 2010-09-29  Alan Modra  <amodra@gmail.com>
9658
9659         PR target/45807
9660         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
9661         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
9662         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
9663         Delete.
9664         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
9665         (rs6000_emit_prologue): Don't just create frame save info for r2,
9666         actually save r2.
9667
9668 2010-09-28  Richard Henderson  <rth@redhat.com>
9669
9670         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
9671         when 8 bytes are requested.
9672
9673 2010-09-28  Tristan Gingold  <gingold@adacore.com>
9674
9675         * config/avr/avr.c (expand_prologue): Set
9676         current_function_static_stack_size.
9677
9678 2010-09-28  Tristan Gingold  <gingold@adacore.com>
9679
9680         * config/alpha/alpha.md: Change the initial condition of the
9681         probing loop.
9682
9683 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
9684
9685         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
9686         Split from *avx_<maxmin:code><mode>3.
9687         (*avx_<smaxmin:code><mode>3): Ditto.
9688         * config/i386/i386.md (maxmin): Remove code iterator.
9689
9690 2010-09-27  Ian Lance Taylor  <iant@google.com>
9691
9692         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
9693         requires assembler support for CFI directives.
9694
9695 2010-09-27  Richard Henderson  <rth@redhat.com>
9696
9697         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
9698
9699 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
9700
9701         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
9702         that AFTER is not in the range FROM..TO, inclusive.
9703
9704 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
9705             Bernd Schmidt  <bernds@codesourcery.com>
9706
9707         PR rtl-optimization/45792
9708         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
9709         If not all insns are to be merged, for each edge, stash the
9710         next candidate after the to-be-merged insns before doing the
9711         merge, and use them for the retry at the new insertion point.
9712         Handle CC0 targets when retrying.
9713
9714 2010-09-27  Ian Lance Taylor  <iant@google.com>
9715
9716         * common.opt (fsplit-stack): New option.
9717         * opts.c (decode_options): Set flag_split_stack to final value.
9718         * target.def (supports_split_stack): New hook.
9719         * gcc.c (STACK_SPLIT_SPEC): Define.
9720         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
9721         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
9722         (Code Gen Options): Document -fsplit-stack.
9723         * doc/extend.texi (Function Attributes): Mention no_split_stack.
9724         (Function Attributes): Document no_split_stack.
9725         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
9726         TARGET_SUPPORTS_SPLIT_STACK.
9727         * doc/tm.texi: Rebuild.
9728         * function.c (thread_prologue_and_epilogue_insns): If
9729         flag_split_stack, add split stack prologue.
9730         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
9731         * varasm.c (saw_no_split_stack): New static variable.
9732         (assemble_start_function): Set saw_no_split_stack if the function
9733         has the no_split_stack attribute.
9734         (file_end_indicate_split_stack): New function.
9735         * output.h (file_end_indicate_split_stack): Declare.
9736         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
9737         and function.
9738         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
9739         routines.
9740         * config/i386/i386.c (ix86_option_override_internal): Don't set
9741         expand_builtin_va_start to NULL if -fsplit-stack.
9742         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
9743         -fsplit-stack.
9744         (ix86_va_start): If -fsplit-stack, get overflow pointer from
9745         scratch register set by prologue.
9746         (ix86_code_end): If -fsplit-stack, call
9747         file_end_indicate_split_stack.
9748         (ix86_supports_split_stack): New static function.
9749         (SPLIT_STACK_AVAILABLE): Define.
9750         (split_stack_prologue_scratch_regno): New static function.
9751         (split_stack_fn): New static variable.
9752         (ix86_expand_split_stack_prologue): New function.
9753         (ix86_live_on_entry): New static function.
9754         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
9755         (output_pic_addr_const): Likewise.
9756         (i386_asm_output_addr_const_extra): Likewise.
9757         (ix86_expand_call): Change return type to rtx.  Return the new
9758         call instruction.
9759         (TARGET_SUPPORTS_SPLIT_STACK): Define.
9760         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
9761         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
9762         (split_stack_prologue, split_stack_return): New insns.
9763         (split_stack_space_check): New insn.
9764         * config/i386/i386.h (struct machine_function): Add
9765         split_stack_varargs_pointer field.
9766         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
9767         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
9768         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
9769         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
9770         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
9771         Declare.
9772         (ix86_expand_call): Update declaration.
9773
9774 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
9775
9776         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
9777         code.  Added byref, which was missing in the list of codes.
9778         Explain that enumeration values are encoded as the integer type
9779         that the compiler uses to store them.  Explain and make examples
9780         of how 'const' interacts with pointers, and the complication of
9781         the encoding of 'const char *'.
9782         (Legacy type encoding): New subsection, explaining that GCC emits
9783         incorrect type encodings for the NeXT runtime for compatibility
9784         reasons.
9785         (@@encode): New subsection, explaining @encode and particularly
9786         that protocol qualifiers are not recognized inside an @encode()
9787         expression.
9788         (Method signatures): New subsection, explaining how method
9789         signatures are encoded.
9790
9791 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
9792
9793         Merge from 'apple/trunk' branch on FSF servers.  Removed small
9794         change in build_conditional_expr that had been added when fixing
9795         PR objc/27377 and which did the same check in a less complete way.
9796
9797         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
9798
9799         Radar 4229905
9800         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
9801         looking for objective-c common pointer types.
9802
9803         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
9804
9805         Radar 4154928
9806         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
9807         use their ObjC common type.
9808
9809 2010-09-27  Richard Guenther  <rguenther@suse.de>
9810
9811         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
9812
9813 2010-09-27  Jie Zhang  <jie@codesourcery.com>
9814
9815         * print-tree.c (print_node): Print in-constant-pool.
9816
9817 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
9818
9819         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
9820         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
9821         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
9822         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
9823
9824 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
9825
9826         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
9827         from pro_epilogue_adjust_stack_<mode>_{1,2}.
9828         (pro_epilogue_adjust_stack_<mode>_add): Rename from
9829         pro_epilogue_adjust_stack_<mode>_3.
9830         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
9831         renamed pro_epilogue_adjust_stack_{si,di}_add.
9832         (ix86_expand_prologue): Use indirect functions.  Update for renamed
9833         pro_epilogue_adjust_stack_{si,di}_sub.
9834
9835 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
9836
9837         * config/i386/i386.md (movmsk_df): New insn.
9838         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
9839         sequence for TARGET_SSE_MATH.
9840
9841 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
9842
9843         * config/mips/mips.c (mips_builtin_decls): Declare.
9844         (mips_init_builtins): Store function declarations in
9845         mips_builtin_decls.
9846         (mips_builtin_decl): New function.
9847         (TARGET_BUILTIN_DECL): Define.
9848
9849 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
9850             Richard Henderson  <rth@redhat.com>
9851
9852         * config/i386/cygwin.asm: Include auto-host.h.
9853         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
9854         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
9855         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
9856         alignment code from the 64-bit path.  Use gas local labels.
9857         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
9858         from _di_2.  Remove the useless constant integer argument.
9859         (pro_epilogue_adjust_stack_<mode>_3): New.
9860         (allocate_stack_worker_probe_<mode>): Macroize from
9861         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
9862         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
9863         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
9864         (__chkstk_ms): New function.
9865         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
9866         * config/i386/t-interix: Likewise.
9867         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
9868         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
9869         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
9870         * configure, config.in: Rebuild.
9871
9872 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
9873
9874         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
9875         statements because of the return slot optimization.
9876
9877 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
9878
9879         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
9880         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
9881         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
9882         (class_likely_spilled_p): Rename to...
9883         (avr_class_likely_spilled_p): ...this. Make static. Change argument
9884         type to reg_class_t.
9885
9886 2010-09-24  Jan Hubicka  <jh@suse.cz>
9887
9888         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
9889         (lto_symtab_resolve_symbols): Set it.
9890         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
9891         store resolution field in cgraph/varpool.
9892         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
9893         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
9894         (cgraph_dump_node): Drop used_from_object_file.
9895         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
9896         (cgraph_function_body_availability): Use decl_replaceable_p.
9897         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
9898         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
9899         cgraph_used_from_object_file_p.
9900         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
9901         cgraph_used_from_object_file_p.
9902         (resolution_used_from_other_file_p): New functoin.
9903         (cgraph_used_from_object_file_p): New predicate.
9904         * cgraph.h: Include plugin-api.h
9905         (struct cgraph_local_info): Remove used_from_object_file.
9906         (struct cgraph_node): Add resolution field.
9907         (struct varpool_node): Likewise; remove used_from_object_file;
9908         reove const_value_known.
9909         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
9910         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
9911         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
9912         varpool_used_from_object_file_p): Declare.
9913         (varpool_get_node, varpool_extra_name_alias): Update prototype.
9914         * tree.h (DECL_REPLACEABLE_P): Remove.
9915         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
9916         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
9917         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
9918         input_overwrite_node, input_node, input_varpool_node): Stream
9919         resolution.
9920         * expr.c (expand_expr_real_1): Use const_value_known_p
9921         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
9922         const_value_known.
9923         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
9924         (function_and_variable_visibility): Set resolution for local vars
9925         and functions; use varpool_used_from_object_file_p.
9926         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
9927         static functions.
9928         (default_binds_local_p_1): Use resolutoin info.
9929         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
9930         * varpool.c (varpool_get_node): Constify.
9931         (const_value_known_p): Do not use vnode->const_value_known;
9932         use decl_replaceable_p.
9933         (varpool_finalize_decl): Do not set const_value_known.
9934         (cgraph_variable_initializer_availability): Use decl_replaceable_p
9935         (varpool_extra_name_alias): Return new node.
9936         (varpool_used_from_object_file_p): New function.
9937
9938 2010-09-24  Richard Henderson  <rth@redhat.com>
9939
9940         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
9941         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
9942         (do_spill): Use REG_CFA_OFFSET.
9943         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
9944         as appropriate.
9945         (ia64_expand_epilogue): Likewise.
9946         (process_set): Split into ...
9947         (process_cfa_adjust_cfa): this,
9948         (process_cfa_register): this,
9949         (process_cfa_offset): and this new function.
9950         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
9951         instead of REG_FRAME_RELATED_EXPR.
9952
9953 2010-09-24  Olivier Hainque  <hainque@adacore.com>
9954
9955         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
9956
9957 2010-09-24  Jan Hubicka  <jh@suse.cz>
9958
9959         * doc/extend.texi: (attribute leaf): Document.
9960         * tree.c (local_define_builtin): Handle ECF_LEAF.
9961         (build_common_builtin_nodes): Set ECF_LEAF where needed.
9962         * tree.h (ECF_LEAF): New.
9963         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
9964         overwrittable and unavailable functions.
9965         (ipa_init): Put all_module_statics into optimization_summary_obstack.
9966         (copy_global_bitmap): Do not copy all_module_statics.
9967         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
9968         (propagate): Handle overwritable and unavailable leaf functions;
9969         initialize global info for overwritable and unavailable leaf functions;
9970         do not free all module statics.
9971         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
9972         local statics.
9973         * calls.c (flags_from_decl_or_type): Handle leaf.
9974         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
9975         abnormal gotos.
9976
9977 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
9978
9979         * gengtype.c: Reindented.
9980         * gengtype.h: Reindented.
9981         * gengtype-parse.c: Reindented.
9982
9983 2010-09-24  Jan Hubicka  <jh@suse.cz>
9984
9985         PR tree-optimization/45738
9986         PR tree-optimization/45741
9987         * expr.c (string_constant): Allow CONST_DECL too;
9988         check that DECL_INITIAL is set.
9989         * varpool.c (const_value_known_p): Only look into VAR_DECL
9990         and CONST_DECL.
9991
9992 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
9993
9994         * common.opt (undef): New.
9995
9996 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
9997
9998         PR middle-end/45234
9999         * rtl.h (enum global_rtl_index): Add
10000         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
10001         (LAST_VIRTUAL_POINTER_REGISTER): Define.
10002         (virtual_preferred_stack_boundary_rtx,
10003         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
10004         (LAST_VIRTUAL_REGISTER): Increase by one.
10005         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
10006         instead of LAST_VIRTUAL_REGISTER.
10007         * function.c (instantiate_new_reg): Handle
10008         virtual_preferred_stack_boundary_rtx.
10009         * emit-rtl.c (init_virtual_regs): Handle
10010         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
10011         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
10012         * explow.c (round_push): If crtl->preferred_stack_boundary
10013         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
10014         virtual_preferred_stack_boundary_rtx alignment instead of
10015         crtl->preferred_stack_boundary alignment.
10016         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
10017         macros.  Never decrease crtl->preferred_stack_boundary,
10018         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
10019         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
10020         stack_pointer_delta in dynamic allocation, even when size
10021         is constant.
10022         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
10023         macro.
10024         * print-rtl.c (print_rtx): Handle
10025         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
10026         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
10027         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
10028         * config/frv/frv.c (frv_emit_movsi): Likewise.
10029         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
10030         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
10031         Likewise.
10032
10033         Revert:
10034         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
10035
10036         PR middle-end/45234
10037         * calls.c (expand_call): Make sure that all variable sized
10038         adjustments are multiple of preferred stack boundary after
10039         stack alignment.
10040
10041 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
10042             Dominique Dhumieres  <dominiq@lps.ens.fr>
10043
10044         PR bootstrap/45751
10045         * config/darwin-driver.c (darwin_default_min_version):
10046         Adjust size passed to memcpy in two places.
10047
10048 2010-09-24  Richard Guenther  <rguenther@suse.de>
10049
10050         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
10051         Make sure to not call set_type_context with error_mark_node.
10052         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
10053
10054 2010-09-24  Richard Guenther  <rguenther@suse.de>
10055
10056         * Makefile.in (OBJS-onestep): Remove.
10057         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
10058         (libbackend.a): Remove onestep support.
10059         (libbackend.o): Remove.
10060         * configure.ac (--enable-intermodule): Remove.
10061         * configure: Regenerate.
10062
10063 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
10064
10065         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
10066         reaching the end of a block if it occurs at a DEBUG_INSN.
10067
10068 2010-09-09  Tristan Gingold  <gingold@adacore.com>
10069
10070         PR target/44242
10071         * config/vms/vms-crt0-64.c: Removed.
10072         * config/vms/vms-crt0.c: Removed.
10073         * config/vms/vms-psxcrt0-64.c: Removed.
10074         * config/vms/vms-psxcrt0.c: Removed.
10075         * config/vms/vms-ucrt0.c: New file.
10076         * config/vms/t-vms64: Removed.
10077         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
10078         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
10079         * config.gcc (alpha-dec-vms): Use t-vms.
10080
10081 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10082
10083         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
10084         underfull hbox in DVI output.
10085         (-fobjc-class-cxx-cdtors): Same change.
10086         (-fobjc-exceptions): Tidied up documentation.  Explain what the
10087         option does, but moved the (lenghty) description of the exception
10088         syntax into objc.texi.
10089         (-fobjc-gc): Explain that the option is not useful with the GNU
10090         runtime.
10091         (-fzero-link): Explain that the GNU runtime always works in
10092         "zero-link" mode.
10093         * doc/objc.texi: All sections: simplified @node declarations
10094         removing specification of next, previous, up node.
10095         (Objective-C): Updated introduction.
10096         (Garbage Collection): Updated.  The bohem-gc library is now
10097         included in gcc itself.  Mention that this section only applies to
10098         the GNU Objective-C runtime.
10099         (compatibility_alias): Small tidy up.
10100         (Exceptions): New section mostly containing text previously in the
10101         description of the -fobjc-exception command-line option.
10102         (Synchronization): Same.
10103
10104 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
10105
10106         * config/i386/i386.md (ix86_code_end): Move the initialization of
10107         xops array near the consumer.  Use AX_REG and SP_REG instead of
10108         numerical constants.
10109
10110 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10111
10112         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
10113         method [methodname]' for an Objective-C method instead of the less
10114         satisfactory 'too many arguments to function' (with no method name).
10115
10116 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
10117
10118         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
10119         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
10120         (execute_update_addresses_taken): Remove parameter.  Execute the
10121         optimization unconditionally.
10122         * passes.c (execute_function_todo): Call execute_update_addresses_taken
10123         unconditionally if TODO_rebuild_alias is set, else only when optimizing
10124         if TODO_update_address_taken is set.
10125
10126 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
10127
10128         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10129         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
10130         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10131         (arm_output_addr_const_extra): Make static.
10132
10133 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
10134
10135         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
10136         define as unspec_volatile.
10137         ("nops"): Define as unspec_volatile. Use fputs to write to
10138         asm_out_file directly.  Output NOPs on separate lines using while loop.
10139         * config/i386/i386.c (ix86_code_end): Use fputs to write to
10140         asm_out_file directly.  Output NOPs on separate lines using while loop.
10141
10142 2010-09-23  Richard Guenther  <rguenther@suse.de>
10143
10144         PR tree-optimization/45565
10145         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
10146         Make sure to adjust the fndecl before replacing the stmt.
10147
10148 2010-09-23  Richard Guenther  <rguenther@suse.de>
10149
10150         PR middle-end/45750
10151         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
10152         gimplifying MEM_REF.
10153
10154 2010-09-23  Alan Modra  <amodra@gmail.com>
10155
10156         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
10157         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
10158
10159 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
10160
10161         PR rtl-optimization/44374
10162         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
10163         * df-core.c (df_set_bb_dirty): Set it.
10164         * ifcvt.c (find_memory): Remove function.
10165         (dead_or_predicable): Use can_move_insns_across.
10166         * df.h (can_move_insns_across): Declare function.
10167         * cfgcleanup.c (block_was_dirty): New static variable.
10168         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
10169         than df_get_bb_dirty.
10170         (try_head_merge_bb): New static function.
10171         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
10172         is set.
10173         * df-problems.c: Include "target.h"
10174         (df_simulate_find_uses): New static function.
10175         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
10176         (find_memory, find_memory_store): New static functions.
10177         (can_move_insns_across): New function.
10178         * Makefile.in (df-problems.o): Update dependencies.
10179
10180 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
10181
10182         PR java/44095
10183         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
10184         is specified and the suffix of the file isn't ".c".
10185         * config/sparc/linux64.h (ASM_SPEC): Likewise.
10186
10187 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10188
10189         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
10190         * doc/cppopts.texi: Fix markup of index entry.
10191         * doc/extend.texi (Constructing Calls): Fix markup of
10192         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
10193         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
10194         (Vague Linkage, C++ Attributes): Fix markup of index entries and
10195         keywords.
10196         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
10197         avoid long lines.
10198         (C Dialect Options, C++ Dialect Options, Warning Options)
10199         (Debugging Options, Spec Files, Darwin Options)
10200         (i386 and x86-64 Options, MIPS Options)
10201         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
10202         index entries, avoid abbreviations, allow URLs to wrap, avoid
10203         long lines, avoid overlong pages from long @itemx lists.
10204         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
10205         * doc/standards.texi (Standards): Likewise.
10206         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
10207
10208 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
10209
10210         * opts-common.c (prune_options): Make static.  Work with decoded
10211         options.
10212         (decode_cmdline_options_to_array): Call prune_options.  Don't
10213         resize option array here.
10214         * opts.h (prune_options): Remove prototype.
10215         * gcc.c (process_command): Take decoded options; don't call
10216         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
10217         (main): Call decode_cmdline_options_to_array here instead of
10218         prune_options.  Update call to process_command.
10219         * config/darwin-driver.c: Include opts.h.
10220         (darwin_default_min_version): Work with decoded options.  Don't
10221         handle -b or -V here.
10222         * config/darwin.h (darwin_default_min_version): Update prototype.
10223         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
10224         darwin_default_min_version.
10225         * config/i386/cygwin.h (mingw_scan): Update prototype.
10226         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
10227         * config/i386/cygwin1.c: Include opts.h.
10228         (mingw_scan): Work with decoded options.
10229         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
10230         * config/t-darwin (darwin-driver.o): Update dependencies.
10231
10232 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
10233
10234         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
10235         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
10236         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
10237         -force-link, -force-link=, -language, -language=,
10238         -library-directory, -library-directory=, -no-canonical-prefixes,
10239         -no-standard-libraries, -no-warnings, -optimize, -output,
10240         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
10241         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
10242         -print-file-name=, -print-libgcc-file-name,
10243         -print-multi-directory, -print-multi-lib,
10244         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
10245         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
10246         -profile, -save-temps, -shared, -specs, -specs=, -static,
10247         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
10248         symbolic): New.
10249         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
10250         * gcc.c (A Short Introduction to Adding a Command-Line Option):
10251         Remove comment.
10252         (cc1_options): Correct specs for passing down --help,
10253         --target-help and --help=*.  Add spec for passing down --version.
10254         (struct option_map, option_map, target_option_translations,
10255         translate_options): Remove.
10256         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
10257         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
10258         OPT_fhelp_ and OPT_ftarget_help.
10259         (process_command): Don't call translate_options.  Call
10260         decode_cmdline_options_to_array before checking for
10261         -no-canonical-prefixes using decoded options.
10262         * opts-common.c (tm.h): Update comment on #include.
10263         (find_opt): Allow abbreviations of long options.
10264         (struct option_map, option_map): New.
10265         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
10266         and -mno handling.
10267         (target_option_translations): New.
10268         (decode_cmdline_options_to_array): Handle
10269         TARGET_OPTION_TRANSLATE_TABLE in driver.
10270         * opts.c (common_handle_option): Don't handle OPT_fhelp,
10271         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
10272
10273 2010-09-22  Richard Guenther  <rguenther@suse.de>
10274
10275         * tree-inline.c (optimize_inline_calls): Schedule cleanups
10276         only if we inlined something.  Block compaction and conditional
10277         folding are done by cfg cleanup.  Schedule update-address-taken.
10278         (tree_function_versioning): Remove redundant call to number_blocks.
10279         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
10280         folding is done by cfg cleanup.
10281         * passes.c (init_optimization_passes): Remove update-address-taken
10282         pass after IPA inlining.
10283
10284 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
10285
10286         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
10287         to update conditions. Fix reg_mode[] check.
10288
10289 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
10290
10291         * config/picochip/picochip.md (movhicc): Use expand to check whether
10292         movhicc is available and split it after reload.
10293
10294 2010-09-22  Richard Guenther  <rguenther@suse.de>
10295
10296         * tree-ssanames.c (release_dead_ssa_names): Do not remove
10297         callee edges here.
10298         * passes.c (init_optimization_passes): Remove early CFG cleanup.
10299         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
10300         (pass_cleanup_cfg): Likewise.
10301         (execute_fixup_cfg): Cleanup.
10302         * tree-pass.h (pass_cleanup_cfg): Remove.
10303
10304 2010-09-22  Martin Jambor  <mjambor@suse.cz>
10305
10306         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
10307         builtins if it is true.
10308         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
10309         parameter.
10310
10311 2010-09-22  Martin Jambor  <mjambor@suse.cz>
10312
10313         * tree-sra.c (struct access): New field grp_no_warning.
10314         (create_access_replacement): Set TREE_NO_WARNING according to
10315          grp_no_warning.
10316         (create_artificial_child_access): Use build_ref_for_model and set
10317         grp_no_warning if build_user_friendly_ref_for_offset fails.
10318         (propagate_subaccesses_across_link): Likewise.
10319
10320 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
10321
10322         PR target/35664
10323         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
10324         ('f'): Likewise.
10325
10326 2010-09-22  Tristan Gingold  <gingold@adacore.com>
10327
10328         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
10329
10330 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
10331
10332         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
10333         * config/i386/i386.c (decide_alg): Update for rename.
10334
10335 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
10336
10337         PR rtl-optimization/45739
10338         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
10339         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
10340
10341 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
10342
10343         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
10344         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
10345         Remove.
10346         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
10347         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10348
10349 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
10350
10351         PR objc/23710
10352         * c-parser.c (c_parser_objc_method_definition): Check the return
10353         value of objc_start_method_definition and if false is returned,
10354         parse the method definition but emit no code.
10355
10356 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
10357
10358         PR objc/25965
10359         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
10360         call objc_get_interface_ivars ().
10361
10362 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
10363
10364         PR target/45694
10365         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
10366         static chain-register is used for 64-bit.
10367
10368 2010-09-21  Richard Guenther  <rguenther@suse.de>
10369
10370         * dwarf2out.c (is_cu_die): New function.
10371         (add_pubtype): Use it.
10372         (gen_subprogram_die): Likewise.
10373         (gen_struct_or_union_type_die): Likewise.
10374         (dwarf2out_finish): Likewise.
10375         (comp_unit_die): Rename to ...
10376         (single_comp_unit_die): ... this.
10377         (comp_unit_die): New function lazily constructing and
10378         returning single_comp_unit_die.
10379         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
10380         base_type_die, subrange_type_die, modified_type_die,
10381         lower_bound_default, add_bound_info, add_prototyped_attribute,
10382         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
10383         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
10384         force_decl_die, gen_namespace_die, dwarf2out_decl,
10385         dwarf2out_start_source_file, dwarf2out_end_source_file,
10386         prune_unused_types, dwarf2out_finish): Use it.
10387         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
10388         the global list of translation-unit decls.
10389         (dwarf2out_init): Do not create single_comp_unit_die here.
10390         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
10391
10392 2010-09-21  Richard Guenther  <rguenther@suse.de>
10393
10394         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
10395         for bool for C++.
10396
10397 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
10398
10399         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
10400         (qhs_extenddi_cstr): Likewise.
10401         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
10402         them for the source operand.
10403
10404 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
10405
10406         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
10407         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
10408         (ix86_split_ashr): Ditto.
10409         (ix86_split_lshr): Ditto.
10410
10411 2010-09-21  Richard Guenther  <rguenther@suse.de>
10412
10413         PR tree-optimization/45580
10414         * tree-ssa-propagate.c (substitute_and_fold): Always replace
10415         regular uses.
10416         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
10417         virtuals fold the call into a regular indirect one.
10418
10419 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
10420
10421         PR rtl-optimization/42775
10422         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
10423         scheduling is enabled.
10424
10425 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
10426
10427         PR rtl-optimization/45728
10428         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
10429         gen_lowpart_common first and if that fails, force_reg first
10430         before calling gen_lowpart.
10431
10432         PR middle-end/45678
10433         * cfgexpand.c (expand_one_stack_var_at): Use
10434         crtl->max_used_stack_slot_alignment as max_align, instead
10435         of maximum of that and PREFERRED_STACK_BOUNDARY.
10436         Don't call update_stack_alignment.
10437
10438 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
10439
10440         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
10441         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
10442         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
10443         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
10444         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
10445         (build_nonstandard_integer_type): Likewise.
10446         (build_range_type_1): New function, built from...
10447         (build_range_type): ...this.  Call build_range_type_1.
10448         (build_nonshared_range_type): New function.
10449         (build_array_type_1): New function, built from...
10450         (build_array_type: ...this.  Call build_array_type_1.
10451         (build_nonshared_array_type): New function.
10452         * tree.h (build_nonshared_range_type): Declare.
10453         (build_nonshared_array_type): Likewise.
10454
10455 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
10456
10457         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
10458         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10459         (arm_class_likely_spilled_p): New function.
10460
10461 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
10462
10463         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
10464         indirect functions.
10465         (ix86_split_ashl): Ditto.
10466         (ix86_split_ashr): Ditto.
10467         (ix86_split_lshr): Ditto.
10468         (ix86_adjust_counter): Ditto.
10469
10470 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
10471
10472         * c-family/c-common.h (constant_string_class): Documented with
10473         comment identical to the one already in c-common.c.
10474
10475 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
10476
10477         * dwarf2out.c (any_cfis_emitted): New static variable.
10478         (add_fde_cfi): Set it.
10479         (dwarf2out_frame_debug): Clear it before processing,
10480         if it is set afterwards, flush any queued reg saves.
10481
10482         PR debug/45124
10483         * dwarf2out.c (add_accessibility_attribute): Assume
10484         DW_ACCESS_private as the default for dwarf_version > 2
10485         and DW_TAG_class_type parent.
10486         (gen_inheritance_die): Assume DW_ACCESS_public as the default
10487         for dwarf_version > 2 and parent other than DW_TAG_class_type.
10488
10489 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
10490
10491         PR target/45726
10492         * arm.md (arm_movt): Only enable on machines with MOVT.
10493
10494 2010-09-20  Jie Zhang  <jie@codesourcery.com>
10495
10496         * config/arm/arm.c (arm_address_offset_is_imm): New.
10497         (arm_early_store_addr_dep): New.
10498         (arm_early_load_addr_dep): New.
10499         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
10500         (arm_early_load_addr_dep): Declare.
10501         (arm_address_offset_is_imm): Declare.
10502         * config/arm/cortex-m4.md: New file.
10503         * config/arm/cortex-m4-fpu.md: New file.
10504         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
10505         (attr generic_sched): Exclude cortexm4.
10506         (attr generic_vfp): Exclude cortexm4.
10507
10508 2010-09-20  Richard Guenther  <rguenther@suse.de>
10509
10510         PR middle-end/45704
10511         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
10512
10513 2010-09-20  Jan Hubicka  <jh@suse.cz>
10514
10515         PR tree-optimize/45605
10516         * cgraph.h (const_value_known_p): Declare.
10517         (varpool_decide_const_value_known): Remove.
10518         * tree-ssa-ccp.c (get_base_constructor): Use it.
10519         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
10520         * expr.c (string_constant): Likewise.
10521         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
10522         * ipa.c (ipa_discover_readonly_nonaddressable_var,
10523         function_and_variable_visibility): Likewise.
10524         * gimplify.c (gimplify_call_expr): Likewise.
10525         * gimple-fold.c (get_symbol_constant_value): Likewise.
10526         * varpool.c (varpool_decide_const_value_known): Replace by...
10527         (const_value_known_p): ... this one; handle other kinds of DECLs
10528         too and work for automatic vars.
10529         (varpool_finalize_decl): Use const_value_known_p.
10530
10531 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
10532
10533         PR target/45726
10534         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
10535
10536 2010-09-20  Richard Guenther  <rguenther@suse.de>
10537
10538         PR tree-optimization/45705
10539         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
10540
10541 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
10542
10543         PR rtl-optimization/45695
10544         * combine.c (try_combine): When splitting a two set pattern,
10545         make sure the pattern which will be put into i2 doesn't use REGs
10546         or MEMs set by insns in between i2 and i3.
10547
10548 2010-09-19  Jan Hubicka  <jh@suse.cz>
10549
10550         PR lto/44246
10551         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
10552         processing same node twice.
10553
10554 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
10555
10556         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
10557         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10558         (bfin_class_likely_spilled_p): New function
10559
10560 2010-09-19  Ira Rosen  <irar@il.ibm.com>
10561
10562         PR tree-optimization/45714
10563         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
10564         created in vectorizable_call instead of the original statement in
10565         def stmt updates.
10566
10567 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
10568
10569         * config/i386/i386-protos.h (split_double_mode): New prototype.
10570         (split_di, split_ti): Remove prototypes.
10571         * config/i386/i386.c (split_double_mode): New function.
10572         (split_di, split_ti): Remove.
10573         (ix86_expand_branch): Use split_double_mode.
10574         (ix86_split_to_parts): Ditto.
10575         (ix86_split_ashl): Ditto.
10576         (ix86_split_ashr): Ditto.
10577         (ix86_split_lshr): Ditto.
10578         (ix86_force_to_memory): Ditto.
10579         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
10580
10581 2010-09-18  Jan Hubicka  <jh@suse.cz>
10582
10583         PR tree-optimization/45453
10584         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
10585         virtual functions are reachable.
10586         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
10587         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
10588         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
10589         when modifying function.
10590
10591 2010-09-18  Jan Hubicka  <jh@suse.cz>
10592
10593         PR tree-optimization/45605
10594         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
10595         * gimple-fold.c (static_object_in_other_unit_p): New function.
10596         (canonicalize_constructor_val): Use it.
10597         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
10598         returning NULL.
10599         (gimple_fold_obj_type_ref_known_binfo): Use
10600         static_object_in_other_unit_p.
10601
10602 2010-09-18  Richard Guenther  <rguenther@suse.de>
10603
10604         PR tree-optimization/45709
10605         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
10606         insertions until after all PHI nodes of the block are processed.
10607
10608 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
10609
10610         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
10611
10612 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
10613
10614         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
10615
10616 2010-09-18  Richard Guenther  <rguenther@suse.de>
10617
10618         PR tree-optimization/45709
10619         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
10620
10621 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
10622
10623         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
10624         (dot_deps_stmt): Same.
10625         * graphite-poly.c (dot_lst): Same.
10626         * graphite-scop-detection.c (dot_all_scops): Same.
10627         (dot_scop): Same.
10628
10629 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
10630
10631         Revert:
10632         2009-12-16  Ben Elliston  <bje@au.ibm.com>
10633
10634         * tree-data-ref.c (dot_rdg_1): Added back.
10635         (dot_rdg): Same.  Added "#if 0" around system call.
10636
10637 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
10638             Richard Henderson  <rth@redhat.com>
10639
10640         * config/i386/i386.c (initial_ix86_tune_features): Add
10641         X86_TUNE_PAD_SHORT_FUNCTION.
10642         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
10643         (ix86_count_insn): New.
10644         (ix86_pad_short_function): Likewise.
10645         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
10646
10647         * config/i386/i386.h (ix86_tune_indices): Add
10648         X86_TUNE_PAD_SHORT_FUNCTION.
10649         (TARGET_PAD_SHORT_FUNCTION): New.
10650
10651         * config/i386/i386.md (UNSPEC_NOPS): New.
10652         (nops): Likewise.
10653
10654 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
10655
10656         PR middle-end/45234
10657         * calls.c (expand_call): Make sure that all variable sized
10658         adjustments are multiple of preferred stack boundary after
10659         stack alignment.
10660
10661 2010-09-17  DJ Delorie  <dj@redhat.com>
10662
10663         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
10664         passed an invalid value, print an error instead of ICEing.
10665         (valid_psw_flag): New.
10666         (rx_expand_builtin): Call it for setpsw/clrpsw.
10667         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
10668
10669         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
10670         (bitclr_in_memory): Likewise.
10671         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
10672
10673 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
10674
10675         PR middle-end/45678
10676         * cfgexpand.c (update_stack_alignment): New.
10677         (get_decl_align_unit): Use it.
10678         (expand_one_stack_var_at): Call update_stack_alignment.
10679
10680 2010-09-17  Richard Guenther  <rguenther@suse.de>
10681
10682         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
10683         Properly copy the read string.
10684
10685 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
10686
10687         * doc/options.texi (Variable): Document.
10688         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
10689         generate target_flags declarations explicitly.  Don't define
10690         VarExists variables for the driver.
10691         * common.opt (target_flags): New Variable record.
10692         (flag_dump_unnumbered, flag_dump_unnumbered_links,
10693         flag_var_tracking, flag_var_tracking_assignments,
10694         flag_var_tracking_assignments_toggle): Don't mark variables with
10695         VarExists.
10696         * config/i386/i386.c (ix86_isa_flags): Don't define here.
10697         * config/i386/i386.opt (ix86_isa_flags): Define here.
10698         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
10699         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
10700         VarExists.
10701         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
10702         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
10703         Only define for generator programs.
10704         * rtlanal.c (target_flags): Remove.
10705         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
10706         flag_var_tracking_assignments_toggle): Remove.
10707
10708 2010-09-17  Michael Matz  <matz@suse.de>
10709
10710         PR tree-optimization/43432
10711         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
10712         Accept backwards consecutive accesses.
10713         (vect_create_data_ref_ptr): If step is negative generate
10714         decreasing IVs.
10715         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
10716         (perm_mask_for_reverse, reverse_vec_elements): New functions.
10717         (vectorizable_load): Handle loads with negative steps when easily
10718         possible.
10719
10720 2010-09-03  Jan Hubicka  <jh@suse.cz>
10721
10722         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
10723
10724 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
10725
10726         * config/v850/v850.c (v850_function_value_regno_p): Make static.
10727         Adjust comments. Declare.
10728         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
10729         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
10730
10731 2010-09-17  Richard Guenther  <rguenther@suse.de>
10732
10733         * common.opt (combine): Remove.
10734         * gcc.c (default_compilers): Remove specs testing combine.
10735         The C compilers no longer can combine.
10736         (option_map): Remove -combine.
10737         (display_help): Remove -combine.
10738         (driver_handle_option): Remove OPT_combine handling.
10739         (compile_input_file_p): Remove.
10740         (do_spec): Remove code concerning combine.
10741         (main): Likewise.
10742         * doc/invoke.texi: Remove traces of -combine.
10743         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
10744
10745 2010-09-17  Richard Guenther  <rguenther@suse.de>
10746
10747         PR middle-end/45678
10748         * builtins.c (fold_builtin_memory_op): Always properly adjust
10749         alignment of memory accesses.
10750
10751 2010-09-16  Jan Hubicka  <jh@suse.cz>
10752
10753         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
10754         processing clone.
10755
10756 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
10757
10758         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
10759
10760         * config/i386/i386.c (predict_jump): Add prototype.
10761         (flag_opts): Add -m8bit-idiv.
10762         (ix86_split_idivmod): New.
10763
10764         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
10765         Add 2 splitters for SI/DI mode divide.
10766         (divmod<mode>4_1): New pattern.
10767         (udivmod<mode>4_1): Likewise.
10768         (testdi_ccno_1): Likewise.
10769
10770         * config/i386/i386.opt (m8bit-idiv): New.
10771
10772         * doc/invoke.texi: Document -m8bit-idiv.
10773
10774 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
10775
10776         PR bootstrap/45680
10777         * config/i386/i386.c (min_insn_size): Moved out of the
10778         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
10779
10780 2010-09-16  Jan Hubicka  <jh@suse.cz>
10781
10782         * lto-cgraph.c (lto_output_node): Fix handling of clones.
10783         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
10784         unreachable clones with reachable clones.
10785         * tree-inline.c (copy_bb): Fix sanity checking when producing
10786         unreachable clone.
10787
10788 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
10789
10790         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
10791         (TARGET_MEMORY_MOVE_COST): Define.
10792         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
10793
10794 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
10795
10796         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
10797         maybe_tidy_empty_bb.
10798
10799         Revert:
10800         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
10801         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
10802
10803 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
10804
10805         * target.def (target_option.optimization): New hook.
10806         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
10807         TARGET_OPTION_OPTIMIZATION hook.
10808         * doc/tm.texi: Regenerate.
10809         * hooks.c (hook_void_int_int): New.
10810         * hooks.h (hook_void_int_int): Declare.
10811         * opts.c: Don't include tm_p.h.
10812         (decode_options): Use targetm.target_option.optimization instead
10813         of OPTIMIZATION_OPTIONS.
10814         * system.h (OPTIMIZATION_OPTIONS): Poison.
10815         * config/arm/arm-protos.h (arm_optimization_options): Remove.
10816         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
10817         (arm_optimization_options): Rename to arm_option_optimization.
10818         Make static.
10819         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
10820         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
10821         (cris_option_optimization): New.
10822         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
10823         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
10824         (crx_option_optimization): New.
10825         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
10826         * config/frv/frv-protos.h (frv_optimization_options): Remove.
10827         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
10828         (frv_optimization_options): Rename to frv_option_optimization.
10829         Make static.
10830         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
10831         * config/h8300/h8300.c (h8300_option_optimization): New.
10832         (TARGET_OPTION_OPTIMIZATION): Define.
10833         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
10834         * config/i386/i386-protos.h (optimization_options): Remove.
10835         * config/i386/i386.c (optimization_options): Rename to
10836         ix86_option_optimization.  Make static.
10837         (TARGET_OPTION_OPTIMIZATION): Define.
10838         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
10839         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
10840         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
10841         (ia64_optimization_options): Rename to ia64_option_optimization.
10842         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
10843         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
10844         commented-out definition.
10845         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
10846         instead of OPTIMIZATION_OPTIONS.
10847         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
10848         (m32r_option_optimization): New.
10849         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
10850         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
10851         Remove.
10852         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
10853         (mcore_option_optimization): New.
10854         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
10855         * config/mep/mep-protos.h (mep_optimization_options): Remove.
10856         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
10857         (mep_optimization_options): Rename to mep_option_optimization.
10858         Make static.  Take unused level and size parameters.
10859         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
10860         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
10861         (mmix_option_optimization): New.
10862         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
10863         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
10864         (pdp11_option_optimization): New.
10865         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
10866         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
10867         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
10868         (optimization_options): Rename to rs6000_option_optimization.
10869         Make static.
10870         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
10871         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
10872         * config/rx/rx.c (rx_set_optimization_options): Rename to
10873         rx_option_optimization.  Make static.  Take unused level and size
10874         parameters.
10875         (TARGET_OPTION_OPTIMIZATION): Define.
10876         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
10877         * config/s390/s390-protos.h (optimization_options): Remove.
10878         * config/s390/s390.c (optimization_options): Rename to
10879         s390_option_optimization.  Make static.  Don't mark size parameter
10880         unused.
10881         (TARGET_OPTION_OPTIMIZATION): Define.
10882         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
10883         * config/sh/sh-protos.h (sh_optimization_options): Remove.
10884         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
10885         (sh_optimization_options): Rename to sh_option_optimization.  Make
10886         static.  Don't mark parameters unused.
10887         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
10888         * config/spu/spu-protos.h (spu_optimization_options): Remove.
10889         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
10890         (spu_optimization_options): Rename to spu_option_optimization.
10891         Make static.
10892         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
10893         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
10894         (v850_option_optimization): New.
10895         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
10896         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
10897         (xtensa_option_optimization): New.
10898         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
10899
10900 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
10901
10902         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
10903         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
10904         * doc/tm.texi: Regenerate.
10905         * system.h (OVERRIDE_OPTIONS): Poison.
10906         * target.def (override): Default to hook_void_void.
10907         * targhooks.c (default_target_option_override): Remove.
10908         * genmodes.c, machmode.def: Update comments mentioning
10909         OVERRIDE_OPTIONS.
10910         * config/alpha/alpha-modes.def: Update comment mentioning
10911         alpha_override_options.
10912         * config/alpha/alpha-protos.h (override_options): Remove.
10913         * config/alpha/alpha.c (override_options): Rename to
10914         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
10915         (TARGET_OPTION_OVERRIDE): Define.
10916         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
10917         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
10918         of OVERRIDE_OPTIONS.
10919         * config/arc/arc-protos.h (arc_init): Remove.
10920         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
10921         (arc_init): Rename to arc_option_override.  Make static.
10922         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
10923         (OVERRIDE_OPTIONS): Remove.
10924         * config/arm/arm-protos.h (arm_override_options): Remove.
10925         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
10926         (arm_override_options): Rename to arm_option_override.  Make
10927         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
10928         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
10929         * config/arm/arm.md: Update comment referring to arm_override_options.
10930         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
10931         instead of OVERRIDE_OPTIONS.
10932         * config/avr/avr-protos.h (avr_override_options): Remove.
10933         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
10934         (avr_override_options): Rename to avr_option_override.  Make static.
10935         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
10936         * config/bfin/bfin-protos.h (override_options): Remove (twice).
10937         * config/bfin/bfin.c (override_options): Rename to
10938         bfin_option_override.  Make static.
10939         (TARGET_OPTION_OVERRIDE): Define.
10940         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
10941         * config/cris/cris-protos.h (cris_override_options): Remove.
10942         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
10943         (cris_override_options): Rename to cris_option_override.  Make static.
10944         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
10945         * config/frv/frv-protos.h (frv_override_options): Remove.
10946         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
10947         (frv_override_options): Rename to frv_option_override.  Make static.
10948         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
10949         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
10950         * config/h8300/h8300.c (h8300_init_once): Rename to
10951         h8300_option_override.  Make static.
10952         (TARGET_OPTION_OVERRIDE): Define.
10953         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
10954         * config/i386/i386-protos.h (override_options): Remove.
10955         * config/i386/i386.c (override_options): Rename to
10956         ix86_option_override_internal.  Make static.  Comments referring
10957         to this function and callers changed.
10958         (ix86_option_override): New.
10959         (TARGET_OPTION_OVERRIDE): Define.
10960         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
10961         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
10962         * config/ia64/ia64.c (ia64_file_start): Update comment referring
10963         to ia64_override_options.
10964         * config/iq2000/iq2000-protos.h (override_options): Remove.
10965         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
10966         (override_options): Rename to iq2000_option_override.  Make static.
10967         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
10968         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
10969         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
10970         (lm32_override_options): Rename to lm32_option_override.  Make static.
10971         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
10972         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
10973         (m32r_option_override): New.
10974         (m32r_init): Update comment.
10975         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
10976         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
10977         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
10978         (m68hc11_override_options): Rename to m68hc11_option_override.
10979         Make static.  Return void.
10980         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
10981         * config/m68k/m68k-protos.h (override_options): Remove.
10982         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
10983         (override_options): Rename to m68k_option_override.  Make static.
10984         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
10985         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
10986         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
10987         (mcore_override_options): Rename to mcore_option_override.  Make
10988         static.
10989         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
10990         * config/mep/mep-protos.h (mep_override_options): Remove.
10991         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
10992         (mep_override_options): Rename to mep_option_override.  Make static.
10993         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
10994         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
10995         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
10996         (mmix_override_options): Rename to mmix_option_override.  Make static.
10997         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
10998         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
10999         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
11000         (mn10300_override_options): Rename to mn10300_option_override.
11001         Make static.
11002         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
11003         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
11004         * config/moxie/moxie.c (moxie_override_options): Rename to
11005         moxie_option_override.  Make static.
11006         (TARGET_OPTION_OVERRIDE): Define.
11007         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
11008         * config/picochip/picochip-protos.h (picochip_override_options):
11009         Remove.  Update comment referring to picochip_override_options.
11010         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
11011         (picochip_override_options): Rename to picochip_option_override.
11012         Make static.  Update comment and definition of
11013         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
11014         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
11015         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11016         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11017         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11018         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11019         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11020         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
11021         instead of OVERRIDE_OPTIONS.
11022         * config/rs6000/rs6000-modes.def: Update comment referring to
11023         rs6000_override_options.
11024         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
11025         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
11026         (rs6000_override_options): Rename to
11027         rs6000_option_override_internal.  Make static.  Commented
11028         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
11029         (rs6000_option_override): New.
11030         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
11031         instead of OVERRIDE_OPTIONS.
11032         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11033         * config/s390/s390-protos.h (override_options): Remove.
11034         * config/s390/s390.c (override_options): Rename to
11035         s390_option_override.  Make static.
11036         (TARGET_OPTION_OVERRIDE): Define.
11037         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
11038         * config/score/score-protos.h (score_override_options): Remove.
11039         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
11040         (score_override_options): Rename to score_option_override.  Make
11041         static.
11042         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
11043         Update comment referring to override_options.
11044         * config/score/score3.c (score3_override_options): Rename to
11045         score3_option_override.
11046         * config/score/score3.h (score3_override_options): Rename to
11047         score3_option_override.
11048         * config/score/score7.c (score7_override_options): Rename to
11049         score7_option_override.
11050         * config/score/score7.h (score7_override_options): Rename to
11051         score7_option_override.
11052         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
11053         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
11054         (sparc_override_options): Rename to sparc_option_override.  Make
11055         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
11056         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
11057         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
11058         instead of OVERRIDE_OPTIONS.
11059         * config/spu/spu-protos.h (spu_override_options): Remove.
11060         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
11061         (spu_override_options): Rename to spu_option_override.  Make
11062         static.
11063         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
11064         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
11065         OVERRIDE_OPTIONS.
11066         * config/vax/vax-protos.h (override_options): Remove.
11067         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
11068         (override_options): Rename to vax_option_override.  Make static.
11069         Call SUBTARGET_OVERRIDE_OPTIONS.
11070         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
11071         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
11072         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
11073         * config/xtensa/xtensa-protos.h (override_options): Remove.
11074         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
11075         (override_options): Rename to xtensa_option_override.  Make static.
11076         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
11077
11078 2010-09-16  Richard Guenther  <rguenther@suse.de>
11079
11080         PR tree-optimization/45623
11081         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
11082         (get_constraint_for_component_ref): If computing a constraint
11083         for the rhs handle type punning through unions.
11084         (get_constraint_for_address_of): Adjust.
11085         (get_constraint_for_1): Likewise.
11086         (get_constraint_for): Likewise.
11087         (get_constraint_for_rhs): New function.
11088         (do_structure_copy): Adjust.
11089         (make_constraint_to): Likewise.
11090         (handle_const_call): Likewise.
11091         (find_func_aliases): Likewise.
11092         (process_ipa_clobber): Likewise.
11093         (create_variable_info_for): Likewise.
11094
11095 2010-09-16  Ira Rosen  <irar@il.ibm.com>
11096
11097         * tree-vectorizer.c: Fix documentation.
11098         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
11099         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
11100         is_pattern_stmt_p, is_loop_header_bb_p,
11101         stmt_vinfo_set_inside_of_loop_cost,
11102         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
11103         known_alignment_for_access_p): Likewise.
11104         * tree-vect-loop.c: Fix documentation.
11105         (vect_get_cost): Start function name from new line.
11106         * tree-vect-data-refs.c: Fix documentation.
11107         * tree-vect_stmts.c: Likewise.
11108         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
11109         (vectorizable_store): Free vec_oprnds if allocated.
11110         (vectorizable_condition): Initialize several variables to avoid
11111         warnings.
11112         * tree-vect-slp.c: Fix documentation.
11113
11114 2010-09-16  Richard Guenther  <rguenther@suse.de>
11115
11116         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
11117         is TS_TRANSLATION_UNIT_DECL.
11118         (initialize_tree_contains_struct): Adjust.
11119         (all_translation_units): New global vector.
11120         (build_translation_unit_decl): New function.
11121         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
11122         (struct tree_translation_unit_decl): New.
11123         (all_translation_units): Declare.
11124         (union tree_node): Add translation_unit_decl member.
11125         (build_translation_unit_decl): Declare.
11126         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
11127         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
11128         New function.
11129         (pack_value_fields): Call it.
11130         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
11131         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
11132         (lto_output_tree_pointers): Call it.
11133         * lto-streamer-in.c (lto_input_tree_ref): Handle references
11134         to TRANSLATION_UNIT_DECL.
11135         (unpack_ts_translation_unit_decl_value_fields): New function.
11136         (unpack_value_fields): Call it.
11137         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
11138         (lto_input_tree_pointers): Call it.
11139         * lto-streamer.c (check_handled_ts_structures): Adjust.
11140         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
11141         * c-decl.c (all_translation_units): Remove.
11142         (pop_scope): Use build_translation_unit_decl.
11143         (collect_all_refs): Adjust.
11144         (for_each_global_decl): Likewise.
11145         (c_write_global_declarations): Likewise.
11146
11147 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
11148
11149         PR bootstrap/45686
11150         * fold-const.c (fold_checksum_tree): Change slot from const void **
11151         to void **, use CONST_CAST_TREE to store into *slot.
11152
11153 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
11154
11155         * config/i386/i386.md: Remove unneeded empty conditions and
11156         preparation statements from expanders.
11157         * config/i386/mmx.md: Ditto.
11158         * config/i386/sse.md: Ditto.
11159
11160 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
11161
11162         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
11163
11164 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11165
11166         PR rtl-optimization/45593
11167         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
11168         insns that were in delay slots as stand-alone insns.
11169
11170 2010-09-15  Ian Lance Taylor  <iant@google.com>
11171
11172         * incpath.c (remove_duplicates): If name is not a directory, issue
11173         a warning rather than an error.
11174
11175 2010-09-15  Martin Jambor  <mjambor@suse.cz>
11176
11177         PR middle-end/45644
11178         * tree-sra.c (create_access): Check for bit-fields directly.
11179
11180 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
11181
11182         PR tree-optimization/45633
11183         * tree-cfg.c (verify_gimple_assign_binary): Allow
11184         MINUS_EXPR with lhs and rhs1 pointer vector and
11185         rhs2 sizetype vector.
11186         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
11187         or vector pointer use TER to optimize pointer subtraction.
11188
11189 2010-09-15  Jie Zhang  <jie@codesourcery.com>
11190
11191         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
11192         fcmpd to fcmps.
11193
11194 2010-09-15  Ian Lance Taylor  <iant@google.com>
11195
11196         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
11197
11198 2010-09-15  Ian Lance Taylor  <iant@google.com>
11199
11200         * function.c (get_arg_pointer_save_area): Set
11201         arg_pointer_save_area_init to true.
11202
11203 2010-09-15  Martin Jambor  <mjambor@suse.cz>
11204
11205         * tree-sra.c (generate_subtree_copies): Updated comment.
11206         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
11207         obtained from the statement iterator instead.
11208         (load_assign_lhs_subreplacements): Removed parameters lhs and
11209         right_offset, which is obtained from top_racc instead.  Parameter lacc
11210         is now expected to be the root of the processed tree rather than root's
11211         first child.  Updated all callers.
11212
11213 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
11214
11215         * config/pdp11/pdp11.c (register_move_cost): Rename to
11216         pdp11_register_move_cost.
11217         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
11218         pdp11_register_move_cost.
11219         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
11220         pdp11_register_move_cost instead of register_move_cost.
11221
11222 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
11223
11224         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
11225         pattern for vmovn. Expansion in case of non
11226         -mvectorize-with-neon-quad.
11227         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
11228         non- -mvectorize-with-neon-quad case.
11229         (move_lo_quad_<mode>): New expansion to vmov into low part.
11230         (move_hi_quad_<mode>): New expansion to vmov into high part.
11231         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
11232         (move_lo_quad_v4sf): Likewise.
11233         (move_lo_quad_v8hi): Likewise.
11234         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
11235         low part.
11236         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
11237         high part.
11238         * config/arm/iterators.md (ANY128): New mode iterator.
11239         (V_narrow_pack): New mode attribute.
11240         (V_HALF): Add attribute.
11241         (V_DOUBLE): Add attribute.
11242         (V_mode_nunits): Add attribute.
11243
11244 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11245
11246         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
11247         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
11248
11249 2010-09-15  Olivier Hainque  <hainque@adacore.com>
11250             Jose Ruiz  <ruiz@adacore.com>
11251
11252         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
11253         * config/alpha/osf5-unwind.h: New file.
11254
11255 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11256
11257         PR bootstrap/45672
11258         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
11259         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
11260         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
11261
11262 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
11263
11264         * c-lang.h (struct lang_type): Add variable_size GTY option.
11265
11266 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11267
11268         PR bootstrap/45672
11269         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
11270
11271 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11272
11273         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
11274         result isn't used in memory address.
11275
11276 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11277
11278         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
11279         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
11280         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
11281         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
11282         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
11283         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
11284
11285         * target.def: Add units_per_simd_word to vectorize.
11286
11287         * targhooks.c (default_units_per_simd_word): New.
11288         * targhooks.h (default_units_per_simd_word): Likewise.
11289         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
11290         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11291         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
11292         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11293         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
11294         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11295         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
11296         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11297
11298         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
11299         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
11300
11301         * tree-vect-stmts.c: Don't include "tm_p.h".
11302         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
11303         with targetm.vectorize.units_per_simd_word.
11304
11305         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
11306
11307         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
11308
11309         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
11310         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
11311
11312         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
11313         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
11314
11315         * doc/tm.texi: Regenerated.
11316
11317 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11318
11319         * tree-vect-stmts.c: Include "tm_p.h".
11320
11321         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
11322         out of RTX_CODE.
11323
11324 2010-09-14  Martin Jambor  <mjambor@suse.cz>
11325
11326         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
11327         location of generated statement.  Changed all callers.
11328         (build_ref_for_model): New parameter loc which used to set location of
11329         all generated expressions.  Changed all callers.
11330         (generate_subtree_copies): Likewise.
11331         (init_subtree_with_zero): Likewise.
11332         (sra_modify_expr): Set locations of all generated statements and
11333         expressions to the location the original statement.
11334         (handle_unscalarized_data_in_subtree): Likewise.
11335         (load_assign_lhs_subreplacements): Likewise.
11336         (sra_modify_constructor_assign): Likewise.
11337         (sra_modify_assign): Likewise.
11338
11339 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
11340
11341         PR target/45277
11342         PR target/45363
11343         PR target/45407
11344         * doc/install.texi (sparc*-*-*): New section.
11345         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
11346
11347 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
11348
11349         PR middle-end/45567
11350         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
11351         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
11352         (expand_builtin): Adjust caller.
11353         (expand_builtin_unop): Only use subtarget if it has the right mode.
11354
11355 2010-09-14  Tristan Gingold  <gingold@adacore.com>
11356
11357         * configure.ac (plugins): Fix typos.
11358         * configure: Regenerate.
11359
11360 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
11361
11362         PR debug/45660
11363         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
11364         gen_type_die for function/method return type.
11365
11366 2010-09-14  Ira Rosen  <irar@il.ibm.com>
11367
11368         PR tree-optimization/45470
11369         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
11370         can throw an exception.
11371         * tree-vect-stmts.c (vectorizable_call): Likewise.
11372
11373 2010-09-14  DJ Delorie  <dj@redhat.com>
11374
11375         PR target/44749
11376         * config/mep/mep-protos.h (mep_save_register_info,
11377         mep_reinit_regs, mep_init_regs): Declare.
11378
11379         * config/mep/mep.c: Move all target definitions to the end of the
11380         file to avoid the need for duplicate declarations.
11381         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
11382         (mep_reorg_erepeat): Remove unused variables.
11383         (mep_expand_builtin): Likewise.
11384
11385         * config/mep/mep-pragma.c: Don't include rtl.h.
11386         (INVALID_REGNUM): New.
11387         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
11388         functions.
11389         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
11390         Avoid enum/integer math.
11391
11392 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
11393
11394         PR target/44749
11395         * config/mep/t-mep (GTM_H): Add insn-constants.h.
11396         * config/mep/mep.c (mep_conditional_register_usage): Take no
11397         parameters.
11398         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
11399         prototype.
11400         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
11401         call to mep_conditional_register_usage.
11402
11403 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
11404
11405         PR debug/43937
11406         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
11407         the DECL as well.
11408
11409 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
11410
11411         PR rtl-optimization/45617
11412         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
11413         even if low N bits of X aren't known to be zero.
11414
11415 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
11416
11417         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
11418
11419         * config/i386/i386.c (initial_ix86_tune_features): Add
11420         X86_TUNE_VECTORIZE_DOUBLE.
11421         (ix86_units_per_simd_word): New.
11422
11423         * config/i386/i386.h (ix86_tune_indices): Add
11424         X86_TUNE_VECTORIZE_DOUBLE.
11425         (TARGET_VECTORIZE_DOUBLE): New.
11426         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
11427
11428 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
11429
11430         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
11431         (new_temp_expr_table): Allocate call_cnt vector.
11432         (free_temp_expr_table): Free it.
11433         (process_replaceable): Add call_cnt parm and set in vector.
11434         (find_replaceable_in_bb): Skip replacement if def/use span a call.
11435         (debug_ter): Dump call_cnt value, remove stderr uses.
11436
11437 2010-09-13  Jan Hubicka  <jh@suse.cz>
11438
11439         * tree.c (build_zero_cst): New.
11440         * tree.h (build_zero_cst): Declare.
11441         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
11442         (get_base_constructor): Break out from ...
11443         (fold_const_aggregate_ref): Here; handle empty constructors.
11444
11445 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
11446
11447         * config/arm/arm.md: (define_attr "conds"): Update comment.
11448         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
11449         conds attribute to clob.
11450         (arm_sync_compare_and_swapsi): Likewise.
11451         (arm_sync_compare_and_swap<mode>): Likewise.
11452         (arm_sync_lock_test_and_setsi): Likewise.
11453         (arm_sync_lock_test_and_set<mode>): Likewise.
11454         (arm_sync_new_<sync_optab>si): Likewise.
11455         (arm_sync_new_nandsi): Likewise.
11456         (arm_sync_new_<sync_optab><mode>): Likewise.
11457         (arm_sync_new_nand<mode>): Likewise.
11458         (arm_sync_old_<sync_optab>si): Likewise.
11459         (arm_sync_old_nandsi): Likewise.
11460         (arm_sync_old_<sync_optab><mode>): Likewise.
11461         (arm_sync_old_nand<mode>): Likewise.
11462
11463 2010-09-13  Olivier Hainque  <hainque@adacore.com>
11464
11465         * fwprop.c (forward_propagate_and_simplify): Only attach a
11466         REG_EQUAL note to an insn if the destination is a register.
11467         * gcse.c (try_replace_reg): Likewise.
11468
11469 2010-09-13  Richard Guenther  <rguenther@suse.de>
11470
11471         PR tree-optimization/45611
11472         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
11473         (copy_ref_info): Likewise.
11474
11475 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
11476
11477         PR debug/45604
11478         PR debug/45419
11479         PR debug/45408
11480         * tree-pretty-print.c (dump_generic_node): Disregard top-level
11481         types of MEM_REF pointer types to the same type.
11482
11483 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
11484
11485         PR rtl-optimization/41087
11486         * ifcvt.c (noce_get_condition): Don't allow conditions with
11487         side-effects.
11488
11489 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
11490
11491         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11492         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
11493         * config/frv/frv.c (frv_register_move_cost): Make static. Change
11494         arguments type to reg_class_t. Add mode argument.
11495         (frv_memory_move_cost): New.
11496         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
11497
11498 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
11499
11500         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
11501         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
11502
11503 2010-09-10  Jan Hubicka  <jh@suse.cz>
11504
11505         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
11506
11507 2010-09-10  Richard Guenther  <rguenther@suse.de>
11508
11509         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
11510         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
11511         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
11512         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
11513         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
11514
11515 2010-09-10  Richard Guenther  <rguenther@suse.de>
11516
11517         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
11518         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
11519         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
11520         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
11521
11522 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
11523
11524         PR middle-end/45634
11525         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
11526         of string folding is of integral type.
11527
11528 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
11529
11530         * doc/invoke.texi (-x): Fix typo.
11531
11532 2010-09-10  Richard Guenther  <rguenther@suse.de>
11533
11534         PR debug/44115
11535         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
11536         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
11537         Output DECL_DEBUG_EXPR.
11538         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11539         Input DECL_DEBUG_EXPR.
11540
11541 2010-09-10  Richard Guenther  <rguenther@suse.de>
11542
11543         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
11544         (build_index_type): Implement in terms of build_range_type.
11545         (build_range_type): Do not allow NULL_TREE type, improve
11546         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
11547         if we didn't hash.
11548         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
11549         create a distinct copy of the type.
11550
11551 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
11552
11553         * configure: Regenerated.
11554         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
11555
11556 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11557
11558         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
11559         * config/arm/cortex-a9-neon.md: New and partially generated.
11560         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
11561
11562 2010-09-10  Richard Guenther  <rguenther@suse.de>
11563
11564         * tree.h (build_index_2_type): Remove.
11565         * tree.c (build_index_2_type): Remove.
11566
11567 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
11568
11569         PR bootstrap/45630
11570         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
11571         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
11572         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
11573
11574 2010-09-10  Martin Jambor  <mjambor@suse.cz>
11575
11576         PR tree-optimization/44972
11577         * tree-sra.c: Include toplev.h.
11578         (build_ref_for_offset): Entirely reimplemented.
11579         (build_ref_for_model): New function.
11580         (build_user_friendly_ref_for_offset): New function.
11581         (analyze_access_subtree): Removed build_ref_for_offset check.
11582         (propagate_subaccesses_across_link): Likewise.
11583         (create_artificial_child_access): Use
11584         build_user_friendly_ref_for_offset.
11585         (propagate_subaccesses_across_link): Likewise.
11586         (ref_expr_for_all_replacements_p): Removed.
11587         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
11588         (sra_modify_expr): Use build_ref_for_model.
11589         (load_assign_lhs_subreplacements): Likewise.
11590         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
11591         checks for return values of build_ref_for_offset.
11592         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
11593         build_ref_for_offset.
11594         * ipa-prop.h: Include gimple.h
11595         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
11596         (ipa_analyze_indirect_call_uses): Update comment.
11597         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
11598         (IPA_PROP_H): Likewise.
11599
11600 2010-09-10  Martin Jambor  <mjambor@suse.cz>
11601
11602         PR tree-optimization/44972
11603         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
11604         calling build_ref_for_offset.
11605
11606 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11607
11608         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
11609         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
11610         * config/arm/arm-tune.md: Regenerate.
11611         * doc/invoke.texi (ARM Options): Document it.
11612
11613 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
11614
11615         * config/i386/i386.c: Include sched-int.h.
11616         (TARGET_SCHED_DISPATCH): Defined.
11617         (TARGET_SCHED_DISPATCH_DO): Defined.
11618         (DISPATCH_WINDOW_SIZE): Defined.
11619         (MAX_DISPATCH_WINDOWS): Defined.
11620         (MAX_INSN): Defined.
11621         (MAX_IMM): Defined.
11622         (MAX_IMM_SIZE): Defined.
11623         (MAX_IMM_32): Defined.
11624         (MAX_IMM_64): Defined.
11625         (MAX_LOAD): Defined.
11626         (MAX_STORE): Defined.
11627         (BIG): Defined.
11628         (dispatch_group): New.
11629         (num_allowable_groups): New.
11630         (group_name): New.
11631         (sched_insn_info_s): New.
11632         (dispatch_windows_s): New.
11633         (imm_info_s): New.
11634         (dispatch_window_list): New.
11635         (dispatch_window_list1): New.
11636         (get_mem_group): New.
11637         (is_cmp): New.
11638         (dispatch_violation): New.
11639         (is_branch): New.
11640         (is_prefetch): New.
11641         (init_window): New.
11642         (allocate_window): New.
11643         (init_dispatch_sched): New.
11644         (is_end_basic_block): New.
11645         (process_end_window): New.
11646         (allocate_next_window): New.
11647         (find_constant_1): New.
11648         (find_constant): New.
11649         (get_num_immediates): New.
11650         (has_immediate): New.
11651         (get_insn_path): New.
11652         (get_insn_group): New.
11653         (count_num_restricted): New.
11654         (fits_dispatch_window): New.
11655         (add_insn_window): New.
11656         (add_to_dispatch_window): New.
11657         (debug_dispatch_window_file): New.
11658         (debug_dispatch_window): New.
11659         (debug_insn_dispatch_info_file): New.
11660         (debug_ready_dispatch): New.
11661         (do_dispatch): New.
11662         (has_dispatch): New.
11663         * config/i386/i386.h (debug_ready_dispatch): Declared.
11664         (debug_dispatch_window): Declared.
11665         * config/i386/i386.opt (mdispatch-scheduler): New flag.
11666         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
11667         (TARGET_SCHED_DISPATCH_DO): New.
11668         * doc/tm.texi: Regererated.
11669         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
11670         ready_remove_first_dispatch
11671         (schedule_block): Call targetm.sched.dispatch and
11672         targetm.sched.dispatch_do.
11673         (sched_init): Call targetm.sched.dispatch and
11674         targetm.sched.dispatch_do.
11675         (ready_remove_first_dispatch): New.
11676         (number_in_ready): New.
11677         (get_ready_element): New.
11678         * hooks.c (hook_bool_rtx_int_false): New.
11679         (hook_void_rtx_int): New.
11680         * hooks.h (hook_bool_rtx_int_false): Declared.
11681         (hook_void_rtx_int): Declared.
11682         * sched-int.h (IS_DISPATCH_ON): Defined.
11683         (IS_CMP): Defined.
11684         (DISPATCH_VIOLATION): Defined.
11685         (FITS_DISPATCH_WINDOW): Defined.
11686         (DISPATCH_INIT): Defined.
11687         (ADD_TO_DISPATCH_WINDOW): Defined.
11688         (get_ready_element): Declared.
11689         (number_in_ready): Declared.
11690         * target.def (dispatch): Defined.
11691         (dispatch_do): Defined.
11692
11693 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
11694
11695         PR middle-end/45312
11696         * reload1.c (merge_assigned_reloads): Remove.
11697         (reload_as_needed): Don't call it.
11698
11699 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
11700
11701         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
11702         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11703         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11704
11705 2010-09-09  Matthias Klose  <doko@ubuntu.com>
11706
11707         PR bootstrap/43847
11708         * configure.ac (--enable-plugin): Enhance for cross builds.
11709         * configure: Regenerate.
11710
11711 2010-09-09  Jan Hubicka  <jh@suse.cz>
11712
11713         PR tree-optimization/45598
11714         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
11715         string folding is of integral type.
11716
11717 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
11718
11719         * configure.ac (gnu_indirect_function): New test.
11720         * configure: Rebuilt.
11721         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
11722         * defaults.h (IFUNC_ASM_TYPE): Provide default.
11723
11724         * doc/extend.texi (Function Attributes): Document ifunc.
11725         * varasm.c (do_assemble_alias): Deal with ifuncs too.
11726
11727 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
11728
11729         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
11730         epilogue instruction move.
11731
11732 2010-09-09  Jan Hubicka  <jh@suse.cz>
11733
11734         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
11735         command line to allow more partitions than input files.
11736
11737 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
11738
11739         PR middle-end/44554
11740         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
11741
11742 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
11743
11744         PR middle-end/40386
11745         * ira.c (pseudo_for_reload_consideration_p): Don't use
11746         flag_ira_share_spill_slots.
11747
11748 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11749
11750         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
11751         point zero operands that fit into a single GPR.
11752         (s390_preferred_reload_class): Ensure we only return general-purpose
11753         register classes.
11754         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
11755         floating-point zero operands into GPRs.
11756         ("*mov<mode>_64"): Likewise.
11757         ("mov<mode>"): Likewise using lhi.
11758
11759 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11760
11761         * config/s390/s390.c (s390_symref_operand_p): Return false for
11762         literal pool references.
11763         (s390_check_qrst_address): Update caller.
11764
11765 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
11766
11767         * config/i386/predicates.md (ext_register_operand): Check that
11768         SUBREG_REG is really a register before looking for REGNO.
11769         (reg_not_xmm0_operand): Handle SUBREGs correctly.
11770         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
11771
11772 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
11773
11774         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
11775         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
11776         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
11777         * print-rtl.c (print_rtx): Likewise.
11778         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
11779         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
11780         for ADDR_EXPR with non-addressable object.
11781         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
11782         (struct dw_val_struct): Add v.val_decl_ref.
11783         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
11784         Handle DW_OP_GNU_implicit_pointer.
11785         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
11786         (get_ref_die_offset_label): New function.
11787         (implicit_ptr_descriptor): New function.
11788         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
11789         (loc_descriptor): Likewise.
11790         (gen_variable_die): Put even definitions into decl_die_table.
11791         (resolve_addr_in_expr): Resolve still unresolved
11792         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
11793         return false.
11794         (dwarf2out_finish): Call output_location_lists after outputting
11795         .debug_info and .debug_abbrev instead of before.
11796
11797 2010-09-09  Roland McGrath  <roland@redhat.com>
11798
11799         * dwarf2out.c (DWARF_REF_SIZE): Define.
11800         (size_of_loc_descr): Use it for DW_OP_call_ref.
11801
11802 2010-09-09  Alan Modra  <amodra@gmail.com>
11803
11804         * doc/invoke.text: Reinstate mcmodel=medium.
11805         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
11806         CMODEL_MEDIUM as default.
11807         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
11808         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
11809         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
11810         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
11811
11812 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11813
11814         PR target/45250
11815         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
11816         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
11817         (builtin_longjmp): Likewise.
11818         (allocate_stack): Use hard_frame_pointer_rtx instead of
11819         frame_pointer_rtx.
11820         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
11821         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
11822         (pa_can_eliminate): Likewise.
11823         (TARGET_INTERNAL_ARG_POINTER): Define.
11824         (TARGET_CAN_ELIMINATE): Define.
11825         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
11826         pointer.
11827         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
11828         (pa_internal_arg_pointer, pa_can_eliminate,
11829         pa_initial_elimination_offset): New.
11830         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
11831         (HARD_FRAME_POINTER_REGNUM): Set to register three.
11832         (INITIAL_FRAME_POINTER_OFFSET): Delete.
11833         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
11834         Define.
11835         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
11836         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
11837         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
11838         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
11839         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
11840         new soft frame pointer.
11841         * config/pa/pa64-regs.h: Likewise.
11842
11843 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
11844
11845         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
11846         numerical constant.
11847         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
11848
11849 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
11850
11851         PR debug/45531
11852         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
11853
11854 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
11855
11856         PR debug/45419
11857         PR debug/45408
11858         * tree-pretty-print.c (dump_generic_node): Disregard top-level
11859         qualifiers in otherwise equal MEM_REF pointer types.
11860         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
11861         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
11862
11863 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11864
11865         PR target/44392
11866         * config/arm/arm.md (bswapsi2): Handle condition correctly
11867         for armv6 and optimize_size.
11868
11869 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
11870
11871         PR other/18555
11872         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
11873
11874 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
11875
11876         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
11877         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
11878         ix86_expand_strlen, legitimate_pic_address_disp_p,
11879         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
11880         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
11881         ix86_check_movabs, ix86_secondary_memory_needed): Change function
11882         prototype to bool.
11883         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
11884         return_in_memory_ms_64, ix86_check_movabs,
11885         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
11886         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
11887         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
11888         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
11889         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
11890         ix86_secondary_memory_needed): Change to bool.  Return
11891         "true" and "false" values.
11892         * config/i386/i386.md: Return "true" and "false" values.
11893
11894 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11895
11896         * doc/sourcebuild.texi (Effective-Target Keywords): Document
11897         run_expensive_tests.
11898
11899 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11900
11901         * toplev.c (output_stack_usage): Use lbasename instead of basename.
11902
11903 2010-09-08  Martin Jambor  <mjambor@suse.cz>
11904
11905         PR other/45443
11906         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
11907         at -O3.
11908
11909 2010-09-08  Richard Guenther  <rguenther@suse.de>
11910
11911         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
11912         (visit): Adjust.
11913         (iterative_hash_gimple_type): Likewise.
11914         (gimple_type_hash): Likewise.
11915         (gimple_register_type): Likewise.
11916         (print_gimple_types_stats): Likewise.
11917         (free_gimple_type_tables): Likewise.
11918
11919 2010-09-08  Michael Matz  <matz@suse.de>
11920
11921         PR tree-optimization/43430
11922         * tree-vect-stmts.c (vectorizable_condition): Support multiple
11923         copies for conditional statements if it's not part of a reduction.
11924
11925 2010-09-08  Michael Matz  <matz@suse.de>
11926
11927         PR tree-optimization/33244
11928         * tree-ssa-sink.c (statement_sink_location): Don't sink into
11929         empty loop latches.
11930
11931 2010-09-08  Richard Guenther  <rguenther@suse.de>
11932
11933         PR tree-optimization/45578
11934         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
11935         Be more careful when transfering alignment information to
11936         the new induction variable.
11937         (copy_ref_info): Likewise.
11938
11939 2010-09-08  Richard Guenther  <rguenther@suse.de>
11940
11941         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
11942         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
11943
11944 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
11945
11946         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
11947         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
11948
11949 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
11950
11951         PR doc/45587
11952         * doc/md.texi: Fixed modes on several standard pattern names.
11953
11954 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
11955
11956         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
11957         (ashl<mode>3): ...this.
11958         (loongson_psra<V_suffix>): Rename to...
11959         (ashr<mode>3): ...this.
11960         (loongson_psrl<V_suffix>): Rename to...
11961         (lshr<mode>3): ...this.
11962         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
11963         (CODE_FOR_loongson_psllw): Define.
11964         (CODE_FOR_loongson_psrlh): Define.
11965         (CODE_FOR_loongson_psrlw): Define.
11966         (CODE_FOR_loongson_psrah): Define.
11967         (CODE_FOR_loongson_psraw): Define.
11968
11969 2010-09-07  Richard Henderson  <rth@redhat.com>
11970
11971         * tree-vect-data-refs.c: Include tm_p.h.
11972         * Makefile.in (tree-vect-data-refs.o): Update deps.
11973         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
11974         Move delarations outside #ifdef RTX_CODE.
11975
11976 2010-09-07  Richard Henderson  <rth@redhat.com>
11977
11978         * final.c (rest_of_handle_final): Unconditionally do
11979         output_function_exception_table before assemble_end_function.
11980
11981 2010-09-07  Jan Hubicka  <jh@suse.cz>
11982
11983         * tree-inline.c (tree_inlinable_function_p): Do not test
11984         DECL_REPLACEABLE_P.
11985         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
11986         update_callee_keys, cgraph_decide_inlining): Test function availability.
11987         * cif-code.def (OVERWRITABLE): New code.
11988
11989 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
11990             Jack Howarth  <howarth@bromo.med.uc.edu>
11991
11992         PR target/36502
11993         PR target/42313
11994         PR target/44651
11995         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
11996         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
11997         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
11998         MAX macro.
11999
12000 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12001
12002         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
12003         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
12004
12005 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12006
12007         * config.gcc: Don't append t-android for Android targets.
12008
12009         * config/t-android: Removed.
12010
12011 2010-09-07  Richard Henderson  <rth@redhat.com>
12012
12013         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
12014         * doc/tm.texi.in: Add doc marker.
12015         * doc/tm.texi: Rebuild.
12016         * except.c (switch_to_exception_section): Always build.
12017         (output_one_function_exception_table): Move section switch,
12018         personality output, and label output ...
12019         (output_function_exception_table): ... here.  Use the new
12020         personality hook.
12021
12022         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
12023         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
12024         TARGET_ASM_INIT_SECTIONS): New.
12025         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
12026         make static.
12027         (TARGET_ASM_UNWIND_EMIT): Update to match.
12028         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
12029
12030         * config/arm/arm.c (arm_asm_emit_except_personality): New.
12031         (arm_asm_init_sections): New.
12032         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
12033
12034 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12035
12036         * config/arm/arm.md: Remove unused variable.
12037
12038 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
12039
12040         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12041         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
12042         (m32r_memory_move_cost): New function.
12043
12044 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12045
12046         * config.gcc: Append t-android for Android targets.
12047
12048         * config/t-android: New.
12049
12050 2010-09-07  Richard Henderson  <rth@redhat.com>
12051
12052         * target.def (unwind_emit_before_insn): New hook.
12053         * doc/tm.texi.in: Add @hook marker for it.
12054         * doc/tm.texi: Rebuild.
12055         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
12056
12057 2010-09-07  Martin Jambor  <mjambor@suse.cz>
12058
12059         PR fortran/43665
12060         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
12061         are any type attributes.
12062
12063 2010-09-07  Jan Hubicka  <jh@suse.cz>
12064
12065         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
12066         array_ref_low_bound in string access folding.
12067
12068 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
12069
12070         PR target/45206
12071         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
12072         eh_return fixup sequence.
12073
12074 2010-09-07  Jan Hubicka  <jh@suse.cz>
12075
12076         * gimple-fold.c (maybe_fold_reference): Verify that operand is
12077         gimple_min_invariant.
12078
12079 2010-09-07  Richard Guenther  <rguenther@suse.de>
12080
12081         PR middle-end/45569
12082         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
12083         nor CONSTRUCTOR can trap.
12084         * tree-complex.c (update_complex_assignment): Update EH info.
12085
12086 2010-09-07  Richard Guenther  <rguenther@suse.de>
12087
12088         PR middle-end/45569
12089         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
12090         * passes.c (execute_function_todo): Do not verify anything if
12091         we saw errors.
12092
12093 2010-09-07  Richard Guenther  <rguenther@suse.de>
12094
12095         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
12096
12097 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
12098
12099         PR target/43137
12100         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
12101         New define_mode_attrs.
12102         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
12103         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
12104         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
12105         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
12106         Remove pool_range attribute.
12107         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
12108         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
12109         pool_range and neg_pool_range attributes.
12110         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
12111         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
12112         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
12113
12114 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12115
12116         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
12117         check glibc.
12118
12119 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
12120
12121         PR target/22152
12122         * config/i386/mmx.md (*mov<mode>_internal_rex64,
12123         *mov<mode>_internal_avx, *mov<mode>_internal,
12124         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
12125         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
12126
12127 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
12128
12129         * c-typeck.c (do_warn_double_promotion): Remove.
12130         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
12131         Objective-C++ too.
12132
12133 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
12134
12135         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
12136         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
12137         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
12138         argument type to reg_class_t. Change result type to bool.
12139         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12140
12141 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
12142
12143         PR libobjc/19850
12144         * gthr-posix.h (__gthread_objc_thread_detach): Use
12145         _objc_thread_attribs when detaching a thread.
12146         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
12147
12148 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12149
12150         PR target/45524
12151         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
12152         * configure: Regenerated.
12153
12154 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12155
12156         * combine.c (try_combine): Set subst_low_luid to i0.
12157
12158 2010-09-06  Richard Guenther  <rguenther@suse.de>
12159
12160         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
12161         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
12162         (build_aligned_type): Declare.
12163         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
12164         (check_aligned_type): New function.
12165         (build_aligned_type): Likewise.
12166         * expr.c (expand_assignment): Handle misaligned stores via
12167         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
12168         (expand_expr_real_1): Likewise.
12169         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
12170         * tree-vect-stmts.c (vectorizable_store): Do not build
12171         MISALIGNED_INDIRECT_REF but initialize alignment information.
12172         (vectorizable_load): Likewise.
12173         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
12174         handling.
12175         * cfgexpand.c (expand_debug_expr): Likewise.
12176         * dwarf2out.c (loc_list_from_tree): Likewise.
12177         * fold-const.c (maybe_lvalue_p): Likewise.
12178         (operand_equal_p): Likewise.
12179         (build_fold_addr_expr_with_type_loc): Likewise.
12180         * gimplify.c (gimplify_addr_expr): Likewise.
12181         (gimplify_expr): Likewise.
12182         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
12183         (verify_gimple_assign_single): Likewise.
12184         * tree-dump.c (dequeue_and_dump): Likewise.
12185         (tree_could_trap_p): Likewise.
12186         * tree-predcom.c (ref_at_iteration): Likewise.
12187         * tree-pretty-print.c (dump_generic_node): Likewise.
12188         (op_code_prio): Likewise.
12189         (op_symbol_code): Likewise.
12190         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
12191         * tree-ssa-loop-im.c (for_each_index): Likewise.
12192         (gen_lsm_tmp_name): Likewise.
12193         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
12194         (find_interesting_uses_address): Likewise.
12195         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
12196         * tree-ssa-operands.c (get_expr_operands): Likewise.
12197         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
12198         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
12199         (ao_ref_init_from_vn_reference): Likewise.
12200         * tree.c (staticp): Likewise.
12201         (build1_stat): Likewise.
12202         (reference_alias_ptr_type): Likewise.
12203         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
12204         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
12205         MISALIGNED_INDIRECT_REF handling.
12206
12207 2010-09-06  Richard Guenther  <rguenther@suse.de>
12208
12209         PR tree-optimization/45534
12210         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
12211         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
12212         on the target.
12213         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
12214         valid on the target.
12215
12216 2010-09-06  Andreas Schwab  <schwab@redhat.com>
12217
12218         * configure.ac: Quote argument of AC_MSG_WARN.
12219         * configure: Regenerate.
12220
12221 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
12222
12223         * sel-sched.c (move_cond_jump): Correct arguments to
12224         maybe_tidy_empty_bb.
12225         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
12226
12227 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
12228
12229         PR rtl-optimization/44919
12230         * sel-sched.c (move_cond_jump): Remove assert, check that
12231         the several blocks case can only happen with mutually exclusive
12232         insns instead.  Rewrite the movement code to support moving through
12233         several basic blocks.
12234
12235 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
12236
12237         * config/i386/i386.md (iptrsize): New mode attribute.
12238         (tp_seg): Ditto.
12239         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
12240         mode iterator.
12241         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
12242         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
12243         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
12244         (stack_tls_protect_set_<mode>): Ditto from
12245         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
12246         of thread base pointer load.
12247         (stack_tls_protect_test_<mode>): Ditto from
12248         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
12249         of thread base pointer load.
12250         (stack_protect_set): Rewrite using indirect functions.
12251         (stack_protect_test): Ditto.
12252         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
12253         (ix86_print_operand): Handle '@'.
12254
12255 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
12256
12257         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
12258         MINUS_EXPR.
12259
12260 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
12261
12262         * doc/invoke.texi: Document -Wdouble-promotion.
12263         * c-typeck.c (convert_arguments): Check for implicit conversions
12264         from float to double.
12265         (do_warn_double_promotion): New function.
12266         (build_conditional_expr): Use it.
12267         (build_binary_op): Likewise.
12268
12269 2010-09-05  Richard Guenther  <rguenther@suse.de>
12270
12271         PR tree-optimization/45535
12272         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
12273         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
12274         dereferencing it.
12275         (indirect_refs_may_alias_p): Likewise.
12276
12277 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
12278
12279         * config/sh/sh.c (sh_option_override): Make static.
12280         Adjust comments.  Declare.
12281         (sh_function_value_regno_p): Likewise.
12282         (sh_register_move_cost): Modify the arguments, make static.
12283         Adjust comments.  Declare.
12284         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
12285         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12286         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
12287         REGISTER_MOVE_COST): Delete.
12288         * config/sh/sh-protos.h (sh_override_options): Delete.
12289         (sh_register_move_cost): Delete.
12290         (sh_function_value_regno_p): Delete.
12291
12292 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
12293
12294         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
12295         m32r_function_value_regno_p): New functions.
12296         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12297         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
12298         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
12299         FUNCTION_VALUE_REGNO_P): Remove.
12300
12301 2010-09-04  Jan Hubicka  <jh@suse.cz>
12302
12303         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
12304         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
12305         fold_read_from_constant_string.
12306
12307         * gimple.h (canonicalize_constructor_val): Declare.
12308         * gimple-fold.c (canonicalize_constructor_val): New function.
12309         (get_symbol_constant_value):Use it.
12310         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
12311
12312 2010-09-04  Jan Hubicka  <jh@suse.cz>
12313
12314         * tree-switch-conversion.c (build_one_array): Set constructor to be
12315         static.
12316         * varpool.c (varpool_finalize_decl): Compute const_value_known.
12317
12318 2010-09-04  Richard Guenther  <rguenther@suse.de>
12319
12320         PR bootstrap/45519
12321         * tree-flow.h (force_gimple_operand_1): Declare.
12322         (force_gimple_operand_gsi_1): Likewise.
12323         * gimplify.c (force_gimple_operand_1): New worker taking a
12324         gimple predicate for ...
12325         (force_gimple_operand): ... which now wraps it.
12326         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
12327         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
12328         last change.
12329         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
12330         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
12331         (create_mem_ref): Likewise.
12332
12333 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
12334
12335         * config/i386/predicates.md (sse_reg_operand): New predicate.
12336         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
12337         predicate for operand 1.
12338         (XFmode push splitter): Use fp_register_operand predicate
12339         for operand 1.
12340         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
12341         (SF-DF float_extend push splitter): Add reload_completed insn
12342         predicate.
12343         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
12344         MODEF mode macro.  Add reload_completed insn predicate.
12345
12346 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
12347
12348         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
12349         (struct df_extract_ref): Remove.
12350         (union df_ref_d): Remove extract_ref member.
12351         (df_ref_create): Remove last three arguments.
12352         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
12353         * df-scan.c (df_ref_record): Remove last three arguments, do not
12354         pass them to df_ref_create_structure.
12355         (df_uses_record): Remove first and last three arguments.  Replace
12356         first argument with DF_REF_REGULAR, adjust calls to remove the
12357         width, offset and mode.  Always call recursively on the second
12358         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
12359         (df_ref_create_structure): Remove first argument.
12360         (struct df_scan_problem_data): Remove ref_extract_pool.
12361         (df_scan_free_internal): Do not free it.
12362         (df_scan_alloc): Do not allocate it.
12363         (df_ref_create): Remove last three arguments, do not pass them to
12364         df_ref_create_structure.
12365         (df_free_ref): Remove DF_REF_EXTRACT case.
12366         (df_notes_rescan): Adjust call to df_uses_record.
12367         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
12368         Remove DF_REF_EXTRACT case.
12369         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
12370         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
12371         and SUBREG definitions.
12372         (df_get_conditional_uses): Remove references to width/offset/mode,
12373         adjust call to df_ref_create_structure.
12374         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
12375         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
12376         calls to df_uses_record and df_ref_record.
12377         * fwprop.c (update_df): Remove references to width/offset/mode,
12378         adjust call to df_ref_create.
12379
12380 2010-09-03  Jan Hubicka  <jh@suse.cz>
12381
12382         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
12383         (build_cdtor_fns): Update use of build_cdtor.
12384
12385 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
12386
12387         * doc/options.texi (SeparateAlias): Document.
12388         * opt-functions.awk (switch_flags): Handle SeparateAlias.
12389         * opth-gen.awk: Generate enumeration names for options marked
12390         SeparateAlias, but not for those marked Ignore.
12391         * opts-common.c (generate_canonical_option): Don't output separate
12392         argument for options marked CL_SEPARATE_ALIAS.
12393         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
12394         * opts.h (CL_SEPARATE_ALIAS): New.
12395         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
12396         CL_COMMON): Adjust definitions.
12397         * config/i386/darwin.opt, config/mips/sde.opt: New.
12398         * common.opt (fdump-final-insns): New.
12399         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
12400         i386/darwin.opt.
12401         (mips*-sde-elf*): Add mips/sde.opt.
12402         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
12403         -mno-data-in-code and -mcode-xonly here.
12404         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
12405         * gcc.c (option_map): Add "j" to --dump entry.
12406         (translate_options): Don't translate -d to -foutput-class-dir= here.
12407
12408 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
12409
12410         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
12411         DR_IS_WRITE.
12412         (compute_all_dependences): Same.
12413         (create_rdg_edge_for_ddr): Same.
12414         * tree-data-ref.h (DR_IS_WRITE): New.
12415         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
12416         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
12417         (write_memrefs_written_at_least_once): Same.
12418         * tree-predcom.c (suitable_component_p): Same.
12419         (determine_roots_comp): Same.
12420         (execute_load_motion): Same.
12421         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
12422         (vect_enhance_data_refs_alignment): Same.
12423         (vect_analyze_group_access): Same.
12424
12425 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
12426
12427         PR testsuite/42843
12428         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
12429         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
12430
12431 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
12432
12433         * dwarf2out.c (file scope): Remove #if0'd code.
12434         (gen_subprogram_die): Same.
12435
12436 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
12437
12438         PR middle-end/45484
12439         * dwarf2out.c (flush_queued_reg_saves): Rename to...
12440         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
12441         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
12442         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
12443         * config/i386/i386.c (output_set_got): Call it.
12444
12445 2010-09-03  Michael Matz  <matz@suse.de>
12446
12447         PR middle-end/45415
12448         * tree-sra.c (sra_modify_assign): If we modify the statement,
12449         say so.
12450
12451         * tree-ssa.c (verify_ssa): Check number of operands and links
12452         per statement to agree.
12453
12454 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
12455             Iain Sandoe  <iains@gcc.gnu.org>
12456
12457         PR target/45476
12458         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
12459         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
12460         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
12461
12462 2010-09-03  Richard Guenther  <rguenther@suse.de>
12463
12464         * lto-streamer-out.c (output_function): Output function
12465         start and end loci.
12466         * lto-streamer-in.c (input_function): Input function start
12467         and end loci.
12468
12469 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12470
12471         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
12472         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
12473         * configure: Regenerate.
12474         * aclocal.m4: Regenerate.
12475
12476 2010-09-03  Jan Hubicka  <jh@suse.cz>
12477
12478         PR lto/44812
12479         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
12480         on functions/variables in other partition.
12481
12482 2010-09-03  Jan Hubicka  <jh@suse.cz>
12483
12484         * cgraph.h (struct varpool_node): Add const_value_known.
12485         (varpool_decide_const_value_known): Declare.
12486         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
12487         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
12488         (input_varpool_node): Restore const_value_known.
12489         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
12490         initializer folding.
12491         * ipa.c (ipa_discover_readonly_nonaddressable_var,
12492         function_and_variable_visibility): Compute const_value_known.
12493         * gimple-fold.c (get_symbol_constant_value): Use varpool for
12494         initializer folding.
12495         * varpool.c (varpool_decide_const_value_known): New function.
12496
12497 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
12498
12499         * config/i386/i386.md: Remove empty preparation statements
12500         from splitters.
12501
12502 2010-09-03  Jan Hubicka  <jh@suse.cz>
12503
12504         * passes.c (rest_of_decl_compilation): Do not add local vars into
12505         varpool.
12506         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
12507         static or extern vars are in varpool.
12508         (varpool_finalize_decl): Sanity check that only static vars are
12509         finalized.
12510
12511 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
12512
12513         PR debug/45500
12514         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
12515         not just generic vectors with BLKmode.
12516
12517 2010-09-03  Richard Guenther  <rguenther@suse.de>
12518
12519         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
12520         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
12521         * tree.h (TMR_SYMBOL): Remove.
12522         (TMR_BASE, TMR_OFFSET): Adjust.
12523         (TMR_INDEX2): New.
12524         * alias.c (ao_ref_from_mem): Use TMR_BASE.
12525         * builtins.c (get_object_alignment): Merge TMR_BASE and
12526         TMR_SYMBOL handling.
12527         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
12528         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
12529         handling.  Also allow TARGET_MEM_REF as base address.
12530         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
12531         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
12532         base.  Gimplify TMR_INDEX2.
12533         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
12534         * tree-dfa.c (get_ref_base_and_extent): Likewise.
12535         (get_addr_base_and_unit_offset): Likewise.
12536         * tree-eh.c (tree_could_trap_p): Likewise.
12537         * tree-pretty-print.c (dump_generic_node): Likewise.
12538         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
12539         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
12540         base to index2.
12541         (get_address_description): Reconstruct addres description
12542         from merged TMR_BASE and TMR_INDEX2.
12543         (maybe_fold_tmr): Fold propagated addresses.
12544         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
12545         MEM_REF and TARGET_MEM_REF paths.
12546         (indirect_refs_may_alias_p): Likewise.
12547         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
12548         instead of TMR_SYMBOL.
12549         * tree-ssa-operands.c (get_tmr_operands): Simplify.
12550         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
12551         according to changes ...
12552         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
12553         Split TARGET_MEM_REF into two fields plus the base.
12554         * tree.c (mem_ref_offset): Simplify.
12555         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
12556         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
12557         Strip NOPs when folding MEM_REF addresses.
12558         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
12559         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
12560         (fold_gimple_assign): ... not here.
12561
12562 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
12563
12564         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
12565         * config/mips/mips.c (mips_shift_truncation_mask): New function.
12566         (TARGET_SHIFT_TRUNCATION_MASK): Define.
12567
12568 2010-09-02  Richard Henderson  <rth@redhat.com>
12569
12570         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
12571         instead of readelf in the test.
12572         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
12573         in the .debug_frame section for coff targets.
12574         * configure: Rebuild.
12575
12576 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
12577
12578         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
12579         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
12580         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12581         (m32c_class_likely_spilled_p): Make static. Change argument type to
12582         reg_class_t. Change result type to bool.
12583
12584 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
12585
12586         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
12587         to convert (double)(long) into a single FRIZ instruction or not
12588         when -ffast-math is used.
12589
12590         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
12591         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
12592         or FRIZ instruction if -ffast-math.
12593         * config/rs6000/rs6000.md (friz): Ditto.
12594
12595         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
12596
12597 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
12598
12599         * opth-gen.awk (quote, comma): Remove unused variables.
12600
12601 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
12602
12603         * arm.c (arm_override_options): Correct fall-back code to use
12604         SUBTARGET_CPU_DEFAULT.
12605
12606 2010-09-02  Julian Brown  <julian@codesourcery.com>
12607
12608         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
12609         unspecs.
12610         (vcond<mode>, vcondu<mode>): New expanders.
12611         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
12612         comparisons with zero.
12613         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
12614         * config/arm/constraints.md (Dz): New constraint.
12615
12616 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
12617
12618         * target.def (class_likely_spilled_p): New hook.
12619         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
12620         * doc/tm.texi: Regenerate.
12621         * targhooks.c (default_class_likely_spilled_p): New function.
12622         * targhooks.h (default_class_likely_spilled_p): Declare.
12623         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
12624         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
12625         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
12626         Use fixed_reg_set instead of fixed_regs.
12627         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
12628         * calls.c (avoid_likely_spilled_reg): Ditto.
12629         * ira-conflicts.c (ira_build_conflicts): Ditto.
12630         * ira.c (update_equiv_regs): Ditto.
12631         * mode-switching.c (create_pre_exit): Ditto.
12632         * regmove.c (find_matches): Ditto.
12633         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
12634         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
12635         (small_register_class_p): New inline function.
12636         (push_secondary_reload, find_reusable_reload, find_reloads): Use
12637         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
12638
12639         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
12640         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
12641         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12642
12643 2010-09-02  Richard Guenther  <rguenther@suse.de>
12644
12645         PR tree-optimization/44937
12646         PR tree-optimization/45412
12647         * ipa-split.c (split_function): Properly remove PHI nodes.
12648
12649 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
12650
12651         * opts.h (struct cl_option): Add warn_message field.
12652         (struct cl_decoded_option): Add warn_message field.
12653         * doc/options.texi (Ignore, Warn): Document.
12654         * opt-functions.awk (needs_state_p): Don't consider aliases or
12655         ignored options to need state saved.
12656         * optc-gen.awk: Handle Warn and Ignore.
12657         * opth-gen.awk: Output OPT_SPECIAL_ignore.
12658         * opts-common.c (decode_cmdline_option): Set warn_message field.
12659         Handle ignored options.
12660         (decode_cmdline_options_to_array, generate_option,
12661         generate_option_input_file): Set warn_message field.
12662         (read_cmdline_option): Generate warnings from warn_message field.
12663         Handle ignored options.
12664         * common.opt (Wunreachable-code, fargument-alias,
12665         fargument-noalias, fargument-noalias-global,
12666         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
12667         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
12668         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
12669         ftree-salias): Mark Ignore.
12670         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
12671         -mintel-syntax and -mno-intel-syntax here.
12672         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
12673         using Warn.
12674         * opts.c (common_handle_option): Don't handle options marked as
12675         ignored.
12676         (enable_warning_as_error): Handle ignored options.
12677
12678 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
12679
12680         PR driver/44076
12681         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
12682         alias_target fields.
12683         * opt-functions.awk (opt_sanitized_name): Don't handle
12684         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
12685         * optc-gen.awk: Generate alias fields.
12686         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
12687         Don't generate such constants for aliases.
12688         * opts-common.c (generate_canonical_option): New.
12689         (decode_cmdline_option): Handle aliases.  Use
12690         generate_canonical_option for known options instead of copying the
12691         input option text.
12692         * doc/options.texi (Alias): Document.
12693         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
12694         fstack-check, specs): Mark as aliases.
12695         * gcc.c (driver_handle_option): Canonicalize -L options to joined
12696         arguments.
12697         (driver_handle_option): Don't handle OPT_specs.
12698         * opts.c (common_handle_option): Don't handle options marked as
12699         aliases.
12700         (enable_warning_as_error): Handle aliases.
12701         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
12702         OPT_Wlarger_than_eq.
12703         * tree-optimize.c (tree_rest_of_compilation): Use
12704         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
12705
12706 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
12707
12708         * config/i386/i386.md (nonmemory_operand): New mode attribute.
12709         (push memory peephole2): Macroize peepholes using SWI mode iterator.
12710         (move immediate to memory peephole2): Macroize peepholes using
12711         SWI124 mode iterator.
12712         (non-pairable NOT peephole2): Macroize peepholes using SWI124
12713         mode iterator.
12714         (simple lea add peephole2): Macroize peepholes using SWI48
12715         mode iterator.
12716         (simple lea mult peephole2): Ditto.
12717         (imul by 3,5,9 to lea peephole2): Ditto.
12718         (mov $-1, reg peephole2): Macroize peepholes using SWI248
12719         mode iterator.
12720         (imul $32bit_imm,mem,reg peephole2): Ditto.
12721         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
12722
12723 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
12724
12725         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
12726
12727 2010-09-02  Olivier Hainque  <hainque@adacore.com>
12728
12729         PR middle-end/44763
12730         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
12731         (allocno_priority_compare_func): Use it instead of a straight
12732         difference computation over priorities.
12733
12734 2010-09-02  Andi Kleen  <ak@linux.intel.com>
12735
12736         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
12737
12738 2010-09-02  Ira Rosen  <irar@il.ibm.com>
12739
12740         * tree-vectorizer.h (get_later_stmt): New function.
12741         (vect_analyze_data_ref_dependences): Add argument.
12742         * tree-vect-loop.c (vect_analyze_loop): Update call to
12743         vect_analyze_data_ref_dependences.
12744         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
12745         New function.
12746         (vect_analyze_data_ref_dependence): Add argument for basic block
12747         dependencies. Check dependencies in basic block vectorization.
12748         (vect_analyze_data_ref_dependences): Add argument and update call to
12749         vect_analyze_data_ref_dependences.
12750         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
12751         (vect_bb_vectorizable_with_dependencies): New.
12752         (vect_slp_analyze_bb): Check dependencies in basic block.
12753         (vect_schedule_slp_instance): Insert stores before the last store in
12754         SLP instance.
12755
12756 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
12757
12758         PR target/45476
12759         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
12760         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
12761
12762 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
12763
12764         PR middle-end/45458
12765         * bb-reorder.c (add_labels_and_missing_jumps): Treat
12766         bbs ending with throwing insns like blocks ending with a call.
12767         (fix_up_fall_thru_edges): Likewise.
12768
12769 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
12770
12771         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
12772         (m32c_function_arg_advance): Delete.
12773         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12774         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
12775         comments.  Take a const_tree and a bool.  Declare.
12776         (m32c_function_arg_advance): Likewise.
12777         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12778
12779 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
12780
12781         PR target/45476
12782         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
12783         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
12784         * config/i386/mingw32.h: ... here.
12785
12786 2010-09-01  Andi Kleen  <ak@linux.intel.com>
12787
12788         PR lto/45475
12789         * lto-streamer-in.c (lto_input_ts_target_option): Add.
12790         (lto_input_tree_pointers): Call lto_input_ts_target_option.
12791         * lto-streamer-out (lto_output_ts_target_option): Add.
12792         (lto_output_tree_pointers): Call lto_output_ts_target_option.
12793
12794 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
12795
12796         PR/target 45452
12797         * config/i386/cygwin.h: Change order of specified import libraries.
12798         * config/i386/mingw32.h: Likewise.
12799         * config/i386/t-cygwin: Likewise.
12800         * config/i386/t-mingw32: Likewise.
12801         * config/i386/t-mingw-w32: Likewise.
12802         * config/i386/t-mingw-w64: Likewise.
12803
12804 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12805
12806         * config/arm/neon-schedgen.ml (core): New type.
12807         (allCores): List of supported cores.
12808         (availability_table): Add supported cores.
12809         (collate_bypasses): Accept core as a parameter.
12810         (worst_case_latencies_and_bypasses): Accept core as a parameter.
12811         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
12812         and coreStr to get tune attribute and prefix for functional units.
12813         (emit_bypasses): Accept core name and use it.
12814         (calculate_per_core_availability_table): New.
12815         (filter_core): New.
12816         (calculate_core_availability_table): New.
12817         (main): Use calculate_core_availablity_table.
12818         * config/arm/cortex-a8-neon.md: Update copyright year.
12819         Regenerated from ml file and merged in.
12820         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
12821         cortex_a8_neon_mrc.
12822
12823 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
12824
12825         * Makefile.in (tree-switch-conversion.o): Update dependencies.
12826
12827 2010-09-01  Richard Guenther  <rguenther@suse.de>
12828
12829         * alias.c (ao_ref_from_mem): Adjust.
12830         * builtins.c (get_object_alignment): Likewise.
12831         * cfgexpand.c (expand_debug_expr): Likewise.
12832         * gimple.c (get_base_address): Likewise.
12833         * tree-dfa.c (get_ref_base_and_extent): Likewise.
12834         (get_addr_base_and_unit_offset): Likewise.  Fix for
12835         both TMR_SYMBOL and TMR_BASE being set.
12836         * tree-eh.c (tree_could_trap_p): Likewise.
12837         * gimplify.c (gimplify_expr): Do not attempt to gimplify
12838         TMR_SYMBOL.  Always gimplify TMR_BASE.
12839         * tree-cfg.c (verify_types_in_gimple_reference): Verify
12840         TMR_BASE if there is a TMR_SYMBOL.
12841         * tree-pretty-print.c (dump_generic_node): Adjust.
12842         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
12843         (tree_mem_ref_addr): Likewise.
12844         (create_mem_ref_raw): Likewise.
12845         (move_fixed_address_to_symbol): Likewise.
12846         (create_mem_ref): Likewise.
12847         (dump_mem_address): Likewise.
12848         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
12849         Fix for both TMR_SYMBOL and TMR_BASE being set.
12850         (indirect_refs_may_alias_p): Likewise.
12851         * tree-ssa-operands.c (get_tmr_operands): Adjust.
12852         * tree.def (TARGET_MEM_REF): Adjust documentation.
12853
12854 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
12855
12856         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
12857         Rename from X86_TUNE_ADD_ESP_4.
12858         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
12859         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
12860         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
12861         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
12862         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
12863         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
12864         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
12865         * config/i386/i386.c (initial_ix86_tune_features)
12866         <X86_TUNE_SINGLE_POP>: Invert members.
12867         <X86_TUNE_DOUBLE_POP>: Ditto.
12868         <X86_TUNE_SINGLE_PUSH>: Ditto.
12869         <X86_TUNE_DOUBLE_PUSH>: Ditto.
12870         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
12871         No longer exported.
12872         (push peephole2 patterns): Macroize peepholes using P mode iterator.
12873         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
12874         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
12875         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
12876
12877 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
12878
12879         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
12880         a volatile LHS if the constructor has only one element.
12881
12882 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
12883
12884         PR bootstrap/45321
12885         * tree.c (stdarg_p): Make fntype parameter const.
12886         * tree.h (stdarg_p): Likewise.
12887         (function_args_iterator): Remove unused fntype field.
12888         (function_args_iter_init): Do not initialize fntype
12889         field.  Make fntype parameter const.
12890
12891 2010-09-01  Richard Guenther  <rguenther@suse.de>
12892
12893         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
12894         estimate.
12895         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
12896         (execute_vrp): Compute number of iteration estimates.
12897         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
12898         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
12899         * tree-data-ref.c (estimated_loop_iterations): Adjust.
12900         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
12901         Infer loop bounds from undefined behavior based on a new parameter.
12902         (estimate_numbers_of_iterations): Likewise.
12903         (scev_probably_wraps_p): Adjust.
12904         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
12905
12906 2010-09-01  Nick Clifton  <nickc@redhat.com>
12907
12908         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
12909         where appropriate.
12910         (xstormy16_legitimate_address_p): Use true and false instead of 1
12911         and 0.
12912         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
12913         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
12914         magic constant 2.
12915         (xstormy16_expand_call): Fix comment at start of function.
12916
12917 2010-09-01  Nick Clifton  <nickc@redhat.com>
12918
12919         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
12920         when pushing accumulator register.
12921         (rx_get_stack_layout): Always save call clobbered registers inside
12922         interrupt handlers.
12923         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
12924
12925 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
12926
12927         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
12928         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
12929
12930         * libgcc-std.ver (GCC_4.6.0): Define version.
12931
12932 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
12933
12934         * tree-nested.c (convert_all_function_calls): Iterate until after the
12935         sum of static chains in the nest doesn't change.
12936
12937 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
12938
12939         * config/m32c/m32c.c (classes_intersect): Remove.
12940         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
12941         reg_classes_intersect_p instead of classes_intersect.
12942         (class_can_hold_mode): Change arguments type from enum reg_class to
12943         reg_class_t.  Use reg_class_contents instead of class_contents.
12944         (m32c_register_move_cost): Make static. Change arguments type from
12945         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
12946         classes_intersect. Use reg_class_contents instead of class_contents.
12947         (m32c_memory_move_cost): Make static. Change arguments type from
12948         enum reg_class to reg_class_t.
12949         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
12950         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12951         * config/m32c/m32c-protos.h (m32c_register_move_cost,
12952         m32c_memory_move_cost): Remove.
12953
12954 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
12955
12956         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
12957         (arm_function_arg): Delete.
12958         (arm_needs_doubleword_align): Take a const_tree.
12959         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12960         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
12961         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
12962         (arm_function_arg): Make static.  Take a const_tree and a bool.
12963         (arm_function_arg_advance): Likewise.
12964         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12965
12966 2010-08-31  Andi Kleen  <ak@linux.intel.com>
12967
12968         * common.opt (fwhopr=): Update for -fwhopr=jobserver
12969         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
12970         * lto-wrapper.c (run_gcc): Add jobserver mode.
12971         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
12972         argument.
12973
12974 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
12975
12976         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
12977         (popsi1): Ditto.
12978         (*popdi1_epilogue): Ditto.
12979         (*popsi1_epilogue): Ditto.
12980         (popsi, popdi peephole2 patterns): Update peepholes for changed
12981         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
12982
12983         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
12984         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
12985
12986         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
12987         (override_options): Do not initialize removed ix86_gen_pop1.
12988         (gen_pop): New static function.
12989         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
12990         (release_scratch_register_on_entry): Ditto.
12991         (ix86_restore_reg_using_pop): Ditto.
12992         (ix86_expand_epilogue): Ditto.
12993
12994 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
12995
12996         PR middle-end/45461
12997         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
12998
12999 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13000
13001         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
13002         semicolons.
13003
13004 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
13005
13006         * doc/extend.texi: Fix documentation of the return value of
13007         __builtin_choose_expr.
13008
13009 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13010
13011         * config/v850/v850-protos.h (function_arg): Delete.
13012         * config/v850/v850.h (FUNCTION_ARG): Delete.
13013         (FUNCTION_ARG_ADVANCE): Move code to...
13014         * config/v850/v850.c (v850_function_arg_advance): ...here.
13015         (v850_function_arg): Make static.  Take a const_tree and a bool.
13016         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13017
13018 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13019
13020         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
13021         these...
13022         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
13023         ...and these...
13024         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
13025         ..to here..
13026         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
13027         ...and here.
13028         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13029
13030 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13031
13032         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
13033         Delete.
13034         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13035         * config/rx/rx.c (rx_function_arg_size): Make static.
13036         (rx_function_arg): Likewise.
13037         (rx_function_arg_advance): New function.
13038         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13039
13040 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
13041
13042         * config/arm/arm.c (arm_override_options): Remove superfluous test.
13043         Fix indentation.
13044
13045 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
13046
13047         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
13048         (dwarf2out_decl) <CONST_DECL>: Likewise.
13049
13050 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
13051
13052         Stack usage support
13053         * common.opt (-fstack-usage): New option.
13054         * doc/invoke.texi (Debugging options): Document it.
13055         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
13056         allocate_dynamic_stack_space.
13057         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
13058         and propagate it to allocate_dynamic_stack_space.
13059         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
13060         * calls.c (initialize_argument_information): Pass TRUE as 4th
13061         argument to allocate_dynamic_stack_space.
13062         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
13063         to 1 when pushing a variable-sized argument onto the stack.  Pass
13064         TRUE as 4th argument to allocate_dynamic_stack_space.
13065         Update current_function_pushed_stack_size.
13066         (emit_library_call_value_1): Likewise.
13067         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
13068         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
13069         attempt to find an upper bound.  Remove redundant code for the
13070         SETJMP_VIA_SAVE_AREA case.
13071         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
13072         * function.h (struct stack_usage): New structure.
13073         (current_function_static_stack_size): New macro.
13074         (current_function_dynamic_stack_size): Likewise.
13075         (current_function_pushed_stack_size): Likewise.
13076         (current_function_dynamic_alloc_count): Likewise.
13077         (current_function_has_unbounded_dynamic_stack_size): Likewise.
13078         (current_function_allocates_dynamic_stack_space): Likewise.
13079         (struct function): Add new field 'su'.
13080         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
13081         add the value of the dynamic offset to the dynamic stack usage.
13082         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
13083         for variable-sized objects.
13084         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
13085         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
13086         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
13087         BUILT_IN_ALLOCA for variable-sized objects.
13088         * output.h (output_stack_usage): Declare.
13089         * toplev.c (stack_usage_file): New file pointer.
13090         (output_stack_usage): New function.
13091         (open_auxiliary_file): Likewise.
13092         (lang_dependent_init): Open file if flag_stack_usage is set.
13093         (finalize): Close file if stack_usage_file is not null.
13094         * tree.h (ALLOCA_FOR_VAR_P): New macro.
13095         * config/alpha/alpha.c (compute_frame_size): New function.
13096         (alpha_expand_prologue): Use it.
13097         (alpha_start_function): Likewise.
13098         (alpha_expand_epilogue): Likewise.  Set stack usage info.
13099         * config/i386/i386.c (ix86_expand_prologue): Likewise.
13100         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
13101         * config/mips/mips.c (mips_expand_prologue): Likewise.
13102         * config/pa/pa.c (hppa_expand_prologue): Likewise.
13103         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
13104         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
13105
13106 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
13107
13108         PR tree-optimization/45427
13109         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
13110         Handle the case that the exit is never taken correctly.
13111         (number_of_iterations_ne): Pass exit_must_be_taken to
13112         number_of_iterations_ne_max.
13113
13114 2010-08-30  Catherine Moore  <clm@codesourcery.com>
13115
13116         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
13117         Infer -mdspr2 for the the 74K.
13118
13119 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
13120
13121         PR debug/45419
13122         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
13123
13124         PR middle-end/45423
13125         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
13126         and TRUTH_{AND,OR,XOR}_EXPR.
13127         * c-parser.c (c_parser_omp_atomic): Handle boolean
13128         {PRE,POST}_{INC,DEC}REMENT.
13129
13130 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
13131
13132         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
13133         (function_arg): Delete.
13134         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13135         (FUNCTION_INCOMING_ARG): Delete.
13136         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
13137         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
13138         and a bool.
13139         (function_arg): Rename to...
13140         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
13141         a bool.
13142         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
13143         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13144         (TARGET_FUNCTION_INCOMING_ARG): Define.
13145
13146 2010-08-30  Richard Guenther  <rguenther@suse.de>
13147
13148         PR tree-optimization/21602
13149         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
13150         using points-to information.
13151
13152 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
13153
13154         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
13155
13156 2010-08-30  Richard Guenther  <rguenther@suse.de>
13157
13158         PR tree-optimization/45449
13159         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
13160         variables.
13161
13162 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
13163
13164         * opts.h (CL_ERR_NEGATIVE): Define.
13165         * opts.c (unknown_option_callback): Don't postpone warnings for
13166         options marked with CL_ERR_NEGATIVE.
13167         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
13168         for negative versions of CL_REJECT_NEGATIVE options.
13169
13170 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
13171
13172         * config/i386/i386.md (zero_extendsidi2_1): Rename from
13173         zero_extendsidi2_32.
13174         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
13175         using SWI12 mode iterator.
13176         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
13177         to define_insn_and_split pattern.
13178         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
13179         using SWI24 mode iterator.
13180         (*zero_extendqi<mode>2_and): Macroize insn from
13181         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
13182         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
13183         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
13184         SWI24 mode iterator.
13185         (*zero_extendqi<mode>2_movzbl): Ditto from
13186         *zero_extendqi{hi,si}2_movzbl.
13187         (extendsidi2_1): Rename from extendsidi2_32.
13188         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
13189         SWI12 mode iterator.
13190
13191 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
13192
13193         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
13194         general purpose registers.
13195         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
13196         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
13197         with general purpose registers and memory operands.  Add associated
13198         CCImode post-reload splitter.
13199         * config/ia64/div.md: Change BImode to CCImode throughout.
13200
13201 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
13202
13203         * config/ia64/ia64.md (cstorebi4): Fix thinko.
13204
13205 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
13206
13207         * config/picochip/picochip.c (reorder_var_tracking_notes): This
13208         function was dropping debug insns which caused PR45299.
13209
13210 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
13211
13212         * config/i386/sse.md (extsuffix): New code attribute.
13213         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
13214         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
13215         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
13216         and sse4_1_zero_extendv4qiv4si2.
13217         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
13218         and sse4_1_zero_extendv2qiv2di2.
13219         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
13220         and sse4_1_zero_extendv4hiv4si2.
13221         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
13222         and sse4_1_zero_extendv2hiv2di2.
13223         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
13224         and sse4_1_zero_extendv2siv2di2
13225
13226         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
13227         using any_extend code iterator.
13228         (*avx_<s>mulv8hi3_highpart): Macroize insn from
13229         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
13230         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
13231
13232         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
13233         gen_sse4_1_sign_extend* functions.
13234         (struct builtin_description bdesc_args): Ditto.
13235
13236 2010-08-27  Xinliang David Li  <davidxl@google.com>
13237
13238         PR/45422
13239         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
13240         (iv_ca_set_no_cp): Update used inv expr count.
13241         (iv_ca_set_cp): Ditto.
13242         (iv_ca_new): Initialize new member.
13243         (iv_ca_free): Free memory.
13244
13245 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
13246
13247         * config/sh/sh-protos.h (sh_function_arg): Delete.
13248         (sh_function_arg_advance): Delete.
13249         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13250         (PASS_IN_REG_P): Eliminate cast.
13251         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
13252         const_tree and a bool.
13253         (sh_function_arg): Likewise.
13254         (sh_output_mi_thunk): Call sh_function_arg_advance) and
13255         sh_function_arg.
13256         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13257
13258 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
13259             Kaz Kojima  <kkojima@gcc.gnu.org>
13260
13261         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
13262         when possible.
13263         (sh_expand_epilogue): Likewise.
13264         * config/sh/sh.md (movml_push_banked): New insn.
13265         (movml_pop_banked): Likewise.
13266
13267 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
13268
13269         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
13270         gen_regexp_oneof, gen_regexp_sequence): Use the string found
13271         in vector element 0 rather than the original string when there's
13272         only one element.
13273         (gen_regexp): Remove extra semicolon.
13274
13275         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
13276         thumb2_movsf_vfp): Set attribute "insn".
13277         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
13278         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
13279         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
13280         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
13281         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
13282         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
13283         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
13284         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
13285         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
13286         if_not_arith, if_arith_not, cond_move_not): Likewise.
13287
13288 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
13289
13290         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
13291         New declaration.
13292         (rs6000_allocate_stack_temp): Ditto.
13293         (rs6000_expand_convert_si_to_sfdf): Ditto.
13294
13295         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
13296         line.  Update the options set if power6 or power7 server/embedded
13297         type options are used.  If we give a warning for no vsx under
13298         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
13299         (rs6000_allocate_stack_temp): New function to allocate a stack
13300         tempoary and adjust the address so it meets either REG+OFFSET or
13301         REG+REG addressing requirements.
13302         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
13303         that they can be used with the LFIWAX/LFIWZX instrucitons.
13304         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
13305         converting signed/unsigned SImode to either SFmode/DFmode.
13306
13307         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
13308         whether certain instructions can be generated.
13309         (TARGET_FCTIDZ): Ditto.
13310         (TARGET_STFIWX): Ditto.
13311         (TARGET_LFIWAX): Ditto.
13312         (TARGET_LFIWZX): Ditto.
13313         (TARGET_FCFIDS): Ditto.
13314         (TARGET_FCFIDU): Ditto.
13315         (TARGET_FCFIDUS): Ditto.
13316         (TARGET_FCTIDUZ): Ditto.
13317         (TARGET_FCTIWUZ): Ditto.
13318
13319         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
13320         (UNSPEC_FCTID): Ditto.
13321         (UNSPEC_LFIWAX): Ditto.
13322         (UNSPEC_LFIWZX): Ditto.
13323         (UNSPEC_FCTIWUZ): Ditto.
13324         (rreg): Use correct constraints.
13325         (SI_CONVERT_FP): New mode attribute for floating point conversion
13326         tests.
13327         (E500_CONVERT): Ditto.
13328         (lfiwax): New insns for converting from integer to floating point
13329         utilizing newer instructions.  Attempt to optimize conversions
13330         that come from memory so that we don't load the value into a GPR,
13331         spill it to the stack and reload it into a FPR.
13332         (floatsi<mode>2_lfiwax): Ditto.
13333         (floatsi<mode>2_lfiwax_mem): Ditto.
13334         (floatsi<mode>2_lfiwax_mem2): Ditto.
13335         (lfiwzx): Ditto.
13336         (floatunssi<mode>2_lfiwzx): Ditto.
13337         (floatunssi<mode>2_lfiwzx_mem): Ditto.
13338         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
13339         (floatdidf2_mem): Ditto.
13340         (floatunsdidf2_fcfidu): Ditto.
13341         (floatunsdidf2_mem): Ditto.
13342         (floatunsdisf2): Ditto.
13343         (floatunsdisf2_fcfidus): Ditto.
13344         (floatunsdisf2_mem): Ditto.
13345         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
13346         Use FCFID on 32-bit hosts that support it.
13347         (floatsidf2_internal): Ditto.
13348         (floatunssisf2): Ditto.
13349         (floatunssidf2): Ditto.
13350         (floatunssidf2_internal): Ditto.
13351         (floatsisf2): Ditto.
13352         (floatdidf2): Ditto.
13353         (floatdidf2_fpr): Ditto.
13354         (floatunsdidf2): Ditto.
13355         (floatdisf2): Ditto.
13356         (floatdisf2_fcfids): Ditto.
13357         (floatdisf2_internal1): Ditto.
13358         (fixuns_truncsfsi2): Delete, merge into common pattern for both
13359         SF/DF.  Add power7 support.
13360         (fix_truncsfsi2): Ditto.
13361         (fixuns_truncdfsi2): Ditto.
13362         (fixuns_truncdfdi2): Ditto.
13363         (fix_truncdfsi2): Ditto.
13364         (fix_truncdfsi2_internal): Ditto.
13365         (fix_truncdfsi2_internal_gfxopt): Ditto.
13366         (fix_truncdfsi2_mfpgpr): Ditto.
13367         (fctiwz): Ditto.
13368         (btruncdf2): Ditto.
13369         (btruncdf2_fpr): Ditto.
13370         (btructsf2): Ditto.
13371         (ceildf2): Ditto.
13372         (ceildf2_fpr): Ditto.
13373         (ceilsf2): Ditto.
13374         (floordf2): Ditto.
13375         (floordf2_fpr): Ditto.
13376         (floorsf2): Ditto.
13377         (rounddf2): Ditto.
13378         (rounddf2_fpr): Ditto.
13379         (roundsf2): Ditto.
13380         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
13381         (fix_trunc<mode>di2): Ditto.
13382         (fixuns_trunc<mode>si2): Ditto.
13383         (fixuns_trunc<mode>di2): Ditto.
13384         (fctiwz_<mode>): Ditto.
13385         (btrunc<mode>2): Ditto.
13386         (btrunc<mode>2_fpr): Ditto.
13387         (ceil<mode>2): Ditto.
13388         (ceil<mode>2_fpr): Ditto.
13389         (floor<mode>2): Ditto.
13390         (float<mode>2_fpr): Ditto.
13391         (round<mode>2): Ditto.
13392         (round<mode>2_fpr): Ditto.
13393         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
13394         (fixuns_trunc<mode>si2_stfiwx): Ditto.
13395         (fix_truncdfsi2_internal): Ditto.
13396         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
13397         converted value on stack, loaded into GPR, and then stored into
13398         the final destination.
13399         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
13400         FCTIDZ.
13401         (lrint<mode>di2): New insn, provide the lrint builtin functions.
13402         (ftruncdf2): Delete, unused.
13403         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
13404
13405         * config/rs6000/vsx.md (toplevel): Update copyright year.
13406         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
13407         (VSr3): Ditto.
13408
13409 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
13410             Jeremie Salvucci  <jeremie.salvucci@free.fr>
13411
13412         * gengtype.c (output_type_enum): Test the right union member.
13413
13414 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
13415
13416         PR target/41484
13417         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
13418         operands for operand 1.
13419         (sse4_1_extendv4qiv4si2): Ditto.
13420         (sse4_1_extendv2qiv2di2): Ditto.
13421         (sse4_1_extendv4hiv4si2): Ditto.
13422         (sse4_1_extendv2hiv2di2): Ditto.
13423         (sse4_1_extendv2siv2di2): Ditto.
13424         (sse4_1_zero_extendv8qiv8hi2): Ditto.
13425         (sse4_1_zero_extendv4qiv4si2): Ditto.
13426         (sse4_1_zero_extendv2qiv2di2): Ditto.
13427         (sse4_1_zero_extendv4hiv4si2): Ditto.
13428         (sse4_1_zero_extendv2hiv2di2): Ditto.
13429         (sse4_1_zero_extendv2siv2di2): Ditto.
13430         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
13431         (*sse4_1_extendv4qiv4si2): Ditto.
13432         (*sse4_1_extendv2qiv2di2): Ditto.
13433         (*sse4_1_extendv4hiv4si2): Ditto.
13434         (*sse4_1_extendv2hiv2di2): Ditto.
13435         (*sse4_1_extendv2siv2di2): Ditto.
13436         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
13437         (*sse4_1_zero_extendv4qiv4si2): Ditto.
13438         (*sse4_1_zero_extendv2qiv2di2): Ditto.
13439         (*sse4_1_zero_extendv4hiv4si2): Ditto.
13440         (*sse4_1_zero_extendv2hiv2di2): Ditto.
13441         (*sse4_1_zero_extendv2siv2di2): Ditto.
13442
13443 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
13444
13445         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
13446         (mips_function_arg): Delete.
13447         (mips_function_arg_boundary): Take a const_tree.
13448         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
13449         (mips_arg_info): Likewise.
13450         (mips_setup_incoming_varargs): Call mips_function_arg_advance
13451         instead of FUNCTION_ARG_ADVANCE.
13452         (mips_function_arg_advance): Adjust prototype.  Make static.
13453         (mips_function_arg): Likewise.
13454         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13455         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
13456
13457 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
13458
13459         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13460         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
13461         (function_arg): Delete.
13462         (function_arg_boundary): Take a const_tree.
13463         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
13464         (rs6000_spe_function_arg): Likewise.
13465         (rs6000_parm_start): Likewise.
13466         (rs6000_arg_size): Likewise.
13467         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
13468         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
13469         (rs6000_mixed_function_arg): Likewise.
13470         (function_arg): Rename to...
13471         (rs6000_function_arg): ...this.
13472         (function_arg_advance): Rename to...
13473         (rs6000_function_arg_advance_1): ...this
13474         (rs6000_function_arg_advance): New function.  Call it.
13475         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
13476         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
13477         (rs6000_function_value): Likewise.
13478         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13479
13480 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13481
13482         * config/arm/arm.md (enabled): Test the value of arch_enabled
13483         rather than just using it.
13484
13485 2010-08-27  Olivier Hainque  <hainque@adacore.com>
13486             Eric Botcazou  <ebotcazou@adacore.com>
13487
13488         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
13489         cover all the possible offsets from this base.
13490         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
13491
13492 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
13493
13494         PR tree-optimization/44485
13495         * calls.c (flags_from_decl_or_type): For const or pure
13496         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
13497         together with ECF_CONST resp. ECF_PURE.
13498         * builtins.c (expand_builtin): Use flags_from_decl_or_type
13499         instead of querying flags directly.
13500         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
13501         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
13502
13503 2010-08-26  Richard Guenther  <rguenther@suse.de>
13504
13505         PR tree-optimization/45255
13506         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
13507         and externals are also invariant.
13508
13509 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
13510
13511         PR rtl-optimization/44858
13512         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
13513         newi2pat, make sure they don't affect newpat.
13514
13515         PR rtl-optimization/45400
13516         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
13517         SUBREG_REG if both modes are of MODE_INT class.
13518
13519 2010-08-25  Julian Brown  <julian@codesourcery.com>
13520
13521         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
13522         * config/arm/arm.md (generic_sched): No for Cortex-A5.
13523         (generic_vfp): Likewise.
13524         (cortex-a5.md): Include.
13525         * config/arm/cortex-a5.md: New.
13526
13527 2010-08-25  Richard Guenther  <rguenther@suse.de>
13528
13529         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
13530         * gimple.c (gimple_get_alias_set): Remove special handling
13531         for pointers.
13532
13533 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
13534
13535         PR middle-end/45355
13536         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
13537         dead_or_set_p when computing i0_feeds_i2_n.
13538
13539         * combine.c (find_split_point): Undo canonicalization of multiply-add
13540         to (minus x (mult)) when it seems likely that this will increase the
13541         chances of a split.
13542
13543 2010-08-25  Richard Guenther  <rguenther@suse.de>
13544
13545         PR lto/44562
13546         * lto-streamer.c (lto_record_common_node): Do not mess with
13547         TYPE_CANONICAL when not in lto.
13548         * gimple.c (gimple_register_type): Likewise.
13549
13550 2010-08-25  Richard Guenther  <rguenther@suse.de>
13551
13552         PR tree-optimization/45316
13553         * tree-ssa-pre.c (eliminate): Properly clean EH info.
13554
13555 2010-08-25  Richard Guenther  <rguenther@suse.de>
13556
13557         PR tree-optimization/45393
13558         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
13559         and clean EH info.  Avoid SSA update.
13560         (execute_cse_sincos): Cleanup the CFG if it has changed.
13561
13562 2010-08-25  Richard Guenther  <rguenther@suse.de>
13563
13564         PR middle-end/45379
13565         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
13566         TARGET_MEM_REF in alignment computation.
13567
13568 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
13569
13570         PR tree-optimization/45059
13571         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
13572         type conversions from newop{1,2}.  Assert t is a comparison and
13573         newop{1,2} after the stripping are gimple vals.
13574
13575 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
13576
13577         * config/arm/iterators.md (VU, SE, V_widen_l): New.
13578         (V_unpack, US): New.
13579         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
13580         (vec_unpack<US>_lo_<mode>): Likewise.
13581         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
13582         (neon_vec_unpack<US>_lo_<mode>): Likewise.
13583         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
13584         (vec_widen_<US>mult_hi_<mode>): Likewise.
13585         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
13586         (neon_vec_<US>mult_hi_<mode>"): Likewise.
13587         (neon_unpack<US>_<mode>): Widening move intermediate step for
13588         vectorizing without -mvectorize-with-neon-quad.
13589         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
13590         for vectorizing without -mvectorize-with-neon-quad.
13591         * config/arm/predicates.md (vect_par_constant_high): Check for
13592         high-half lanes of a vector.
13593         (vect_par_constant_low): Check for low-half lanes of a vector.
13594
13595 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
13596
13597         * tree-if-conv.c (struct ifc_dr): New.
13598         (IFC_DR): New.
13599         (DR_WRITTEN_AT_LEAST_ONCE): New.
13600         (DR_RW_UNCONDITIONALLY): New.
13601         (memref_read_or_written_unconditionally): Use the cached values
13602         when possible.
13603         (write_memref_written_at_least_once): Same.
13604         (if_convertible_loop_p): Initialize and free DR->aux fields.
13605
13606 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
13607
13608         * gimple.c (gimple_could_trap_p_1): Not static anymore.
13609         Pass an extra bool parameter include_mem.
13610         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
13611         (gimple_assign_rhs_could_trap_p): Same.
13612         * gimple.h (gimple_could_trap_p_1): Declared.
13613         * tree-data-ref.h (same_data_refs_base_objects): New.
13614         (same_data_refs): New.
13615         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
13616         (write_memrefs_written_at_least_once): New.
13617         (ifcvt_memrefs_wont_trap): New.
13618         (operations_could_trap): New.
13619         (ifcvt_could_trap_p): New.
13620         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
13621         Gets a vector of data refs.
13622         (if_convertible_stmt_p): Same.
13623         (if_convertible_loop_p_1): New.
13624         (if_convertible_loop_p): Call if_convertible_loop_p_1.
13625
13626 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
13627
13628         * common.opt (ftree-loop-if-convert-stores): New flag.
13629         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
13630         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
13631         the created statement before GSI.
13632         (if_convertible_phi_p): Allow virtual phi nodes when
13633         flag_loop_if_convert_stores is set.
13634         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
13635         Do not handle types that do not match is_gimple_reg_type.
13636         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
13637         when flag_loop_if_convert_stores is set, as LHS can contain
13638         memory refs.
13639         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
13640         to if_convertible_gimple_assign_stmt_p.
13641         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
13642         (replace_phi_with_cond_gimple_assign_stmt): Renamed
13643         predicate_scalar_phi.  Do not handle virtual phi nodes.
13644         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
13645         Call predicate_scalar_phi.
13646         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
13647         just after the labels for flag_loop_if_convert_stores, otherwise
13648         insert the predicate in the end of the BB.
13649         (predicate_mem_writes): New.
13650         (combine_blocks): Call predicate_all_scalar_phis.  When
13651         flag_loop_if_convert_stores is set, call predicate_mem_writes.
13652         (tree_if_conversion): Call mark_sym_for_renaming when
13653         flag_loop_if_convert_stores is set.
13654         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
13655         flag_loop_if_convert_stores is set.
13656
13657 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
13658
13659         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
13660         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
13661         (pa_function_value): Make static.
13662         (override_options): Rename to...
13663         (pa_option_override): ...this. Make static.
13664         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
13665         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
13666         TARGET_OPTION_OVERRIDE): Define.
13667         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
13668         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
13669         Remove.
13670         * config/pa/pa-protos.h (override_options): Remove.
13671
13672 2010-08-24  Richard Guenther  <rguenther@suse.de>
13673
13674         PR middle-end/45379
13675         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
13676         if addr->index is NULL or zero.
13677         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
13678         TARGET_MEM_REF more properly.
13679         (indirect_ref_may_alias_decl_p): Likewise.
13680         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
13681         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
13682
13683 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
13684
13685         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
13686         (m32c_override_options): Rename to...
13687         (m32c_option_override): ...this. Make static.
13688         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
13689         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
13690         Remove.
13691         * config/m32c/m32c-protos.h (m32c_override_options,
13692         m32c_function_value_regno_p): Remove.
13693
13694 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
13695
13696         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
13697         Fix a typo in a previous commit.
13698
13699 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
13700
13701         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
13702         Pre-initialize innerloop_iters to one.
13703
13704 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
13705
13706         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
13707         existing static function global.
13708
13709         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
13710         is changed to global.
13711
13712         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
13713         may_be_nonaddressable_p on base, and don't collect this reference
13714         if the address of the base could not be taken.
13715
13716 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
13717
13718         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
13719         enable the compiler to autovectorize mathmetical functions for
13720         power7 using the Mathematical Acceleration Subsystem library.
13721
13722         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
13723         handle which vector math library we have.
13724         (rs6000_override_options): Add -mveclibabi=mass support.
13725         (rs6000_builtin_vectorized_libmass): New function to handle auto
13726         vectorizing math functions that are in the MASS library.
13727         (rs6000_builtin_vectorized_function): Call it.
13728
13729         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
13730         -mveclibabi=mass.
13731
13732 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13733
13734         PR boehm-gc/34544
13735         * gthr-posix.h (__gthread_active_init): Delete.
13736         (__gthread_active_p): Do activity check here.
13737         Don't include errno.h on hppa-hpux.  Update comment.
13738         * gthr-posix95.h (__gthread_active_init): Delete.
13739         (__gthread_active_p): Do activity check here.
13740         Don't include errno.h on hppa-hpux.  Update comment.
13741         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
13742         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
13743         add -lpthread when -mt or -pthread is specified.
13744         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
13745         (LINK_GCC_C_SEQUENCE_SPEC): Define.
13746         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
13747         (stublib.c, pthread_default_stacksize_np-stub.o,
13748         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
13749         $(T)libgcc_stub.a): Add methods.
13750         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
13751         (stublib.c, pthread_default_stacksize_np-stub.o,
13752         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
13753         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
13754         pthread_mutex_unlock): New stubs.
13755
13756 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
13757
13758         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
13759         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
13760         options.
13761         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
13762         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
13763         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
13764         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
13765         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
13766         "-l".
13767         * cppspec.c: Include opts.h.
13768         (lang_specific_driver): Use cl_decoded_option structures.
13769         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
13770         * doc/tm.texi: Regenerate.
13771         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
13772         (driver_handle_option): Allow driver options needing no special
13773         processing.
13774         (process_command): Decode options before call to
13775         lang_specific_driver.  Pass decoded options to
13776         lang_specific_driver.
13777         * gcc.h (lang_specific_driver): Update prototype.
13778         * gccspec.c: Include opts.h.
13779         (lang_specific_driver): Use cl_decoded_option structures.
13780         * opts-common.c (option_ok_for_language, generate_option,
13781         generate_option_input_file): New.
13782         (decode_cmdline_option): Use option_ok_for_language.
13783         (decode_cmdline_options_to_array): Use generate_option_input_file.
13784         (handle_generated_option): Use generate_option.
13785         * opts.h (generate_option, generate_option_input_file): Declare.
13786
13787 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
13788
13789         * config/mips/mips.c (mips_override_options): Rename to...
13790         (mips_option_override): ...this. Make static.
13791         (TARGET_OPTION_OVERRIDE): Define.
13792         (mips_in_small_data_p): Update comment.
13793         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
13794         (FIXED_REGISTERS): Update comment.
13795         * config/mips/mips-protos.h (mips_override_options): Remove.
13796
13797 2010-08-21  Olivier Hainque  <hainque@adacore.com>
13798
13799         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
13800
13801 2010-08-21  Olivier Hainque  <hainque@adacore.com>
13802
13803         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
13804         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
13805
13806 2010-08-20  Jan Hubicka  <jh@suse.cz>
13807
13808         * tree-pass.h (pass_ipa_cdtor_merge): New function.
13809         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
13810         heap allocated.
13811         (record_cdtor_fn): Move to ipa.c; do not test for
13812         have_ctors_dtors.
13813         (build_cdtor): Move to ipa.c; add code avoiding construction
13814         when target have ctors/dtors and there is only one ctor/dtor at given
13815         priority.
13816         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
13817         sort; reverse order of constructors.
13818         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
13819         (cgraph_finalize_function): Do not call record_cdtor_fn.
13820         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
13821         (cgraph_build_static_cdtor): Move to ipa.c.
13822         * ipa.c: Include target.h and tree-iterator.h.
13823         (cgraph_build_static_cdtor, static_ctors, static_dtors,
13824         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
13825         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
13826         pass_ipa_cdtor_merge): New.
13827         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
13828         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
13829         bounds access.
13830
13831 2010-08-20  Jan Hubicka  <jh@suse.cz>
13832
13833         PR c++/45307
13834         PR c++/17736
13835         * cgraph.h (cgraph_only_called_directly_p,
13836         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
13837         static cdtors.
13838         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
13839         are not needed.
13840         (cgraph_finalize_function): Static cdtors are reachable.
13841         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
13842
13843 2010-08-20  Jan Hubicka  <jh@suse.cz>
13844
13845         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
13846         flag_wpa.
13847         * lto-streamer-out.c (lto_output): Likewise.
13848         * passes.c (ipa_write_optimization_summaries): Initialize statement
13849         uids.
13850
13851 2010-08-20  Olivier Hainque  <hainque@adacore.com>
13852
13853         * tree.h (alias_diag_flags): New enum.
13854         (alias_pair): Add an 'emitted_diags' field.
13855         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
13856         (assemble_alias): Initialize emitted_diags of new pairs.
13857
13858 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
13859
13860         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
13861         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
13862         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
13863         (STACK_CHECK_PROTECT): Define.
13864         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
13865         (output_probe_stack_range): Likewise.
13866         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
13867         builtin stack checking is enabled.
13868         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
13869         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
13870         (probe_stack_range): New insn.
13871
13872 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
13873
13874         PR target/45336
13875         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
13876         short first.
13877
13878         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
13879         char first.
13880
13881 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
13882
13883         PR target/45336
13884         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
13885         to cover zero extension into 64-bit register.
13886         (*sse2_pextrw): Likewise.
13887         (*sse4_1_pextrd_zext): New insn.
13888
13889 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
13890
13891         revert r163410, partially revert r163267.
13892         * config/rs6000/darwin.h (LIB_SPEC): Remove.
13893         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
13894         Darwin versions.
13895
13896 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
13897
13898         PR middle-end/44974
13899         * builtins.c (expand_builtin): Don't optimize away
13900         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
13901
13902 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
13903
13904         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
13905         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
13906         alternative 1 of operand 2.
13907
13908 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
13909             Paolo Bonzini  <bonzini@gnu.org>
13910
13911         * simplify-rtx.c (simplify_unary_operation_1): Optimize
13912         (sign_extend (zero_extend (...)) and
13913         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
13914
13915 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
13916
13917         PR rtl-optimization/45353
13918         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
13919         after bb_note is a BARRIER.
13920
13921 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
13922
13923         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
13924         linking libgcc.a.
13925
13926 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
13927             Michael Matz  <matz@suse.de>
13928
13929         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
13930
13931 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
13932
13933         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
13934         (ggc_mark_roots): ...here.
13935
13936 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
13937
13938         * vec.h (FOR_EACH_VEC_ELT): Define.
13939         * c-decl.c: Use it.
13940         * cfgloop.c: Likewise.
13941         * cfgloopmanip.c: Likewise.
13942         * cgraph.c: Likewise.
13943         * cgraphunit.c: Likewise.
13944         * combine.c: Likewise.
13945         * config/bfin/bfin.c: Likewise.
13946         * config/mips/mips.c: Likewise.
13947         * config/rs6000/rs6000.c: Likewise.
13948         * dbxout.c: Likewise.
13949         * df-scan.c: Likewise.
13950         * dominance.c: Likewise.
13951         * dse.c: Likewise.
13952         * dwarf2out.c: Likewise.
13953         * except.c: Likewise.
13954         * expr.c: Likewise.
13955         * function.c: Likewise.
13956         * gcse.c: Likewise.
13957         * genattr.c: Likewise.
13958         * ggc-common.c: Likewise.
13959         * gimplify.c: Likewise.
13960         * graphite-blocking.c: Likewise.
13961         * graphite-clast-to-gimple.c: Likewise.
13962         * graphite-dependences.c: Likewise.
13963         * graphite-interchange.c: Likewise.
13964         * graphite-poly.c: Likewise.
13965         * graphite-scop-detection.c: Likewise.
13966         * graphite-sese-to-poly.c: Likewise.
13967         * graphite.c: Likewise.
13968         * haifa-sched.c: Likewise.
13969         * ifcvt.c: Likewise.
13970         * implicit-zee.c: Likewise.
13971         * ipa-prop.c: Likewise.
13972         * ipa-struct-reorg.c: Likewise.
13973         * ipa.c: Likewise.
13974         * ira-build.c: Likewise.
13975         * ira-color.c: Likewise.
13976         * ira-emit.c: Likewise.
13977         * lambda-code.c: Likewise.
13978         * loop-invariant.c: Likewise.
13979         * loop-unroll.c: Likewise.
13980         * lower-subreg.c: Likewise.
13981         * lto-cgraph.c: Likewise.
13982         * lto-opts.c: Likewise.
13983         * lto-streamer-in.c: Likewise.
13984         * lto-streamer-out.c: Likewise.
13985         * lto-streamer.c: Likewise.
13986         * lto-symtab.c: Likewise.
13987         * matrix-reorg.c: Likewise.
13988         * opts.c: Likewise.
13989         * predict.c: Likewise.
13990         * print-tree.c: Likewise.
13991         * sdbout.c: Likewise.
13992         * sel-sched-dump.c: Likewise.
13993         * sel-sched-ir.c: Likewise.
13994         * sel-sched.c: Likewise.
13995         * sese.c: Likewise.
13996         * stor-layout.c: Likewise.
13997         * tree-cfg.c: Likewise.
13998         * tree-cfgcleanup.c: Likewise.
13999         * tree-chrec.c: Likewise.
14000         * tree-data-ref.c: Likewise.
14001         * tree-emutls.c: Likewise.
14002         * tree-inline.c: Likewise.
14003         * tree-into-ssa.c: Likewise.
14004         * tree-loop-distribution.c: Likewise.
14005         * tree-loop-linear.c: Likewise.
14006         * tree-mudflap.c: Likewise.
14007         * tree-outof-ssa.c: Likewise.
14008         * tree-parloops.c: Likewise.
14009         * tree-predcom.c: Likewise.
14010         * tree-pretty-print.c: Likewise.
14011         * tree-scalar-evolution.c: Likewise.
14012         * tree-ssa-live.c: Likewise.
14013         * tree-ssa-loop-im.c: Likewise.
14014         * tree-ssa-loop-ivcanon.c: Likewise.
14015         * tree-ssa-loop-ivopts.c: Likewise.
14016         * tree-ssa-loop-manip.c: Likewise.
14017         * tree-ssa-loop-niter.c: Likewise.
14018         * tree-ssa-loop-prefetch.c: Likewise.
14019         * tree-ssa-phiprop.c: Likewise.
14020         * tree-ssa-pre.c: Likewise.
14021         * tree-ssa-reassoc.c: Likewise.
14022         * tree-ssa-sccvn.c: Likewise.
14023         * tree-ssa-structalias.c: Likewise.
14024         * tree-ssa.c: Likewise.
14025         * tree-vect-data-refs.c: Likewise.
14026         * tree-vect-loop-manip.c: Likewise.
14027         * tree-vect-loop.c: Likewise.
14028         * tree-vect-patterns.c: Likewise.
14029         * tree-vect-slp.c: Likewise.
14030         * tree-vect-stmts.c: Likewise.
14031         * tree-vrp.c: Likewise.
14032         * tree.c: Likewise.
14033         * value-prof.c: Likewise.
14034         * var-tracking.c: Likewise.
14035         * varasm.c: Likewise.
14036         * vmsdbgout.c: Likewise.
14037
14038 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
14039             Richard Guenther  <richard.guenther@gmail.com>
14040
14041         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
14042         copy the src value and return a copy.
14043         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
14044         (C++ Volatiles): Adjust to describe C++ semantics only.
14045
14046 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
14047
14048         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
14049         be zero or nonzero.
14050         * doc/tm.texi: Regenerate.
14051         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
14052         * df-scan.c (df_get_exit_block_use_set), reginfo.c
14053         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
14054         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
14055         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
14056         to 1.
14057
14058 2010-08-20  Olivier Hainque  <hainque@adacore.com>
14059
14060         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
14061         an extra nop past a sibling call at the very end.
14062
14063 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
14064
14065         PR bootstrap/45350
14066         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
14067         a comment.
14068
14069 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
14070
14071         * target.def (function_arg, function_incoming_arg): Remove const
14072         qualifier on CUMULATIVE_ARGS parameter.
14073         * targhooks.h (default_function_arg, default_function_incoming_arg):
14074         Likewise.
14075         * targhooks.c (default_function_arg, default_function_incoming_arg):
14076         Likewise.
14077         * config/i386/i386.c (ix86_function_arg): Likewise.
14078
14079 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
14080
14081         PR target/45336
14082         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
14083         SIGN_EXTENDs or ZERO_EXTENDs.
14084
14085 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
14086
14087         PR target/42172
14088         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
14089         Take its cost into account if nonnull.
14090         (insn_a_feeds_b): New static function.
14091         (combine_instructions): Look for four-insn combinations.
14092         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
14093         them into account when computing all_adjacent and looking for other
14094         uses.
14095         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
14096         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
14097         (try_combine): New arg I0.  Handle four-insn combinations.
14098         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
14099         like ELIM_I1.
14100
14101 2010-08-19  Jason Merrill  <jason@redhat.com>
14102
14103         PR c++/45307
14104         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
14105         if ctor is empty.
14106         (gimplify_modify_expr_rhs): Adjust.
14107
14108 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
14109
14110         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
14111         bitmap_bit_p.
14112         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
14113         * dominance.c (iterate_fix_dominators): Likewise.
14114         * dse.c (set_usage_bits): Likewise.
14115         (set_position_unneeded, record_store): Likewise.
14116         * gimple-fold.c (get_maxval_strlen): Likewise.
14117         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
14118         * ipa-inline.c (update_caller_keys): Likewise.
14119         * ipa-split.c (verify_non_ssa_vars): Likewise.
14120         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
14121         (close_type_exposed_parameter, close_type_full_escape): Likewise.
14122         (close_addressof_down): Likewise.
14123         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
14124         (setup_allocno_left_conflicts_size): Likewise.
14125         (ira_reassign_conflict_allocnos): Likewise.
14126         (ira_reassign_pseudos): Likewise.
14127         * ira-emit.c (change_loop): Likewise.
14128         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
14129         * lto-streamer-out.c (write_symbol): Likewise.
14130         * predict.c (expr_expected_value_1): Likewise.
14131         * regstat.c (regstat_bb_compute_ri): Likewise.
14132         * sel-sched.c (create_block_for_bookkeeping): Likewise.
14133         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
14134         * stmt.c (expand_case): Likewise.
14135         * tree-eh.c (emit_eh_dispatch): Likewise.
14136         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
14137         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
14138         Likewise.
14139         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
14140         (rdg_build_components): Likewise.
14141         * tree-object-size.c (collect_object_sizes_for): Likewise.
14142         * tree-sra.c (convert_callers): Likewise.
14143         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
14144         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
14145         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
14146
14147 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
14148
14149         * config/i386/i386.md (*lea_1): Use P mode iterator.
14150         (lea add splitter): Also handle DImode operands.
14151         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
14152         predicate.  Do not use ix86_lea_for_add_ok.
14153         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
14154         (lea ashift splitter): Also handle DImode operands.
14155         (DImode lea ashift splitter): Remove splitter.
14156
14157 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
14158
14159         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
14160         ix86_binary_operator_ok.
14161
14162 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
14163
14164         PR rtl-optimization/44691
14165         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
14166         is not a register.
14167
14168 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
14169
14170         PR target/45070
14171         * config/arm/arm.c (arm_output_epilogue): Ensure that return
14172          value of size 1-3 is handled correctly.
14173
14174 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
14175
14176         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
14177         type for the conditional has wide enough range.
14178
14179 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
14180
14181         PR target/45327
14182         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
14183         ix86_binary_operator_ok.
14184
14185 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
14186
14187         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
14188         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
14189         code to output insn mnemonic.  Fix comment.
14190         (*addsi_1_zext): Add r-r-0 alternative 1.
14191         <TYPE_LEA>: Split insn to lea.
14192         <default>: Handle alternative 1.
14193         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
14194         multi-level if_then_else RTX to set "type" attribute.
14195         <default>: Handle alternative 2.
14196         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
14197         Use cond RTX instead of multi-level if_then_else RTX to set
14198         "type" attribute.
14199         <default>: Handle alternatives 2 and 4.
14200         (lea splitters): Update calls to ix86_lea_for_add_ok.
14201
14202         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
14203         argument.
14204         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
14205
14206 2010-08-18  Richard Guenther  <rguenther@suse.de>
14207
14208         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
14209         use operand helpers.
14210
14211 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
14212
14213         PR middle-end/45292
14214         * optabs.c (expand_bool_compare_and_swap): Expand pending
14215         pops before trying the optab.
14216
14217 2010-08-18  Yao Qi  <yao@codesourcery.com>
14218
14219         PR target/45094
14220         * config/arm/arm.c (output_move_double): Fix typo generating
14221         instructions ('ldr'->'str').
14222
14223 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
14224
14225         PR rtl-optimization/42575
14226         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
14227         live ranges.
14228
14229 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14230
14231         * config/arm/arm-protos.h (arm_expand_sync): New.
14232         (arm_output_memory_barrier, arm_output_sync_insn): New.
14233         (arm_sync_loop_insns): New.
14234         * config/arm/arm.c (FL_ARCH7): New.
14235         (FL_FOR_ARCH7): Include FL_ARCH7.
14236         (arm_arch7): New.
14237         (arm_print_operand): Support %C markup.
14238         (arm_legitimize_sync_memory): New.
14239         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
14240         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
14241         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
14242         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
14243         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
14244         (arm_process_output_sync_insn, arm_output_sync_insn): New.
14245         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
14246         * config/arm/arm.h (struct arm_sync_generator): New.
14247         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
14248         (TARGET_HAVE_MEMORY_BARRIER): New.
14249         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
14250         * config/arm/arm.md: Include sync.md.
14251         (UNSPEC_MEMORY_BARRIER): New.
14252         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
14253         (VUNSPEC_SYNC_OP):New.
14254         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
14255         (sync_result, sync_memory, sync_required_value): New attributes.
14256         (sync_new_value, sync_t1, sync_t2): Likewise.
14257         (sync_release_barrier, sync_op): Likewise.
14258         (length): Add logic to length attribute defintion to call
14259         arm_sync_loop_insns when appropriate.
14260         * config/arm/sync.md: New file.
14261
14262 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
14263
14264         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
14265         ENABLE_TREE_CHECKING.
14266         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
14267         and GCC >= 4.3.
14268
14269 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
14270
14271         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
14272         or optimizing for size, always avoid lea if possible.
14273
14274         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
14275
14276 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
14277
14278         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
14279         Dunmmy function with NULL return unless the target is
14280         OSX >= 10.6 (Darwin10).
14281
14282 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
14283
14284         * gcc.c (spec_function): Add remove-outfile.
14285         (remove_outfile_spec_function): New function.
14286         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
14287         * invoke.texi (replace-outfile): Document.
14288
14289 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
14290
14291         PR target/45296
14292         * reginfo.c (globalize_reg): Reject stack registers.
14293
14294 2010-08-17  Richard Guenther  <rguenther@suse.de>
14295
14296         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
14297         list of conditional equivalences.
14298         (free_all_edge_infos): Adjust.
14299         (record_equivalences_from_incoming_edge): Likewise.
14300         (record_cond): Likewise.
14301         (build_and_record_new_cond): Likewise.
14302         (record_conditions): Likewise.
14303         (dom_opt_leave_block): Likewise.
14304
14305 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
14306
14307         * doc/invoke.texi (ms-extension): Add documentation.
14308
14309 2010-08-17  Richard Guenther  <rguenther@suse.de>
14310
14311         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
14312
14313 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
14314
14315         PR c/40563
14316         * c-decl.c (diagnose_uninitialized_cst_member): New function.
14317         (finish_decl): Use it to issue a -Wc++-compat warning about
14318         uninitialized const field in struct or union.
14319
14320         (finish_struct): Use strip_array_types.
14321
14322 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
14323
14324         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
14325         functions.
14326         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
14327         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
14328         call block_nreverse here.
14329         (blocks_nreverse): Rename decl temporary to block.
14330
14331 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
14332
14333         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
14334         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
14335         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
14336         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
14337         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
14338         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
14339         thumb2_iorsi3): Delete.
14340         (orsi_notsi_si): No longer a named pattern.
14341         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
14342         * config/arm/predicates.md (shift_amount_operand): New.
14343         (mult_operator): New.
14344         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
14345         attr enabled): New.
14346         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
14347         arch matches t2.
14348         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
14349         (not_shiftsi_compare0): Likewise, renamed from
14350         arm_notsi_shiftsi_compare0.
14351         (not_shiftsi_compare0_scratch): Likweise, renamed from
14352         arm_notsi_shiftsi_compare0_scratch.
14353         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
14354         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
14355         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
14356         so that the register alternative is disabled when the shift_operator
14357         is MULT.  Use "M" as the constraint for constants.
14358         (arith_shiftsi splitter): Enable for TARGET_32BIT.
14359         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
14360         constraint for constants.
14361         (arith_shiftsi_compare0_scratch): Likewise.
14362         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
14363         Handle Thumb2 alternative.
14364
14365 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
14366
14367         * doc/options.texi (NoDriverArg): Document.
14368         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
14369         -MDX and -MMDX.
14370         * opt-functions.awk (switch_flags): Handle NoDriverArg.
14371         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
14372         marking for CL_NO_DRIVER_ARG options when in the driver.
14373         * opts.h (CL_NO_DRIVER_ARG): Define.
14374         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
14375         CL_COMMON): Update values.
14376
14377 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
14378
14379         * common.opt: Add driver options.
14380         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
14381         * doc/options.texi (Driver, RejectDriver): Document.
14382         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
14383         print_prog_name, print_multi_directory, print_sysroot,
14384         print_multi_os_directory, print_multi_lib,
14385         print_sysroot_headers_suffix, report_times, combine_flag,
14386         use_pipes, wrapper_string): Remove.
14387         (save_switch, driver_unknown_option_callback,
14388         driver_wrong_lang_callback, driver_post_handling_callback,
14389         driver_handle_option): New.
14390         (spec_lang, last_language_n_infiles): Make file-scope static
14391         instead of local to process_command.
14392         (process_command): Use decode_cmdline_options_to_array and
14393         read_cmdline_option for option processing.  Compute have_c in
14394         prescan of decoded options.
14395         * opt-functions.awk (switch_flags): Handle Driver and
14396         RejectDriver.
14397         (var_type, var_type_struct): Handle Separate options as generating
14398         const char * variables.
14399         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
14400         CL_TARGET to be passed by caller if required.
14401         (decode_cmdline_options_to_array): Update comment.
14402         * opts.c (complain_wrong_lang): Handle options only valid for the
14403         driver.
14404         (decode_options): Update call to decode_cmdline_options_to_array.
14405         (print_filtered_help): Ignore driver-only options.
14406         (print_specific_help): Ignore CL_DRIVER.
14407         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
14408         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
14409         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
14410         Update values.
14411
14412 2010-08-16  Richard Guenther  <rguenther@suse.de>
14413
14414         * tree-cfg.c (verify_types_in_gimple_reference): Verify
14415         TARGET_MEM_REF a bit.
14416         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
14417         (create_mem_ref_raw): Always create TMR_OFFSET, store the
14418         alias pointer type via it.
14419         (copy_mem_ref_info): Adjust.
14420         (maybe_fold_tmr): Likewise.
14421         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
14422         (reference_alias_ptr_type): Likewise.
14423         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
14424         adjust documentation of TMR_OFFSET operand.
14425         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
14426         use the alias pointer type.
14427         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
14428         initialize mem attrs but the TMR itself.
14429         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
14430         similar to MEM_REF.
14431         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
14432         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
14433         (unshare_and_remove_ssa_names): Likewise.
14434         (copy_ref_info): Adjust.
14435         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
14436         TARGET_MEM_REF case.
14437         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
14438         at TMR_ORIGINAL.
14439         * tree.h (TMR_ORIGINAL): Remove.
14440         * gimple.c (get_base_address): For TARGET_MEM_REF with a
14441         symbol return that.
14442         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
14443         with a symbol.
14444         (get_addr_base_and_unit_offset): Likewise.
14445         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
14446         TARGET_MEM_REFs.
14447         (indirect_ref_may_alias_decl_p): Likewise.
14448         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
14449
14450 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
14451
14452         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
14453         with GCC version 4.6, the default setting (when not optimizing
14454         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
14455         been changed to -fomit-frame-pointer.
14456
14457 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
14458
14459         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
14460         Darwin10.  Do not link libgcc.a for Darwin >= 9.
14461
14462 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
14463
14464         * doc/invoke.texi (Warning Options): Fix terminology and markup
14465         in the description of how unknown warning options are handled.
14466
14467 2010-08-15  Ira Rosen  <irar@il.ibm.com>
14468
14469         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
14470         in basic blocks.
14471         (vect_supportable_dr_alignment): Check alignment for basic blocks.
14472         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
14473         data references.
14474         (vect_bb_vectorization_profitable_p): New function.
14475         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
14476         check if it's worthwhile to vectorize the basic block.
14477
14478 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
14479
14480         * reload.h (register_move_cost, memory_move_secondary_cost,
14481         secondary_reload_class): Adjust prototype.
14482         * rtl.h (reg_class_subset_p): Adjust prototype.
14483         * reload.c (secondary_reload_class): Change arguments type from
14484         enum reg_class to reg_class_t. Change result type to reg_class_t.
14485         * reginfo.c (register_move_cost, reg_class_subset_p): Change
14486         arguments type from enum reg_class to reg_class_t.
14487         (memory_move_secondary_cost): Change arguments type from
14488         enum reg_class to reg_class_t. Change type of saved_flags to
14489         reg_class_t.
14490
14491         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
14492         Remove macros.
14493         (mips_cost): Remove.
14494         (struct mips_rtx_cost_data): Moved to mips.c.
14495         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
14496         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
14497         (mips_cost): Make static.
14498         (mips_canonicalize_move_class): Change argument type to reg_class_t.
14499         Change result type to reg_class_t.
14500         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
14501         type from enum reg_class to reg_class_t.
14502         (mips_register_move_cost): Make static. Change arguments
14503         type from enum reg_class to reg_class_t.
14504         (mips_memory_move_cost): New function.
14505         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
14506
14507 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
14508
14509         PR rtl-optimization/43358
14510         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
14511         of a single hard register, using simplify_subreg_regno to decide
14512         what that register should be.
14513
14514 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
14515
14516         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
14517         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
14518         (loongson_pmull<V_suffix>): Rename to...
14519         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
14520
14521 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
14522
14523         * configure.ac: Enable -fomit-frame-pointer on darwin
14524         which support dwarf2.
14525         * config/i386/i386.c (override_options): Same.
14526
14527 2010-08-13  Jie Zhang  <jie@codesourcery.com>
14528
14529         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
14530
14531 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
14532
14533         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
14534         -MMD.
14535
14536 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
14537
14538         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
14539         up dot_prod pattern searching if a stmt is outside the loop.
14540
14541 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
14542             Uros Bizjak  <ubizjak@gmail.com>
14543
14544         * config.gcc: Handle --enable-frame-pointer.
14545
14546         * configure.ac: Add --enable-frame-pointer.
14547         * configure: Regenerated.
14548
14549         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
14550         (override_options): If not configured with --enable-frame-pointer,
14551         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
14552         optimizing for size), -fasynchronous-unwind-tables and
14553         -maccumulate-outgoing-args by default.
14554
14555 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
14556
14557         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
14558
14559         PR middle-end/45262
14560         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
14561         -a overflows.  Normalize the range.
14562
14563 2010-08-12  Richard Guenther  <rguenther@suse.de>
14564
14565         PR tree-optimization/45232
14566         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
14567         for types with undefined overflow.
14568         (reassociate_bb): Allow re-associating of bit and min/max
14569         operations for types with undefined overflow.
14570         * tree-ssa-forwprop.c (associate_plusminus): New function.
14571         (tree_ssa_forward_propagate_single_use_vars): Call it.
14572
14573 2010-08-12  Richard Guenther  <rguenther@suse.de>
14574
14575         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
14576         * tree-ssa-alias.c (get_ptr_info): Move ...
14577         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
14578         align and misalign fields conservatively.
14579         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
14580         derive alignment information.
14581         (evaluate_stmt): Derive alignment information from memory
14582         allocation functions.
14583         * tree.h (get_pointer_alignment): Make unsigned.
14584         * builtins.c (get_object_alignment): Use alignment information we
14585         have computed for pointers.
14586         (get_pointer_alignment): Likewise.  Make conservative, return
14587         and unsigned value.
14588         (expand_builtin_strlen): Adjust.
14589         (expand_builtin_memcmp): Likewise.
14590         (expand_builtin_strcmp): Likewise.
14591         (expand_builtin_strncmp): Likewise.
14592         (get_builtin_sync_mem): Use at least mode alignment.
14593         (fold_builtin_memset): Adjust.
14594         (fold_builtin_memory_op): Likewise.
14595         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
14596         information also dump pointer alignment knowledge.
14597         (dump_gimple_stmt): Likewise.
14598
14599 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
14600
14601         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
14602         (EMPTY_FIELD_BOUNDARY): Remove.
14603         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
14604
14605 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
14606
14607         PR debug/45259
14608         * caller-save.c (save_call_clobbered_regs): Only swap notes with
14609         DEBUG_INSNs if n_regs_saved.
14610
14611 2010-08-12  Wei Guozhi  <carrot@google.com>
14612
14613         PR target/44999
14614         * config/arm/arm.md (andsi3): Change to zero extension if possible.
14615         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
14616
14617 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
14618
14619         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
14620
14621         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
14622
14623 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14624
14625         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
14626         the case removed in the previous patch, when the only phi argument
14627         is defined in the same loop as the phi node itself.  Handle it
14628         separately from the invariant case by both propagating it outside
14629         the region and replacing the phi node with an assign.
14630
14631 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14632
14633         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
14634         constant phi nodes with one argument are is_gimple_min_invariant
14635         and SSA_NAME_IS_DEFAULT_DEF.
14636
14637 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14638
14639         * graphite-cloog-util.c (oppose_constraint):
14640         Extend loop counter's value range (CLOOG_ORG).
14641         (cloog_matrix_to_ppl_constraint): Same.
14642         (new_Constraint_System_from_Cloog_matrix): Same.
14643         * graphite-cloog-compat.h (matrix_num_type): New.
14644
14645 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14646
14647         * graphite.c (graphite_initialize): Do not initialize
14648         CLooG and initialize the Parma Polyhedra Library
14649         manually when using CLOOG_ORG.
14650         (graphite_finalize): Do not finalize CLooG and finalize
14651         the Parma Polyhedra Library manually when using CLOOG_ORG.
14652         * graphite-cloog-compat.h (cloog_initialize): Hide function
14653         when using CLOOG_ORG.
14654         (cloog_finalize): Same.
14655
14656 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14657
14658         * graphite-clast-to-gimple.c (free_scattering): Change
14659         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
14660         (CLOOG_ORG).
14661         (build_cloog_prog): Same.
14662         * graphite-cloog-compat.h (cloog_domain): Removed.
14663         (cloog_scattering): New.
14664         (cloog_set_domain): Removed.
14665         (cloog_set_scattering): New.
14666         (cloog_next_domain): Removed.
14667         (cloog_next_scattering): New.
14668         (cloog_set_next_domain): Removed.
14669         (cloog_set_next_scattering): New.
14670         (CloogScatteringList): New.
14671         (CloogScattering): New.
14672         (cloog_scattering_free): New.
14673         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
14674         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
14675         New.
14676
14677 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14678
14679         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
14680         CloogState.
14681         (set_cloog_options): Same.
14682         (print_clast_stmt): Same.
14683         (scop_to_clast): Same.
14684         (print_generated_program): Same.
14685         (gloog): Same.
14686         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
14687         (scop_to_clast): Extend with CloogState.
14688         * graphite-cloog-util.c: Include graphite-cloog-compat.h
14689         (new_Cloog_Domain_from_ppl_Polyhedron):
14690         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
14691         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
14692         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
14693         * graphite-cloog-util.h (build_cloog_prog): Same.
14694         * graphite-cloog-copat.h (build_cloog_prog): New.
14695         (CloogState): New.
14696         (cloog_state_malloc): New.
14697         (cloog_state_free): New.
14698         (cloog_loop_malloc): New.
14699         (cloog_options_malloc): New.
14700         (cloog_statement_alloc): New.
14701         (cloog_domain_from_cloog_matrix): New.
14702         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
14703         (new_Cloog_Domain_from_ppl_Polyhedron): New.
14704
14705 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14706
14707         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
14708         type of NAME now depends on used CLooG version.
14709         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
14710         (gcc_type_for_clast_expr): Same.
14711         (print_clast_stmt): Replace pprint with clast_pprint.
14712         * graphite-cloog-compat.h: Provide compatibility macros for
14713         CLooG Legacy.
14714         (clast_name_p): New.
14715         (clast_expr_term): New.
14716         (clast_expr_red): New.
14717         (clast_expr_bin): New.
14718         (clast_pprint): New.
14719
14720 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14721
14722         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
14723         compatible to newer CLooG releases (CLOOG_ORG).
14724         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
14725         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
14726         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
14727         (build_cloog_prog) : New.
14728         (cloog_program_extract_scalars): New.
14729         (cloog_program_scatter): New.
14730
14731 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14732
14733         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
14734         conditionally (CLOOG_ORG).
14735         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
14736         (cloog_statement_usr): New.
14737         (cloog_domain): Same.
14738         (cloog_set_domain): Same.
14739         (cloog_next_domain): Same.
14740         (cloog_set_next_domain): Same.
14741         (cloog_program_nb_scattdims): Same.
14742         (cloog_program_set_nb_scattdims): Same.
14743         (cloog_program_names): Same.
14744         (cloog_program_set_names): Same.
14745         (cloog_program_set_context): Same.
14746         (cloog_program_set_loop): Same.
14747         (cloog_program_blocklist): Same.
14748         (cloog_program_set_blocklist): Same.
14749         (cloog_program_scaldims): Same.
14750         (cloog_program_set_scaldims): Same.
14751         (cloog_names_nb_parameters): Same.
14752         (cloog_names_set_nb_parameters): Same.
14753         (cloog_names_parameters): Same.
14754         (cloog_names_set_parameters): Same.
14755         (cloog_names_set_nb_iterators): Same.
14756         (cloog_names_set_iterators): Same.
14757         (cloog_names_set_nb_scattering): Same.
14758         (cloog_names_set_scattering): Same.
14759         (cloog_statement_set_usr): Same.
14760         (cloog_loop_set_next): Same.
14761         (cloog_loop_set_domain): Same.
14762         (cloog_loop_set_block): Same.
14763         (cloog_block_list_next): Same.
14764         (cloog_block_list_set_next):
14765         (cloog_block_list_set_block): Same.
14766
14767 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14768
14769         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
14770         a bool.
14771         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
14772         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
14773         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
14774         when something has been changed.
14775         (rewrite_commutative_reductions_out_of_ssa): Same.
14776
14777 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14778
14779         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
14780         handle the case when def is in the sese region.
14781         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
14782         for invariant expressions.
14783         (rewrite_cross_bb_phi_deps): Removed.
14784         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
14785         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
14786         rewrite_cross_bb_phi_deps.
14787
14788 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14789
14790         * graphite-sese-to-poly.c
14791         (rewrite_commutative_reductions_out_of_ssa_loop): Call
14792         scev_analyzable_p only on is_gimple_reg
14793
14794 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14795
14796         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
14797         (rewrite_close_phi_out_of_ssa): Propagate constant values or
14798         parametric expressions outside the scop region.
14799         (rewrite_cross_bb_scalar_deps): Same.
14800         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
14801
14802 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14803
14804         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
14805         SSA_NAME_DEF_STMT only on SSA_NAMEs.
14806
14807 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14808
14809         * tree-scalar-evolution.c (instantiate_scev_name): Do not
14810         instantiate default definitions.
14811
14812 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
14813             Sebastian Pop  <sebastian.pop@amd.com>
14814
14815         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
14816         (loop_exits_from_bb_p): New.
14817         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
14818         (loop_exits_from_bb_p): Declared.
14819         * graphite-scop-detection.c (scopdet_basic_block_info): Call
14820         loop_exits_to_bb_p.
14821
14822 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14823
14824         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
14825         extra parameter for the region.  Call scev_analyzable_p.
14826         (rewrite_reductions_out_of_ssa): Update call to
14827         rewrite_close_phi_out_of_ssa.
14828         (rewrite_cross_bb_phi_deps): Same.
14829         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
14830         parameter for the region.  Call scev_analyzable_p.
14831         (rewrite_commutative_reductions_out_of_ssa): Update call to
14832         rewrite_commutative_reductions_out_of_ssa_loop.
14833
14834 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14835
14836         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
14837
14838 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14839
14840         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
14841         SSA scalar phi nodes that can be scev_analyzable_p.
14842
14843 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14844
14845         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
14846         handle SSA_NAME_IS_DEFAULT_DEF.
14847
14848 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14849
14850         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
14851
14852 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14853
14854         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
14855         case non close-phi nodes with one argument.
14856
14857 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14858
14859         * sese.h (scev_analyzable_p): Scevs could be expressions without
14860         chrecs and still be scev_analyzable_p.
14861
14862 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14863
14864         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
14865
14866 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14867
14868         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
14869         * cfgloop.h (struct loop): Remove single_iv field.
14870         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
14871         (scop_canonicalize_loops): Removed.
14872         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
14873         over all the loop phi nodes in loop->header.
14874         (build_poly_scop): Remove use of scop_canonicalize_loops.
14875
14876 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14877
14878         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
14879         handle GIMPLE_CALL.
14880
14881 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14882
14883         * tree-chrec.c (chrec_apply): Should only apply to the specified
14884         variable.  Also handle multivariate chains of recurrences that
14885         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
14886
14887 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14888
14889         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
14890         (debug_clast_name_indexes_1): Removed.
14891         (debug_clast_name_indexes): Removed.
14892         (pbb_to_depth_to_oldiv): Removed.
14893         (build_iv_mapping): Replace the use of rename_map with iv_map.
14894         (translate_clast_user): Remove uses of rename_map.  Allocate and
14895         free iv_map.
14896         (translate_clast_for_loop): Remove uses of rename_map.
14897         (translate_clast_for): Same.
14898         (translate_clast_guard): Same.
14899         (translate_clast): Same.
14900         (gloog): Same.
14901         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
14902         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
14903         * sese.c (set_rename): Now static.
14904         (rename_variables_in_stmt): Removed.
14905         (rename_uses): New.
14906         (is_parameter): Removed.
14907         (is_iv): Removed.
14908         (expand_scalar_variables_call): Removed.
14909         (expand_scalar_variables_ssa_name): Removed.
14910         (expand_scalar_variables_expr): Removed.
14911         (expand_scalar_variables_stmt): Removed.
14912         (expand_scalar_variables): Removed.
14913         (rename_variables): Removed.
14914         (remove_condition): Removed.
14915         (get_true_edge_from_guard_bb): Removed.
14916         (get_false_edge_from_guard_bb): Removed.
14917         (struct igp): Removed.
14918         (default_before_guard): Removed.
14919         (convert_for_phi_arg): Removed.
14920         (add_guard_exit_phis): Removed.
14921         (insert_guard_phis): Removed.
14922         (graphite_copy_stmts_from_block): Now also uses iv_map and a
14923         region.  Do not copy conditions.  Do not copy induction variables.
14924         Call rename_uses.
14925         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
14926         the translated statement.  Use the iv_map for the induction
14927         variable renaming.
14928         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
14929         (set_rename): Removed declaration.
14930         (scev_analyzable_p): ...here.
14931         * tree-chrec.c (chrec_apply_map): New.
14932         * tree-chrec.h (chrec_apply_map): Declared.
14933
14934 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14935
14936         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
14937         insert_loop_close_phis.
14938         * sese.c (name_defined_in_loop_p): Removed.
14939         (expr_defined_in_loop_p): Removed.
14940         (alive_after_loop): Removed.
14941         (close_phi_not_yet_inserted_p): Removed.
14942         (struct alep): Removed.
14943         (add_loop_exit_phis): Removed.
14944         (insert_loop_close_phis): Removed.
14945
14946 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14947
14948         * graphite-cloog-util.c
14949         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
14950         * graphite-poly.c
14951         (psct_scattering_dim_for_loop_depth): Same.
14952
14953 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14954
14955         * graphite-cloog-util.h: Added cloog.h.
14956         * graphite-blocking.c: Removed cloog.h.
14957         * graphite-dependences.c: Same.
14958         * graphite-interchange.c: Same.
14959         * graphite-poly.c: Same.
14960         * graphite-ppl.c: Same.
14961         * graphite-scop-detection.c: Same.
14962         * graphite-sese-to-poly.c:
14963         Removed cloog.h.
14964         Removed graphite-clast-to-gimple.h.
14965         (check_poly_representation): Removed (unused).
14966         * graphite-sese-to-poly.h
14967         (check_poly_representation): Removed (unused).
14968
14969 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14970
14971         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
14972         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
14973         (graphite-cloog-util.o): New.
14974         (graphite-ppl.o): Added graphite-cloog-util.h.
14975         * graphite-clast-to-gimple.c:
14976         Added graphite-cloog-util.h to include statements.
14977         * graphite-cloog-util.c: New.
14978         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
14979         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
14980         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14981         (new_C_Polyhedron_from_Cloog_Matrix): Same.
14982         (insert_constraint_into_matrix): Same.
14983         (ppl_Constrain_System_number_of_constraints): Same.
14984         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
14985         (oppose_constraint): Same.
14986         (cloog_matrix_to_ppl_constraint): Same.
14987         (new_Constraint_System_from_Cloog_Matrix): Same.
14988         * graphite-cloog-util.h: New.
14989         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
14990         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
14991         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14992         (new_C_Polyhedron_from_Cloog_Matrix): Same.
14993         (insert_constraint_into_matrix): Same.
14994         * graphite-ppl.c:
14995         Added graphite-cloog-util.h to include statements.
14996         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
14997         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
14998         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14999         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15000         (insert_constraint_into_matrix): Same.
15001         (ppl_Constrain_System_number_of_constraints): Same.
15002         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
15003         (oppose_constraint): Same.
15004         (cloog_matrix_to_ppl_constraint): Same.
15005         (new_Constraint_System_from_Cloog_Matrix): Same.
15006         * graphite-ppl.h:
15007         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
15008         graphite-cloog-util.h.
15009         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15010         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15011         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15012         (insert_constraint_into_matrix): Same.
15013
15014 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15015
15016         * graphite-clast-to-gimple.c
15017         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
15018         (precision_for_interval): Same.
15019         (gcc_type_for_interval): Same.
15020         (compute_type_for_level): Same.
15021         * graphite-interchange.c
15022         (lst_interchange_profitable_p): Same.
15023         * graphite-poly.c
15024         (psct_scattering_dim_for_loop_depth): Same.
15025         * graphite-ppl.c
15026         (ppl_max_for_le_pointset): Same.
15027         (ppl_min_for_le_pointset): Same.
15028
15029 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15030
15031         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
15032         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
15033
15034 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15035
15036         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
15037         rewrite_close_phi_out_of_ssa.
15038
15039 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15040
15041         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
15042
15043 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15044
15045         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
15046         rename_map.
15047         * sese.c (debug_rename_map): Same.
15048         (get_rename): Same.
15049         (set_rename): Same.
15050         (rename_variables_in_stmt): Same.
15051         (expand_scalar_variables_call): Same.
15052         (expand_scalar_variables_ssa_name): Same.
15053         (expand_scalar_variables_expr): Same.
15054         (expand_scalar_variables_stmt): Same.
15055         (expand_scalar_variables): Same.
15056         (rename_variables): Same.
15057         (graphite_copy_stmts_from_block): Same.
15058         (copy_bb_and_scalar_dependences): Same.
15059
15060 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15061
15062         * graphite-clast-to-gimple.c (copy_renames): Removed.
15063         (translate_clast_for): Do not call copy_renames.
15064         (translate_clast_guard): Same.
15065
15066 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15067
15068         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
15069         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
15070         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
15071         before rewrite_cross_bb_scalar_deps.
15072
15073 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15074
15075         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
15076         Early return in when flag_associative_math is not set.
15077
15078 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15079
15080         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
15081         of SSA copies on edges except for loop->latch.
15082
15083 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15084
15085         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
15086         Split out of rewrite_reductions_out_of_ssa.
15087         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
15088         Declared.
15089         * graphite.c (graphite_transform_loops): Call it.
15090
15091 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15092
15093         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
15094
15095 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
15096
15097         * dbgcnt.def (graphite_scop): New counter.
15098         * graphite.c: Include dbgcnt.h.
15099         (graphite_transform_loops): Use new counter to limit transformations.
15100         * Makefile.in (graphite.o): Depend on DBGCNT_H.
15101
15102 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15103
15104         * passes.c (init_optimization_passes): Add pass_graphite.
15105         Schedule a pass_copy_prop before pass_graphite_transforms.
15106         * timevar.def (TV_GRAPHITE): Declared.
15107         * tree-pass.h (pass_graphite): Declared.
15108         * tree-ssa-loop.c (pass_graphite): New.
15109
15110 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15111
15112         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
15113         Remove calls to rename_nb_iterations and rename_sese_parameters.
15114         * graphite-clast-to-gimple.h (gloog): Update declaration.
15115         * graphite.c (graphite_transform_loops): Update call to gloog.
15116         * sese.c (rename_variables_in_expr): Removed.
15117         (rename_nb_iterations): Removed.
15118         (rename_sese_parameters): Removed.
15119         * sese.h (rename_nb_iterations): Removed.
15120         (rename_sese_parameters): Removed.
15121
15122 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15123
15124         * graphite-clast-to-gimple.c (gloog): Remove call to
15125         sese_adjust_liveout_phis.
15126         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
15127         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
15128         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
15129         rewrite_phi_out_of_ssa.
15130         * sese.c (get_vdef_before_sese): Removed.
15131         (sese_adjust_vphi): Removed.
15132         (sese_adjust_liveout_phis): Removed.
15133         * sese.h (sese_adjust_liveout_phis): Removed.
15134
15135 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15136
15137         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
15138         argument for the place after which to insert the out of SSA copy.
15139         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
15140         (rewrite_phi_out_of_ssa): Same.
15141         (rewrite_cross_bb_scalar_deps): Same.
15142         (insert_copyout): Removed.
15143         (insert_copyin): Removed.
15144         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
15145         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
15146         insert_copyin.
15147
15148 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15149
15150         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
15151         (rewrite_reductions_out_of_ssa): Same.
15152         (rewrite_commutative_reductions_out_of_ssa): Same.
15153         (build_poly_scop): Do not call these functions.
15154         * graphite-sese-to-poly.h (build_poly_scop): Declared.
15155         (rewrite_reductions_out_of_ssa): Declared.
15156         (rewrite_commutative_reductions_out_of_ssa): Declared.
15157         * graphite.c (graphite_transform_loops): Call on every scop
15158         rewrite_commutative_reductions_out_of_ssa before calling
15159         rewrite_reductions_out_of_ssa and build_scop_bbs.
15160
15161 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15162
15163         * graphite-dependences.c (dot_deps): Make system call to dotty run
15164         in background.
15165         (dot_deps_stmt): Same.
15166         * graphite-poly.c (dot_lst): Same.
15167
15168 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15169
15170         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
15171         phi_arg_in_outermost_loop.
15172         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
15173         (remove_invariant_phi): Same.
15174
15175 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
15176
15177         * target.def (output_addr_const_extra): New hook.
15178         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
15179         * doc/tm.texi: Regenerate.
15180         * targhooks.c (default_asm_output_addr_const_extra): New function.
15181         * targhooks.h (default_asm_output_addr_const_extra): Declare.
15182         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
15183         target hook.
15184
15185         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15186         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
15187         * config/i386/i386.h (output_addr_const_extra): Rename to...
15188         (i386_asm_output_addr_const_extra): ...this. Make static.
15189         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15190
15191 2010-08-11  Richard Henderson  <rth@redhat.com>
15192
15193         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
15194
15195 2010-08-11  Nick Clifton  <nickc@redhat.com>
15196
15197         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
15198         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
15199         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
15200         stormy16-lib2-cmpsi.c.
15201
15202         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
15203         -O2.
15204
15205 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
15206
15207         * opts.h (struct cl_option_handler_func): Make handler take
15208         cl_decoded_option structure as parameter, not individual elements.
15209         (struct cl_option_handlers): Make callbacks take cl_decoded_option
15210         structure as parameter, not individual elements.
15211         (handle_option): Take cl_decoded_option structure as parameter,
15212         not individual elements.
15213         (handle_generated_option): Declare.
15214         * opts-common.c (handle_option): Take cl_decoded_option structure
15215         as parameter, not individual elements.  Update calls to callback
15216         and handler functions.
15217         (handle_generated_option): New.
15218         (read_cmdline_option): Update calls to callback functions and
15219         handle_option.
15220         * opts.c (common_handle_option, complain_wrong_lang,
15221         unknown_option_callback, post_handling_callback,
15222         lang_handle_option, target_handle_option): Take cl_decoded_option
15223         structure as parameter, not individual elements.
15224         (lang_handle_option, target_handle_option, common_handle_option):
15225         Assert option has at most one argument.
15226         (enable_warning_as_error): Call handle_generated_option instead of
15227         handle_option.  Do not pass -Werror argument as argument of
15228         generated option.
15229
15230 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15231
15232         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
15233         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
15234         (SUBWORD_BOOL_CAS): Likewise.
15235         (SUBWORD_SYNC_OP): Likewise.
15236         (SUBWORD_TEST_AND_SET): Likewise.
15237         (FETCH_AND_OP_WORD): Parenthesise INF_OP
15238         (SUBWORD_SYNC_OP): Likewise.
15239         (OP_AND_FETCH_WORD): Likewise.
15240
15241 2010-08-10  Xinliang David Li  <davidxl@google.com>
15242
15243         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
15244         compute max/min offset in address.
15245
15246 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
15247
15248         * ira-live.c: Include sbitmap.h.
15249         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
15250         Compress live ranges even more.
15251
15252 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15253
15254         * coverage.c (ctr_labels): Delete.
15255
15256 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
15257
15258         PR bootstrap/45177
15259         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
15260         test here from arm_gen_load_multiple_1.
15261         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
15262         multiple_operation_profitable_p.
15263
15264 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15265
15266         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
15267         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
15268
15269 2010-08-10  Richard Henderson  <rth@redhat.com>
15270
15271         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
15272         after saving registers.  Assert that SSE registers are only saved
15273         with a sufficiently aligned frame.
15274         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
15275         remove stack_realign_fp handling.
15276         (ix86_expand_prologue): Save int registers before stack_realign_fp,
15277         and do not mark the stack alignment as frame related.
15278         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
15279
15280         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
15281         saves when re-aligning the stack.
15282
15283 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15284
15285         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
15286         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
15287         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
15288
15289 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15290
15291         * dwarf2out.c (struct die_struct): Move die_tag to the end.
15292
15293 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
15294
15295         * config/arm/iterators.md: New file.
15296         * config/arm/arm.md: Include iterators.md.
15297         (QHSI): Move to new file.
15298         (LTUGEU, cnb, optab, ior_xor): Likewise.
15299         * config/arm/iwmmxt.md (VMMX): Move to new file.
15300         (VSHFT, MMX_char): Likewise.
15301         * config/arm/neon.md (VD): Move to new file.
15302         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
15303         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
15304         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
15305         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
15306         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
15307         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
15308         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
15309         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
15310         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
15311         (Is_d_reg, V_mode_nunits): Likewise.
15312         * config/arm/vec-common.md (VALL): Move to new file.
15313         (VALLW, VINT, VINTW): Likewise.
15314
15315 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
15316
15317         PR middle-end/45182
15318         * combine.c (make_compound_operation): Don't try to convert
15319         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
15320
15321 2010-08-10  Richard Guenther  <rguenther@suse.de>
15322
15323         * tree.h (get_object_alignment): Adjust prototype.
15324         * builtins.c (get_object_alignment): Return unsigned int,
15325         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
15326         and TARGET_MEM_REF properly.
15327         (get_pointer_alignment): Adjust.
15328         * emit-rtl.c (get_mem_align_offset): Adjust comment.
15329         (set_mem_attributes_minus_bitpos): Adjust.
15330         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
15331
15332 2010-08-10  Richard Guenther  <rguenther@suse.de>
15333
15334         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
15335         (copy_prop_visit_assignment): Simplify.
15336         (copy_prop_visit_stmt): Also visit assignments from
15337         constants.
15338         (copy_prop_visit_phi_node): Use operand_equal_p.
15339
15340 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15341
15342         * ipa-split.c (find_split_points): Free stack.
15343
15344 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15345
15346         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
15347         * tree.c (tree_node_kind): Delete corresponding entries.
15348
15349 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
15350
15351         * alias.c (may_alias_p): Remove unused ret.
15352
15353 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
15354
15355         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
15356         alias_sets_conflict_p.
15357         (walk_mems_1): Moved from alias.c.
15358         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
15359         in alias.c.
15360         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
15361         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
15362         * alias.c (walk_mems_2): Moved to ddg.c.
15363         (walk_mems_1): Ditto.
15364         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
15365         to ddg.c.
15366         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
15367         disambiguation.
15368         *(may_alias_p): New function to check whether two memory expression
15369         may alias or not. Currently used in buidling inter-iteration memory
15370         dependence.
15371         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
15372         (insn_alias_sets_conflict_p): Removed
15373         *rtl.h (may_alias_p): New function prototype.
15374
15375 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15376
15377         * tree.c (nreverse): Assert that we don't have a BLOCK.
15378
15379 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15380
15381         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
15382         * config/arm/arm.c (arm_get_pcs_model): Likewise.
15383         * config/avr/avr.c (init_cumulative_args): Likewise.
15384         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
15385         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
15386         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
15387         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
15388         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
15389         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
15390         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
15391         * dwarf2out.c (gen_subprogram_die): Likewise.
15392         * function.c (allocate_struct_function): Likewise.
15393         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
15394         (deserves_ellipsis): Delete.
15395
15396 2010-08-09  Richard Guenther  <rguenther@suse.de>
15397
15398         * tree-ssa-copy.c (cached_last_copy_of): Remove.
15399         (valueize_val): New function.
15400         (get_last_copy_of): Remove.
15401         (set_copy_of_val): Simplify.
15402         (dump_copy_of): Likewise.
15403         (copy_prop_visit_cond_stmt): Use valueize_val.
15404         (copy_prop_visit_phi_node): Properly handle unvisited names.
15405         Drop code managing copy-of chains.
15406         (init_copy_prop): Adjust.
15407         (fini_copy_prop): Likewise.
15408         (execute_copy_prop): Remove obsolete comment.
15409
15410 2010-08-09  Richard Guenther  <rguenther@suse.de>
15411
15412         PR middle-end/44632
15413         * function.c (gimplify_parameters): Do not clear addressable
15414         bit of the original parameter.
15415
15416 2010-08-09  Richard Guenther  <rguenther@suse.de>
15417
15418         PR middle-end/45212
15419         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
15420         alignment from MEM_REF offset only if we took it from the
15421         base object.
15422
15423 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
15424
15425         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
15426
15427 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
15428
15429         * c-tree.h (build_arg_info): Declare.
15430         * c-decl.c (build_arg_info): Define.
15431         (get_parm_info): Call it.  Delete initialization code.
15432         * c-parser.c (c_parser_parms_declarator): Likewise.
15433         (c_parser_parms_list_declaractor): Likewise.
15434
15435 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
15436
15437         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
15438         (struct c_arg_info): Change type of tags field.
15439         * c-decl.c (grokdeclarator): Update for changed type of tags field.
15440         (get_parm_info): Likewise.
15441         (store_parm_decls_newstyle): Likewise.
15442
15443 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
15444
15445         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
15446         (branch_island_list): Delete.
15447         (branch_islands): Declare.
15448         (add_compiler_branch_island): Adjust for branch_islands instead of
15449         branch_island_list.
15450         (macho_branch_islands): Likewise.
15451         (no_previous_def): Likewise.
15452         (get_prev_label): Likewise.
15453
15454 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15455
15456         PR boehm-gc/34544
15457         * gthr-posix.h (__gthread_start): Delete.
15458         (__gthread_active_init): Use pthread_default_stacksize_np instead of
15459         pthread_create to determine if hpux pthreads are active.
15460         * gthr-posix95.h (__gthread_start): Delete.
15461         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
15462
15463 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
15464
15465         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
15466         _WIN64 not expanded.
15467
15468 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
15469             H.J. Lu  <hongjiu.lu@intel.com>
15470
15471         PR target/45213
15472         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
15473         to output 32bit SFmode immediate as 8 byte sign extended value.
15474
15475 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
15476
15477         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
15478         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
15479         (SUBWORD_BOOL_CAS): Likewise.
15480         (SUBWORD_SYNC_OP): Likewise.
15481         (SUBWORD_TEST_AND_SET): Likewise.
15482         (FETCH_AND_OP_WORD): Parenthesise INF_OP
15483         (SUBWORD_SYNC_OP): Likewise.
15484         (OP_AND_FETCH_WORD): Likewise.
15485
15486 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15487
15488         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
15489         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
15490         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
15491         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
15492         generic part.
15493         (cortex_a9_sched_adjust_cost): New function.
15494         (xscale_sched_adjust_cost): New function.
15495         * config/arm/arm-protos.h (struct tune_params): New field
15496         sched_adjust_cost.
15497         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
15498
15499 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
15500
15501         PR target/44942
15502         * config/sparc/sparc.c (function_arg_advance): Always take into account
15503         the padding, if any.
15504
15505 2010-08-06  Richard Guenther  <rguenther@suse.de>
15506
15507         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
15508         (dump_lattice_value): Dump it.
15509         (get_default_value): Adjust.
15510         (get_constant_value): Likewise.
15511         (set_value_varying): Likewise.
15512         (set_lattice_value): Make sure to not go up the lattice
15513         with bitwise constant values.
15514         (get_value_for_expr): Handle ADDR_EXPRs.
15515         (value_to_double_int): New function.
15516         (get_value_from_alignment): Likewise.
15517         (do_dbg_cnt): Adjust.
15518         (ccp_lattice_meet): Handle partially constant values.
15519         (bit_value_unop_1): New function.
15520         (bit_value_binop_1): Likewise.
15521         (bit_value_unop): Likewise.
15522         (bit_value_binop): Likewise.
15523         (evaluate_stmt): Track partially constant values if
15524         flag_tree_bit_ccp is set.
15525         (ccp_fold_stmt): Dump if we folded a predicate.
15526         (ccp_visit_stmt): Adjust.
15527         * common.opt (ftree-bit-ccp): New flag.
15528         * doc/invoke.texi (ftree-bit-ccp): Document.
15529         * opts.c (decode_options): Enable bit-CCP at -O1.
15530
15531 2010-08-06  Alan Modra  <amodra@gmail.com>
15532
15533         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
15534         and -mrelocatable-lib description.
15535
15536 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
15537
15538         From Martin Thuresson  <martint@google.com>
15539         * postreload.c (reload_cse_simplify_operands): Use
15540         SET_REGNO_RAW instead of SET_REGNO.
15541         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
15542         SET_REGNO.
15543         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
15544         instead of SET_REGNO.
15545         * rtl.h (SET_REGNO_RAW): New macro.
15546
15547 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
15548
15549         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
15550         computations.  Fix formatting issues.
15551         (num_sign_bit_copies1): Likewise.
15552         (canonicalize_condition): Likewise.
15553
15554 2010-08-05  Richard Henderson  <rth@redhat.com>
15555
15556         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
15557         (floor_log2): Use clz_hwi.
15558         (exact_log2): Use ctz_hwi.
15559         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
15560         * builtins.c (fold_builtin_bitop): Use them.
15561         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
15562         * combine.c (get_pos_from_mask): Use ctz_hwi.
15563         * double-int.c (double_int_ctz): Likewise.
15564         * explow.c (force_reg): Likewise.
15565         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
15566
15567 2010-08-05  Richard Henderson  <rth@redhat.com>
15568
15569         PR target/45189
15570         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
15571         the alignment constant is properly sign-extended.
15572
15573 2010-08-05  Richard Guenther  <rguenther@suse.de>
15574
15575         * expr.c (store_expr): Use emit_block_move only if both
15576         source and target are MEMs.  Use store_bit_field if only
15577         the target is a MEM.
15578
15579 2010-08-05  Richard Henderson  <rth@redhat.com>
15580
15581         PR debug/45188
15582         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
15583         (INCOMING_RETURN_ADDR_RTX): Likewise.
15584         (dwarf2out_do_frame): Remove conditional compilation.
15585         (dwarf2out_frame_init): Likewise.
15586
15587 2010-08-05  Nicolas Setton  <setton@adacore.com>
15588
15589         * gcov.c (flag_display_progress): New static variable.
15590         (main): Display progress info on standard output if requested.
15591         (options): Add -d/--display-progress.
15592         (print_usage): Print them.
15593         (process_args): Handle them.
15594         * doc/gcov.texi: Document them.
15595
15596 2010-08-05  Martin Jambor  <mjambor@suse.cz>
15597
15598         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
15599         (ipcp_insert_stage): Redirect only edges not flagged with
15600         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
15601         discovered constants.
15602
15603 2010-08-05  Martin Jambor  <mjambor@suse.cz>
15604
15605         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
15606         (struct ipa_param_descriptor): New fields types and
15607         cannot_devirtualize.
15608         (ipa_param_cannot_devirtualize_p): New function.
15609         (ipa_param_types_vec_empty): Likewise.
15610         (ipa_make_edge_direct_to_target): Declare.
15611         * ipa-cp.c: Fixed first stage driver name in initial comment,
15612         described devirtualization there too.
15613         (ipcp_analyze_node): Call ipa_analyze_params_uses.
15614         (ipcp_print_all_lattices): Print devirtualization info.
15615         (ipa_set_param_cannot_devirtualize): New function.
15616         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
15617         lattice to BOTTOM.
15618         (ipcp_init_stage): Merged into...
15619         (ipcp_generate_summary): ...its caller.
15620         (ipcp_change_tops_to_bottom): Also process type lists.
15621         (ipcp_add_param_type): New function.
15622         (ipcp_copy_types): Likewise.
15623         (ipcp_propagate_types): Likewise.
15624         (ipcp_propagate_stage): Also propagate types.
15625         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
15626         Also return true if propagated types require it.
15627         (ipcp_update_callgraph): Dump redirection info.
15628         (ipcp_process_devirtualization_opportunities): New function.
15629         (ipcp_const_param_count): Include known type information.
15630         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
15631         on new node.  Fixed formatting.
15632         * ipa-prop.c (make_edge_direct_to_target): Renamed to
15633         ipa_make_edge_direct_to_target and changed all callers.  Made
15634         externally visible.
15635         (ipa_node_duplication_hook): Duplicate types vector.
15636         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
15637         redirect outgoing calls for which we can't get a decl from the
15638         statement.  Check that we can get a decl from the call statement.
15639         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
15640         ipa_analyze_params_uses only when ipa-cp is disabled.
15641         * tree-inline.c (get_indirect_callee_fndecl): Removed.
15642         (expand_call_inline): Do not call get_indirect_callee_fndecl.
15643         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
15644         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
15645
15646 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
15647
15648         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
15649         temporary. Emit move from temporary to accum, so REG_EQUAL note will
15650         be attached to this insn in correct mode.
15651
15652 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
15653
15654         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
15655         using REGNO of base_reg directly.
15656
15657 2010-08-05  Jie Zhang  <jie@codesourcery.com>
15658
15659         PR tree-optimization/45144
15660         * tree-sra.c (type_consists_of_records_p): Return false
15661         if the record contains bit-field.
15662
15663 2010-08-04  Richard Henderson  <rth@redhat.com>
15664
15665         * config/i386/i386.c (struct ix86_frame): Remove padding and
15666         to_allocate members.
15667         (ix86_compute_frame_layout): Don't store them.
15668         (ix86_can_use_return_insn_p): Use a more direct and more obviously
15669         correct condition for the position of the stack pointer.
15670         (ix86_expand_prologue): Compute remaining stack allocation based
15671         on the ultimate stack pointer offset.
15672         (ix86_expand_epilogue): Use more obvious expressions testing for
15673         the stack pointer already pointing to the saved registers.
15674
15675         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
15676         duplication deconstructing the frame pointer.  Simplify
15677         deallocation of the local stack frame.
15678
15679         * reg-notes.def (CFA_EXPRESSION): New.
15680         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
15681         (dwarf2out_frame_debug_cfa_expression): New.
15682         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
15683
15684         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
15685         * config/i386/i386.c (ix86_expand_prologue): Set it.
15686         (ix86_expand_epilogue): Clear it.
15687         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
15688         context, add REG_CFA_EXPRESSION notes.
15689
15690         * config/i386/i386.h (struct machine_frame_state): Rename from
15691         machine_cfa_state.  Add members tracking SP and FP regardless
15692         of the current CFA register.
15693         (ix86_cfa_state): Remove.
15694         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
15695         and sse_reg_save_offset members.
15696         (ix86_compute_frame_layout): Set them.
15697         (gen_push): Increment sp_offset too.
15698         (choose_baseaddr_len, choose_baseaddr): New.
15699         (ix86_emit_save_reg_using_mov): New.
15700         (ix86_emit_save_regs_using_mov): Use it.
15701         (ix86_emit_save_sse_regs_using_mov): Likewise.
15702         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
15703         compare vs the saved red_zone_offset.
15704         (pro_epilogue_adjust_stack): Adjust sp_offset.
15705         (ix86_adjust_stack_and_probe): Likewise.
15706         (ix86_expand_prologue): Set up, use, and validate the new
15707         frame_state_info members.  Use gen_frame_mem.
15708         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
15709         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
15710         new frame_state_info members.
15711         (ix86_emit_leave): Likewise.
15712         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
15713         out-of-range stack pointer offsets here.
15714         (ix86_emit_restore_sse_regs_using_mov): Likewise.
15715         (ix86_expand_epilogue): Use and validate the new frame_state_info
15716         members.  Break up and simplify the logic selecting the
15717         restore_regs_via_mov code path.  Ensure that there will be no
15718         out-of-range stack pointer offsets.
15719
15720         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
15721
15722         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
15723         argument name to reflect the expected tree; fix indentation.
15724         (ix86_asm_output_function_label): Output the entire 32-bit
15725         ms_hook here as bytes ...
15726         (ix86_expand_prologue): ... not here as insns.  Attach the
15727         unwind info for the ms_hook to a blockage insn.
15728         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
15729         (ix86_ms_bitfield_layout_p): Fix indentation.
15730         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
15731
15732         * config/i386/i386.c (ix86_using_red_zone): New.
15733         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
15734         ix86_expand_prologue, ix86_force_to_memory): Use it.
15735
15736         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
15737         saving the int registers.
15738
15739         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
15740         and DWARF2_UNWIND_INFO conditional compilation.
15741
15742 2010-08-04  Richard Henderson  <rth@redhat.com>
15743
15744         PR debug/45171
15745         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
15746         an is_naming_typedef_decl.
15747
15748 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
15749
15750         PR rtl-optimization/45162
15751         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
15752         * dce.c (word_dce_process_block): Likewise.
15753
15754 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
15755
15756         PR target/44583
15757         * config/ia64/constraints.md (Z): New.
15758         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
15759         (xfreg_or_signed_fp01_operand): New.
15760         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
15761         with fr_reg_or_signed_fp01_operand and constraint G with Z.
15762         (subsf3): Ditto.
15763         (*maddsf4): Ditto.
15764         (*msubsf4): Ditto.
15765         (adddf3): Ditto.
15766         (adddf3_trunc): Ditto.
15767         (subdf3): Ditto.
15768         (*subdf3_trunc): Ditto.
15769         (*madddf4): Ditto.
15770         (*madddf4_trunc): Ditto.
15771         (*msubdf4): Ditto.
15772         (*msubdf4_trunc): Ditto.
15773         (addxf3): Replace xfreg_or_fp01_operand with
15774         xfreg_or_signed_fp01_operand and constraint G with Z.
15775         (*addxf3_truncsf): Ditto.
15776         (*addxf3_truncdf): Ditto.
15777         (subxf3): Ditto.
15778         (*subxf3_truncsf): Ditto.
15779         (*subxf3_truncdf): Ditto.
15780         (*maddxf4): Ditto.
15781         (*maddxf4_truncsf): Ditto.
15782         (*maddxf4_truncdf): Ditto.
15783         (*msubxf4): Ditto.
15784         (*msubxf4_truncsf): Ditto.
15785         (*msubxf4_truncdf): Ditto.
15786
15787 2010-08-04  Richard Guenther  <rguenther@suse.de>
15788
15789         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
15790         if either alias-set is zero.
15791
15792 2010-08-04  Richard Guenther  <rguenther@suse.de>
15793
15794         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
15795         * tree-ssa-ccp.c: ... here.
15796         * tree-ssa-copy.c: ... and here.
15797         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
15798         value_range_t): Move ...
15799         * tree-vrp.c: ... here.
15800         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
15801         (substitute_and_fold): Adjust prototype.
15802         * tree-ssa-propagate.c (replace_uses_in): Adjust.
15803         (replace_phi_args_in): Likewise.
15804         (substitute_and_fold): Take callback to query lattice instead
15805         of pointer to lattice.  Replace SSA name defs with lattice
15806         values first.
15807         * tree-ssa-ccp.c (ccp_finalize): Adjust.
15808         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
15809         (get_value): New function.
15810         (fini_copy_prop): Adjust.
15811         * tree-vrp.c (vrp_finalize): Adjust.
15812
15813 2010-08-04  Richard Guenther  <rguenther@suse.de>
15814
15815         PR middle-end/45176
15816         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
15817         points-to set for original MEM_REF.
15818
15819 2010-08-04  Richard Guenther  <rguenther@suse.de>
15820
15821         * tree-ssa-ccp.c (get_constant_value): New function.
15822         (get_rhs_assign_op_for_ccp): Remove.
15823         (valueize_op): New function.
15824         (ccp_fold): Use get_constant_value and valueize_op.
15825         (fold_const_aggregate_ref): Likewise.
15826         (ccp_fold_stmt): Likewise.
15827         (visit_assignment): Simplify.
15828
15829 2010-08-04  Richard Guenther  <rguenther@suse.de>
15830
15831         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
15832         * double-int.h (double_int_ctz): Declare.
15833         * double-int.c (double_int_ctz): New function.
15834
15835 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
15836
15837         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
15838         Define.
15839         picochip_expand_movmemhi : Expand movmem pattern.
15840         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
15841         Declare.
15842         * config/picochip/picochip.md (movmemhi) : New pattern.
15843
15844 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
15845
15846         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
15847
15848 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
15849
15850         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
15851         NEG as operand of a MULT by merging it with the other operand.
15852         * combine.c (make_compound_operation): Use trunc_int_for_mode when
15853         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
15854         MULT.
15855         * config/arm/constraints.md (M): Examine only 32 bits of a
15856         HOST_WIDE_INT.
15857         * config/arm/predicates.md (power_of_two_operand): Likewise.
15858
15859 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15860
15861         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
15862         non-NOTE insns.
15863
15864 2010-08-03  Jan Hubicka  <jh@suse.cz>
15865
15866         * ipa-split.c (struct split_point): Add split_part_set_retval.
15867         (find_retval): Forward declare.
15868         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
15869         (consider_split): Compute current->split_part_set_retval.
15870         (visit_bb): Do not look into return value.
15871         (split_function): Handle !split_part_set_retval
15872
15873 2010-08-03  Martin Jambor  <mjambor@suse.cz>
15874
15875         * tree-sra.c (completely_scalarize_record): New parameter REF, create
15876         its own access->expr intead of using build_ref_for_offset.
15877
15878 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
15879
15880         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
15881         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
15882         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
15883         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
15884         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
15885         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
15886         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
15887         DEFAULT_SWITCH_TAKES_ARG.
15888         * config/rx/rx.opt (-patch=): Remove option.
15889         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
15890         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
15891         * doc/invoke.texi (RX Options): Remove -patch=.
15892         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
15893         (option_map): Remove --profile-blocks, --quiet and --silent.
15894
15895 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
15896
15897         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
15898         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
15899         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
15900         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
15901         Update calls to ix86_expand_compare and ix86_expand_branch.
15902         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
15903         ix86_expand_compare.
15904         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
15905         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
15906         Make static.
15907         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
15908         and ix86_compare_op1.  Update calls to ix86_expand_compare.
15909         (ix86_expand_int_movcc): Ditto.
15910         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
15911         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
15912         (ix86_expand_setcc): Ditto.
15913         (ix86_expand_compare): Remove prototype.
15914         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
15915         ix86_compare_op0 and ix86_compare_op1.  Update calls
15916         to ix86_expand_branch to directly pass operands[1] and operands[2].
15917         (cbranchxf4): Ditto.
15918         (cbranch<MODEF:mode>4): Ditto.
15919         (cbranchcc4): Ditto.
15920         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
15921         Update calls to ix86_expand_setcc to directly pass operands[2] and
15922         operands[3].
15923         (cstorexf4): Ditto.
15924         (cstore<MODEF:mode>4): Ditto.
15925         (cstorecc4): Ditto.
15926
15927 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
15928
15929         PR target/45063
15930         * caller-save.c (save_call_clobbered_regs): Remove regs from
15931         hard_regs_saved when they are set.
15932
15933 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
15934
15935         PR target/41089
15936         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
15937         as volatile.
15938
15939 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
15940
15941         * common.opt (ftree-loop-distribute-patterns): New.
15942         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
15943         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
15944         at -O3.
15945         * tree-data-ref.c (stores_zero_from_loop): New.
15946         * tree-data-ref.h (stores_zero_from_loop): Declared.
15947         * tree-loop-distribution.c (tree_loop_distribution): Call
15948         stores_zero_from_loop.
15949         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
15950
15951 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
15952
15953         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
15954         into account.
15955
15956         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
15957         * config/arm/arm.c (thumb1_code): New variable.
15958         (arm_override_options): Set it.
15959         (thumb1_final_prescan_insn): Keep track of condition code status.
15960         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
15961         jumps that depend on them.
15962         * config/arm/arm.h (thumb1_code): Declare variable.
15963         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
15964         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
15965         thumb1_cc_mode.
15966         (CC_STATUS_INIT): New macro.
15967         * config/arm/constraints.md (Pd): New constraint.
15968         * config/arm/predicates.md (noov_comparison_operator): New predicate.
15969         * config/arm/arm.md (is_thumb1): New define_attr.
15970         (conds): Set default to "clob" when generating Thumb1 code.
15971         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
15972         code are set.  Use two-operand assembly syntax.
15973         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
15974         pattern.
15975         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
15976         codes are set.  Use two-operand assembly syntax.
15977         (zero_extendhisi splitter): Remove constraints.
15978         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
15979         thumb1_movsf_insn): Set conds attribute as appropriate.
15980         (cbranchsi4_insn): Use condition code status from struct
15981         machine_function to determine whether the comparison can be eliminated.
15982         Discourage the alternative using high registers.
15983         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
15984         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
15985         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
15986         subsi3_cbranch): Delete.
15987         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
15988         one subtract and one cbranch insn.
15989
15990         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
15991         thumb2_movdf_soft_insn): Delete patterns.
15992         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
15993         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
15994         (pool_range, neg_pool_range): Use them to define defaults.
15995         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
15996         and allow for TARGET_32BIT.
15997
15998         PR target/40457
15999         * config/arm/arm.h (arm_regs_in_sequence): Declare.
16000         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
16001         load_multiple_sequence, store_multiple_sequence): Delete
16002         declarations.
16003         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
16004         declarations.
16005         * config/arm/ldmstm.md: New file.
16006         * config/arm/arm.c (arm_regs_in_sequence): New array.
16007         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
16008         CHECK_REGS.  All callers changed.
16009         If SAVED_ORDER is nonnull, copy the computed order into it.
16010         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
16011         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
16012         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
16013         If SAVED_ORDER is nonnull, copy the computed order into it.
16014         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
16015         like REGS.  Handle Thumb mode.
16016         (arm_gen_load_multiple_1): New function, broken out of
16017         arm_gen_load_multiple.
16018         (arm_gen_store_multiple_1): New function, broken out of
16019         arm_gen_store_multiple.
16020         (arm_gen_multiple_op): New function, with code from
16021         arm_gen_load_multiple and arm_gen_store_multiple moved here.
16022         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
16023         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
16024         changed.
16025         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
16026         * config/arm/predicates.md (commutative_binary_operator): New.
16027         (load_multiple_operation, store_multiple_operation): Handle more
16028         variants of these patterns with different starting offsets.  Handle
16029         Thumb-1.
16030         * config/arm/arm.md: Include "ldmstm.md".
16031         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
16032         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
16033         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
16034         peepholes): Delete.
16035         * config/arm/ldmstm.md: New file.
16036         * config/arm/arm-ldmstm.ml: New file.
16037
16038         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
16039         if statement which adds extra costs to frame-related expressions.
16040
16041 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16042
16043         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
16044
16045 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
16046
16047         PR target/45142
16048         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
16049         alternative 2.
16050         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
16051         split V4SI operands.
16052
16053 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
16054
16055         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16056         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
16057         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
16058         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
16059
16060 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
16061
16062         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
16063         LOCAL_INCLUDE_DIR.
16064
16065 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
16066
16067         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
16068         used in the call to optab_for_tree_code.  Fix the second
16069         is_widening_mult_p call.  Check that both unwidened operands
16070         have the same sign.
16071
16072 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
16073
16074         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
16075
16076 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
16077
16078         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16079
16080 2010-07-30  DJ Delorie  <dj@redhat.com>
16081
16082         * config/rx/predicates.md (rx_constshift_operand): New.
16083         * config/rx/rx.md (zs_cond): New.
16084         (cbranchsi4): Remove mode.
16085         (*cbranchsi4_<code>): Likewise.
16086         (*tstbranchsi4_<code>): New.
16087         (*tstbranchsi4r_<code>): New.
16088         (*tstbranchsi4m_eq): New.
16089         (*tstbranchsi4m_ne): New.
16090         (cbranchsf4): Remove mode.
16091         (*cbranchsf4_<code>): Likewise.
16092
16093 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
16094
16095         * rtlanal.c (simplify_subreg_regno): Don't treat
16096         HARD_FRAME_POINTER_REGNUM specially.
16097
16098 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
16099
16100         * common.opt (-G): Don't define option here.
16101         * config/g.opt: New.
16102         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
16103         rs6000/powerpc and score targets.
16104         * opts.c (common_handle_option): Don't handle -G here.
16105         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
16106         * config/frv/frv.c (frv_handle_option): Handle -G.
16107         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
16108         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
16109         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
16110         * config/mips/mips.c (mips_handle_option): Handle -G.
16111         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
16112         * config/score/score.c (score_handle_option): Handle -G.
16113
16114 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
16115
16116         * config/mmix/mmix.c: Include basic-block.h.
16117
16118 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
16119
16120         PR debug/45055
16121         PR rtl-optimization/45137
16122         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
16123         prototypes.
16124         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
16125         New functions.
16126         * combine.c (next_nonnote_nondebug_insn): Removed.
16127         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
16128         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
16129         * sched-deps.c (sched_analyze_insn): Likewise.
16130         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
16131         * rtlanal.c (canonicalize_condition): Likewise.
16132         * postreload.c (reload_combine_recognize_pattern): Likewise.
16133         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
16134
16135 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
16136
16137         * config/i386/i386.md (int_cond): Remove code iterator.
16138         (fp_cond): Ditto.
16139         (cbranch<mode>4): Use ordered_comparison_operator predicate
16140         for operator0.
16141         (cstore<mode>4): Ditto for operator1.
16142         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
16143         (add<mode>cc): ditto.
16144
16145 2010-07-30  Richard Guenther  <rguenther@suse.de>
16146
16147         PR middle-end/45141
16148         * expr.c (expand_expr_real_1): Check for not handled base address.
16149
16150 2010-07-30  Richard Guenther  <rguenther@suse.de>
16151
16152         * ipa-prop.c (ipa_modify_formal_parameters): Use
16153         build_distinct_type_copy.
16154
16155 2010-07-30  Anthony Green  <green@moxielogic.com>
16156
16157         * config/moxie/rtems.h: New file.
16158         * config.gcc: Add moxie-rtems support.
16159
16160 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
16161
16162         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
16163         df flags as in run_fast_df_dce.
16164
16165 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
16166
16167         Revert:
16168         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16169
16170         * rtl.def (NOTE): Swap operands 4 and 5.
16171         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
16172         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
16173         Adjust accordingly.
16174         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
16175
16176 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
16177
16178         PR debug/45110
16179         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
16180         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
16181         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
16182         formal parameters.
16183         (gen_decl_die): Change return type to dw_die_ref, return what
16184         gen_formal_parameter_die returned.
16185
16186 2010-07-29  Martin Jambor  <mjambor@suse.cz>
16187
16188         * dbgcnt.def (eipa_sra): New counter.
16189         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
16190
16191 2010-07-29  Xinliang David Li  <davidxl@google.com>
16192
16193         PR bootstrap/45119
16194         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
16195         in revision 162652.
16196
16197 2010-07-29  Richard Guenther  <rguenther@suse.de>
16198
16199         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
16200         (TV_TREE_STORE_CCP): Likewise.
16201         (TV_TREE_REDPHI): Likewise.
16202
16203 2010-07-29  Richard Guenther  <rguenther@suse.de>
16204
16205         * double-int.h (double_int_and_not): New function.
16206         * combine.c (try_combine): Use it.
16207         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
16208
16209 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
16210
16211         PR rtl-optimization/42575
16212         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
16213         Argument AU removed.  All callers changed.  Ignore artificial refs.
16214         Use return value of df_word_lr_simulate_defs to decide whether an insn
16215         is necessary.
16216         (fast_dce): Rename arg to WORD_LEVEL.
16217         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
16218         static.
16219         (pass_fast_rtl_byte_dce): Delete.
16220         * dce.h (run_word_dce): Declare.
16221         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
16222         All callers changed.  Simplify code to only deal with two-word regs.
16223         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
16224         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
16225         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
16226         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
16227         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
16228         (df_word_lr_mark_ref): Declare.
16229         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
16230         df_word_lr_simulate_uses): Declare or rename from byte variants.
16231         (df_byte_lr_simulate_artificial_refs_at_top,
16232         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
16233         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
16234         declarations.
16235         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
16236         (enum df_mm): Delete.
16237         * df-byte-scan.c: Delete file.
16238         * df-problems.c (df_word_lr_problem_data): Renamed from
16239         df_byte_lr_problem_data, all members deleted except for
16240         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
16241         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
16242         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
16243         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
16244         df_byte_lr_confluence_0): Delete functions.
16245         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
16246         callers changed.
16247         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
16248         Don't initialize members that were deleted, don't try to discover data
16249         about registers.  Ignore hard regs.
16250         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
16251         (df_word_lr_mark_ref): New function.
16252         (df_word_lr_bb_local_compute): Renamed from
16253         df_byte_bb_lr_local_compute; all callers changed.  Use
16254         df_word_lr_mark_ref.  Assert that artificial refs don't include
16255         pseudos.  Ignore hard registers.
16256         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
16257         Assert that exit block uses don't contain pseudos.
16258         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
16259         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
16260         callers changed.  Ignore hard regs.
16261         (df_word_lr_transfer_function): Renamed from
16262         df_byte_lr_transfer_function; all callers changed.
16263         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
16264         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
16265         changed.
16266         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
16267         callers changed.
16268         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
16269         confluence operator 0 set to NULL.
16270         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
16271         callers changed.
16272         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
16273         Return bool, true if bitmap changed or insn otherwise necessary.
16274         All callers changed.  Simplify using df_word_lr_mark_ref.
16275         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
16276         all callers changed.  Simplify using df_word_lr_mark_ref.
16277         * lower-subreg.c: Include "dce.h"
16278         (decompose_multiword_subregs): Call run_word_dce if df available.
16279         * Makefile.in (lower-subreg.o): Adjust dependencies.
16280         (df-byte-scan.o): Delete.
16281         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
16282
16283 2010-07-29  Richard Guenther  <rguenther@suse.de>
16284
16285         * tree.c (build_vector): Assert that the vector constant
16286         has enough elements.
16287         (build_vector_from_ctor): Pad with trailing zeros.
16288
16289 2010-07-29  Richard Guenther  <rguenther@suse.de>
16290
16291         PR tree-optimization/45120
16292         * tree-ssa-structalias.c (get_constraint_for_component_ref):
16293         Handle offset in DEREFs properly.
16294         (get_constraint_for_1): Handle MEM_REF offset properly.
16295
16296 2010-07-29  Richard Guenther  <rguenther@suse.de>
16297
16298         PR middle-end/45034
16299         * convert.c (convert_to_integer): Always use an unsigned
16300         type for narrowed negate and bitwise not.
16301
16302 2010-07-29  Ira Rosen  <irar@il.ibm.com>
16303
16304         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
16305         to outer loop when creating reduction epilogue for double reduction,
16306         and switch back to the inner loop when updating the phi nodes.
16307         Update uses of outer loop exit phi nodes in double reduction (instead
16308         of uses of reduction).
16309
16310 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
16311
16312         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
16313         popcount on power7 and parity on power6 systems.
16314         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
16315         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
16316         instructions.
16317
16318         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
16319         (UNSPEC_PARITY): Ditto.
16320         (SFDF): New iterator for SF/DF.
16321         (rreg2): New mode attribute for floating register constraint.
16322         (TARGET_FLOAT): New mode attribute for whether single/double float
16323         is supported.
16324         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
16325         pattern.
16326         (parity<mode>2_cmpb): New insn for parity on power6 and newer
16327         machines.
16328         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
16329         pattern.  Add support for fcpsgn instruction added in power6.
16330         (copysignsf3): Delete.
16331         (copysigndf3): Delete.
16332         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
16333         instead of if_then_else in RTL to avoid problems with -0.
16334
16335         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
16336         of if_then_else to mirror scalar code.
16337         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
16338         rs6000.md.
16339
16340         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
16341         instead of if_then_else.
16342
16343 2010-07-28  Xinliang David Li  <davidxl@google.com>
16344
16345         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
16346         (dump_cand): Dump var_before/after.
16347         (htab_inv_expr_eq): New function.
16348         (htab_inv_expr_hash): New function.
16349         (tree_ssa_iv_optimize_init): Support pseudo invariants.
16350         (add_candidate_1): consider base type precision.
16351         (set_use_iv_cost): New parameter.
16352         (adjust_setup_cost): Use profile information.
16353         (get_address_cost): Do not hard code width in computing address
16354         offset limits.
16355         (compare_aff_trees): New function.
16356         (get_loop_invariant_expr_id): New function.
16357         (get_computation_cost_at): New parameter and use profile information.
16358         (get_computation_cost): New parameter.
16359         (determine_use_iv_cost_generic): Pass new parameter.
16360         (determine_use_iv_cost_address): Ditto.
16361         (determine_use_iv_cost_condition): Ditto.
16362         (autoinc_possible_for_pair): Ditto.
16363         (determine_use_iv_costs): More dumps.
16364         (iv_ca_get_num_inv_exprs): New function.
16365         (iv_ca_recount_cost): Consider loop invariants in register pressure
16366         cost.
16367         (iv_ca_add_use): New parameter.
16368         (iv_ca_dump): Better dumping.
16369         (iv_ca_extend): New parameter.
16370         (try_add_cand_for): Attempt to get better partial solution.
16371         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
16372         (create_new-ivs): More dumps.
16373         (rewrite_use_compare): Ditto.
16374         (free_loop_data): More cleanup.
16375         (treee_ssa_iv_optimize_finalize): Ditto.
16376
16377 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
16378
16379         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
16380         * config/i386/i386.c (ix86_profile_before_prologue): New.
16381         (override_options): Add special handling for -mfentry.
16382         (ix86_function_regparm): Likewise.
16383         (ix86_function_sseregparm): Likewise.
16384         (ix86_frame_pointer_required): Likewise.
16385         (ix86_expand_prologue): Check for ms_hook_prologue.
16386         (x86_function_profiler): Adjust mcount output.
16387         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
16388         * config/i386/i386.opt (mfentry): New.
16389         * doc/invoke.texi (mfentry): Add documentation.
16390         * doc/tm.texi: Regenerated..
16391         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
16392         * final.c (final_start_function): Replace macro
16393         PROFILE_BEFORE_PROLOGUE by target hook.
16394         * function.c (thread_prologue_and_epilogue_insns): Likewise.
16395         * target.def (profile_before_prologue): New hook.
16396         * targhooks.c (default_profile_before_prologue): New.
16397         * targhooks.h (default_profile_before_prologue): New.
16398
16399 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
16400
16401         PR debug/45105
16402         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
16403
16404         PR debug/45103
16405         * dwarf2out.c (dwarf2out_var_location): Always consider
16406         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
16407
16408 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
16409
16410         PR rtl-optimization/45107
16411         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
16412
16413 2010-07-28  Richard Guenther  <rguenther@suse.de>
16414
16415         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
16416         (set_lattice_value): Do not query an old default value.
16417         (get_value_for_expr): New function.  Properly canonicalize
16418         float values.
16419         (ccp_visit_phi_node): Use it.
16420
16421 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
16422
16423         * config/arm/arm.c (arm_pcs_default): Remove static.
16424         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
16425         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
16426         (arm_pcs_default): Declare.
16427
16428 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
16429
16430         * config/rs6000/rs6000.c (rs6000_override_options):
16431         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
16432         ... to darwin_rs6000_override_options.
16433         (rs6000_return_in_memory): Update preceding comment for darwin
16434         64 bit ABI.  Use TARGET_MACHO inline.
16435         (rs6000_darwin64_struct_check_p): New.
16436         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
16437         (function_arg): Likewise.
16438         (rs6000_arg_partial_bytes): Likewise.
16439         (rs6000_function_value): Likewise.
16440
16441 2010-07-28  Andi Kleen  <ak@linux.intel.com>
16442
16443         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
16444
16445 2010-07-28  Richard Guenther  <rguenther@suse.de>
16446
16447         PR middle-end/44903
16448         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
16449         targets try harder to not generate unaligned accesses.
16450
16451 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
16452
16453         PR rtl-optimization/45101
16454         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
16455         for gcse-las.
16456
16457 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
16458
16459         PR tree-optimization/44885
16460         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
16461         with non-aliased component.
16462
16463 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
16464
16465         * config/darwin-driver.c (SWITCH_TAKES_ARG,
16466         WORD_SWITCH_TAKES_ARG): Remove.
16467         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
16468         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
16469         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
16470         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
16471         definitions from gcc.c.
16472         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
16473         defaults.h.
16474         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
16475         Move to defaults.h.
16476         * opts-common.c: Include tm.h.
16477         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
16478         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
16479         Handle more than one argument.  Set canonical_option_num_elements.
16480         (decode_cmdline_options_to_array): Set
16481         canonical_option_num_elements and trailing elements of
16482         canonical_option.
16483         * opts.h (struct cl_decoded_option): Allow four elements in
16484         canonical_option.  Add field canonical_option_num_elements.
16485         * Makefile.in (opts-common.o): Update dependencies.
16486
16487 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
16488
16489         PR middle-end/44790
16490         PR middle-end/44993
16491         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
16492         sure the base has address_mode before adding the offset.
16493
16494 2010-07-27  Xinliang David Li  <davidxl@google.com>
16495
16496         * tree-flow.h (create_mem_ref): Add one new parameter.
16497         * tree-ssa-address.c (create_mem_ref): New parameter.
16498         (addr_to_parts): Ditto.
16499         (move_variant_to_index): New function.
16500         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
16501
16502 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16503
16504         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
16505         4 and 5.
16506         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
16507         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
16508         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
16509         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
16510         CODE_LABELs and NOTEs.
16511         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
16512         * combine.c (try_combine): Likewise.
16513         * ira.c (setup_prohibited_mode_move_regs): Likewise.
16514         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
16515
16516 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
16517
16518         * coretypes.h (struct cl_option_handlers): Declare.
16519         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
16520         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
16521         * langhooks-def.h (lhd_handle_option): Declare.
16522         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
16523         * langhooks.c (lhd_handle_option): New.
16524         * langhooks.h (struct lang_hooks): Update prototype and return
16525         value type of handle_option hook.
16526         * optc-gen.awk: Generate target_flags_explicit definition for the
16527         driver.
16528         * opts-common.c: Include diagnostic.h.
16529         (handle_option): Move from opts.c.  Update prototype and return
16530         value type.  Use handlers structure.
16531         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
16532         handlers structure.
16533         (set_option): Move from opts.c.
16534         * opts.c (common_handle_option): Update prototype and return value
16535         type.  Update calls to handle_option and enable_warning_as_error.
16536         (unknown_option_callback, post_handling_callback,
16537         lang_handle_option, target_handle_option): New.
16538         (handle_option, read_cmdline_option): Move to opts-common.c.
16539         (read_cmdline_options): Update prototype.  Update call to
16540         read_cmdline_option.
16541         (decode_options): Initialize and use handlers structure.
16542         (set_option): Move to opts-common.c.
16543         (enable_warning_as_error): Update prototype.  Update call to
16544         handle_option.
16545         * opts.h (struct cl_option_handler_func, struct
16546         cl_option_handlers): New.
16547         (handle_option, enable_warning_as_error): Update prototypes.
16548         (read_cmdline_option): Declare.
16549         * Makefile.in (opts-common.o): Update dependencies.
16550
16551 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16552
16553         * config/arm/arm.c (params.h): Include.
16554         (arm_override_options): Tune gcse-unrestricted-cost.
16555         * config/arm/t-arm (arm.o): Define dependencies.
16556
16557 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16558
16559         PR target/42495
16560         PR middle-end/42574
16561         * basic-block.h (get_dominated_to_depth): Declare.
16562         * dominance.c (get_dominated_to_depth): New function, use
16563         get_all_dominated_blocks as a base.
16564         (get_all_dominated_blocks): Use get_dominated_to_depth.
16565
16566         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
16567         (hoist_exprs): Remove.
16568         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
16569         (compute_code_hoist_vbeinout): Add debug print outs.
16570         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
16571
16572         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
16573         quadratic behavior.
16574         * params.h (MAX_HOIST_DEPTH): New macro.
16575         * doc/invoke.texi (max-hoist-depth): Document.
16576
16577 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16578
16579         PR rtl-optimization/40956
16580         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
16581         constants.
16582
16583 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16584
16585         PR target/42495
16586         PR middle-end/42574
16587         * config/arm/arm.c (legitimize_pic_address): Use
16588         gen_calculate_pic_address pattern to emit calculation of PIC address.
16589         (will_be_in_index_register): New function.
16590         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
16591         (thumb1_legitimate_address_p): Use it provided !strict_p.
16592         * config/arm/arm.md (calculate_pic_address): New expand and split.
16593
16594 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16595
16596         PR target/42495
16597         PR middle-end/42574
16598         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
16599         * config/arm/arm.md (define_split "J", define_split "K"): Make
16600         IRA/reload friendly.
16601
16602 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16603
16604         * gcse.c (insert_insn_end_basic_block): Update signature, remove
16605         unused checks.
16606         (pre_edge_insert, hoist_code): Update.
16607
16608 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16609
16610         PR target/42495
16611         PR middle-end/42574
16612         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
16613
16614 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16615
16616         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
16617
16618 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16619
16620         PR rtl-optimization/40956
16621         PR target/42495
16622         PR middle-end/42574
16623         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
16624         for hoisting.
16625         (hoist_code): Count occurences in current block too.
16626
16627 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16628
16629         * gcse.c (struct expr:max_distance): New field.
16630         (doing_code_hoisting_p): New static variable.
16631         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
16632         simple expressions, don't change behavior for PRE.  Set max_distance.
16633         (insert_expr_in_table): Set new max_distance field.
16634         (hash_scan_set): Update.
16635         (hoist_expr_reaches_here_p): Stop search after max_distance
16636         instructions.
16637         (find_occr_in_bb): New static function.  Use it in ...
16638         (hoist_code): Calculate sizes of basic block before any changes are
16639         done.  Pass max_distance to hoist_expr_reaches_here_p.
16640         (one_code_hoisting_pass): Set doing_code_hoisting_p.
16641
16642         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
16643         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
16644         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
16645         macros.
16646         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
16647         Document.
16648
16649 2010-07-27  Jeff Law  <law@redhat.com>
16650             Maxim Kuvyrkov  <maxim@codesourcery.com>
16651
16652         * gcse.c (compute_transpout, transpout): Remove, move logic
16653         to prune_expressions.
16654         (compute_pre_data): Move pruning of trapping expressions ...
16655         (prune_expressions): ... here.  New static function.
16656         (compute_code_hoist_data): Use it.
16657         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
16658
16659 2010-07-27  Xinliang David Li  <davidxl@google.com>
16660
16661         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
16662         (rewrite_use_address): Adjust iv update position when needed.
16663
16664 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16665
16666         * dbgcnt.def (hoist_insn): New debug counter.
16667         * gcse.c (hoist_code): Use it.
16668
16669 2010-07-27  Xinliang David Li  <davidxl@google.com>
16670
16671         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
16672         (niter_for_single_dom_exit): Passes additional parameter.
16673         (iv_period): Fix comments.
16674         (may_eliminate_iv): Handles multiple exit loops properly.
16675         (free_tree_niter_desc): New function.
16676         (free_loop_data): Frees up loop iteration descriptors.
16677
16678 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
16679
16680         PR target/44542
16681         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
16682         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
16683         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
16684         (expand_one_var): Don't consider DECL_ALIGN for variables for
16685         which expand_one_stack_var_at has been already called.
16686
16687         PR testsuite/44701
16688         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
16689         constraints on IA-64.
16690
16691 2010-07-27  Jie Zhang  <jie@codesourcery.com>
16692
16693         PR target/44290
16694         Revert:
16695         2010-07-23  Jie Zhang  <jie@codesourcery.com>
16696
16697         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
16698         false if ! tree_versionable_function_p.
16699
16700 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
16701
16702         * dwarf2out.c (add_data_member_location_attribute): Use
16703         add_AT_unsigned instead of add_AT_int if offset is non-negative.
16704
16705 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16706
16707         * postreload.c (try_replace_in_use): New static function.
16708         (reload_combine_recognize_const_pattern): Use it here.  Allow
16709         substituting into a final add insn, and substituting into a memory
16710         reference in an insn that sets the reg.
16711
16712 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
16713
16714         * common.opt (o): Add MissingArgError.
16715         * doc/options.texi (MissingArgError): Document.
16716         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
16717         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
16718         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
16719         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
16720         * langhooks.h (struct lang_hooks): Remove missing_argument.
16721         * optc-gen.awk: Handle MissingArgError and output new structure
16722         field initializers.
16723         * opts.c (read_cmdline_option): Use missing_argument_error field
16724         instead of missing_argument langhook.
16725         * opts.h (struct cl_option): Add missing_argument_error field.
16726         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
16727
16728 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
16729
16730         PR target/29090
16731         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
16732         Darwin64 ABI, for zero-sized objects.
16733
16734 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
16735
16736         PR target/35491
16737         PR target/29090
16738
16739         Merge from Apple local 4.2.1.
16740         2005-05-11  Stan Shebs  <shebs@apple.com>
16741         Fix 64-bit varargs for Darwin (Radar 4028089).
16742         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
16743         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
16744         Add argument, add case for 8-byte register half-filled with a float.
16745         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
16746         single-precision floats specially.
16747
16748 2010-07-27  Ira Rosen  <irar@il.ibm.com>
16749
16750         PR tree-optimization/44152
16751         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
16752         complex numbers for further check.
16753         (vect_supported_load_permutation_p): Check nodes with
16754         complex numbers.
16755
16756 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
16757
16758         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
16759         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
16760         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
16761         (LANG_HOOKS_INITIALIZER): Add new hooks.
16762         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
16763         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
16764         and complain_wrong_lang_p.  Update init_options prototype.
16765         * c-objc-common.c (c_initialize_diagnostics): First call
16766         c_common_initialize_diagnostics.
16767         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
16768         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
16769         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
16770         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
16771         (hook_uint_void_0): New.
16772         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
16773         (hook_uint_void_0): New.
16774         * opts-common.c (decode_cmdline_option,
16775         decode_cmdline_options_to_array): Also fill in canonical_option field.
16776         * opts.c (complain_wrong_lang): Use langhook to determine whether
16777         to complain instead of special-casing LTO.
16778         (decode_options): Separate lang_mask determination with
16779         option_lang_mask hook from call of init_options hook.
16780         * opts.h (struct cl_decoded_option): Add canonical_option.
16781
16782 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
16783
16784         PR tree-optimization/45083
16785         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
16786
16787 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16788
16789         * postreload.c (reload_combine_recognize_const_pattern): Move test
16790         for limiting the insn movement to the right scope.
16791
16792         PR rtl-optimization/45051
16793         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
16794         than reg_mentioned_p.
16795
16796 2010-07-26  Richard Henderson  <rth@redhat.com>
16797
16798         PR target/44132
16799         * tree-emutls.c: New file.
16800         * Makefile.in (OBJS-common): Add it.
16801         * tree-pass.h (pass_ipa_lower_emutls): Declare.
16802         * passes.c (init_optimization_passes): Add it.
16803
16804         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
16805         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
16806         * expr.c (emutls_var_address): Delete.
16807         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
16808         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
16809         (emutls_finish): Delete.
16810         * toplev.c (compile_file): Don't call it.
16811         * tree.h (emutls_decl): Delete.
16812         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
16813         (emutls_finish, emutls_finalize_control_var): Delete.
16814         (emutls_object_type): Move to tree-emutls.c.
16815         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
16816         default_emutls_var_fields, get_emutls_object_type,
16817         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
16818         default_emutls_var_init): Likewise.
16819         (get_variable_section): Don't special case emutls.
16820         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
16821         default_elf_select_section, default_unique_section,
16822         default_encode_section_info): Likewise.
16823         * varpool.c (decide_is_variable_needed): Likewise.
16824         * gimple-iterator.c (update_call_edge_frequencies): New
16825         (gsi_insert_on_edge_immediate): Use it.
16826         (gsi_insert_seq_on_edge_immediate): Likewise.
16827         (gsi_commit_one_edge_insert): Likewise.
16828
16829         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
16830         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
16831         (x86_64_elf_unique_section): Likewise.
16832
16833 2010-07-26  Jan Hubicka  <jh@suse.cz>
16834
16835         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
16836         GTY((skip)).
16837
16838 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
16839
16840         * target.def (output_source_filename): New hook.
16841         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
16842         * doc/tm.texi: Regenerate.
16843         * toplev.c (output_file_directive) Remove function.
16844         * toplev.h (output_file_directive) Remove.
16845         * output.h (default_asm_output_source_filename,
16846         output_file_directive): Declare.
16847         * varasm.h (default_asm_output_source_filename,
16848         output_file_directive): New functions.
16849
16850         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16851         * config/mips/mips-protos.h (mips_output_filename): Remove.
16852         * config/mips/mips.c (mips_output_filename): Make Static.
16853         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
16854
16855 2010-07-26  Richard Guenther  <rguenther@suse.de>
16856
16857         PR tree-optimization/43784
16858         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
16859         if the destination is used by the call.
16860
16861 2010-07-26  Richard Guenther  <rguenther@suse.de>
16862
16863         PR middle-end/45073
16864         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
16865         SSA updating on being in SSA form.
16866
16867 2010-07-26  Richard Guenther  <rguenther@suse.de>
16868
16869         PR middle-end/45056
16870         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
16871
16872 2010-07-26  Richard Guenther  <rguenther@suse.de>
16873
16874         PR tree-optimization/45071
16875         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
16876         adjust op->opcode.
16877
16878 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
16879
16880         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
16881         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
16882         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
16883         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
16884         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
16885         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
16886         save_r31, return_r31, save_interrupt, return_interrupt,
16887         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
16888         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
16889         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
16890         new ABI requirements.
16891         (save_r6_r9, L_callt_save_r6_r9): Remove.
16892         * config/v850/predicates.md (even_reg_operand, disp23_operand,
16893         const_float_1_operand const_float_0_operand): New Predicates.
16894         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
16895         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
16896         * config/v850/t-v850: Update multilibs for new target variants.
16897         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
16898         * config/v850/t-v850e: Likewise.
16899         * config/v850/v850.c (v850_issue_rate): New.
16900         (v850_strict_argument_naming): New.
16901         (function_arg): Modify to generate a different ABI.
16902         (print_operand): Update case 'z' to support float modes.
16903         (output_move_single): Modify to generate appropriate and better
16904         assembly.
16905         (v850_float_z_comparison_operator, v850_select_cc_mode,
16906         v850_float_nz_comparison_operator,  v850_gen_float_compare,
16907         v850_gen_compare): New functions to support comparison of float values.
16908         (ep_memory_offset): Add support for V850E2 targets.
16909         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
16910         (INTERRUPT_REGPARM_NUM): Remove.
16911         (compute_register_save_size): Add extra case to save/restore long call.
16912         (use_prolog_function): New function to support prologue.
16913         (expand_prologue): Add support for V850E2 targets and modified
16914         as per the current ABI requirements.
16915         (expand_epilogue): Likewise.
16916         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
16917         (construct_save_jarl): Likewise.
16918         (construct_dispose_instruction): Update as per the current ABI
16919         requirements.
16920         (construct_prepare_instruction): Likewise.
16921         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
16922         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
16923         (CPP_SPEC): Updated to support v850e2 targets.
16924         (STRICT_ALIGNMENT): Modified.
16925         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
16926         (FIXED_REGISTERS): Likewise.
16927         (CALL_USED_REGISTERS): Likewise.
16928         (CONDITIONAL_REGISTER_USAGE): Updated.
16929         (HARD_REGNO_MODE_OK): Updated.
16930         (reg_class): Updated to add even registers.
16931         (REG_CLASS_NAMES): Likewise.
16932         (REG_CLASS_CONTENTS): Likewise.
16933         (REGNO_REG_CLASS): Updated for CC registers.
16934         (REG_CLASS_FROM_LETTER): Added support for even registers.
16935         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
16936         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
16937         ARG_POINTER_REGNUM): Updated.
16938         (FUNCTION_ARG_ADVANCE): Define.
16939         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
16940         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
16941         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
16942         (GO_IF_LEGITIMATE_ADDRESS): Updated.
16943         (SELECT_CC_MODE): Define.
16944         (REGISTER_NAMES): Updated to add psw and fcc registers.
16945         (ADDITIONAL_REGISTER_NAMES): Updated.
16946         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
16947         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
16948         * config/v850/v850.md (define_constants): Define new constants.
16949         (type): Update store,bit1,macc,div,fpu and single attributes.
16950         (cpu): New attribute.
16951         (cc): Add set_z attribute.
16952         (unsign23byte_load, sign23byte_load, unsign23hword_load,
16953         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
16954         23word_store): New instructions for 23-bit displacement load and store.
16955         (movqi_internal, movhi_internal): Update the attributes.
16956         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
16957         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
16958         the attributes.
16959         (v850_tst1): Modified using CC_REGNUM.
16960         (tstsi): Remove.
16961         (cmpsi): Modified as define_expand from define_insn.
16962         (cmpsi_insn, cmpsf, cmpdf): New instructions.
16963         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
16964         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
16965         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
16966         one_cmplsi2): Clobber the CC_REGNUM register.
16967         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
16968         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
16969         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
16970         (setf_insn, set_z_insn, set_nz_insn): New instructions for
16971         v850e2v3 target.
16972         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
16973         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
16974         targets.
16975         (sasf_1, sasf_2): Remove.
16976         (sasf): New instruction.
16977         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
16978         targets. CC_REGNUM register is clobbered and attributes are
16979         updated.
16980         (branch_z_normal, branch_z_invert, branch_nz_normal,
16981         branch_nz_invert): New branch related instructions.
16982         (jump): Updated the attributes.
16983         (switch): Update to support new targets. CC_REGNUM register is
16984         clobbered and attributes are updated.
16985         (call_internal_short, call_internal_long, call_value_internal_short,
16986         call_value_internal_long): Updated the attributes.
16987         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
16988         clobbered and attributes are updated.
16989         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
16990         Update to support new targets. CC_REGNUM register is clobbered.
16991         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
16992         instructions.
16993         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
16994         are updated.
16995         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
16996         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
16997         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
16998         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
16999         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
17000         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
17001         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
17002         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
17003         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
17004         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
17005         point instructions defined for V850e2v3 target.
17006         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
17007         Add support for V850E2 targets and CC_REGNUM register is clobbered.
17008         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
17009         support for new targets.
17010         * config/v850/v850-modes.def: New file.
17011         * config/v850/v850.opt(mstrict-align): Remove.
17012         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
17013         mv850e2v3): New command line options for V850.
17014         * config.gcc: Update the newly added files.
17015         * doc/invoke.texi: Update the newly added command line options for
17016         V850 target.
17017
17018 2010-07-26  Richard Guenther  <rguenther@suse.de>
17019
17020         PR tree-optimization/45052
17021         * ipa-pure-const.c (check_stmt): Check volatileness.
17022
17023 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
17024
17025         PR target/44707
17026         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
17027         * config/sparc/sparc.c: Include reload.h.
17028         (legitimize_tls_address): Rename into...
17029         (sparc_legitimize_tls_address): ...this.
17030         (legitimize_pic_address): Rename into...
17031         (sparc_legitimize_pic_address): ...this.
17032         (sparc_expand_move): Adjust to above renaming.
17033         (sparc_tls_referenced_p): Likewise.
17034         (sparc_legitimize_tls_address): Likewise.
17035         (sparc_legitimize_pic_address): Likewise.
17036         (sparc_legitimize_address): Likewise.
17037         (sparc_output_mi_thunk): Likewise.
17038         (sparc_legitimize_reload_address): New global function.  Recognize
17039         (lo_sum (high ...) ...) patterns generated by earlier passes.
17040         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
17041
17042 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
17043
17044         PR target/44484
17045         * config/sparc/predicates.md (memory_reg_operand): Delete.
17046         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
17047         (*sync_compare_and_swap): Encode the address form in the pattern.
17048         (*sync_compare_and_swapdi_v8plus): Likewise.
17049
17050 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
17051
17052         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
17053         Streamline paragraph on compatibility with the system compiler.
17054
17055 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
17056
17057         PR middle-end/45035
17058         * alias.c (true_dependence_1): Fix thinko in merge of old
17059         true_dependence and canon_true_dependence.
17060
17061 2010-07-23  Jan Hubicka  <jh@suse.cz>
17062
17063         * lto-streamer-out.c (write_symbol): Fix visibilities of external
17064         references.
17065
17066 2010-07-23  Le-Chun Wu  <lcwu@google.com>
17067
17068         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
17069         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
17070         and an unnecessary assignment.
17071         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
17072         self-assign warning.
17073         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
17074         unnecessary self-init.
17075
17076 2010-07-23  Richard Guenther  <rguenther@suse.de>
17077
17078         PR lto/43071
17079         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
17080         for -flto and -fwhopr.
17081
17082 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
17083
17084         PR target/41943
17085         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
17086         (stmp-int-hdrs): Prefix/postfix headers by include_next.
17087         * config.gcc (user_headers_inc_next_pre): New.
17088         (user_headers_inc_next_post): Likewise.
17089         (*-w64-mingw*): Use for float.h post-fixing, and for
17090         stddef.h/stdarg.h pre-fixing by include_next.
17091         * configure.ac (user_headers_inc_next_post): New.
17092         (user_headers_inc_next_pre): New.
17093         * configure: Regenerated.
17094
17095 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17096
17097         * configure.ac: Don't disable TLS on Solaris 8/9 by default
17098         Set tga_func for Solaris 2/x86 resp. SPARC.
17099         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
17100         (LIB_THREAD_LDFLAGS_SPEC): Define.
17101         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
17102         * configure: Regenerate.
17103         * config.in: Regenerate.
17104         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
17105         -pthread, -threads, LIB_TLS_SPEC with -pthread.
17106         * doc/install.texi (Specific, *-*-solaris2*): Document use of
17107         alternate thread libraries on Solaris 8.
17108         Document TLS patch requirements.
17109         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
17110         Document tls.
17111
17112         PR target/18788
17113         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
17114         -shared.
17115
17116 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
17117
17118         * tree.h (struct tree_base): Add nameless_flag bitfield.
17119         (TYPE_NAMELESS, DECL_NAMELESS): Define.
17120         * omp-low.c (create_omp_child_function, scan_omp_parallel,
17121         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
17122         DECL_ARTIFICIAL where needed.
17123         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
17124         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
17125         has DECL_NAMELESS set.
17126
17127 2010-07-23  Martin Jambor  <mjambor@suse.cz>
17128
17129         PR tree-optimization/44915
17130         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
17131         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
17132         (analyze_function): Likewise.
17133
17134 2010-07-23  Martin Jambor  <mjambor@suse.cz>
17135
17136         PR tree-optimization/44914
17137         * tree-sra.c (sra_modify_function_body): Return true if CFG was
17138         changed, add purging dead eh edges.
17139         (ipa_sra_modify_function_body): Return true if CFG was changed,
17140         simplify purging dead eh edges.
17141         (modify_function): Return true if CFG was changed.
17142         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
17143         was changed.
17144         (ipa_early_sra): Likewise.
17145
17146 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17147
17148         PR target/44290
17149         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
17150         if "naked".
17151         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
17152         false if ! tree_versionable_function_p.
17153
17154 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
17155
17156         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
17157         * ipa-pure-const.c (special_builtlin_state): Remove
17158         BUILT_IN_ARGS_INFO case.
17159         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
17160         * builtins.c (expand_builtin): Likewise.
17161         (expand_builtin_args_info): Remove.
17162         * doc/tm.texi (__builtin_args_info): Remove.
17163         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
17164         * doc/tm.text.in: Likewise.
17165
17166 2010-07-23  Richard Guenther  <rguenther@suse.de>
17167
17168         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
17169         (lto_symtab_merge_decls_2): Likewise.
17170         * tree-ssa.c (useless_type_conversion_p): Likewise.
17171         * lto-streamer-in.c (input_gimple_stmt): Likewise.
17172         * gimple.c (gtc_visited2, gtc_ob2): Remove.
17173         (struct type_pair_d): Make same_p an array indexed by mode.
17174         Update comment.
17175         (lookup_type_pair): Update initialization.
17176         (struct sccs): Adjust same_p type.
17177         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
17178         Adjust.
17179         (print_gimple_types_stats): Likewise.
17180         * gimple.h (enum gtc_mode): New.
17181         (gimple_types_compatible_p): Adjust prototype.
17182
17183 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
17184
17185         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
17186         again after processing insn.
17187
17188 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17189
17190         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
17191         proper words when !tree_versionable_function_p.
17192
17193 2010-07-23  Richard Guenther  <rguenther@suse.de>
17194
17195         PR tree-optimization/45037
17196         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
17197
17198 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17199
17200         * doc/extend.texi: Remove IP2K from the description of naked attribute.
17201         Add MCORE instead.
17202
17203 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17204
17205         PR lto/44992
17206         * lto-opts.c (lto_write_options): Add NULL file_data argument to
17207         lto_get_section_name.
17208         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
17209         * lto-streamer-out.c (produce_asm): Likewise.
17210         (copy_function): Likewise.
17211         (produce_symtab): Likewise.
17212         (produce_asm_for_decls): Likewise.
17213         * lto-streamer.c (lto_get_section_name): Add file_data argument.
17214         Rewrite to add random postfix to LTO sections.
17215         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
17216         (lto_get_section_name): Add file_data argument to prototype.
17217
17218 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17219
17220         * lto-section-in.c (lto_section_name): Synchronize names
17221         with lto_get_section_name.
17222
17223 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17224
17225         * lto-opts.c (lto_read_file_options): Check for missing section.
17226
17227 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17228
17229         * ira.c (check_allocation): Correctly handle the case where an allocno
17230         with two objects was allocated to a single reg.
17231
17232 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
17233
17234         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
17235         (is_widening_mult_p): Likewise.
17236         (convert_to_widen): Use them.
17237         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
17238         well as integer ones.
17239
17240 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
17241
17242         * alias.c (true_dependence_1): New function, merged version of
17243         true_dependence and canon_true_dependence.
17244         (true_dependence): Simplify.
17245         (canon_true_dependence): Simplify.
17246
17247 2010-07-22  Richard Henderson  <rth@redhat.com>
17248
17249         PR target/45027
17250         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
17251         of V4SFmode for the SSE saves; increase stack alignment if needed.
17252         (ix86_gimplify_va_arg): Don't increase stack alignment here.
17253
17254 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
17255
17256         PR bootstrap/45028
17257         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
17258         call cprop_find_used_regs again via note_uses.
17259
17260 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
17261
17262         * alias.c (get_alias_set): Fix formatting issues.
17263
17264 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
17265
17266         PR middle-end/44878
17267         * stmt.c (expand_value_return):  Call promote_function_mode with
17268         a for_return argument of 2 when returning by reference.
17269
17270 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
17271
17272         PR debug/45024
17273         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
17274         unit DIE if we can find the scope DIE.
17275
17276 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17277
17278         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
17279         changed.  Initialize OBJECT_SUBWORD.
17280         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
17281         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
17282         all callers changed.
17283         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
17284         (finish_allocno): Likewise.
17285         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
17286         (remove_low_level_allocnos): Likewise.
17287         (update_bad_spill_attribute): Likewise.
17288         (setup_min_max_allocno_live_range_point): Likewise.
17289         (sort_conflict_id_map): Likewise.
17290         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
17291         (ior_hard_reg_conflicts): New function.
17292         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
17293         (compress_conflict_vecs): Iterate over objects, not allocnos.
17294         (ira_add_live_range_to_object): New function.
17295         (object_range_compare_func): Renamed from allocno_range_compare_func.
17296         All callers changed.
17297         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
17298         subobjects, widen the min/max range of the lowest-order object to
17299         potentially include all other such low-order objects.
17300         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
17301         (check_allocation): Likewise.  Use more fine-grained tests for register
17302         conflicts.
17303         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
17304         allocno subobjects.
17305         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
17306         choices about which bits to set in each set.  Don't use
17307         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
17308         using the multiple sets we computed.
17309         (push_allocno_to_stack): Iterate over allocno subobjects.
17310         (all_conflicting_hard_regs_coalesced): New static function.
17311         (setup_allocno_available_regs_num): Use it.
17312         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
17313         subobjects.
17314         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
17315         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
17316         by ALLOCNO_NUM_OBJECTS.
17317         (calculate_spill_cost): Likewise.
17318         (color_pass): Express if statement in a more normal way.
17319         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
17320         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
17321         (setup_slot_coalesced_allocno_live_ranges): Likewise.
17322         (allocno_reload_assign): Likewise.
17323         (ira_reassign_pseudos): Likewise.
17324         (fast_allocation): Likewise.
17325         * ira-conflicts.c (build_conflict_bit_table): Likewise.
17326         (print_allocno_conflicts): Likewise.
17327         (ira_build_conflicts): Likewise.
17328         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
17329         callers changed.  Test subword 0 of each allocno for conflicts.
17330         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
17331         callers changed.  Iterate over allocno subobjects.
17332         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
17333         * ira-int.h (struct ira_allocno): New member: num_objects.
17334         Rename object to objects and change it into an array.
17335         (ALLOCNO_OBJECT): Add new argument N.
17336         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
17337         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
17338         (ior_hard_reg_conflicts): Declare.
17339         (ira_add_live_range_to_object): Declare.
17340         (ira_allocno_object_iterator): New.
17341         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
17342         (FOR_EACH_ALLOCNO_OBJECT): New macro.
17343         * ira-lives.c (objects_live): Renamed from allocnos_live; all
17344         uses changed.
17345         (allocnos_processed): New sparseset.
17346         (make_object_born): Renamed from make_allocno_born; take an
17347         ira_object_t argument.  All callers changed.
17348         (make_object_dead): Renamed from make_allocno_dead; take an
17349         ira_object_t argument.  All callers changed.
17350         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
17351         All callers changed.
17352         (mark_pseudo_regno_live): Iterate over allocno subobjects.
17353         (mark_pseudo_regno_dead): Likewise.
17354         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
17355         functions.
17356         (mark_ref_live): Detect subword accesses and call
17357         mark_pseudo_regno_subword_live as appropriate.
17358         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
17359         (process_bb_nodes_live): Deal with object-related updates first; set
17360         and test bits in allocnos_processed to avoid computing allocno
17361         statistics more than once.
17362         (create_start_finish_chains): Iterate over objects, not allocnos.
17363         (print_object_live_ranges): New function.
17364         (print_allocno_live_ranges): Use it.
17365         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
17366         and objects_live.
17367
17368 2010-07-22  Richard Guenther  <rguenther@suse.de>
17369
17370         PR lto/42451
17371         * gimple.c (gtc_next_dfs_num): New global.
17372         (struct sccs): Make value a union, add integer same_p member.
17373         (gtc_visit): New function.
17374         (gimple_types_compatible_p_1): New function, split out from ...
17375         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
17376         (iterative_hash_gimple_type): Adjust for sccs change.
17377
17378 2010-07-22  Martin Jambor  <mjambor@suse.cz>
17379
17380         PR tree-optimization/44891
17381         * tree-sra.c: Include gimple-pretty-print.h.
17382         (replace_uses_with_default_def_ssa_name): Renamed to
17383         get_repl_default_def_ssa_name, return the new SSA name instead of
17384         replacing the old one.
17385         (sra_modify_assign): Dump a message when removing a load, if the LHS
17386         is an SSA_NAME, do not do any propagation, just set the RHS to a
17387         default definition SSA NAME, type convert if necessary.
17388         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
17389
17390 2010-07-22  Richard Guenther  <rguenther@suse.de>
17391
17392         PR tree-optimization/45017
17393         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
17394         TYPE_PRECISION of integral types in addition to size.
17395
17396 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
17397
17398         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
17399         when no C library is specified.
17400
17401 2010-07-22  Martin Jambor  <mjambor@suse.cz>
17402
17403         * ipa-prop.h (struct ipa_node_params): Updated comment.
17404         (struct ipa_edge_args): Likewise.
17405         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
17406
17407 2010-07-22  Martin Jambor  <mjambor@suse.cz>
17408
17409         * cgraphunit.c (verify_edge_count_and_frequency): New function.
17410         (verify_cgraph_node): Verify frequencies of indirect edges.
17411         * tree-inline.c (tree_function_versioning): Update frequencies of
17412         indirect edges.
17413
17414 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17415
17416         PR target/43698
17417         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
17418         Set *arm_rev to be predicable.
17419
17420 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
17421
17422         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
17423         (LINK_COMMAND_SPEC_A): New.
17424         (DSYMUTIL): New.
17425         (DSYMUTIL_SPEC): New.
17426         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
17427         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
17428
17429 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
17430
17431         * calls.c (load_register_parameters): Move check for zero
17432         sized items so that only the call to
17433         mem_overlaps_already_clobbered_arg_p () is protected.
17434
17435 2010-07-22  Jan Hubicka  <jh@suse.cz>
17436
17437         * ipa-pure-const.c (varying_state): Break out from ...
17438         (get_function_state): ... here; always return varying_state
17439         when state would be NULL otherwise.
17440         (remove_node_data): Do not free varying state.
17441
17442 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17443
17444         PR bootstrap/44970
17445         PR middle-end/45009
17446         * postreload.c: Include "target.h".
17447         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
17448         into account.
17449         (fixup_debug_insns): Don't copy the rtx.
17450         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
17451         Don't copy when replacing.  Call fixup_debug_insns in the case where
17452         we merged one add with another.
17453         (reload_combine_recognize_pattern): Fail if there aren't any uses.
17454         Try harder to determine whether we're picking a valid index register.
17455         Don't set store_ruid for an insn we're going to scan in the
17456         next iteration.
17457         (reload_combine): Remove unused code.
17458         (reload_combine_note_use): When updating use information for
17459         an old insn, ignore a use that occurs after store_ruid.
17460         * Makefile.in (postreload.o): Update dependencies.
17461
17462         * function.c (record_hard_reg_sets): Restrict the previous change
17463         to cases where the incoming nominal mode is the same as the
17464         incoming promoted mode and everything happens in MODE_INT.
17465
17466 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
17467
17468         PR debug/45015
17469         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
17470         ASM_OPERANDS_OUTPUT_IDX.
17471         (adjust_insn): For inline asm with multiple sets ensure first
17472         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
17473         the insn.
17474
17475 2010-07-21  Richard Henderson  <rth@redhat.com>
17476
17477         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
17478         comparison for avoiding xmm register saves.  Emit the xmm register
17479         saves explicitly.
17480         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
17481         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
17482         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
17483         Remove patterns and the associated splitters.
17484
17485 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
17486
17487         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
17488         and imagine parts of a complex, so that they can have the same
17489         base and fall into the same group.
17490
17491 2010-07-21  Richard Guenther  <rguenther@suse.de>
17492
17493         PR lto/45018
17494         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
17495         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
17496         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
17497
17498 2010-07-21  Martin Jambor  <mjambor@suse.cz>
17499
17500         PR tree-optimization/44900
17501         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
17502         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
17503
17504 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
17505
17506         PR middle-end/44738
17507         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
17508
17509 2010-07-21  Richard Guenther  <rguenther@suse.de>
17510
17511         PR middle-end/45013
17512         * tree-ssa.c (useless_type_conversion_p): Dispatch to
17513         gimple_types_compatible_p only when in lto.
17514         * gimple.c (gimple_types_compatible_p): Use canonical types
17515         to speed up comparison.
17516
17517 2010-07-21  Richard Guenther  <rguenther@suse.de>
17518
17519         * tree-flow.h (referenced_var): Move define ...
17520         * tree-flow-inline.h (referenced_var): ... here as an inline
17521         function.  Assert here ...
17522         * tree-dfa.c (referenced_var_lookup): ... instead of here.
17523         * tree-ssa.c (maybe_optimize_var): Check if the variable
17524         is in referenced vars.
17525         (execute_update_addresses_taken): Remove old broken check.
17526         * gimple-pretty-print.c (pp_points_to_solution): Use
17527         referenced_var_lookup.
17528         * tree-into-ssa.c (dump_decl_set): Likewise.
17529
17530 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
17531
17532         PR debug/45003
17533         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
17534         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
17535         ZERO_EXTEND here.
17536
17537 2010-07-20  Richard Henderson  <rth@redhat.com>
17538
17539         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
17540
17541 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
17542
17543         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
17544         computing the sum of the stack pointer and a large constant.
17545         * config/arm/constraints.md (M): Remove superfluous parentheses.
17546         (Pc): New constraint.
17547
17548 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
17549
17550         PR debug/45006
17551         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
17552         operand's type if exp is tcc_unary class tree.
17553
17554 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
17555
17556         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
17557         Reverse sense of if_then_else condition.
17558
17559 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
17560
17561         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
17562         * config/rs6000/rs6000.c (rs6000_override_options): Set
17563         rs6000_block_move_inline_limit appropriately.
17564         (expand_block_move): Use rs6000_block_move_inline_limit.
17565         * doc/invoke.texi (mblock-move-inline-limit): Document.
17566
17567 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
17568
17569         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
17570         FROM and TO.  All callers changed.  Don't look for tracked uses,
17571         just scan the RTL for DEBUG_INSNs and substitute.
17572         (reload_combine_recognize_pattern): Call fixup_debug_insns.
17573         (reload_combine): Ignore DEBUG_INSNs.
17574
17575 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
17576
17577         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
17578         depth to 8 from 5.
17579
17580         PR debug/45003
17581         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
17582         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
17583         instead of the result's type.
17584
17585 2010-07-20  Richard Guenther  <rguenther@suse.de>
17586
17587         PR tree-optimization/44977
17588         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
17589         SSA form.
17590
17591 2010-07-20  Richard Guenther  <rguenther@suse.de>
17592
17593         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
17594         (lto_symtab_merge_decls_2): Likewise.
17595         * gimple.h (gimple_types_compatible_p): Declare.
17596         * gimple.c (gimple_queue_type_fixup): Remove.
17597         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
17598         (gimple_compatible_complete_and_incomplete_type_p): New function.
17599         (gimple_types_compatible_p): Adjust.
17600         (gimple_register_type): Remove type fixup code.
17601         (print_gimple_types_stats): Adjust.
17602         (free_gimple_type_tables): Likewise.
17603         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
17604         * tree-ssa.c (useless_type_conversion_p): Likewise.
17605
17606 2010-07-20  Richard Guenther  <rguenther@suse.de>
17607
17608         PR middle-end/44971
17609         PR middle-end/44988
17610         * tree-ssa.c (maybe_optimize_var): New function split out from ...
17611         (execute_update_addresses_taken): ... here.
17612         (non_rewritable_mem_ref_base): Likewise.
17613         (execute_update_addresses_taken): Do not iterate over all referenced
17614         vars but just all local decls and parms.
17615         Properly check call and asm arguments and rewrite call arguments.
17616
17617 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
17618
17619         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
17620         to top level.
17621         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
17622         definitions ...
17623         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
17624         New macro.
17625         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
17626
17627 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
17628
17629         * gengtype.c (start_root_entry): New function, split out from
17630         write_root.  Check whether V is null and raise an error if so.
17631         (write_field_root): Check for V being null.  Don't raise an error here;
17632         set V to null instead.
17633         (write_root): Update comment above function.  Use start_root_entry.
17634
17635 2010-07-19  Xinliang David Li  <davidxl@google.com>
17636
17637         PR testsuite/44932
17638         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
17639         def edges.
17640         (find_uninit_use): Add dump.
17641         (is_use_properly_guarded): Ditto.
17642         (warn_uninitialized_phi): Ditto.
17643         (execute_late_warn_uninitialized): Ditto.
17644
17645 2010-07-19  Richard Guenther  <rguenther@suse.de>
17646
17647         PR middle-end/44941
17648         * expr.c (emit_block_move_hints): Move zero size check first.
17649         Move asserts to more useful places.
17650         * calls.c (load_register_parameters): Check for zero size.
17651
17652 2010-07-19  Richard Henderson  <rth@redhat.com>
17653
17654         * tree-optimize.c (execute_all_early_local_passes): New.  Change
17655         cgraph_state here ...
17656         (execute_early_local_optimizations): ... not here.  Remove.
17657         (pass_early_local_passes, pass_all_early_optimizations): Update.
17658
17659 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
17660
17661         * postreload.c (reload_combine_closest_single_use): Ignore the
17662         number of uses for DEBUG_INSNs.
17663         (fixup_debug_insns): New static function.
17664         (reload_combine_recognize_const_pattern): Use it.  Don't let the
17665         main loop be affected by DEBUG_INSNs.
17666         Really disallow moving adds past a jump insn.
17667         (reload_combine_recognize_pattern): Don't update use_ruid here.
17668         (reload_combine_note_use): Do it here.
17669         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
17670
17671 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
17672
17673         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
17674         of a loop.
17675         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
17676
17677 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
17678
17679         * config/i386/darwin.h: Define darwin_emit_branch_islands.
17680         (TARGET_MACHO_BRANCH_ISLANDS): New.
17681         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
17682         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
17683         default value.
17684         * config/i386/i386.c (output_pic_addr_const): Do not emit
17685         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
17686         (x86_output_mi_thunk): Adjust symbol creation.
17687         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
17688         Remove out of date comment.
17689         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
17690         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
17691         (DARWIN_GENERATE_ISLANDS): Ditto.
17692         (output_call):  Do not emit branch islands unless
17693         darwin_emit_branch_islands is set.
17694         * config/darwin.c: Declare darwin_emit_branch_islands.
17695         (machopic_indirect_data_reference): Do not emit unless
17696         darwin_emit_branch_islands is set.
17697         (darwin_override_options): Set darwin_emit_branch_islands
17698         where it is needed.
17699         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
17700
17701 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17702
17703         * doc/sourcebuild.texi (Effective-Target Keywords): Document
17704         sse_runtime, sse2_runtime.
17705
17706 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
17707
17708         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
17709         low half of a single-register SCmode return value before ORing
17710         it with the high half.
17711         * config/mips/mips16.S (MERGE_GPRf): Likewise.
17712
17713 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17714
17715         PR target/44805
17716         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
17717         on all targets.
17718
17719 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
17720
17721         PR target/42235
17722         * postreload.c (reload_cse_move2add): Return bool, true if anything.
17723         changed.  All callers changed.
17724         (move2add_use_add2_insn): Likewise.
17725         (move2add_use_add3_insn): Likewise.
17726         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
17727         reload_combine.
17728         (RELOAD_COMBINE_MAX_USES): Bump to 16.
17729         (last_jump_ruid): New static variable.
17730         (struct reg_use): New members CONTAINING_MEM and RUID.
17731         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
17732         (reload_combine_split_one_ruid, reload_combine_split_ruids,
17733         reload_combine_purge_insn_uses, reload_combine_closest_single_use
17734         reload_combine_purge_reg_uses_after_ruid,
17735         reload_combine_recognize_const_pattern): New static functions.
17736         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
17737         is true for our reg and that we have available index regs.
17738         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
17739         callers changed.  Use them to initialize fields in struct reg_use.
17740         (reload_combine): Initialize last_jump_ruid.  Be careful when to
17741         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
17742         Call reload_combine_recognize_const_pattern.
17743         (reload_combine_note_store): Update REAL_STORE_RUID field.
17744
17745 2010-07-16  Jason Merrill  <jason@redhat.com>
17746
17747         * Makefile.in (opts-common.o): Depend on options.h.
17748
17749 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
17750
17751         * tree.c (build_common_builtin_nodes): Use build_function_type_list
17752         instead of build_function_type.
17753         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
17754         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
17755
17756 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
17757
17758         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
17759         do all the work.
17760         (rs6000_emit_int_cmove): Use function pointers for insn generation.
17761         Don't force values into registers unnecessarily.
17762         (output_isel): Assert that we're not given conditions we can't handle.
17763         Delete corresponding code.
17764         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
17765         scc_comparison_operator constraint.  Permit 0 for the consequent
17766         operand.  Permit any GPR for the alternative operand.
17767         (isel_unsigned_<mode>): Likewise.
17768
17769 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
17770
17771         PR target/44942
17772         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
17773         argument to const_tree.
17774         * config/i386/i386.c (function_arg_advance): If padding needs to be
17775         inserted before argument, increment cum->words by number of padding
17776         words as well.
17777         (contains_aligned_value_p): Change argument to const_tree.
17778         (ix86_function_arg_boundary): Change second argument to const_tree.
17779
17780 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
17781
17782         PR target/42235
17783         * function.c (record_hard_reg_sets): New static function.
17784         (assign_parm_setup_reg): If an optab for extending exists and the
17785         generated code clobbbers no hard regs, emit the insn directly and
17786         create a REG_EQUIV note.
17787
17788 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
17789
17790         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
17791         TREE_CHAIN.
17792         * c-typeck.c (push_init_level): Likewise.
17793         (process_init_element): Likewise.
17794
17795 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
17796
17797         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
17798         (integer_three_node): Add.
17799         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
17800         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
17801         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
17802         of call build_int_cst.
17803         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
17804         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
17805         (find_interesting_uses_address): Ditto.
17806         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
17807         * tree-eh.c (lower_eh_constructs_2): Ditto.
17808         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
17809         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
17810         * expmed.c (expand_divmod): Ditto.
17811         * tree-mudflap.c (mx_register_decls): Ditto.
17812         * varasm.c (array_size_for_constructor): Ditto.
17813         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
17814         * c-parser.c (c_parser_postfix_expression): Ditto.
17815
17816 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
17817
17818         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
17819         New static variables.
17820         (reload_combine_recognize_pattern): New static function, broken out
17821         of reload_combine.
17822         (reload_combine): Use it.  Only initialize first_index_reg and
17823         last_index_reg once.
17824
17825 2010-07-15  Richard Henderson  <rth@redhat.com>
17826
17827         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
17828         when done.
17829
17830 2010-07-15  Jan Hubicka  <jh@suse.cz>
17831
17832         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
17833         comdats for broken gold.
17834         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
17835
17836 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
17837
17838         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
17839
17840 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
17841
17842         * tree.h (DECL_CHAIN): Define.
17843         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
17844         * c-decl.c: Likewise.
17845         * c-parser.c: Likewise.
17846         * c-typeck.c: Likewise.
17847         * cfgexpand.c: Likewise.
17848         * cgraph.c: Likewise.
17849         * cgraphunit.c: Likewise.
17850         * combine.c: Likewise.
17851         * config/alpha/alpha.c: Likewise.
17852         * config/arm/arm.c: Likewise.
17853         * config/frv/frv.c: Likewise.
17854         * config/i386/i386.c: Likewise.
17855         * config/i386/winnt-cxx.c: Likewise.
17856         * config/ia64/ia64.c: Likewise.
17857         * config/iq2000/iq2000.c: Likewise.
17858         * config/mep/mep.c: Likewise.
17859         * config/mips/mips.c: Likewise.
17860         * config/pa/som.h: Likewise.
17861         * config/rs6000/rs6000.c: Likewise.
17862         * config/s390/s390.c: Likewise.
17863         * config/sh/sh.c: Likewise.
17864         * config/sh/symbian-cxx.c: Likewise.
17865         * config/sparc/sparc.c: Likewise.
17866         * config/spu/spu.c: Likewise.
17867         * config/stormy16/stormy16.c: Likewise.
17868         * config/vxworks.c: Likewise.
17869         * config/xtensa/xtensa.c: Likewise.
17870         * coverage.c: Likewise.
17871         * dbxout.c: Likewise.
17872         * dwarf2out.c: Likewise.
17873         * emit-rtl.c: Likewise.
17874         * expr.c: Likewise.
17875         * function.c: Likewise.
17876         * gimple-low.c: Likewise.
17877         * gimple-pretty-print.c: Likewise.
17878         * gimplify.c: Likewise.
17879         * integrate.c: Likewise.
17880         * ipa-inline.c: Likewise.
17881         * ipa-prop.c: Likewise.
17882         * ipa-split.c: Likewise.
17883         * ipa-struct-reorg.c: Likewise.
17884         * ipa-type-escape.c: Likewise.
17885         * langhooks.c: Likewise.
17886         * lto-cgraph.c: Likewise.
17887         * omp-low.c: Likewise.
17888         * stor-layout.c: Likewise.
17889         * tree-cfg.c: Likewise.
17890         * tree-complex.c: Likewise.
17891         * tree-dfa.c: Likewise.
17892         * tree-dump.c: Likewise.
17893         * tree-inline.c: Likewise.
17894         * tree-mudflap.c: Likewise.
17895         * tree-nested.c: Likewise.
17896         * tree-object-size.c: Likewise.
17897         * tree-pretty-print.c: Likewise.
17898         * tree-sra.c: Likewise.
17899         * tree-ssa-live.c: Likewise.
17900         * tree-ssa-loop-niter.c: Likewise.
17901         * tree-ssa-math-opts.c: Likewise.
17902         * tree-ssa-reassoc.c: Likewise.
17903         * tree-ssa-sccvn.c: Likewise.
17904         * tree-ssa-structalias.c: Likewise.
17905         * tree-tailcall.c: Likewise.
17906         * tree-vrp.c: Likewise.
17907         * tree.c: Likewise.
17908         * var-tracking.c: Likewise.
17909         * varasm.c: Likewise.
17910
17911 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17912
17913         PR target/44877
17914         * config/spu/spu.c (spu_expand_builtin_1): Allow references
17915         (as well as pointers) as argument to mask_for_load builtins.
17916
17917 2010-07-15  Richard Guenther  <rguenther@suse.de>
17918
17919         PR tree-optimization/44946
17920         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
17921         with accessing only padding properly.
17922
17923 2010-07-15  Jan Hubicka  <jh@suse.cz>
17924
17925         * ipa.c (function_and_variable_visibility): Variables marked as used
17926         should not be localized.
17927
17928 2010-07-15  Jan Hubicka  <jh@suse.cz>
17929
17930         * cgraph.c: Include lto-streamer.h
17931         (change_decl_assembler_name): Work when assembler name hash is at place.
17932         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
17933         be sure to rename it to avoid name clash.
17934         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
17935         Localize hidden symbols only when locally defined.
17936
17937 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
17938
17939         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
17940
17941 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
17942             Kevin F. Quinn  <kevquinn@gentoo.org>
17943
17944         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
17945         * common.opt: Add -Wtrampolines.
17946         * doc/invoke.texi: Add -Wtrampolines.
17947
17948 2010-07-15  Jie Zhang  <jie@codesourcery.com>
17949
17950         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
17951         cortex_a8_issue_ls.
17952
17953 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
17954
17955         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
17956         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
17957
17958 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17959
17960         * config/spu/spu.c (reg_names): Remove prototype.
17961         (call_used_regs): Likewise.
17962
17963 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
17964
17965         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
17966         "unused" with attribute "used".
17967         (__JCR_END__): Likewise.
17968         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
17969         "used" attribute.
17970         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
17971
17972 2010-07-14  Richard Guenther  <rguenther@suse.de>
17973
17974         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
17975         (maybe_fixup_decls): Likewise.
17976         (input_gimple_stmt): Do not fixup anything.
17977         * lto-streamer-out.c (output_gimple_stmt): Make sure all
17978         non-automatic variable uses are wrapped inside a MEM_REF.
17979
17980 2010-07-14  Richard Henderson  <rth@redhat.com>
17981
17982         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
17983         for functions.
17984         * varasm.c (assemble_variable): Remove early exit for functions;
17985         assert that we're given a variable.
17986
17987 2010-07-14  Jie Zhang  <jie@codesourcery.com>
17988
17989         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
17990         cortex_a8_default when neon_type is not none.
17991
17992 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
17993
17994         * lower-subreg.c (subreg_context): New static bitmap.
17995         (decompose_multiword_subregs): Allocate and free it.
17996         (find_decomposable_subregs): Set a bit in it for a register that
17997         occurs in a subreg that changes mode but not size.
17998         (can_decompose_p): Test it instead of non_decomposable_context.
17999
18000 2010-07-14  Richard Guenther  <rguenther@suse.de>
18001
18002         PR tree-optimization/44824
18003         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
18004         is_gimple_mem_ref_addr.
18005         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
18006         non-decl_address_invariant_p addresses.
18007
18008 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18009
18010         * reload.c (find_reloads): Revert code to penalize small register
18011         classes that was brought in with the IRA merge.
18012
18013 2010-07-14  Richard Guenther  <rguenther@suse.de>
18014
18015         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
18016         as base of ARRAY_REFs.
18017
18018 2010-07-14  Richard Guenther  <rguenther@suse.de>
18019
18020         PR middle-end/44930
18021         * tree-pretty-print.c (do_niy): Do not print a newline.
18022
18023 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18024
18025         * ira-int.h (struct ira_object): New.
18026         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
18027         (struct ira_allocno): Remove members min, max,
18028         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
18029         conflict_allocnos_num and conflict_vec_p.  Add new member object.
18030         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
18031         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
18032         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
18033         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
18034         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
18035         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
18036         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
18037         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
18038         an ira_object_t rather than ira_allocno_t.  All uses changed.
18039         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
18040         contains a vector of ira_object_t; all uses changed.
18041         (ira_objects_num): Declare variable.
18042         (ira_create_allocno_object): Declare function.
18043         (ira_conflict_vector_profitable_p): Adjust prototype.
18044         (ira_allocate_conflict_vec): Renamed from
18045         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
18046         (ira_allocate_object_conflicts): Renamed from
18047         ira_allocate_allocno_conflicts; first arg now ira_object_t.
18048         (struct ira_object_iterator): New.
18049         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
18050         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
18051         to conflict_vec_p.  All uses changed.
18052         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
18053         Changed to take into account that conflicts are now tracked for
18054         objects.
18055         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
18056         Args changed to accept ira_object_t.  All uses changed.
18057         (allocnos_conflict_p): New static function.
18058         (collected_conflict_objects): Renamed from collected_allocno_objects;
18059         now a vector of ira_object_t.  All uses changed.
18060         (build_conflict_bit_table): Changed to take into account that
18061         conflicts are now tracked for objects.
18062         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
18063         (print_allocno_conflicts, ira_build_conflicts): Likewise.
18064         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
18065         setup_allocno_left_conflicts_size, allocno_reload_assign,
18066         fast_allocation): Likewise.
18067         * ira-lives.c (make_hard_regno_born, make_allocno_born)
18068         process_single_reg_class_operands, process_bb_node_lives): Likewise.
18069         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
18070         Likewise.
18071         * ira-build.c (ira_objects_num): New variable.
18072         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
18073         contains a vector of ira_object_t; all uses changed.
18074         (ira_object_id_map_vec): Corresponding change.
18075         (object_pool): New static variable.
18076         (initiate_allocnos): Initialize it.
18077         (finish_allocnos): Free it.
18078         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
18079         New functions.
18080         (ira_create_allocno): Don't set members that were removed.
18081         (ira_set_allocno_cover_class): Don't change conflict hard regs.
18082         (merge_hard_reg_conflicts): Changed to take into account that
18083         conflicts are now tracked for objects.
18084         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
18085         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
18086         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
18087         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
18088         setup_min_max_conflict_allocno_ids, ):  Likewise.
18089         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
18090         to ira_object_t; all callers changed.
18091         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
18092         to ira_object_t, all callers changed.
18093         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
18094         to ira_object_t, all callers changed.
18095         (conflict_check, curr_conflict_check_tick): Renamed from
18096         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
18097         changed.
18098         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
18099         arg changed to ira_object_t, all callers changed.
18100         (create_cap_allocno): Call ira_create_allocno_object.
18101         (finish_allocno): Free the corresponding object.
18102         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
18103         callers changed.  Adjusted for dealing with objects.
18104         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
18105         dealing with objects.
18106         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
18107
18108         * ira-int.h (struct live_range): Rename allocno member to object
18109         and change type to ira_object_t.
18110         (struct ira_object): New member live_ranges.
18111         (struct ira_allocno): Remove member live_ranges.
18112         (ALLOCNO_LIVE_RANGES): Remove.
18113         (OBJECT_LIVE_RANGES): New macro.
18114         (ira_create_live_range, ira_copy_live_range_list,
18115         ira_merge_live_range_list, ira_live_ranges_intersect_p,
18116         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
18117         * ira-build.c (ira_create_object): Initialize live ranges here.
18118         (ira_create_allocno): Not here.
18119         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
18120         changed to ira_object_t, all callers changed.
18121         (copy_live_range): Rename from copy_allocno_live_range, all callers
18122         changed.
18123         (ira_copy_live_range_list): Rename from
18124         ira_copy_allocno_live_range_list, all callers changed.
18125         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
18126         all callers changed.
18127         (ira_live_ranges_intersect_p): Rename from
18128         ira_allocno_live_ranges_intersect_p, all callers changed.
18129         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
18130         callers changed.
18131         (ira_finish_live_range_list): Rename from
18132         ira_finish_allocno_live_range_list, all callers changed.
18133         (change_object_in_range_list): Rename from change_allocno_in_range_list,
18134         last arg changed to ira_object_t, all callers changed.
18135         (finish_allocno): Changed to expect live ranges in the allocno's object.
18136         (move_allocno_live_ranges, copy_allocno_live_ranges,
18137         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
18138         ira_flattening, ira_build): Likewise.
18139         * ira-color.c (allocnos_have_intersected_live_ranges_p,
18140         slot_coalesced_allocno_live_ranges_intersect,
18141         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
18142         * ira-conflicts.c (build_conflict_bit_table): Likewise.
18143         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
18144         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
18145         make_allocno_dead, create_start_finish_chains,
18146         remove_some_program_points_and_update_live_ranges,
18147         ira_debug_live_range_list): Likewise.
18148
18149         * ira-int.h (ira_object_conflict_iterator): Rename from
18150         ira_allocno_conflict_iterator.
18151         (ira_object_conflict_iter_init): Rename from
18152         ira_allocno_conflict_iter_init, second arg changed to
18153         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
18154         FOR_EACH_ALLOCNO_CONFLICT.
18155         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
18156         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
18157         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
18158         * ira-conflicts.c (print_allocno_conflicts): Likewise.
18159
18160 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
18161
18162         PR other/44874
18163         * tree-dump.c (dump_options): Add enumerate_locals entry.
18164         Add TDF_NOID exclusion to all entry.
18165         * tree-dump.h (dump_enumerated_decls): Declare.
18166         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
18167         Don't display type uid.
18168         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
18169         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
18170         * tree-ssa-live.c: Include gimple.h.
18171         (numbered_tree_d): New struct.
18172         (numbered_tree): New typedef.
18173         (DEF_VEC_O (numbered_tree): New.
18174         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
18175         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
18176         (dump_enumerated_decls): Likewise.
18177         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
18178         debug info and flag_dump_final_insns, call dump_enumerated_decls.
18179         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
18180         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
18181
18182 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
18183
18184         * expmed.h (MAX_BITS_PER_WORD): Move to...
18185         * defaults.h (MAX_BITS_PER_WORD): ...here.
18186
18187 2010-07-13  DJ Delorie  <dj@redhat.com>
18188
18189         * config/h8300/h8300.c (h8300_init_once): Default to
18190         -fstrict_volatile_bitfields.
18191
18192         * config/sh/sh.c (sh_override_options): Default to
18193         -fstrict_volatile_bitfields.
18194
18195         * config/rx/rx.c (rx_option_override): New.
18196
18197         * config/m32c/m32c.c (m32c_override_options): Default to
18198         -fstrict_volatile_bitfields.
18199
18200 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
18201
18202         * tree.h (build_function_call_expr): Delete.
18203         (build_call_expr_loc_array): New function.
18204         (build_call_expr_loc_vec): New function.
18205         * tree-flow.h (struct omp_region): Change type of ws_args field
18206         to a VEC.
18207         * builtins.c (build_function_call_expr): Delete.
18208         (build_call_expr_loc_array): New function.
18209         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
18210         (build_call_expr): Likewise.
18211         (build_call_expr_loc_vec): New function.
18212         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
18213         build_function_call_expr.
18214         * expr.c (emutls_var_address): Likewise.
18215         * varasm.c (emutls_common_1): Likewise.
18216         * omp-low.c (expand_omp_atomic_mutex): Likewise.
18217         (expand_omp_taskreg): Adjust for new type of region->ws_args.
18218         (get_ws_args_for): Return a VEC instead of a tree.
18219         (expand_parallel_call): Call build_call_expr_loc_vec instead of
18220         build_function_call_expr.
18221         * stor-layout.c (self_referential_size): Likewise.
18222
18223 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
18224
18225         PR testsuite/44701
18226         * recog.c (constrain_operands): Allow side-effects in memory
18227         operands if either < or > constraint is used, rather than if
18228         both < and > is used.
18229
18230 2010-07-13  Richard Guenther  <rguenther@suse.de>
18231
18232         PR middle-end/44911
18233         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
18234         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
18235         without name.
18236
18237 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
18238
18239         PR target/44761
18240         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
18241         to variable emited.
18242         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
18243         * config/sh/sh.md (symGOT_load): Likewise.
18244         (symDTPOFF2reg): Likewise.
18245         (symTPOFF2reg): Likewise.
18246
18247 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18248
18249         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
18250         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
18251
18252 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18253
18254         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
18255         explanation.
18256         Find ucontext_t * on Solaris 11.
18257         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
18258         Handle new Solaris 11 __sighndlr patterns.
18259
18260 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
18261
18262         PR debug/44901
18263         * vec.h (VEC_block_remove): Fix comment.
18264         * tree-ssa-live.c (remove_unused_locals): Don't use
18265         VEC_unordered_remove on local_decls, instead replace a single
18266         vector element in each iteration if at least one element had
18267         to be removed and VEC_truncate at the end.
18268         * omp-low.c (expand_omp_taskreg): Likewise.
18269
18270 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18271
18272         * c-decl.c (finish_function): Fix typo in comment.
18273
18274 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
18275
18276         PR bootstrap/44921
18277         * postreload.c (move2add_use_add3_insn): Silence gcc warning
18278         on min_regno.
18279
18280 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
18281
18282         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
18283         (simplify_stmt_using_ranges): Use it.
18284
18285 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18286
18287         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
18288         member.  Do not mark as GTY(()).
18289         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
18290         (spu_builtin_decls): New static variable.
18291         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
18292         (spu_init_builtins): Likewise.
18293         (spu_builtin_mul_widen_even): Likewise.
18294         (spu_builtin_mul_widen_odd): Likewise.
18295         (spu_builtin_mask_for_load): Likewise.
18296         (spu_builtin_vec_perm): Likewise.
18297         * config/spu/spu-c.c: Include "target.h".
18298         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
18299         of using spu_builtins[].fndecl.
18300
18301 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18302
18303         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
18304         imply -minterlink-mips16.
18305
18306 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18307
18308         * config/mips/mips.h (mips16_globals): Declare.
18309         (SWITCHABLE_TARGET): Define.
18310         * config/mips/mips.c: Include target-globals.h.
18311         (mips16_globals): New variable.
18312         (mips_set_mips16_mode): Use save_target_globals and
18313         restore_target_globals instead of target_reinit.
18314
18315 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18316
18317         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
18318         to say that the function can be called more than once.
18319         * target-globals.c (save_target_globals): Call init_reg_sets.
18320
18321 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18322
18323         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
18324         * bb-reorder.h: New file.
18325         * bb-reorder.c (default_target_bb_reorder): New variable.
18326         (this_target_bb_reorder): New conditional variable.
18327         (uncond_jump_length): Redefine as a macro.
18328         * target-globals.h (this_target_bb_reorder): Declare.
18329         (target_globals): Add a bb_reorder field.
18330         (restore_target_globals): Copy the bb_reorder field to
18331         this_target_bb-reorder.
18332         * target-globals.c: Include bb-reorder.h.
18333         (default_target_globals): Initialize the bb_reorder field.
18334         (save_target_globals): Likewise.
18335
18336 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18337
18338         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
18339         * gcse.h: New file.
18340         * gcse.c: Include gcse.h.
18341         (default_target_gcse): New variable.
18342         (this_target_gcse): New conditional variable.
18343         (can_copy): Redefine as a macro.
18344         (can_copy_init_p): New macro.
18345         (can_copy_p): Remove can_copy_init_p.
18346         * target-globals.h (this_target_gcse): Declare.
18347         (target_globals): Add a gcse field.
18348         (restore_target_globals): Copy the gcse field to this_target_gcse.
18349         * target-globals.c: Include gcse.h.
18350         (default_target_globals): Initialize the gcse field.
18351         (save_target_globals): Likewise.
18352
18353 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18354
18355         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
18356         and x_ira_prohibited_mode_move_regs_initialized_p.
18357         (ira_prohibited_mode_move_regs): Redefine as a macro.
18358         * ira.c (ira_prohibited_mode_move_regs): Delete.
18359         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
18360
18361 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18362
18363         * reload.h (target_reload): Add x_cached_reg_save_code and
18364         x_cached_reg_restore_code.
18365         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
18366         Redefine as macros.
18367
18368 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18369
18370         * Makefile.in (target-globals.o): Depend on builtins.h.
18371         * builtins.h: New file.
18372         * builtins.c: Include builtins.h.
18373         (default_target_builtins): New variable.
18374         (this_target_builtins): New conditional variable.
18375         (apply_args_mode, apply_result_mode): Redefine as macros.
18376         * target-globals.h (this_target_builtins): Declare.
18377         (target_globals): Add a builtins field.
18378         (restore_target_globals): Copy the builtins field to
18379         this_target_builtins.
18380         * target-globals.c: Include builtins.h.
18381         (default_target_globals): Initialize the builtins field.
18382         (save_target_globals): Likewise.
18383
18384 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18385
18386         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
18387         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
18388         from expmed.c.
18389         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
18390         (alg_hash, alg_hash_used_p): New macros.
18391         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
18392         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
18393         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
18394
18395 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18396
18397         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
18398         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
18399         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
18400         (this_op_costs, costs_classes): Redefine as macros.
18401         (record_reg_classes): Don't take op_costs as a parameter.
18402         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
18403         (scan_one_insn): Update call to record_operand_costs.
18404
18405 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18406
18407         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
18408         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
18409         (target_ira_int): New structure.
18410         (default_target_ira_int): Declare.
18411         (this_target_ira_int): Declare as a variable or define as a macro.
18412         (ira_reg_mode_hard_regset, ira_register_move_cost)
18413         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
18414         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
18415         (prohibited_class_mode_regs, ira_important_classes_num)
18416         (ira_important_classes, ira_reg_class_intersect)
18417         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
18418         (ira_reg_class_union): Redefine as macros.
18419         * ira.h (target_ira): New structure.
18420         (default_target_ira): Declare.
18421         (this_target_ira): Declare as a variable or define as a macro.
18422         (ira_available_class_regs, ira_hard_regno_cover_class)
18423         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
18424         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
18425         (ira_class_hard_regs_num): Redefine as macros.
18426         * ira.c (default_target_ira, default_target_ira_int): New variables.
18427         (this_target_ira, this_target_ira_int): New conditional variables.
18428         (ira_reg_mode_hard_regset, ira_memory_move_cost)
18429         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
18430         (ira_class_subset_p): Delete.
18431         (no_unit_alloc_regs): Redefine as a macro.
18432         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
18433         (ira_class_hard_regs_num, ira_class_hard_reg_index)
18434         (ira_available_class_regs): Delete.
18435         (alloc_reg_class_subclasses): Redefine as a macro.
18436         (ira_reg_class_cover_size, ira_reg_class_cover)
18437         (ira_important_classes_num, ira_important_classes)
18438         (ira_important_class_nums, ira_class_translate): Delete.
18439         (cover_class_order): Document the variable's lifetime.
18440         (reorder_important_classes): Don't set ira_important_class_nums.
18441         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
18442         (ira_reg_class_super_classes, ira_reg_class_union)
18443         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
18444         Delete.
18445         (setup_reg_class_nregs): Don't set ira_max_regs.
18446         (prohibited_class_mode_regs): Delete.
18447         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
18448         (target_globals): Add ira and ira_int fields.
18449         (restore_target_globals): Copy the ira field to this_target_ira
18450         and the ira_int field to this_target_ira_int.
18451         * target-globals.c: Include ira-int.h.
18452         (default_target_globals): Initialize the ira and ira_int fields.
18453         (save_target_globals): Likewise.
18454
18455 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18456
18457         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
18458         * cfgloop.h (target_cfgloop): New structure.
18459         (default_target_cfgloop): Declare.
18460         (this_target_cfgloop): Declare as a variable or define as a macro.
18461         (target_avail_regs, target_clobbered_regs, target_res_regs)
18462         (target_reg_cost, target_spill_cost): Redefine as macros.
18463         * cfgloopanal.c (default_target_cfgloop): New variable.
18464         (this_target_cfgloop): New conditional variable.
18465         (target_avail_regs, target_clobbered_regs, target_res_regs)
18466         (target_reg_cost, target_spill_cost): Delete.
18467         * target-globals.h (this_target_cfgloop): Declare.
18468         (target_globals): Add a cfgloop field.
18469         (restore_target_globals): Copy the cfgloop field to
18470         this_target_cfgloop.
18471         * target-globals.c: Include cfgloop.h.
18472         (default_target_globals): Initialize the cfgloop field.
18473         (save_target_globals): Likewise.
18474
18475 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18476
18477         * regs.h (target_regs): Add x_direct_load, x_direct_store and
18478         x_float_extend_from_mem.
18479         (direct_load, direct_store, float_extend_from_mem): New macros.
18480         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
18481
18482 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18483
18484         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
18485         (target-globals.o): Depend on $(LIBFUNCS_H).
18486         * libfuncs.h: Include hashtab.h.
18487         (libfunc_entry): Moved from optabs.c.
18488         (target_libfuncs): New structure.
18489         (default_target_libfuncs): Declare.
18490         (this_target_libfuncs): Declare as a variable or define as a macro.
18491         (libfunc_table): Redefine as a macro.
18492         * optabs.c (default_target_libfuncs): New variable.
18493         (this_target_libfuncs): New conditional variable.
18494         (libfunc_table): Delete.
18495         (libfunc_entry): Moved to optabs.h.
18496         (libfunc_hash): Redefine as a macro.
18497         (hash_libfunc, eq_libfunc): Fix comments.
18498         (init_optabs): Use libfunc_hash to detect cases where the function
18499         has already been called.  Clear the hash table instead of
18500         recreating it.
18501         * target-globals.h (this_target_libfuncs): Declare.
18502         (target_globals): Add a libfuncs field.
18503         (restore_target_globals): Copy the libfuncs field to
18504         this_target_libfuncs.
18505         * target-globals.c: Include libfuncs.h.
18506         (default_target_globals): Initialize the libfuncs field.
18507         (save_target_globals): Likewise.
18508
18509 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18510
18511         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
18512         in all dependency lists.
18513
18514 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18515
18516         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
18517         * optabs.h (target_optabs): New structure.
18518         (default_target_optabs): Declare.
18519         (this_target_optabs): Declare as a variable or define as a macro.
18520         (optab_table, convert_optab_table, direct_optab_table): Redefine
18521         as macros.
18522         * optabs.c (default_target_optabs): New variable.
18523         (this_target_optabs): New conditional variable.
18524         (optab_table, convert_optab_table, direct_optab_table): Delete.
18525         * target-globals.h (this_target_optabs): Declare.
18526         (target_globals): Add a optabs field.
18527         (restore_target_globals): Copy the optabs field to
18528         this_target_optabs.
18529         * target-globals.c: Include expr.h and optabs.h.
18530         (default_target_globals): Initialize the optabs field.
18531         (save_target_globals): Likewise.
18532
18533 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18534
18535         * flags.h (target_flagstate): Add x_flag_excess_precision.
18536         (flag_excess_precision): Redefine as a macro.
18537         * toplev.c (flag_excess_precision): Delete.
18538
18539 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18540
18541         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
18542         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
18543         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
18544         (no_caller_save_reg_set): Redefine as a macro.
18545         * reload.h (target_reload): Add x_caller_save_initialized_p and
18546         x_regno_save_mode.
18547         (caller_save_initialized_p): Redefine as a macro.
18548         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
18549         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
18550         (regno_save_mode): Redefine as a macro.
18551
18552 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18553
18554         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
18555         * expmed.h: New file.
18556         * expmed.c (default_target_costs): New variable.
18557         (this_target_costs): New conditional variable.
18558         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
18559         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
18560         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
18561         * target-globals.h (this_target_expmed): Declare.
18562         (target_globals): Add a expmed field.
18563         (restore_target_globals): Copy the expmed field to
18564         this_target_expmed.
18565         * target-globals.c: Include expmed.h.
18566         (default_target_globals): Initialize the expmed field.
18567         (save_target_globals): Likewise.
18568
18569 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18570
18571         * Makefile.in (target-globals.o): Depend on reload.h.
18572         * reload.h (target_reload): New structure.
18573         (default_target_reload): Declare.
18574         (this_target_reload): Declare as a variable or define as a macro.
18575         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
18576         * reload1.c (default_target_reload): New variable
18577         (this_target_reload): New conditional variable.
18578         (indirect_symref_ok, double_reg_address_ok): Delete.
18579         (spill_indirect_levels): Redefine as a macro.
18580         * target-globals.h (this_target_reload): Declare.
18581         (target_globals): Add a reload field.
18582         (restore_target_globals): Copy the reload field to
18583         this_target_reload.
18584         * target-globals.c: Include hard-reg-set.h.
18585         (default_target_globals): Initialize the reload field.
18586         (save_target_globals): Likewise.
18587
18588 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18589
18590         * rtl.h (target_rtl): Add x_static_reg_base_value.
18591         * alias.c (static_reg_base_value): Redefine as a macro.
18592
18593 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18594
18595         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
18596         (GTFILES): Remove reginfo.c.
18597         * rtl.h (target_rtl): Add x_top_of_stack.
18598         (top_of_stack): New macro.
18599         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
18600         (top_of_stack): Delete.
18601
18602 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18603
18604         * regs.h (target_regs): Add x_hard_regs_of_mode,
18605         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
18606         x_may_move_out_cost and x_last_mode_for_init_move_cost.
18607         (have_regs_of_mode, contains_reg_of_mode, move_cost)
18608         (may_move_in_cost, may_move_out_cost): Redefine as macros.
18609         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
18610         (may_move_in_cost, may_move_out_cost): Delete.
18611         (last_mode_for_init_move_cost): Redefine as a macro.
18612
18613 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18614
18615         * hard-reg-set.h (target_hard_regs): New structure.
18616         (default_target_hard_regs): Declare.
18617         (this_target_hard_regs): Declare as a variable or define as a macro.
18618         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
18619         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
18620         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
18621         (reg_class_size, reg_class_subclasses, reg_class_subunion)
18622         (reg_class_superunion, reg_names): Redefine as macros.
18623         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
18624         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
18625         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
18626         (reg_class_contents, reg_class_size, reg_class_subclasses)
18627         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
18628         (default_target_hard_regs): New variable
18629         (this_target_hard_regs, initial_call_really_used_regs)
18630         (initial_reg_alloc_order): New conditional variables.
18631         (initial_reg_names): New variable.
18632         (init_reg_sets): Assert that initial_call_really_used_regs,
18633         initial_reg_alloc_order and initial_reg_names
18634         are all the same size as their variable counterparts.  Use them to
18635         initialize those counterparts.
18636         * target-globals.h (this_target_hard_regs): Declare.
18637         (target_globals): Add a hard_regs field.
18638         (restore_target_globals): Copy the hard_regs field to
18639         this_target_hard_regs.
18640         * target-globals.c: Include hard-reg-set.h.
18641         (default_target_globals): Initialize the hard_regs field.
18642         (save_target_globals): Likewise.
18643
18644 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18645
18646         * Makefile.in (target-globals.o): Depend on $(RTL_H).
18647         * rtl.h (target_rtl): New structure.
18648         (default_target_rtl): Declare.
18649         (this_target_rtl): Declare as a variable or define as a macro.
18650         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
18651         Redefine as macros.
18652         * emit-rtl.c (default_target_rtl): New variable.
18653         (this_target_rtl): New conditional variable.
18654         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
18655         (return_address_pointer_rtx): Delete.
18656         (initial_regno_reg_rtx): New macro.
18657         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
18658         (init_emit_regs): Likewise.
18659         * target-globals.h (this_target_rtl): Declare.
18660         (target_globals): Add a rtl field.
18661         (restore_target_globals): Copy the rtl field to this_target_rtl.
18662         * target-globals.c: Include rtl.h.
18663         (default_target_globals): Initialize the rtl field.
18664         (save_target_globals): Likewise.
18665
18666 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18667
18668         * Makefile.in (target-globals.o): Depend on $(REGS_H).
18669         * regs.h (target_reg_modes): New structure.
18670         (default_target_reg_modes): Declare.
18671         (this_target_reg_modes): Declare as a variable or define as a macro.
18672         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
18673         * reginfo.c (default_target_reg_modes): New variable.
18674         (this_target_reg_modes): New conditional variable.
18675         (hard_regno_nregs, reg_raw_mode): Delete.
18676         * target-globals.h (this_target_regs): Declare.
18677         (target_globals): Add a regs field.
18678         (restore_target_globals): Copy the regs field to this_target_regs.
18679         * target-globals.c: Include regs.h.
18680         (default_target_globals): Initialize the regs field.
18681         (save_target_globals): Likewise.
18682
18683 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18684
18685         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
18686         * doc/tm.texi: Regenerate.
18687         * Makefile.in (OBJS-common): Add target-globals.o.
18688         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
18689         and target-globals.h.
18690         (target-globals.o): New rule.
18691         (GTFILES): Include $(srcdir)/target-globals.h.
18692         * defaults.h (SWITCHABLE_TARGET): Define.
18693         * gengtype.c (open_base_files): Add target-globals.h to the
18694         list of includes.
18695         * target-globals.h: New file.
18696         * target-globals.c: Likewise.
18697
18698         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
18699         * flags.h (target_flag_state): New structure.
18700         (default_target_flag_state): Declare.
18701         (this_target_flag_state): Declare as a variable or define as a macro.
18702         (align_loops_log): Redefine as a macro.
18703         (align_loops_max_skip, align_jumps_log): Likewise.
18704         (align_jumps_max_skip, align_labels_log): Likewise.
18705         (align_labels_max_skip, align_functions_log): Likewise.
18706         * toplev.c (default_target_flag_state): New variable.
18707         (this_target_flag_state): New conditional variable.
18708         (align_loops_log): Delete.
18709         (align_loops_max_skip, align_jumps_log): Likewise.
18710         (align_jumps_max_skip, align_labels_log): Likewise.
18711         (align_labels_max_skip, align_functions_log): Likewise.
18712         * target-globals.h (this_target_flag_state): Declare.
18713         (target_globals): Add a flag_state field.
18714         (restore_target_globals): Copy the flag_state field to
18715         this_target_flag_state.
18716         * target-globals.c: Include flags.h.
18717         (default_target_globals): Initialize the flag_state field.
18718         (save_target_globals): Likewise.
18719
18720 2010-07-12  Jie Zhang  <jie@codesourcery.com>
18721
18722         * postreload.c (reg_symbol_ref[]): New.
18723         (move2add_use_add2_insn): New.
18724         (move2add_use_add3_insn): New.
18725         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
18726         (move2add_note_store): Likewise.
18727
18728 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
18729
18730         PR rtl-optimization/44752
18731         * genautomata.c (main): Don't emit an empty file even if there
18732         is no automaton.
18733
18734 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18735
18736         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
18737         ix86_solaris_return_in_memory.
18738         * config/i386-protos.h: Reflect this.
18739         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
18740         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
18741         Move ...
18742         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
18743
18744 2010-07-12  Jie Zhang  <jie@codesourcery.com>
18745
18746         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
18747         align the stack when it's going to be saved.
18748
18749 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18750
18751         PR pch/14940
18752         * config/host-solaris.c (mmap_fixed): New function.
18753         (sol_gt_pch_get_address): Use it.
18754         (sol_gt_pch_use_address): Likewise.
18755
18756 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18757
18758         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
18759         pentiumpro on Solaris 8 and 9/x86.
18760         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
18761         Document SSE/SSE2 support.
18762         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
18763
18764 2010-07-12  Andi Kleen  <ak@linux.intel.com>
18765
18766         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
18767         instead of gcc_assert to print better error message for multiple
18768         prevailing defs.
18769
18770 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
18771
18772         * config/i386/i386.c (ix86_asm_output_function_label): Change format
18773         string placeholder from 0x%x to %#x.
18774         (ix86_code_end): Use putc to output '\n'.
18775         (ix86_print_operand) <case ';'>: Use putc to output ';'.
18776
18777 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
18778
18779         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
18780         in directive -export.
18781
18782 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
18783
18784         * reginfo.h (reg_classes_intersect_p): Change arguments type to
18785         reg_class_t.
18786         * rtl.h (reg_classes_intersect_p): Adjust prototype.
18787
18788         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
18789         Remove macros.
18790         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
18791         rs6000_memory_move_cost): Remove
18792         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
18793         TARGET_MEMORY_MOVE_COST): Define.
18794         (rs6000_register_move_cost): Make static. Change arguments type from
18795         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
18796         (rs6000_memory_move_cost): Make static. Change arguments type from
18797         'enum reg_class' to reg_class_t.
18798
18799 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
18800
18801         PR middle-end/42505
18802         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
18803         lookup code into....
18804         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
18805         new functions.
18806         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
18807         * cfgloopanal.c (target_clobbered_regs): Define.
18808         (init_set_costs): Initialize target_clobbered_regs.
18809         (estimate_reg_pressure_cost): Add call_p argument.  When true,
18810         adjust the number of available registers to exclude the
18811         call-clobbered registers.
18812         * cfgloop.h (target_clobbered_regs): Declare.
18813         (estimate_reg_pressure_cost): Adjust declaration.
18814         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
18815         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
18816         (determine_set_costs): Dump target_clobbered_regs.
18817         (loop_body_includes_call): New function.
18818         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
18819         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
18820         call_p flag through.
18821         (best_gain_for_invariant): Likewise.
18822         (find_invariants_to_move): Likewise.
18823         (move_single_loop_invariants): Likewise, using already-computed
18824         has_call field.
18825
18826 2010-07-10  Richard Guenther  <rguenther@suse.de>
18827             Joern Rennecke  <joern.rennecke@embecosm.com>
18828
18829         PR debug/44832
18830         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
18831         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
18832         unless they have DECL_IGNORED_P set.
18833
18834 2010-07-10  Richard Guenther  <rguenther@suse.de>
18835
18836         PR lto/44889
18837         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
18838         helper function.
18839         (gimple_types_compatible_p): Similar to pointed-to
18840         types allow and merge a mix of complete and incomplete aggregate.
18841         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
18842         (iterative_hash_gimple_type): Adjust for that.
18843
18844 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
18845
18846         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
18847
18848 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
18849
18850         PR objc/44140
18851         * config/darwin.c (output_objc_section_asm_op): Save and restore
18852         section when outputting ObjC section list.
18853
18854 2010-07-09  Jan Hubicka  <jh@suse.cz>
18855
18856         * lto-streamer-out.c (produce_symtab): Do not write alias
18857         cgraph/varpool nodes.
18858
18859 2010-07-09  Jan Hubicka  <jh@suse.cz>
18860
18861         * tree-inline.c (declare_return_variable): Fix ICE while
18862         inlining DECL_BY_VALUE function not in SSA form
18863
18864 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
18865
18866         PR tree-optimization/44576
18867         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
18868         New.  Pull out from is_loop_prefetching_profitable to implement
18869         the trip count to ahead ratio heuristic.
18870         (mem_ref_count_reasonable_p): New.  Pull out from
18871         is_loop_prefetching_profitable to implement the instruction to
18872         memory reference ratio heuristic.  Also consider not reasonable if
18873         the memory reference count is above a threshold (to avoid
18874         explosive compilation time.
18875         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
18876         is_loop_prefetching_profitable to implement the instruction to
18877         prefetch ratio heuristic.
18878         (is_loop_prefetching_profitable): Removed.
18879         (loop_prefetch_arrays): Distribute the cost analysis across the
18880         function to allow early exit of the prefetch analysis.
18881         is_loop_prefetching_profitable is splitted into three functions,
18882         with each one called as early as possible.
18883         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
18884         number of memory references in a loop is considered too many.
18885
18886 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
18887
18888         * reload.c (find_reloads): Don't clear badop if we have a winreg
18889         alternative, but not win, and the class only has fixed regs.
18890         * hard-reg-set.h (class_only_fixed_regs): Declare.
18891         * reginfo.c (class_only_fixed_regs): New array.
18892         (init_reg_sets_1): Initialize it.
18893         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
18894         discourage alternatives using the stack pointer.
18895
18896         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
18897
18898         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
18899
18900         * config/arm/arm.md (cbranchqi4): Fix array size.
18901         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
18902         calculating length.
18903
18904 2010-07-09  Richard Guenther  <rguenther@suse.de>
18905
18906         * gimple.c (struct type_fixup_s): New struct and VEC type.
18907         (gimple_register_type_fixups): New static global.
18908         (gimple_queue_type_fixup): New function.
18909         (gimple_types_compatible_p): Queue type fixups instead of
18910         applying them here.
18911         (gimple_register_type): Apply queued fixups for the
18912         canonical type.  Empty the type fixup queue.
18913
18914 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
18915
18916         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
18917         * configure: Regenerate.
18918         * config.in: Ditto.
18919
18920 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
18921             Denys Vlasenko  <dvlasenk@redhat.com>
18922             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
18923
18924         PR tree-optimization/28632
18925         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
18926         (extract_range_from_binary_expr): Further optimize
18927         BIT_AND_EXPR and BIT_IOR_EXPR.
18928
18929 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
18930
18931         * tree-if-conv.c (fold_or_predicates): New.
18932         (add_to_predicate_list): Call it.
18933
18934 2010-07-09  Richard Guenther  <rguenther@suse.de>
18935
18936         PR middle-end/44890
18937         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
18938         if base is a pointer.
18939         * tree-cfg.c (verify_expr): Update MEM_REF checking.
18940
18941 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
18942
18943         PR target/44877
18944         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
18945         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
18946         builtin mask for load/store builtins.
18947
18948 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
18949
18950         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
18951         for "lock addl".
18952         * configure: Regenerate.
18953         * config/i386/i386.c (ix86_print_operand) <case ';'>:
18954         Remove TARGET_MACHO.
18955
18956 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
18957
18958         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
18959         default ISA flags.
18960         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
18961
18962 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
18963
18964         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
18965
18966 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
18967
18968         * config/picochip/picochip.md (commsTestPort): Emit more
18969         efficient sequence for tstport instruction.
18970
18971 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
18972
18973         * config/i386/i386.c (ix86_veclib_handler): Make static.
18974
18975 2010-07-09  Richard Guenther  <rguenther@suse.de>
18976
18977         PR tree-optimization/44852
18978         * tree-ssa-alias.c: Include toplev.h for exact_log2.
18979         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
18980         in MEM_REF.
18981         (indirect_refs_may_alias_p): Likewise.
18982         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
18983
18984 2010-07-09  Richard Guenther  <rguenther@suse.de>
18985
18986         PR tree-optimization/44882
18987         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
18988         sets do conflict.
18989         (vectorizable_load): Likewise.
18990
18991 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
18992
18993         PR target/40657
18994         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
18995         All callers changed.
18996         Handle the case when we're called for the epilogue.
18997         (thumb_unexpanded_epilogue): Use it.
18998         (thumb1_expand_epilogue): Likewise.
18999
19000 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19001
19002         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
19003         both ranges are range_int_cst_p with non-negative minimum,
19004         try harder to derive smaller range.
19005
19006 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19007
19008         * genrecog.c: Include diagnostic-core.h before toplev.h.
19009         * genoutput.c: Likewise.
19010         * genextract.c: Likewise.
19011         * genautomata.c: Likewise.
19012         * genemit.c: Likewise.
19013         * genpeep.c: Likewise.
19014         * genattrtab.c: Likewise.
19015         * genconditions.c: Likewise.
19016         * genpreds.c: Likewise.
19017
19018 2010-07-08  Andi Kleen  <ak@linux.intel.com>
19019
19020         * lto-section-in.c (lto_section_name): Add missing comma.
19021
19022 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
19023
19024         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
19025         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
19026         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
19027         (ia64_override_options): Rename to...
19028         (ia64_option_override): ... this one. Make static.
19029
19030 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19031
19032         PR middle-end/44843
19033         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
19034         pointed-to type of the offset in a MEM_REF to compute the alignment.
19035
19036 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
19037
19038         * final.c (final_scan_insn): Replace
19039         TARGET_UNWIND_INFO macro check by unwind_emit
19040         hook NULL check.
19041         * targhooks.c (default_unwind_emit): Removed.
19042         * targhooks.h (default_unwind_emit): Likewise.
19043         * target.def (unwind_emit): Set default value to NULL.
19044
19045         * config/i386/i386-protos.h (ix86_asm_output_function_label):
19046         New prototype.
19047         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
19048         for NULL fntype argument and allow 64-bit targets.
19049         (ix86_asm_output_function_label): New function.
19050         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
19051         (ix86_handle_fndecl_attribute): Likewise.
19052         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
19053         * doc/doc/tm.texi: Regenerated.
19054         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
19055         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
19056         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
19057         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
19058         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
19059         * config/elfos.h: Likewise.
19060         * config/i386/cygming.h: Likewise.
19061         * config/netbsd-aout.h: Likewise.
19062         * config/openbsd.h: Likewise.
19063         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
19064         by ix86_asm_output_function_label function call.
19065         * varasm.c (assemble_start_function): Use
19066         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
19067
19068 2010-07-08  Jan Hubicka  <jh@suse.cz>
19069
19070         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
19071         New function.
19072         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
19073         Declare.
19074         * ipa-cp.c (ipcp_estimate_growth): Use it.
19075         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
19076         Likewise.
19077
19078 2010-07-08  Jan Hubicka  <jh@suse.cz>
19079
19080         * tree-inline.c (declare_return_variable): Allocate annotation for new
19081         temporary.
19082
19083 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
19084
19085         PR tree-optimization/44710
19086         * tree-if-conv.c (parse_predicate): New.
19087         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
19088         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
19089
19090 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
19091
19092         * common.opt (ftree-loop-if-convert): New flag.
19093         * doc/invoke.texi (ftree-loop-if-convert): Documented.
19094         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
19095         when flag_tree_loop_if_convert is set.
19096
19097 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
19098
19099         * config/i386/i386.c: Use short syntax for function calls
19100         through function pointers.
19101         * config/i386/i386.md: Ditto.
19102
19103 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19104
19105         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
19106
19107 2010-07-08  Richard Guenther  <rguenther@suse.de>
19108
19109         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
19110         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
19111
19112 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
19113
19114         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
19115         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
19116         (loc_list_from_tree): Likewise.
19117         (output_loc_operands): Handle outputting DW_OP_const[48]u
19118         with loc->dtprel set.
19119         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
19120
19121 2010-07-08  Jan Hubicka  <jh@suse.cz>
19122
19123         * ipa.c: Include pointer-set.h
19124         (cgraph_externally_visible_p): New attribute ALIASED;
19125         when in LTO, hidden symbols are local unless they are aliased.
19126         (function_and_variable_visibility): Compute aliased nodes;
19127         handle LTO and hidden symbol on functions and vars.
19128         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
19129         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
19130
19131 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19132
19133         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
19134         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19135         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19136         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19137         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19138         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
19139         (ix86_gen_probe_stack_range): Likewise.
19140         (override_options): Set them.
19141         (ix86_target_stack_probe): New function.
19142         (ix86_compute_frame_layout): Force use of push instructions to
19143         save registers if stack checking with probes is enabled.
19144         (get_scratch_register_on_entry): New function.
19145         (release_scratch_register_on_entry): Likewise.
19146         (ix86_adjust_stack_and_probe): Likewise.
19147         (output_adjust_stack_and_probe): Likewise.
19148         (ix86_emit_probe_stack_range): Likewise.
19149         (output_probe_stack_range): Likewise.
19150         (ix86_expand_prologue): Emit stack checking code if static built-in
19151         stack checking is enabled.
19152         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
19153         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
19154         (output_adjust_stack_and_probe): Likewise.
19155         (output_probe_stack_range): Likewise.
19156         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
19157         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
19158         TARGET_STACK_PROBE.
19159         (allocate_stack_worker_64): Likewise.
19160         (allocate_stack): Likewise.
19161         (adjust_stack_and_probe): New insn.
19162         (probe_stack_range): Likewise.
19163
19164 2010-07-08  Richard Guenther  <rguenther@suse.de>
19165
19166         PR tree-optimization/44831
19167         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
19168         a MEM_REF preserving TBAA info of the original dereference.
19169         Dereference the original pointer if the address is not invariant.
19170         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
19171         at least one invariant address that we are going to dereference.
19172
19173 2010-07-08  Richard Guenther  <rguenther@suse.de>
19174
19175         PR tree-optimization/44861
19176         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
19177         information when building MEM_REFs.
19178         (vectorizable_load): Likewise.
19179         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
19180
19181 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19182
19183         * config/sol2-c.c: Do not include diagnostic-core.h.
19184
19185 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19186
19187         PR bootstrap/44768
19188         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
19189         with respect to current_function_decl. Pass decl of the function.
19190         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
19191         * ipa-inline.c (compute_inline_parameters): Pass decl to
19192         estimated_stack_frame_size.
19193
19194 2010-07-08  Richard Guenther  <rguenther@suse.de>
19195
19196         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
19197         New function.
19198         (valueize_refs): Call it.
19199
19200 2010-07-08  Richard Guenther  <rguenther@suse.de>
19201
19202         PR rtl-optimization/44838
19203         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
19204         SSA form do not use pointer equivalence.
19205
19206 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19207
19208         * dwarf2out.c (AT_linkage_name): Delete.
19209         (add_linkage_attr): New function.
19210         (add_linkage_name): Call it to emit the linkage attribute.
19211         (dwarf2out_finish): Likewise.
19212         (move_linkage_attr): Explicitly accept both attribute variants.
19213
19214 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19215
19216         * toplev.h: Do not include diagnostic-core.h.
19217         Include diagnostic-core.h in every file that includes toplev.h.
19218         * c-tree.h: Do not include toplev.h.
19219         * pretty-print.h: Update comment.
19220         * Makefile.in: Update dependencies.
19221         * alias.c: Include diagnostic-core.h in every file that includes
19222         toplev.h.
19223         * attribs.c: Likewise.
19224         * auto-inc-dec.c: Likewise.
19225         * bb-reorder.c: Likewise.
19226         * bt-load.c: Likewise.
19227         * caller-save.c: Likewise.
19228         * calls.c: Likewise.
19229         * cfg.c: Likewise.
19230         * cfganal.c: Likewise.
19231         * cfgbuild.c: Likewise.
19232         * cfgcleanup.c: Likewise.
19233         * cfghooks.c: Likewise.
19234         * cfgloop.c: Likewise.
19235         * combine.c: Likewise.
19236         * config/alpha/alpha.c: Likewise.
19237         * config/arc/arc.c: Likewise.
19238         * config/arm/arm.c: Likewise.
19239         * config/arm/pe.c: Likewise.
19240         * config/avr/avr.c: Likewise.
19241         * config/bfin/bfin.c: Likewise.
19242         * config/cris/cris.c: Likewise.
19243         * config/crx/crx.c: Likewise.
19244         * config/darwin-c.c: Likewise.
19245         * config/darwin.c: Likewise.
19246         * config/fr30/fr30.c: Likewise.
19247         * config/frv/frv.c: Likewise.
19248         * config/h8300/h8300.c: Likewise.
19249         * config/host-darwin.c: Likewise.
19250         * config/i386/i386.c: Likewise.
19251         * config/i386/netware.c: Likewise.
19252         * config/i386/nwld.c: Likewise.
19253         * config/i386/winnt-cxx.c: Likewise.
19254         * config/i386/winnt-stubs.c: Likewise.
19255         * config/i386/winnt.c: Likewise.
19256         * config/ia64/ia64-c.c: Likewise.
19257         * config/ia64/ia64.c: Likewise.
19258         * config/iq2000/iq2000.c: Likewise.
19259         * config/lm32/lm32.c: Likewise.
19260         * config/m32c/m32c-pragma.c: Likewise.
19261         * config/m32c/m32c.c: Likewise.
19262         * config/m32r/m32r.c: Likewise.
19263         * config/m68hc11/m68hc11.c: Likewise.
19264         * config/m68k/m68k.c: Likewise.
19265         * config/mcore/mcore.c: Likewise.
19266         * config/mep/mep-pragma.c: Likewise.
19267         * config/mep/mep.c: Likewise.
19268         * config/mmix/mmix.c: Likewise.
19269         * config/mn10300/mn10300.c: Likewise.
19270         * config/moxie/moxie.c: Likewise.
19271         * config/pa/pa.c: Likewise.
19272         * config/pdp11/pdp11.c: Likewise.
19273         * config/picochip/picochip.c: Likewise.
19274         * config/rs6000/rs6000-c.c: Likewise.
19275         * config/rs6000/rs6000.c: Likewise.
19276         * config/rx/rx.c: Likewise.
19277         * config/s390/s390.c: Likewise.
19278         * config/score/score.c: Likewise.
19279         * config/score/score3.c: Likewise.
19280         * config/score/score7.c: Likewise.
19281         * config/sh/sh.c: Likewise.
19282         * config/sh/symbian-base.c: Likewise.
19283         * config/sh/symbian-c.c: Likewise.
19284         * config/sh/symbian-cxx.c: Likewise.
19285         * config/sol2-c.c: Likewise.
19286         * config/sol2.c: Likewise.
19287         * config/sparc/sparc.c: Likewise.
19288         * config/spu/spu.c: Likewise.
19289         * config/stormy16/stormy16.c: Likewise.
19290         * config/v850/v850-c.c: Likewise.
19291         * config/v850/v850.c: Likewise.
19292         * config/vax/vax.c: Likewise.
19293         * config/vxworks.c: Likewise.
19294         * config/xtensa/xtensa.c: Likewise.
19295         * convert.c: Likewise.
19296         * cse.c: Likewise.
19297         * cselib.c: Likewise.
19298         * dbgcnt.c: Likewise.
19299         * dbxout.c: Likewise.
19300         * ddg.c: Likewise.
19301         * dominance.c: Likewise.
19302         * emit-rtl.c: Likewise.
19303         * explow.c: Likewise.
19304         * expmed.c: Likewise.
19305         * fixed-value.c: Likewise.
19306         * fold-const.c: Likewise.
19307         * fwprop.c: Likewise.
19308         * gcse.c: Likewise.
19309         * ggc-common.c: Likewise.
19310         * ggc-page.c: Likewise.
19311         * ggc-zone.c: Likewise.
19312         * gimple-low.c: Likewise.
19313         * gimplify.c: Likewise.
19314         * graph.c: Likewise.
19315         * haifa-sched.c: Likewise.
19316         * ifcvt.c: Likewise.
19317         * implicit-zee.c: Likewise.
19318         * integrate.c: Likewise.
19319         * ira-build.c: Likewise.
19320         * ira-color.c: Likewise.
19321         * ira-conflicts.c: Likewise.
19322         * ira-costs.c: Likewise.
19323         * ira-lives.c: Likewise.
19324         * ira.c: Likewise.
19325         * lists.c: Likewise.
19326         * loop-doloop.c: Likewise.
19327         * loop-iv.c: Likewise.
19328         * lto-opts.c: Likewise.
19329         * lto-symtab.c: Likewise.
19330         * main.c: Likewise.
19331         * modulo-sched.c: Likewise.
19332         * optabs.c: Likewise.
19333         * params.c: Likewise.
19334         * plugin.c: Likewise.
19335         * postreload-gcse.c: Likewise.
19336         * postreload.c: Likewise.
19337         * predict.c: Likewise.
19338         * profile.c: Likewise.
19339         * real.c: Likewise.
19340         * regcprop.c: Likewise.
19341         * reginfo.c: Likewise.
19342         * regmove.c: Likewise.
19343         * reorg.c: Likewise.
19344         * resource.c: Likewise.
19345         * rtl.c: Likewise.
19346         * rtlanal.c: Likewise.
19347         * sched-deps.c: Likewise.
19348         * sched-ebb.c: Likewise.
19349         * sched-rgn.c: Likewise.
19350         * sdbout.c: Likewise.
19351         * sel-sched-dump.c: Likewise.
19352         * sel-sched-ir.c: Likewise.
19353         * simplify-rtx.c: Likewise.
19354         * stmt.c: Likewise.
19355         * stor-layout.c: Likewise.
19356         * store-motion.c: Likewise.
19357         * targhooks.c: Likewise.
19358         * tree-cfg.c: Likewise.
19359         * tree-cfgcleanup.c: Likewise.
19360         * tree-dump.c: Likewise.
19361         * tree-eh.c: Likewise.
19362         * tree-inline.c: Likewise.
19363         * tree-nomudflap.c: Likewise.
19364         * tree-object-size.c: Likewise.
19365         * tree-optimize.c: Likewise.
19366         * tree-outof-ssa.c: Likewise.
19367         * tree-phinodes.c: Likewise.
19368         * tree-profile.c: Likewise.
19369         * tree-ssa-ccp.c: Likewise.
19370         * tree-ssa-coalesce.c: Likewise.
19371         * tree-ssa-live.c: Likewise.
19372         * tree-ssa-loop-niter.c: Likewise.
19373         * tree-ssa-loop-prefetch.c: Likewise.
19374         * tree-ssa-loop.c: Likewise.
19375         * tree-ssa-structalias.c: Likewise.
19376         * tree-ssa-uninit.c: Likewise.
19377         * tree-ssa.c: Likewise.
19378         * tree-vect-data-refs.c: Likewise.
19379         * tree-vect-loop-manip.c: Likewise.
19380         * tree-vect-loop.c: Likewise.
19381         * tree-vect-patterns.c: Likewise.
19382         * tree-vect-stmts.c: Likewise.
19383         * tree-vrp.c: Likewise.
19384         * varasm.c: Likewise.
19385         * vec.c: Likewise.
19386         * web.c: Likewise.
19387         * xcoffout.c: Likewise.
19388
19389 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
19390
19391         * gengtype.c (write_field_root): New function.
19392         (write_root): Use it.
19393
19394 2010-07-07  Wei Guozhi  <carrot@google.com>
19395
19396         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
19397         of lowest bits to lshift/compare): Add a missing line.
19398
19399 2010-07-07  Wei Guozhi  <carrot@google.com>
19400
19401         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
19402         of lowest bits to lshift/compare): New.
19403
19404 2010-07-07  Tom Tromey  <tromey@redhat.com>
19405
19406         * doc/tm.texi: Update.
19407         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
19408         Add @hook.
19409         * target.def (want_debug_pub_sections): New hook.
19410         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
19411         * dwarf2out.c (add_pubname_string): Check
19412         targetm.want_debug_pub_sections.
19413         (add_pubname): Likewise.
19414         (add_pubtype): Likewise.
19415
19416 2010-07-07  Jie Zhang  <jie@codesourcery.com>
19417
19418         * genautomata.c (output_automata_list_min_issue_delay_code):
19419         Correctly decompress min_issue_delay.
19420
19421 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
19422
19423         PR rtl-optimization/44404
19424         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
19425         possible, use reg_overlap_mentioned_p instead.
19426
19427 2010-07-07  Duncan Sands  <baldrick@free.fr>
19428
19429         PR middle-end/41355
19430         * tree.c (build_function_type_skip_args): Copy the original type using
19431         build_distinct_type_copy rather than copy_node.
19432
19433 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
19434
19435         PR target/44850
19436         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
19437         revision 161876.
19438         (ix86_expand_prologue): Likewise.
19439         (ix86_handle_fndecl_attribute): Likewise.
19440         (ix86_asm_declare_function_name): Likewise.
19441         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
19442         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
19443         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
19444         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
19445         * doc/extend.texi: Likewise.
19446
19447 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
19448
19449         PR target/44844
19450         * config/i386/i386.md (rdrand<mode>): Changed to expand to
19451         retry if the carry flag isn't valid.
19452         (rdrand<mode>_1): New.
19453
19454 2010-07-07  Richard Guenther  <rguenther@suse.de>
19455
19456         PR middle-end/44790
19457         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
19458         for expanding the constant offset for MEM_REFs.
19459
19460 2010-07-07  Richard Guenther  <rguenther@suse.de>
19461
19462         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
19463         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
19464         * gimple.h (is_gimple_operand): Remove.
19465         * gimple.c (is_gimple_operand): Likewise.
19466         (walk_gimple_op): Fix wi->val_only setting for calls.
19467         * tree-cfg.c (verify_gimple_call): Fix argument validation.
19468         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
19469         invalid gimple calls.
19470
19471 2010-07-06  Jan Hubicka  <jh@suse.cz>
19472
19473         * lto-cgraph.c (output_cgraph): Add missing declaration.
19474
19475 2010-07-06  Jan Hubicka  <jh@suse.cz>
19476
19477         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
19478         partition.
19479
19480 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
19481
19482         * doc/gimple.texi (GIMPLE_DEBUG): Document.
19483         * doc/rtl.texi (Debug Information): New node.
19484         (NOTE_INSN_VAR_LOCATION): Document.
19485         (debug_insn): Likewise.
19486         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
19487
19488 2010-07-07  Jan Hubicka  <jh@suse.cz>
19489
19490         With parts by Richard Guenther.
19491
19492         PR middle-end/44813
19493         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
19494         for functions passed by reference.
19495         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
19496         in memory when passed by reference.
19497         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
19498         beggining.
19499         * ipa-split.c (split_function): Cleanup way return value is passed;
19500         handle SSA DECL_BY_REFERENCE retvals.
19501         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
19502         DECL_BY_REFERENCE is set.
19503         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
19504         find_what_p_points_to): Handle RESULT_DECL.
19505         * tree-inline.c (declare_return_variable): Get new entry_block argument;
19506         when passing by reference ensure that RESULT_DECL is gimple_val.
19507         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
19508         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
19509
19510 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
19511
19512         PR rtl-optimization/44787
19513         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
19514         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
19515
19516 2010-07-06  Jan Hubicka  <jh@suse.cz>
19517
19518         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
19519         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
19520         with body can prevail.
19521         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
19522         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
19523         * cgraph.c (cgraph_get_node_or_alias): New function.
19524         * cgraph.h (cgraph_get_node_or_alias): Declare.
19525
19526 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
19527
19528         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
19529         support.
19530         (ix86_expand_prologue): Likewise.
19531         (ix86_handle_fndecl_attribute): Likewise.
19532         (ix86_asm_declare_function_name): New function for
19533         ASM_DECLARE_FUNCTION_NAME.
19534         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
19535         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
19536         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
19537         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
19538         * doc/extend.texi: Adjust documentation about ms_hook_prologue
19539         attribute.
19540
19541 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
19542
19543         * config/i386/i386.md (immediate_operand): New mode attribute.
19544
19545         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
19546         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
19547         using P mode iterator.
19548         (pro_epilogue_adjust_stack_di_2): Rename from
19549         pro_epilogue_adjust_stack_rex64_2.
19550
19551         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
19552
19553 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
19554
19555         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
19556         through gen_mov_insv_1 function pointer.
19557         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
19558         gen_truncxf<mode>2 through gen_truncxf function pointer.
19559         (remainder<mode>3): Ditto.
19560         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
19561         (allocate_stack): Call gen_allocate_stack_worker_64 or
19562         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
19563         function pointer.
19564         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
19565         function pointer.
19566
19567 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
19568
19569         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
19570         operand constraint instead of <r><i>m.
19571
19572 2010-07-06  Richard Guenther  <rguenther@suse.de>
19573
19574         PR middle-end/44828
19575         * convert.c (convert_to_integer): Watch out for overflowing
19576         MULT_EXPR as well.
19577
19578 2010-07-05  Jan Hubicka  <jh@suse.cz>
19579
19580         * lto-streamer.c (write_symbol_vec): Rename to ...
19581         (write_symbol) ... this one; write only symbol given and when
19582         present in cache. Sanity check that what is defined is present
19583         in cgraph/varpool with body/finalized decl.
19584         (write_symbols_of_kind): Remove.
19585         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
19586         pairs to produce symtab.
19587         (produce_asm_for_decls): Update call of produce_symtab; don't do so
19588         when doing WPA streaming.
19589
19590 2010-07-05  Jan Hubicka  <jh@suse.cz>
19591
19592         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
19593         function is still available to fold into.
19594
19595 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
19596
19597         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
19598         * function.h (struct_function): Change type of local_decls field
19599         to a VEC.
19600         (add_local_decl): New function.
19601         (FOR_EACH_LOCAL_DECL): New macro.
19602         * cfgexpand.c (init_vars_expansion): Adjust for new type of
19603         cfun->local_decls.
19604         (estimated_stack_frame_size): Likewise.
19605         (expand_used_vars): Likewise.
19606         * cgraphbuild.c (build_cgraph_edges): Likewise.
19607         * function.c (instantiate_decls_1): Likewise.
19608         * ipa-struct-reorg.c (build_data_structure): Likewise.
19609         * ipa-type-escape.c (analyze_function): Likewise.
19610         * lto-streamer-in.c (input_function): Likewise.
19611         * lto-streamer-out.c (output_function): Likewise.
19612         * tree-ssa-live.c (remove_unused_locals): Likewise.
19613         * tree.c (free_lang_data_in_decl): Likewise.
19614         (find_decls_types_in_node): Likewise.
19615         * omp-low.c (remove_exit_barrier): Likewise.
19616         (expand_omp_taskreg): Likewise.
19617         (list2chain): Rename to...
19618         (vec2chain): ...this.  Adjust.
19619         * cgraphunit.c (assemble_thunk): Call add_local_decl.
19620         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
19621         * gimple-low.c (record_vars_into): Likewise.
19622         * tree-inline.c (remap_decls): Likewise.
19623         (declare_return_variable): Likewise.
19624         (declare_inline_vars): Likewise.
19625         (copy_forbidden): Adjust for new type of cfun->local_decls.
19626         (add_local_variables): New function.
19627         (expand_call_inline): Call it.
19628         (tree_function_versioning): Likewise.
19629
19630 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
19631
19632         AVX Programming Reference (June, 2010)
19633         * config/i386/cpuid.h (bit_F16C): New.
19634         (bit_RDRND): Likewise.
19635         (bit_FSGSBASE): Likewise.
19636
19637         * config/i386/i386-builtin-types.def: Add
19638         "DEF_FUNCTION_TYPE (UINT16)", function types for
19639         float16 <-> float conversions and
19640         "DEF_FUNCTION_TYPE (VOID, UINT64)".
19641
19642         * config/i386/i386-c.c (ix86_target_macros_internal): Support
19643         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
19644         OPTION_MASK_ISA_F16C.
19645
19646         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
19647         (OPTION_MASK_ISA_RDRND_SET): Likewise.
19648         (OPTION_MASK_ISA_F16C_SET): Likewise.
19649         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
19650         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
19651         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
19652         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
19653         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
19654         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
19655         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
19656         (override_options): Handle them.
19657         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
19658         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
19659         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
19660         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
19661         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
19662         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
19663         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
19664         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
19665         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
19666         (bdesc_args): Likewise.
19667         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
19668         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
19669         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
19670         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
19671         Handle non-memory store.
19672
19673         * config/i386/i386.h (TARGET_FSGSBASE): New.
19674         (TARGET_RDRND): Likewise.
19675         (TARGET_F12C): Likewise.
19676
19677         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
19678         (UNSPEC_VCVTPS2PH): Likewise.
19679         (UNSPECV_RDFSBASE): Likewise.
19680         (UNSPECV_RDGSBASE): Likewise.
19681         (UNSPECV_WRFSBASE): Likewise.
19682         (UNSPECV_WRGSBASE): Likewise.
19683         (UNSPECV_RDRAND): Likewise.
19684         (rdfsbase<mode>): Likewise.
19685         (rdgsbase<mode>): Likewise.
19686         (wrfsbase<mode>): Likewise.
19687         (wrgsbase<mode>): Likewise.
19688         (rdrand<mode>): Likewise.
19689
19690         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
19691
19692         * config/i386/immintrin.h (_rdrand_u16): New.
19693         (_rdrand_u32): Likewise.
19694         (_readfsbase_u32): Likewise.
19695         (_readfsbase_u64): Likewise.
19696         (_readgsbase_u32): Likewise.
19697         (_readgsbase_u64): Likewise.
19698         (_writefsbase_u32): Likewise.
19699         (_writefsbase_u64): Likewise.
19700         (_writegsbase_u32): Likewise.
19701         (_writegsbase_u64): Likewise.
19702         (_rdrand_u64): Likewise.
19703         (_cvtsh_ss): Likewise.
19704         (_mm_cvtph_ps): Likewise.
19705         (_mm256_cvtph_ps): Likewise.
19706         (_cvtss_sh): Likewise.
19707         (_mm_cvtps_ph): Likewise.
19708         (_mm256_cvtps_ph): Likewise.
19709
19710         * config/i386/sse.md (vcvtph2ps): New.
19711         (*vcvtph2ps_load): Likewise.
19712         (vcvtph2ps256): Likewise.
19713         (vcvtps2ph): Likewise.
19714         (*vcvtps2ph): Likewise.
19715         (*vcvtps2ph_store): Likewise.
19716         (vcvtps2ph256): Likewise.
19717
19718         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
19719
19720         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
19721
19722 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
19723
19724         PR bootstrap/44512
19725         * genenums.c (main): Output include of insn-constants.h
19726         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
19727
19728 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
19729
19730         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
19731         (override_options): Initialize it.
19732         (ix86_expand_prologue): Use it.
19733
19734 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
19735
19736         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
19737
19738 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
19739
19740         * double-int.h (fit_double_type): Remove declaration.
19741         * double-int.c (fit_double_type): Remove function.
19742         * tree.h (int_fits_type_p): Adjust prototype.
19743         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
19744         instead of fit_double_type.
19745         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
19746         instead of fit_double_type and build_int_cst_wide.
19747         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
19748         instead of fit_double_type and build_int_cst_wide.
19749         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
19750         of fit_double_type.
19751
19752 2010-07-05  Jan Hubicka  <jh@suse.cz>
19753
19754         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
19755         in_other_partition.
19756         * lto-cgraph.c (referenced_from_other_partition_p,
19757         reachable_from_other_partition_p): Use in_other_partition flags.
19758         (output_node, output_varpool_node): COMDAT nodes always have private
19759         copies and thus are never used from other partition.
19760
19761 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
19762
19763         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
19764         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
19765         * config/ia64/ia64.c Include reload.h.
19766         (ia64_memory_move_cost): New function.
19767         (TARGET_MEMORY_MOVE_COST): Define.
19768         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
19769         memory_move_cost.
19770
19771 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
19772
19773         PR middle-end/42505
19774         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
19775         comments about cost model.
19776         (try_add_cand_for):  Add second strategy for choosing initial set
19777         based on original IVs, controlled by ORIGINALP argument.
19778         (get_initial_solution): Add ORIGINALP argument.
19779         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
19780         (find_optimal_iv_set): Try two different strategies for choosing
19781         the IV set, and return the one with lower cost.
19782
19783 2010-07-05  Richard Guenther  <rguenther@suse.de>
19784
19785         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
19786
19787 2010-07-05  Richard Guenther  <rguenther@suse.de>
19788
19789         * tree.c (reference_alias_ptr_type): New function.
19790         * tree.h (reference_alias_ptr_type): Declare.
19791         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
19792         allow non-TARGET_MEM_REF new refs.
19793         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
19794         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
19795         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
19796         (create_mem_ref): Get alias pointer type.  Adjust calls to
19797         create_mem_ref_raw.
19798         (maybe_fold_tmr): Likewise.
19799         * tree-flow.h (create_mem_ref): Adjust prototype.
19800
19801 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
19802
19803         PR c++/44808
19804         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
19805         *from_p is VAR_DECL.
19806
19807 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
19808
19809         * tree.h (build_call_list): Remove.
19810         * tree.c (build_call_list): Remove.
19811
19812 2010-07-05  Richard Guenther  <rguenther@suse.de>
19813
19814         * double-int.h (double_int_sub): Declare.
19815         * double-int.c (double_int_sub): New function.
19816         * dwarf2out.c (field_byte_offset): Use it.
19817         * fixed-value.c (do_fixed_add): Likewise.
19818         (do_fixed_multiply): Likewise.
19819         (do_fixed_divide): Likewise.
19820         * tree-predcom.c (add_ref_to_chain): Likewise.
19821         (determine_roots_comp): Likewise.
19822         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
19823
19824 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
19825
19826         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
19827         implementations.
19828
19829 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
19830
19831         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
19832         * arm-modes.def (CC_NOTB): Don't define.
19833         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
19834         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
19835         (LTUGEU): New code_iterator.
19836         (cnb, optab): New corresponding code_attrs.
19837         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
19838         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
19839         using LTUGEU.
19840         (addsi3_carryin_shift_<optab>): Likewise.
19841         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
19842         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
19843         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
19844         (subsi3_compare): Renamed from subsi3_compare0_c.
19845         Change CC_NOTB to CC.
19846         (arm_subsi3_insn): Allow constants for operand 0.
19847         (compare_scc peephole for eq case): New.
19848         (compare_scc splitters): Change CC_NOTB to CC.
19849
19850 2010-07-05  Richard Guenther  <rguenther@suse.de>
19851
19852         * tree-ssa-loop-im.c (for_each_index): Do not handle
19853         ALIGN_INDIRECT_REF.
19854         (gen_lsm_tmp_name): Likewise.
19855         * tree-dump.c (dequeue_and_dump): Likewise.
19856         * tree-pretty-print.c (dump_generic_node): Likewise.
19857         (op_code_prio): Likewise.
19858         (op_symbol_code): Likewise.
19859         * tree.c (staticp): Likewise.
19860         (build1_stat): Likewise.
19861         * tree.h (INDIRECT_REF_P): Likewise.
19862         * fold-const.c (maybe_lvalue_p): Likewise.
19863         (operand_equal_p): Likewise.
19864         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
19865         (ao_ref_init_from_vn_reference): Likewise.
19866         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
19867         (find_interesting_uses_address): Likewise.
19868         * dwarf2out.c (loc_list_from_tree): Likewise.
19869         * gimplify.c (gimplify_expr): Likewise.
19870         * tree-eh.c (tree_could_trap_p): Likewise.
19871         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
19872         * cfgexpand.c (expand_debug_expr): Likewise.
19873         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
19874         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
19875         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
19876         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
19877         * tree-ssa-operands.c (get_expr_operands): Likewise.
19878         * expr.c (safe_from_p): Likewise.
19879         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
19880         * tree-vect-data-refs.c (vect_setup_realignment): Build
19881         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
19882         * tree-vect-stmts.c (vectorizable_load): Likewise.
19883         * tree.def (ALIGN_INDIRECT_REF): Remove.
19884
19885 2010-07-05  Richard Guenther  <rguenther@suse.de>
19886
19887         PR tree-optimization/44784
19888         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
19889         for inserted stmts.
19890         (find_or_generate_expression): Fix SCCVN insertion check.
19891
19892 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
19893
19894         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
19895         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
19896         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
19897         directives.
19898
19899 2010-07-05  Ira Rosen  <irar@il.ibm.com>
19900
19901         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
19902         statements that are not vectorized.
19903         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
19904         in INSIDE_COST.
19905
19906 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
19907
19908         PR bootstrap/44820
19909         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
19910
19911 2010-07-05  Richard Guenther  <rguenther@suse.de>
19912
19913         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
19914         RESULT_DECLs properly.
19915
19916 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
19917
19918         PR rtl-optimization/44695
19919         * config/i386/i386.md (extract_code): Removed.
19920         (<u>divmodqi4): Likewise.
19921         (divmodqi4): New.
19922         (udivmodqi4): Likewise.
19923         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
19924         (udivmodhiqi3): Likewise.
19925
19926 2010-07-04  Jan Hubicka  <jh@suse.cz>
19927
19928         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
19929
19930 2010-07-04  Jan Hubicka  <jh@suse.cz>
19931
19932         * cgraphunit.c (init_cgraph): Only initialize dump file if it
19933         is not already initialized.
19934
19935 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
19936
19937         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
19938         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
19939         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
19940         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
19941         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
19942         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
19943         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
19944         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
19945         (sync_new_nand_optab): Redefine as macros.
19946         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
19947         Delete.
19948         (direct_optab_index): New enum.
19949         (direct_optab_d): New structure.
19950         (direct_optab): New typedef.
19951         (direct_optab_table): Declare.
19952         (direct_optab_handler, set_direct_optab_handler): New functions.
19953         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
19954         (sync_lock_release_optab): New macros.
19955         * optabs.c (direct_optab_table): New variable.
19956         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
19957         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
19958         cmpstr_optab and cmpstrn_optab.
19959         (emit_conditional_move): Likewise for movcc_optab.
19960         (can_conditionally_move_p): Likewise for movcc_gen_code.
19961         (init_insn_codes): Clear direct_optab_table.
19962         (init_optabs): Don't initialize the new "direct optabs" here.
19963         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
19964         vcond_gen_code.
19965         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
19966         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
19967         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
19968         (expand_sync_operation): Likewise other sync_*_optabs.
19969         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
19970         to sync_compare_and_swap_optab.
19971         (expand_sync_lock_test_and_set): Use direct_optab_handler for
19972         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
19973         to the names of both.
19974         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
19975         cmpstr_optab and cmpstrn_optab.
19976         (expand_builtin_lock_release): Likewise sync_lock_release.
19977         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
19978         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
19979         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
19980         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
19981         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
19982         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
19983         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
19984         (sync_lock_test_and_set, sync_lock_release): Delete.
19985         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
19986         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
19987         * genopinit.c (optabs): Use set_direct_optab_handler for the new
19988         macro optabs.
19989         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
19990         the "optab" local variable.  Use direct_optab_handler for optab and
19991         sync_compare_and_swap_optab.
19992         * reload1.c (reload_in_optab, reload_out_optab): Delete.
19993         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
19994         reload_in_optab and reload_out_optab.
19995         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
19996         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
19997         * config/pa/pa.c (pa_secondary_reload): Likewise.
19998         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
19999         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
20000         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
20001         (VMSupportsCS8_builtin): Likewise.
20002
20003 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20004
20005         * optabs.h (optab_handlers): Change type of insn_code to int.
20006         (optab_handler, set_optab_handler, convert_optab_handler)
20007         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
20008         CODE_FOR_nothing".
20009         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
20010         (init_insn_codes): Zero both the above arrays.
20011         (init_optabs): Never call init_insn_codes first time around.
20012
20013 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20014
20015         * optabs.h (optab_handler, convert_optab_handler): Turn into
20016         inline functions that return an insn code.
20017         (set_optab_handler, set_convert_optab_handler): New functions.
20018         * builtins.c: Replace optab_handler(X)->insn_code with
20019         optab_handler or set_optab_handler thoughout.  Likewise
20020         convert_optab_handler(X)->insn_code with convert_optab_handler
20021         and set_convert_optab_handler.
20022         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
20023         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
20024         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
20025         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
20026         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
20027         config/spu/spu.c: Likewise.
20028
20029 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
20030
20031         PR target/44531
20032         * config.gcc (sh*-*-*): Use regular expressions instead of
20033         the 'i' modifier for sed substitutions.
20034
20035 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
20036
20037         * gimple.c (gimple_body): Comments added.
20038
20039 2010-07-04  Richard Guenther  <rguenther@suse.de>
20040
20041         PR middle-end/44809
20042         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
20043         of an INDIRECT_REF.
20044
20045 2010-07-04  Richard Guenther  <rguenther@suse.de>
20046
20047         PR tree-optimization/44479
20048         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
20049         extra SSA name copy statements which preserves points-to
20050         information.
20051         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
20052         Copy points-to information for all pointers.  Properly handle
20053         MEM_REFs.
20054         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
20055         copy statements.
20056         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
20057         dependency.
20058
20059 2010-07-04  Richard Guenther  <rguenther@suse.de>
20060
20061         PR middle-end/44785
20062         * tree-inline.c (initialize_inlined_parameters): Do not
20063         re-use pointer-map slot over remap_type call.
20064
20065 2010-07-04  Richard Guenther  <rguenther@suse.de>
20066
20067         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
20068
20069 2010-07-04  Richard Guenther  <rguenther@suse.de>
20070
20071         PR tree-optimization/44656
20072         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
20073         again after value-replacing in the defintions lhs.
20074
20075 2010-07-04  Ira Rosen  <irar@il.ibm.com>
20076             Revital Eres  <eres@il.ibm.com>
20077
20078         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
20079         Document new arguments.
20080         * doc/tm.texi: Regenerate.
20081         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
20082         Handle unaligned store.
20083         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
20084         * target.def (builtin_vectorization_cost): Add new arguments.
20085         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
20086         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
20087         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
20088         (vect_vfa_segment_size): Fix indentation.
20089         * tree-vectorizer.h (struct _vect_peel_info): New.
20090         (struct _vect_peel_extended_info): New.
20091         (struct _loop_vec_info): Add new field for peeling hash table and a
20092         macro for its access.
20093         (VECT_MAX_COST): Define.
20094         (vect_get_load_cost): Declare.
20095         (vect_get_store_cost, vect_get_known_peeling_cost,
20096         vect_get_single_scalar_iteraion_cost): Likewise.
20097         (vect_supportable_dr_alignment): Add new argument.
20098         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
20099         field.
20100         (destroy_loop_vec_info): Free peeling hash table.
20101         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
20102         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
20103         vect_analyze_slp. Fix indentation.
20104         (vect_get_single_scalar_iteraion_cost): New function.
20105         (vect_get_known_peeling_cost): Likewise.
20106         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
20107         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
20108         statement. Move outside cost calculation inside unknown peeling case.
20109         Call vect_get_known_peeling_cost for known amount of peeling.
20110         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
20111         reference to the print message of forced alignment.
20112         (vect_verify_datarefs_alignment): Update call to
20113         vect_supportable_dr_alignment.
20114         (vect_get_data_access_cost): New function.
20115         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
20116         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
20117         vect_peeling_hash_choose_best_peeling): Likewise.
20118         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
20119         to store all the accesses in the loop and find best possible access to
20120         align using peeling for known alignment case. For unknown alignment
20121         check if stores are preferred or if peeling is worthy.
20122         (vect_find_same_alignment_drs): Analyze pairs of loads too.
20123         (vect_supportable_dr_alignment): Add new argument and check aligned
20124         accesses according to it.
20125         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
20126         (cost_for_stmt): Call vect_get_stmt_cost.
20127         (vect_model_simple_cost): Likewise.
20128         (vect_model_store_cost): Call vect_get_stmt_cost. Call
20129         vect_get_store_cost to calculate the cost of the statement.
20130         (vect_get_store_cost): New function.
20131         (vect_model_load_cost): Call vect_get_stmt_cost. Call
20132         vect_get_load_cost to calculate the cost of the statement.
20133         (vect_get_load_cost): New function.
20134         (vectorizable_store): Update call to vect_supportable_dr_alignment.
20135         (vectorizable_load): Likewise.
20136         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
20137         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
20138         arguments. Handle unaligned store.
20139         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
20140         (rs6000_builtin_support_vector_misalignment): Return true for word and
20141         double word alignments for VSX.
20142         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
20143         vect_supportable_dr_alignment and builtin_vectorization_cost.
20144
20145 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20146
20147         PR target/44597
20148         * config/pa/predicates.md (prefetch_cc_operand): Remove.
20149         (prefetch_nocc_operand): Likewise.
20150         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
20151         (prefetch_20): New insn.
20152         (prefetch_cc): Remove.
20153         (prefetch_nocc): Likewise.
20154
20155 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20156
20157         * expr.c (vector_mode_valid_p): Move to c-common.c.
20158         * expr.h (vector_mode_valid_p): Do not declare here.
20159         * system.h: Poison GCC_EXPR_H in front-ends.
20160         * Makefile.in: Update dependencies.
20161
20162 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20163
20164         PR target/44705
20165         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
20166
20167 2010-07-03  Jan Hubicka  <jh@suse.cz>
20168
20169         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
20170         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
20171         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
20172         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
20173         Likewise.
20174
20175         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
20176         Update timevars.V
20177         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
20178         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
20179         TV_IPA_LTO_DECL_OUT): New.
20180         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
20181
20182 2010-07-03  Jan Hubicka  <jh@suse.cz>
20183
20184         * ipa-inline.c (update_edge_key): Break out from ...
20185         update_callers_keys): ... here;
20186         (update_callee_keys): Update only the edges from caller to callee.
20187         (update_all_calle_keys): Do what update_calle_keys did.
20188         (decide_inlining_of_small_functions): Avoid recomputing of all
20189         callees when badness increase.
20190
20191 2010-07-03  Jie Zhang  <jie@codesourcery.com>
20192
20193         * config/arm/arm.c (arm_attr_length_move_neon): New.
20194         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
20195         * config/arm/neon.md (define_mode_attr V_slen): Remove.
20196         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
20197         to compute length attribute.
20198
20199 2010-07-03  Jie Zhang  <jie@codesourcery.com>
20200
20201         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
20202         as predicate for operand 1 and remove its constraint.
20203         * config/arm/predicates.md (vfp_register_operand): New.
20204         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
20205         (*push_fp_multi): Likewise.
20206
20207 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
20208
20209         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
20210
20211 2010-07-03  Jan Hubicka  <jh@suse.cz>
20212
20213         * config/i386/i386.c (override_options): Revert accidental commit.
20214
20215 2010-07-02  Le-Chun Wu  <lcwu@google.com>
20216
20217         PR c++/44128
20218         * doc/invoke.texi: Update documentation of -Wshadow.
20219
20220 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
20221             Julian Brown  <julian@codesourcery.com>
20222             Sandra Loosemore  <sandra@codesourcery.com>
20223
20224         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
20225         comparisons.  Adjust to take both operands.
20226         (arm_select_cc_mode): Handle DImode comparisons.
20227         (arm_gen_compare_reg): Generate a scratch register for DImode
20228         comparisons which require one.  Use xor for Thumb equality checks.
20229         (arm_const_double_by_immediates): New.
20230         (arm_print_operand): Allow 'Q' and 'R' for constants.
20231         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
20232         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
20233         arm_canonicalize_comparison.
20234         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
20235         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
20236         prototype.
20237         (arm_const_double_by_immediates): Declare.
20238         * config/arm/constraints.md (Di): New constraint.
20239         * config/arm/predicates.md (arm_immediate_di_operand)
20240         (arm_di_operand, cmpdi_operand): New.
20241         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
20242         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
20243         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
20244         (cstoredi4): Handle non-Cirrus also.
20245
20246 2010-07-02  Julian Brown  <julian@codesourcery.com>
20247             Sandra Loosemore  <sandra@codesourcery.com>
20248
20249         PR target/43703
20250         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
20251         (smax<mode>3): Disable for NEON float modes when
20252         flag_unsafe_math_optimizations is false.
20253         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
20254         (*mul<mode>3_neon)
20255         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
20256         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
20257         for NEON float modes when flag_unsafe_math_optimizations is false.
20258         (quad_halves_<code>v4sf): Only enable if
20259         flag_unsafe_math_optimizations is true.
20260         * doc/invoke.texi (ARM Options): Add note about floating point
20261         vectorization requiring -funsafe-math-optimizations.
20262
20263 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20264             Julian Brown  <julian@codesourcery.com>
20265
20266         * config/arm/neon.md (UNSPEC_VABA): Delete.
20267         (UNSPEC_VABAL): Delete.
20268         (UNSPEC_VABS): Delete.
20269         (UNSPEC_VMUL_N): Delete.
20270         (adddi3_neon): New.
20271         (subdi3_neon): New.
20272         (mul<mode>3add<mode>_neon): Make the pattern named.
20273         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
20274         (neon_vadd<mode>): Replace with define_expand, and move the remaining
20275         unspec parts...
20276         (neon_vadd<mode>_unspec): ...to this.
20277         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
20278         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
20279         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
20280         (neon_vaba<mode>): Rewrite in terms of vabd.
20281         (neon_vabal<mode>): Rewrite in terms of vabdl.
20282         (neon_vabs<mode>): Rewrite without unspec.
20283         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
20284         (*arm_subdi3): Likewise.
20285         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
20286         No_op attribute to disable assembly output checks.
20287         * config/arm/arm_neon.h: Regenerated.
20288         * doc/arm-neon-intrinsics.texi: Regenerated.
20289
20290 2010-07-02  Jan Hubicka  <jh@suse.cz>
20291
20292         * ipa-split.c (split_function): For aggregate values, set the return
20293         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
20294         *<retval> = fncall.part ().
20295         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
20296
20297 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20298
20299         * config/arm/neon.md (UNSPEC_VAND): Delete.
20300         (UNSPEC_VBIC): Delete.
20301         (UNSPEC_VCLZ): Delete.
20302         (UNSPEC_VCNT): Delete.
20303         (UNSPEC_VEOR): Delete.
20304         (UNSPEC_VORN): Delete.
20305         (UNSPEC_VORR): Delete.
20306         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
20307         core registers too.
20308         (anddi3_neon): Likewise.
20309         (orndi3_neon): Likewise.
20310         (bicdi3_neon): Likewise.
20311         (xordi3_neon): Likewise.
20312         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
20313         rid of unspec and handle unused operand.
20314         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
20315         * config/arm/predicates.md (imm_for_neon_logic_operand):
20316         Require TARGET_NEON.
20317         (imm_for_neon_inv_logic_operand): Likewise.
20318         * config/arm/arm.md (define_split for logical_binary_operator):
20319         Disable for NEON registers.
20320         (anddi3): Add new define_expand, and rename the insn.  Disable
20321         this insn for NEON, where anddi3_neon now applies.
20322         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
20323         (iordi3): As for anddi3.
20324         (xordi3): Likewise.
20325         * config/arm/neon.ml (Vand): Split DImode variants and mark them
20326         as No_op to disable testing for exact instruction match.
20327         (Vorr): Likewise.
20328         (Veor): Likewise.
20329         (Vbic): Likewise.
20330         (Vorn): Likewise.
20331         * config/arm/arm_neon.h: Regenerated.
20332         * doc/arm-neon-intrinsics.texi: Regenerated.
20333
20334 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
20335
20336         * expr.h (emit_stack_probe): Declare.
20337         * explow.c (emit_stack_probe): Make global.
20338         (anti_adjust_stack_and_probe): Fix comments.
20339         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
20340         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20341         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20342         * config/sparc/sparc.c: Include except.h.
20343         (sparc_emit_probe_stack_range): New function.
20344         (output_probe_stack_range): Likewise.
20345         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
20346         built-in stack checking is enabled.
20347         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
20348         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
20349         (probe_stack_range): New insn.
20350
20351 2010-07-02  Richard Guenther  <rguenther@suse.de>
20352
20353         PR target/43958
20354         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
20355         for argument alignment.
20356
20357 2010-07-02  Jan Hubicka  <jh@suse.cz>
20358
20359         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
20360         walk backwards from entry_bb to check only those basic block of header
20361         that might lead to execution of split part.
20362         (consider_split) ... here.
20363         (find_return_bb): Allow assignment in return BB.
20364         (find_retval): New.
20365         (split_function): Fix name of cloned function; take care of updating
20366         return value in return_bb containing move.
20367
20368 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
20369
20370         PR target/44771
20371         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
20372         used variable insn.
20373
20374 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
20375
20376         * implicit-zee.c (combine_reaching_defs): Fix long lines.
20377         (is_set_with_extension_DI): Delete.
20378         (struct zero_extend_info): New structure.
20379         (add_removable_zero_extend): New function.
20380         (find_removable_zero_extends): Use note_stores to find SETs.
20381         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
20382
20383 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
20384
20385         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
20386         is_miss_rate_acceptable. Pull total_positions computation
20387         out of the loops.  Early return if miss_positions exceeds
20388         the acceptable threshold.
20389         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
20390         is_miss_rate_acceptable after renaming of compute_miss_rate.
20391
20392 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
20393
20394         PR middle-end/44576
20395         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
20396         of 1000) for miss rate if the address diference is greater than or
20397         equal to the cache line size (the two reference will never hit the
20398         same cache line).
20399
20400 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
20401
20402         PR target/42835
20403         * config/arm/arm-modes.def (CC_NOTB): New mode.
20404         * config/arm/arm.c (get_arm_condition_code): Handle it.
20405         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
20406         * config/arm/arm.md (subsi3_compare0_c): New pattern.
20407         (compare_scc): Now a define_and_split.  Add a number of extra
20408         splitters before it.
20409
20410         PR target/42172
20411         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
20412         and ZERO_EXTEND.
20413         (arm_rtx_costs_1): Likewise.
20414         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
20415         * config/arm/arm.md (is_arch6): New attribute.
20416         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
20417         extendqisi2): Tighten the code somewhat, avoiding invalid
20418         RTL to occur in the expander patterns.
20419         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
20420         (thumb1_zero_extendhisi2_v6): Delete.
20421         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
20422         (thumb1_extendhisi2_v6): Delete.
20423         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
20424         (thumb1_extendqisi2_v6): Delete.
20425         (zero_extendhisi2 for register input splitter): New.
20426         (zero_extendqisi2 for register input splitter): New.
20427         (thumb1_extendhisi2 for register input splitter): New.
20428         (extendhisi2 for register input splitter): New.
20429         (extendqisi2 for register input splitter): New.
20430         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
20431         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
20432         and add support for a register alternative requiring a split.
20433         (thumb1_zero_extendqisi2): Likewise.
20434         (arm_zero_extendqisi2): Likewise.
20435         (arm_extendhisi2): Likewise.
20436         (arm_extendqisi2): Likewise.
20437
20438 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20439
20440         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
20441         instead of an unspec.
20442         (neon_expand_vector_init): Likewise.
20443         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
20444         (UNSPEC_VDUP_LANE): Delete.
20445         (UNSPEC VDUP_N): Delete.
20446         (UNSPEC_VGET_HIGH): Delete.
20447         (UNSPEC_VGET_LANE): Delete.
20448         (UNSPEC_VGET_LOW): Delete.
20449         (UNSPEC_VMVN): Delete.
20450         (UNSPEC_VSET_LANE): Delete.
20451         (V_double_vector_mode): New.
20452         (vec_set<mode>_internal): Make code emitted match that for the
20453         corresponding intrinsics.
20454         (vec_setv2di_internal): Likewise.
20455         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
20456         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
20457         (neon_vset_lane<mode>): Combine double and quad patterns and
20458         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
20459         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
20460         (neon_vdup_n<mode>): Rewrite RTL without unspec.
20461         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
20462         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
20463         with neon_vdup_lanev2di, adjusting the pattern from the latter
20464         to be predicable for consistency.
20465         (neon_vdup_lane<mode>_internal): New.
20466         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
20467         to avoid using an unspec.
20468         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
20469         (neon_vdup_lanev2di): Turn into a define_expand.
20470         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
20471         (neon_vget_high<mode>): Replace with....
20472         (neon_vget_highv16qi): New pattern using canonical RTL.
20473         (neon_vget_highv8hi): Likewise.
20474         (neon_vget_highv4si): Likewise.
20475         (neon_vget_highv4sf): Likewise.
20476         (neon_vget_highv2di): Likewise.
20477         (neon_vget_low<mode>): Replace with....
20478         (neon_vget_lowv16qi): New pattern using canonical RTL.
20479         (neon_vget_lowv8hi): Likewise.
20480         (neon_vget_lowv4si): Likewise.
20481         (neon_vget_lowv4sf): Likewise.
20482         (neon_vget_lowv2di): Likewise.
20483
20484         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
20485         test for this emitting vmov.
20486         (Vset_lane): Likewise.
20487         (Vdup_n): Likewise.
20488         (Vmov_n): Likewise.
20489
20490         * doc/arm-neon-intrinsics.texi: Regenerated.
20491
20492 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20493
20494         * config/arm/neon.md (vec_extractv2di): Correct error in register
20495         numbering to reconcile with neon_vget_lanev2di.
20496
20497 2010-07-02  Richard Guenther  <rguenther@suse.de>
20498
20499         * tree-ssa-structalias.c (pt_solution_set_var): New function.
20500         * tree-ssa-alias.h (pt_solution_set_var): Declare.
20501         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
20502         points-to information.
20503
20504 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
20505
20506         * config/s390/s390.c (override_options): Adopt prefetching
20507         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
20508
20509 2010-07-02  Jan Hubicka  <jh@suse.cz>
20510
20511         * df-problems.c (df_kill_notes): Do not collect dead  notes.
20512         (df_set_note): Just call add_reg_note.
20513         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
20514         df_create_unused_note): Do not deal with lists of old notes.
20515         (df_note_bb_compute): Likewise.
20516
20517 2010-07-02  Richard Guenther  <rguenther@suse.de>
20518
20519         * tree-ssa-structalias.c (find_func_aliases): Handle
20520         pointer alignment via BIT_AND_EXPR.
20521         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
20522
20523 2010-07-02  Richard Guenther  <rguenther@suse.de>
20524
20525         * tree-data-ref.c (initialize_data_dependence_relation): Handle
20526         mismatching number of dimensions properly.
20527
20528 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20529
20530         PR target/44707
20531         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
20532         (lo_sum (high ...) ...) patterns generated by earlier passes.
20533
20534 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20535
20536         * doc/install.texi (Prerequisites): Document Perl requirement on
20537         Solaris 2.
20538         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
20539
20540 2010-07-02  Richard Guenther  <rguenther@suse.de>
20541
20542         PR middle-end/44777
20543         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
20544
20545 2010-07-02  Jan Hubicka  <jh@suse.cz>
20546
20547         PR middle-end/44706
20548         * predict.c (predict_paths_for_bb): Handle case when control dependence
20549         BB has only abnormal edges.
20550
20551 2010-07-02  Richard Guenther  <rguenther@suse.de>
20552
20553         PR tree-optimization/44748
20554         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
20555         the embedded conversion in MEM_REFs.
20556
20557 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
20558
20559         * reload.c: Include toplev.h.
20560         * recog.c:  Likewise.
20561         * Makefile.in: Adjust dependencies.
20562
20563 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
20564
20565         PR debug/44694
20566         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
20567         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
20568
20569 2010-07-01  Richard Guenther  <rguenther@suse.de>
20570
20571         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
20572         types for offsets.
20573
20574 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
20575
20576         PR target/44732
20577         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
20578         Fix argument types.
20579
20580 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
20581
20582         PR target/44727
20583         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
20584         Make sure operand 0 dies.
20585
20586 2010-07-01  Richard Guenther  <rguenther@suse.de>
20587
20588         PR middle-end/42834
20589         PR middle-end/44468
20590         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
20591         * doc/generic.texi (References to storage): Document MEM_REF.
20592         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
20593         (print_call_name): Likewise.
20594         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
20595         (build_simple_mem_ref_loc): New function.
20596         (mem_ref_offset): Likewise.
20597         * tree.h (build_simple_mem_ref_loc): Declare.
20598         (build_simple_mem_ref): Define.
20599         (mem_ref_offset): Declare.
20600         * fold-const.c: Include tree-flow.h.
20601         (operand_equal_p): Handle MEM_REF.
20602         (build_fold_addr_expr_with_type_loc): Likewise.
20603         (fold_comparison): Likewise.
20604         (fold_unary_loc): Fold
20605         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
20606         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
20607         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
20608         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
20609         (ptr_deref_may_alias_ref_p_1): Likewise.
20610         (ao_ref_base_alias_set): Properly differentiate base object for
20611         offset and TBAA.
20612         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
20613         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
20614         (indirect_refs_may_alias_p): Likewise.
20615         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
20616         chasing code.
20617         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
20618         (call_may_clobber_ref_p_1): Likewise.
20619         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
20620         * expr.c (expand_assignment): Handle MEM_REF.
20621         (store_expr): Handle MEM_REFs from STRING_CSTs.
20622         (store_field): If expanding a MEM_REF of a non-addressable
20623         decl use bitfield operations.
20624         (get_inner_reference): Handle MEM_REF.
20625         (expand_expr_addr_expr_1): Likewise.
20626         (expand_expr_real_1): Likewise.
20627         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
20628         * alias.c (ao_ref_from_mem): Handle MEM_REF.
20629         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
20630         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
20631         (dr_analyze_indices): Likewise.
20632         (dr_analyze_alias): Likewise.
20633         (object_address_invariant_in_loop_p): Likewise.
20634         * gimplify.c (mark_addressable): Handle MEM_REF.
20635         (gimplify_cond_expr): Build MEM_REFs.
20636         (gimplify_modify_expr_to_memcpy): Likewise.
20637         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
20638         (gimple_fold_indirect_ref): Adjust.
20639         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
20640         * tree.def (MEM_REF): New tree code.
20641         * tree-dfa.c: Include toplev.h.
20642         (get_ref_base_and_extent): Handle MEM_REF.
20643         (get_addr_base_and_unit_offset): New function.
20644         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
20645         * gimple-fold.c (may_propagate_address_into_dereference): Handle
20646         MEM_REF.
20647         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
20648         accesses if the array has just one dimension.  Remove always true
20649         parameter.  Do not require type compatibility here.
20650         (maybe_fold_offset_to_component_ref): Remove.
20651         (maybe_fold_stmt_indirect): Remove.
20652         (maybe_fold_reference): Remove INDIRECT_REF handling.
20653         Fold back to non-MEM_REF.
20654         (maybe_fold_offset_to_address): Simplify.  Deal with type
20655         mismatches here.
20656         (maybe_fold_reference): Likewise.
20657         (maybe_fold_stmt_addition): Likewise.  Also handle
20658         &ARRAY + I in addition to &ARRAY[0] + I.
20659         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
20660         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
20661         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
20662         * tree-ssa.c (useless_type_conversion_p): Make most pointer
20663         conversions useless.
20664         (warn_uninitialized_var): Handle MEM_REF.
20665         (maybe_rewrite_mem_ref_base): New function.
20666         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
20667         to SSA form.
20668         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
20669         INDIRECT_REF handling.
20670         (copy_tree_body_r): Handle MEM_REF.
20671         * gimple.c (is_gimple_addressable): Adjust.
20672         (is_gimple_address): Likewise.
20673         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
20674         invariant base are invariant.
20675         (is_gimple_min_lval): Adjust.
20676         (is_gimple_mem_ref_addr): New function.
20677         (get_base_address): Handle MEM_REF.
20678         (count_ptr_derefs): Likewise.
20679         (get_base_loadstore): Likewise.
20680         * gimple.h (is_gimple_mem_ref_addr): Declare.
20681         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
20682         * tree-cfg.c (verify_address): New function, split out from ...
20683         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
20684         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
20685         INDIRECT_REFs.
20686         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
20687         INDIRECT_REF.  Allow conversions.
20688         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
20689         a register does not change its size.
20690         (verify_types_in_gimple_reference): Verify MEM_REF.
20691         (verify_gimple_assign_single): Disallow INDIRECT_REF.
20692         Handle MEM_REF.
20693         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
20694         New.
20695         (mark_address_taken): Handle MEM_REF.
20696         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
20697         (get_asm_expr_operands): Pass opf_not_non_addressable.
20698         (get_expr_operands): Handle opf_[not_]non_addressable.
20699         Handle MEM_REF.  Remove INDIRECT_REF handling.
20700         * tree-vrp.c (check_array_ref): Handle MEM_REF.
20701         (search_for_addr_array): Likewise.
20702         (check_array_bounds): Likewise.
20703         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
20704         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
20705         (ref_always_accessed_p): Likewise.
20706         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
20707         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
20708         Handle MEM_REF.
20709         * cgraphbuild.c (mark_load): Properly check for NULL result
20710         from get_base_address.
20711         (mark_store): Likewise.
20712         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
20713         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
20714         handling for MEM_REF.
20715         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
20716         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
20717         * builtins.c (stabilize_va_list_loc): Use the function ABI
20718         valist type if we couldn't canonicalize the argument type.
20719         Always dereference with the canonical va-list type.
20720         (maybe_emit_free_warning): Handle MEM_REF.
20721         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
20722         memmove to memcpy.
20723         * builtins.c (fold_builtin_memory_op): Use ref-all types
20724         for all memcpy foldings.
20725         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
20726         (build_outer_var_ref): Likewise.
20727         (scan_omp_1_op): Likewise.
20728         (lower_rec_input_clauses): Likewise.
20729         (lower_lastprivate_clauses): Likewise.
20730         (lower_reduction_clauses): Likewise.
20731         (lower_copyprivate_clauses): Likewise.
20732         (expand_omp_atomic_pipeline): Likewise.
20733         (expand_omp_atomic_mutex): Likewise.
20734         (create_task_copyfn): Likewise.
20735         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
20736         Remove old union trick.  Initialize constant offsets.
20737         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
20738         INDIRECT_REF.  Init base_alias_set properly.
20739         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
20740         (vn_reference_fold_indirect): Adjust for MEM_REFs.
20741         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
20742         for ARRAY_REFs.
20743         (may_insert): Remove.
20744         (visit_reference_op_load): Do not test may_insert.
20745         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
20746         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
20747         a field to store the constant offset this op applies.
20748         (run_scc_vn): Adjust prototype.
20749         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
20750         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
20751         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
20752         bother about volatile qualifiers on pointers.
20753         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
20754         * tree-ssa-loop-ivopts.c
20755         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
20756         (strip_offset_1): Likewise.
20757         (find_interesting_uses_address): Replace INDIRECT_REF handling with
20758         MEM_REF handling.
20759         (get_computation_cost_at): Likewise.
20760         * ipa-pure-const.c (check_op): Handle MEM_REF.
20761         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
20762         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
20763         and constants.
20764         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
20765         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
20766         (eliminate_local_variables_1): Likewise.
20767         (create_call_for_reduction_1): Likewise.
20768         (create_loads_for_reductions): Likewise.
20769         (create_loads_and_stores_for_name): Likewise.
20770         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
20771         (ssa_accessed_in_tree): Handle MEM_REF.
20772         (ssa_accessed_in_assign_rhs): Likewise.
20773         (update_type_size): Likewise.
20774         (analyze_accesses_for_call_stmt): Likewise.
20775         (analyze_accesses_for_assign_stmt): Likewise.
20776         (transform_access_sites): Likewise.
20777         (transform_allocation_sites): Likewise.
20778         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
20779         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
20780         not handle INDIRECT_REF.
20781         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
20782         (cond_store_replacement): Likewise.
20783         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
20784         MEM_REF, no not handle INDIRECT_REFs.
20785         (insert_into_preds_of_block): Properly initialize avail.
20786         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
20787         for ARRAY_REFs.  Properly handle reference lookups that
20788         require a bit re-interpretation.
20789         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
20790         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
20791         (build_ref_for_offset_1): Remove.
20792         (build_ref_for_offset): Build MEM_REFs.
20793         (gate_intra_sra): Disable for now.
20794         (sra_ipa_modify_expr): Handle MEM_REF.
20795         (ipa_early_sra_gate): Disable for now.
20796         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
20797         MEM_REF handling.
20798         (disqualify_base_of_expr): Likewise.
20799         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
20800         MEM_REF handling.
20801         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
20802         Use mem_ref_offset.  Remove bogus folding.
20803         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
20804         (make_fancy_name_1): Add support for MEM_REF.
20805         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
20806         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
20807         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
20808         (compute_complex_ancestor_jump_func): Likewise.
20809         (ipa_analyze_virtual_call_uses): Likewise.
20810         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
20811         INDIRECT_REF folding with more generalized MEM_REF folding.
20812         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
20813         (forward_propagate_addr_into_variable_array_index): Also handle
20814         &ARRAY + I in addition to &ARRAY[0] + I.
20815         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
20816         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
20817         creates assignments with overlap.
20818         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
20819         (get_frame_field): Likewise.
20820         (get_nonlocal_debug_decl): Likewise.
20821         (convert_nonlocal_reference_op): Likewise.
20822         (struct nesting_info): Add mem_refs pointer-set.
20823         (create_nesting_tree): Allocate it.
20824         (convert_local_reference_op): Insert to be folded mem-refs.
20825         (fold_mem_refs): New function.
20826         (finalize_nesting_tree_1): Perform defered folding of mem-refs
20827         (free_nesting_tree): Free the pointer-set.
20828         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
20829         (vectorizable_load): Likewise.
20830         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
20831         (propagate_with_phi): Likewise.
20832         * tree-object-size.c (addr_object_size): Handle MEM_REFs
20833         instead of INDIRECT_REFs.
20834         (compute_object_offset): Handle MEM_REF.
20835         (plus_stmt_object_size): Handle MEM_REF.
20836         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
20837         for &MEM_REF.
20838         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
20839         (symbol_marked_for_renaming): Likewise.
20840         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
20841         (fold-const.o): Add $(TREE_FLOW_H).
20842         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
20843         (find_func_clobbers): Likewise.
20844         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
20845         (decompose_access): Likewise.
20846         (replace_field_acc): Likewise.
20847         (replace_field_access_stmt): Likewise.
20848         (insert_new_var_in_stmt): Likewise.
20849         (get_stmt_accesses): Likewise.
20850         (reorg_structs_drive): Disable.
20851         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
20852         (ix86_canonical_va_list_type): Likewise.
20853
20854 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
20855
20856         PR other/44566
20857         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
20858         * target.def (struct gcc_target): Replace enum reg_class with
20859         reg_class_t in hook argument / return types.
20860         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
20861         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
20862         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
20863         * targhooks.h (default_branch_target_register_class): Likewise.
20864         (default_ira_cover_classes, default_secondary_reload): Likewise.
20865         (default_memory_move_cost, default_register_move_cost): Likewise.
20866         * targhooks.c (default_branch_target_register_class): Likewise.
20867         (default_ira_cover_classes, default_secondary_reload): Likewise.
20868         (default_memory_move_cost, default_register_move_cost): Likewise.
20869         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
20870         * bt-load.c (branch_target_load_optimize): Likewise.
20871         * ira.c (setup_cover_and_important_classes): Likewise.
20872         * ira-costs.c (copy_cost): Likewise.
20873         * reload1.c (emit_input_reload_insns): Likewise.
20874         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
20875         * config/frv/frv.c (frv_secondary_reload): Likewise.
20876         * config/s390/s390.c (s390_secondary_reload): Likewise.
20877         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
20878         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
20879         (ix86_register_move_cost): Likewise.
20880         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
20881         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
20882         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
20883         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
20884         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
20885         (rs6000_ira_cover_classes): Likewise.
20886         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
20887         * config/picochip/picochip-protos.h (picochip_secondary_reload):
20888         Likewise.
20889         * config/pa/pa.c (pa_secondary_reload): Likewise.
20890         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
20891         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
20892         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
20893         * doc/tm.texi: Regenerate.
20894
20895 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
20896
20897         PR bootstrrap/44726
20898         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
20899         use.
20900         (build_alias_set_optimal_p): Likewise.
20901         (build_base_obj_set_for_drs): Likewise.
20902
20903 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
20904
20905         * target.def: Remove comment about licensing problems of function
20906         declarations.
20907
20908         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
20909         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
20910         * doc/tm.texi: Regenerate.
20911
20912         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
20913         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
20914
20915         * target.def (enum_va_list_p): Use DEFHOOK.
20916         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
20917         Rename ptype to ptree.
20918         * doc/tm.texi: Regenerate.
20919
20920         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
20921         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
20922         * doc/tm.texi: Regenerate.
20923
20924         * target.def (memory_move_cost): Use DEFHOOK.
20925         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
20926         Rename regclass AKA class to rclass.
20927         * doc/tm.texi: Regenerate.
20928
20929         * target.def (pragma_parse): Use DEFHOOK.
20930         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
20931         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
20932         * doc/tm.texi: Regenerate.
20933
20934         * target.def (pass_by_reference): Use DEFHOOK.
20935         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
20936         * doc/tm.texi: Regenerate.
20937
20938         * target.def (resolve_overloaded_builtin): Rename params to arglist.
20939         Use DEFHOOK.
20940         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
20941         * doc/tm.texi: Regenerate.
20942
20943         * target.def (return_pops_args): Use DEFHOOK.
20944         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
20945         Rename stack-size to size.
20946         * doc/tm.texi: Regenerate.
20947
20948         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
20949         last-sched_cycle to last_clock, cur_cycle to clock.
20950         * doc/tm.texi.in: Use @hook.
20951         * doc/tm.texi: Regenerate.
20952
20953         * target.def (print_operand, print_operand_address): Update comment.
20954         (print_operand_punct_valid_p): Likewise.
20955
20956 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20957
20958         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
20959         to rtl.h.
20960         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
20961         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
20962         * rtl-error.h: New.
20963         * regrename.c: Do not include toplev.h. Include rtl-error.h.
20964         * rtl-error.c: Likewise.
20965         * reload.c: Likewise.
20966         * recog.c:  Likewise.
20967         * sel-sched.c: Likewise.
20968         * function.c: Likewise.
20969         * reg-stack.c: Likewise.
20970         * cfgrtl.c: Likewise.
20971         * reload1.c: Likewise.
20972         * final.c: Include rtl-error.
20973         * Makefile.in: Adjust dependencies.
20974
20975 2010-06-30  Jan Hubicka  <jh@suse.cz>
20976
20977         PR middle-end/PR44706
20978         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
20979         to return the value.
20980
20981 2010-06-30  Michael Matz  <matz@suse.de>
20982
20983         PR bootstrap/44699
20984         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
20985         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
20986         a gimple reg, attach the original VDEF to the last store in the
20987         sequence.
20988
20989 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
20990
20991         PR other/44034
20992         * config/darwin.c (darwin_override_options): Use renamed
20993         targetm.asm_out.emit_unwind_label.
20994
20995 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
20996
20997         PR tree-optimization/39799
20998         * tree-inline.c (remap_ssa_name): Initialize variable only if
20999         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
21000
21001 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
21002
21003         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
21004
21005 2010-06-30  Richard Guenther  <rguenther@suse.de>
21006
21007         PR target/44722
21008         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
21009         against oscillation with reverse peephole2.
21010
21011 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
21012
21013         PR target/44721
21014         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21015         Fix last commit.
21016
21017 2010-06-30  Nick Clifton  <nickc@redhat.com>
21018
21019         * config/rx/rx-modes.def: New file.
21020         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
21021         (CC_REGNUM): Define.
21022         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
21023         register.
21024         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
21025         (SELECT_CC_MODE): Define.
21026         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
21027         (reg:CC CC_REG) instead of (cc0).
21028         (attr "cc"): Delete.
21029         (cbranchsi4): Do not split compare and branch here. Instead move
21030         it to...
21031         (cbranchsi4_<code>): ... here.  New patterns.
21032         (cmpsi): Call rx-compare_redundant to find out if it is necessary
21033         to emit the compare instruction.
21034         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
21035         cc_status flags.
21036         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
21037         FIRST_PSEUDO_REGNUM.
21038         (rx_expand_prologue, rx_expand_epilogue): Likewise.
21039         (rx_notice_update_cc): Delete.
21040         (rx_cc_modes_compatible): New function.
21041         (flags_needed_for_conditional): New function.
21042         (flags_from_mode): New function.
21043         (rx_compare_redundant): New function - scans backwards through
21044         insn list to find out if condition flags are already set correctly.
21045         (TARGET_CC_MODES_COMPATIBLE): Define.
21046         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
21047
21048         * config/rx/rx.h (BRANCH_COST): Define.
21049         (REGISTER_MOVE_COST): Define.
21050         * config/rx/predicates (rx_source_operand): Allow all constant types.
21051         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
21052         (tstsi4): New pattern.
21053         * config/rx/rx.c (rx_memory_move_cost): Define.
21054         (TARGET_MEMORY_MOVE_COST): Define.
21055
21056 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21057
21058         * tree.h (block_may_fallthru): Declare here.
21059         * tree-flow.h (block_may_fallthru): Do not declare here.
21060         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
21061         bitmap.h
21062         * Makefile.in (c-typeck.o): Update dependencies.
21063
21064 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
21065
21066         PR debug/44694
21067         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
21068         * cselib.c (cfa_base_preserved_regno): New static variable.
21069         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
21070         of REGNO (cfa_base_preserved_val->locs->loc).
21071         (cselib_preserve_cfa_base_value): Add regno argument, set
21072         cfa_base_preserved_regno to it.
21073         (cselib_invalidate_regno): Allow removal of registers other than
21074         cfa_base_preserved_regno from cfa_base_preserved_val.
21075         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
21076         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
21077         of MEM addresses, if not on LHS.
21078         (reverse_op): Don't add reverse ops for cfa_base_rtx.
21079         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
21080
21081 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
21082
21083         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
21084         static variables.
21085         (peep2_buf_position): New static function.
21086         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
21087         peephole2_optimize): Use it.
21088         (peep2_attempt, peep2_update_life): New static functions, broken out
21089         of peephole2_optimize.
21090         (peep2_fill_buffer): New static function.
21091         (peephole2_optimize): Change the main loop to try to fill the buffer
21092         with the maximum number of insns before matching them against
21093         peepholes.  Use a forward scan.  Remove special case for targets with
21094         conditional execution.
21095         * genrecog.c (change_state): Delete dead code.
21096         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21097         Rewrite so as not to expect the second insn to have had a peephole
21098         applied yet.
21099
21100 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21101
21102         * genhooks.c (emit_findices): Cast field precision to int.
21103         (emit_documentation): Likewise.
21104
21105 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
21106
21107         PR tree-optimization/43801
21108         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
21109         if old_decl was DECL_ONE_ONLY.
21110
21111         PR debug/44668
21112         * dwarf2out.c (add_accessibility_attribute): New function.
21113         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
21114         instead of adding DW_AT_accessibility manually.
21115         (gen_enumeration_type_die, gen_struct_or_union_type_die,
21116         gen_typedef_die): Use it.
21117
21118 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21119
21120         * vmsdbgout.c (full_name): Just output the file name if not native.
21121
21122 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21123
21124         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
21125         (funcnam_table): New static table.
21126         (funcnum_table): New static table.
21127         (write_rtnbeg): Write value saved in funcnum_table.
21128         (write_rtnend): Write value saved in funcnum_table.
21129         (vmsdbgout_begin_function): Save current function info in
21130         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
21131         (vmsdbgout_finish): Iterate over funcnum_table.
21132
21133 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21134
21135         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
21136         (vmsdbgout_type_decl): Declare
21137         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
21138         (FUNC_EPILOGUE_LABEL): New macro
21139         (vmsdbgout_begin_epilogue): New function.
21140         (vmsdbgout_type_decl): New function.
21141
21142 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21143
21144         * vmsdbg.h: Update copyright.
21145
21146 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21147
21148         * vmsdbg.h (DST_K_TBG): New DST constant.
21149         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
21150         (write_modbeg): Cast module_language to avoid warning.
21151         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
21152
21153 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
21154
21155         PR other/44034
21156         * target.def, doc/tm.texi.in, genhooks.c: New files.
21157         * target.h: Instead of defining individual hook members,
21158         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
21159         include target.def.
21160         * target-def.h: Instead of defining individual hook initializers,
21161         include target-hooks-def.h.
21162         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
21163         targetm.live_on_entry -> targetm.extra_live_on_entry
21164         targetm.sched.md_finish ->targetm.sched.finish
21165         targetm.sched.md_init -> targetm.sched.init
21166         targetm.sched.md_init_global -> targetm.sched.init_global
21167         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
21168         targetm.asm_out.except_table_label ->
21169           targetm.asm_out.emit_except_table_label
21170         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
21171         targetm.target_help -> targetm.help
21172         targetm.vectorize.builtin_support_vector_misalignment ->
21173           targetm.vectorize.support_vector_misalignment
21174         targetm.file_start_app_off -> targetm.asm_file_start_app_off
21175         targetm.file_start_file_directive ->
21176          targetm.asm_file_start_file_directive
21177         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
21178         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
21179         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
21180         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
21181           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
21182         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
21183           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
21184         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
21185         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
21186         * Makefile.in (TARGET_H): Depend on target.def.
21187         (TARGET_DEF_H): Depend on target-hooks-def.h.
21188         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
21189         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
21190         * doc/tm.texi: Regenerate.
21191
21192         * Makefile.in (s-tm-texi): Remove stray tab / rule.
21193
21194         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
21195         (targetm.sched.init): Likewise.
21196
21197 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21198
21199         PR bootstrap/44713
21200         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
21201         (function_arg_advance_32): Const-ify TYPE parameter.
21202         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
21203         (ix86_function_arg_advance): Change type of NAMED to bool.
21204         (function_arg_32): Const-ify CUM and TYPE parameters.
21205         (function_arg_64): Likewise.  Change type of NAMED to bool.
21206         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
21207         to bool.
21208         (ix86_function_arg): Change type of NAMED to bool.
21209         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
21210         last argument as a bool.
21211
21212 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
21213
21214         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
21215         (OVERRIDE_OPTIONS): Add note of obsolescence.
21216         Replace references with references to TARGET_OPTION_OVERRIDE.
21217         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
21218          the macro).
21219         * targhooks.c (default_target_option_override): New function.
21220         * targhooks.h (default_target_option_override): Declare.
21221         * target.h (struct gcc_target): Add override member to
21222         target_option member.
21223         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
21224         targetm.target_option.override call.
21225         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
21226         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
21227
21228 2010-06-29  Jan Hubicka  <jh@suse.cz>
21229
21230         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
21231
21232 2010-06-29  Jan Hubicka  <jh@suse.cz>
21233
21234         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
21235         unreachable.
21236         (rebuild_frequencies): New function.
21237         * predict.h (rebuild_frequencies): Declare.
21238         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
21239         entry block and edge reaching new_entry.
21240         (tree_function_versioning): When doing partial cloning, rebuild
21241         frequencies when done.
21242         * passes.c (execute_function_todo): Use rebild_frequencies.
21243
21244 2010-06-29  Richard Guenther  <rguenther@suse.de>
21245
21246         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
21247         * tree-flow.h (enum noalias_state): Remove.
21248         (struct var_ann_d): Remove noalias_state member.
21249
21250 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
21251
21252         PR target/43902
21253         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
21254         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
21255         (maddhidi4): Likewise.
21256
21257         Revert parts of the change for PR25130.
21258         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
21259         MEM_ALIAS_SET.
21260
21261 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21262
21263         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
21264         targetm.calls.function_incoming_arg, and
21265         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
21266         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
21267         * target.h (struct gcc_target): Add function_arg_advance,
21268         function_arg, and function_incoming_arg fields.
21269         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
21270         (TARGET_FUNCTION_INCOMING_ARG): Define.
21271         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
21272         and TARGET_FUNCTION_INCOMING_ARG.
21273         * targhooks.h (default_function_arg_advance): Declare.
21274         (default_function_arg, default_function_incoming_arg): Declare.
21275         * targhooks.c (default_function_arg_advance): New function.
21276         (default_function_arg, default_function_incoming_arg): New function.
21277         * config/i386/i386.c (function_arg_advance): Rename to...
21278         (ix86_function_arg_advance): ...this.  Make static.
21279         (function_arg): Rename to...
21280         (ix86_function_arg): ...this.  Make static.
21281         (TARGET_FUNCTION_ARG_ADVANCE): Define.
21282         (TARGET_FUNCTION_ARG): Define.
21283         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
21284         (FUNCTION_ARG): Delete.
21285         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
21286         (function_arg): Delete prototype.
21287
21288 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21289
21290         * reginfo.c (init_reg_sets_1): Adjust comments.
21291         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
21292         * calls.c (prepare_call_address): Likewise.
21293         (emit_call_1): Use targetm.calls.return_pops_args.
21294         (expand_call): Likewise.
21295         * function.c (assign_parms): Likewise.
21296         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
21297         * target.h (struct gcc_target) [struct calls]: Add
21298         return_pops_args field.
21299         * targhooks.h (default_return_pops_args): Declare.
21300         * targhooks.c (default_return_pops_args): Define.
21301         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
21302         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
21303         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
21304         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
21305         documentation.
21306         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
21307         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
21308         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
21309         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
21310         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
21311         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
21312         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
21313         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
21314         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
21315         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
21316         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
21317         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
21318         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
21319         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
21320         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
21321         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
21322         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
21323         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
21324         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
21325         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
21326         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
21327         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
21328         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
21329         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
21330         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
21331         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
21332         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
21333         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
21334         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
21335         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
21336         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
21337         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
21338         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
21339         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
21340         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
21341         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
21342         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
21343         * config/i386/i386.c (ix86_return_pops_args): Make static.
21344         Constify arguments.
21345         (TARGET_RETURN_POPS_ARGS): Define.
21346         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
21347         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
21348         (TARGET_RETURN_POPS_ARGS): Define.
21349         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
21350         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
21351         (TARGET_RETURN_POPS_ARGS): Define.
21352
21353 2010-06-29  Richard Guenther  <rguenther@suse.de>
21354
21355         PR middle-end/44667
21356         * tree-inline.c (initialize_inlined_parameters): Make sure
21357         to remap the inlined parameter variable substitutions types.
21358
21359 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
21360
21361         PR rtl-optimization/44659
21362         * combine.c (make_compound_operation) <SUBREG>: Do not return the
21363         result of force_to_mode if it partially re-expanded the compound.
21364
21365 2010-06-28  Jan Hubicka  <jh@suse.cz>
21366
21367         PR middle-end/44671
21368         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
21369         RESULT_DECL.
21370
21371 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
21372
21373         * double-int.h (force_fit_type_double): Remove declaration.
21374         * double-int.c (force_fit_type_double): Move to tree.c.
21375         * tree.h (force_fit_type_double): Declare.
21376         * tree.h (force_fit_type_double): Moved from double-int.c. Use
21377         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
21378         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
21379         * convert.c (convert_to_pointer): Adjust call to
21380         force_fit_type_double.
21381         * tree-vrp.c (extract_range_from_assert,
21382         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
21383         * fold-const.c: Update comment.
21384         (int_const_binop, fold_convert_const_int_from_int,
21385         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
21386         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
21387         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
21388         round_up_loc): Adjust call to force_fit_type_double.
21389
21390 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
21391
21392         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
21393
21394 2010-06-28  Martin Jambor  <mjambor@suse.cz>
21395
21396         * tree-sra.c (convert_callers): New parameter, change fndecls of
21397         recursive calls.
21398         (modify_function): Pass the old decl to convert_callers.
21399
21400 2010-06-28  Martin Jambor  <mjambor@suse.cz>
21401
21402         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
21403         ipa_check_create_node_params and ipa_initialize_node_params with
21404         checking asserts they are not necessary.
21405
21406 2010-06-28  Jan Hubicka  <jh@suse.cz>
21407
21408         PR tree-optimization/44687
21409         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
21410
21411 2010-06-28  Martin Jambor  <mjambor@suse.cz>
21412
21413         PR c++/44535
21414         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
21415         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
21416         instead of BINFO_BASE_BINFO.
21417
21418 2010-06-28  Michael Matz  <matz@suse.de>
21419
21420         PR middle-end/44592
21421         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
21422         proper VDEF chain for intermediate stores in the sequence.
21423
21424 2010-06-28  Jan Hubicka  <jh@suse.cz>
21425
21426         PR tree-optimization/44357
21427         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
21428         uninlinable functions.
21429
21430 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
21431
21432         * config.gcc (powerpc*-*-*): Handle titan.
21433         * config/rs6000/rs6000.c (titan_cost): New costs.
21434         (rs6000_override_options): Add "titan" to processor_target_table.
21435         Add Titan to branch alignment logic.
21436         Correctly set rs6000_cost for titan.
21437         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
21438         * config/rs6000/titan.md: New file.
21439         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
21440
21441 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
21442
21443         * tree-browser.c (TB_history_stack): Convert to a VEC.
21444         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
21445         (TB_history_prev): Likewise.
21446
21447 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
21448
21449         * vec.h (vec_heap_free): Add parentheses around free.
21450
21451 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
21452
21453         * system.h: Poison GCC_EXCEPT_H for front-end files.
21454
21455         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
21456         langhook.
21457         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
21458         Define to NULL by default.
21459         * except.h: Define GCC_EXCEPT_H.
21460         (doing_eh): Remove prototype.
21461         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
21462         (lang_protect_cleanup_actions): Remove.
21463         * except.c (lang_protect_cleanup_actions): Remove.
21464         (doing_eh): Remove.
21465         (gen_eh_region): Don't check doing_eh here.
21466         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
21467         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
21468         instead of lang_protect_cleanup_actions.
21469         * omp-low.c (maybe_catch_exception): Likewise.
21470         * Makefile.in: Update dependencies.
21471
21472 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
21473
21474         * cgraph.h (struct varpool_node): new used_from_object_file flag.
21475         (struct cgraph_local_info): new used_from_object_file flag.
21476         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
21477         (cgraph_clone_node): initialize used_from_object_file.
21478         (cgraph_create_virtual_clone): initialize used_from_object_file.
21479         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
21480         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
21481         when compiling with -fwhole-program.
21482         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
21483         internal resolver.
21484         * ipa.c (function_and_variable_visibility): Set externally_visible
21485         flag of varpool_node if used_from_object_file flag is set.
21486         (cgraph_externally_visible_p): check used_from_object_file flag.
21487         * doc/invoke.texi (-fwhole-program option): Change description of
21488         externally_visible attribute accordingly.
21489         * doc/extend.texi (externally_visible): Ditto.
21490
21491 2010-06-27  Jan Hubicka  <jh@suse.cz>
21492
21493         * params.def (max-inline-insns-auto): Default to 40.
21494         * doc/invoke.texi (max-inline-insns-auto): Document the change.
21495
21496 2010-06-27  Jan Hubicka  <jh@suse.cz>
21497
21498         PR middle-end/44671
21499         PR middle-end/44686
21500         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
21501         signature change.
21502         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
21503         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
21504
21505 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
21506
21507         * target.h (struct gcc_target): Add register_move_cost field.
21508         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
21509         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
21510         * targhooks.c (default_register_move_cost): New function.
21511         * targhooks.h (default_register_move_cost): Declare function.
21512         * defaults.h (REGISTER_MOVE_COST): Delete.
21513         * ira-int.h (ira_register_move_cost): Update comment.
21514         * ira.c (ira_register_move_cost): Update comment.
21515         * reload.h (register_move_cost): Declare.
21516         * reginfo.c (register_move_cost): New function.
21517         (move_cost): Update comment.
21518         (init_move_cost, memory_move_secondary_cost): Replace
21519         REGISTER_MOVE_COST with register_move_cost.
21520         * postreload.c (reload_cse_simplify_set): (Ditto.).
21521         * reload.c (find_valid_class, find_reloads): (Ditto.).
21522         * reload1.c (choose_reload_regs): (Ditto.).
21523         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
21524         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
21525         * doc/md.texi (can_create_pseudo_p): Update documentation.
21526
21527         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
21528         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
21529         * config/i386/i386.h (ix86_memory_move_cost): Make static.
21530         (TARGET_MEMORY_MOVE_COST): Define.
21531
21532         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
21533         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
21534         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
21535         (TARGET_MEMORY_MOVE_COST): Define.
21536
21537 2010-06-27  Richard Guenther  <rguenther@suse.de>
21538
21539         PR tree-optimization/44683
21540         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
21541         false edge from the inverted condition.
21542
21543 2010-06-27  Richard Guenther  <rguenther@suse.de>
21544
21545         PR middle-end/44684
21546         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
21547         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
21548         for register LHS.  Or non-store assignments.
21549
21550 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
21551
21552         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
21553         (sparc_emit_set_const64): Likewise.  Remove disabled code.
21554         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
21555         (sparc_emit_set_const64): Likewise.
21556
21557 2010-06-26  Catherine Moore  <clm@codesourcery.com>
21558
21559         * config/mips/mips.md (alu_type): New attribute.
21560         (type): Infer type from alu_type.
21561         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
21562         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
21563         *subsi3_extended, negsi2, negdi2, *low<mode>,
21564         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
21565         xor<mode>3, *nor<mode>3,
21566         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
21567         *zero_extendhi_truncqi):  Set alu_type instead of type.
21568
21569 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
21570
21571         * config/alpha/alpha.c (alpha_need_linkage): Adjust
21572         splay_tree_new_ggc call.
21573         (alpha_use_linkage): Likewise.
21574
21575 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
21576
21577         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
21578         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
21579         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
21580         (static_specs): Remove switches_need_spaces.
21581         (process_command, do_self_spec): Hardcode handling "-o" instead of
21582         checking switches_need_spaces.
21583         * system.h (SWITCHES_NEED_SPACES): Poison.
21584
21585 2010-06-26  Richard Guenther  <rguenther@suse.de>
21586
21587         PR tree-optimization/44393
21588         * tree-loop-distribution.c (generate_loops_for_partition): Fix
21589         stmt removal and VOP renaming.
21590         (generate_memset_zero): Remove redundant stmt updating.
21591         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
21592         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
21593
21594 2010-06-26  Jan Hubicka  <jh@suse.cz>
21595
21596         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
21597         edges comming from header are equivalent.
21598         (visit_bb): Handle PHIs correctly.
21599         * tree-inline.c (copy_phis_for_bb): Be able to copy
21600         PHI from entry edge.
21601         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
21602
21603 2010-06-26  Richard Guenther  <rguenther@suse.de>
21604
21605         PR middle-end/44674
21606         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
21607         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
21608
21609 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
21610
21611         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
21612         add_infile, alloc_switch): New.
21613         (process_command): Remove variable lang_n_infiles.  Process
21614         options in a single pass.  Use new functions for allocating
21615         infiles and switches arrays.  Properly skip operands of
21616         -Xpreprocessor and -Xassembler.
21617
21618 2010-06-26  Jan Hubicka  <jh@suse.cz>
21619
21620         PR middle-end/44671
21621         * cgraphunit.c (cgraph_function_versioning): Remove wrong
21622         cgraph_make_decl_local call; fix typo copying RTL data.
21623
21624 2010-06-25  DJ Delorie  <dj@redhat.com>
21625
21626         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
21627         (m32c_output_aligned_common): Likewise.
21628         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
21629         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
21630         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
21631         (m32c_register_pragmas): Register it.
21632         * config/m32c/m32c.c (m32c_get_pragma_address): New.
21633         (m32c_insert_attributes): Set #pragma address decls volatile.
21634         (pragma_entry_eq): New.
21635         (pragma_entry_hash): New.
21636         (m32c_note_pragma_address): New.
21637         (m32c_get_pragma_address): New.
21638         (m32c_output_aligned_common): New.
21639         * doc/extend.texi: Document the new pragma.
21640
21641         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
21642         also.
21643         * config/m32c/predicates.md (m32c_any_operand): Check the code
21644         instead of memory_operand so as to allow matching volatile MEMs.
21645         (m32c_nonimmediate_operand): Likewise.
21646         (mra_operand): Allow volatiles.
21647
21648 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
21649
21650         PR debug/44610
21651         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
21652         address if the offset is unknown.
21653
21654 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
21655
21656         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
21657         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
21658         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
21659         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
21660         to ia64_start_function. Invoke it.
21661         * config/ia64/ia64.c (ia64_start_function): Call new function
21662         dwarf2out_vms_debug_main_pointer.
21663
21664 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
21665
21666         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
21667         statements computing the true predicate.
21668
21669 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
21670
21671         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
21672         to boolean_true_node.
21673         (reset_bb_predicate): New.
21674         (predicate_bbs): Call reset_bb_predicate.
21675
21676 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
21677
21678         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
21679         (tree_if_conversion): Returns true when something has been changed.
21680         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
21681         changed something.
21682
21683 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
21684
21685         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
21686         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
21687         * tree-if-conv.c: Include dbgcnt.h.
21688         (tree_if_conversion): Use if_conversion_tree to count the number of
21689         if-convertible loops.
21690
21691 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
21692
21693         * common.opt (fprefetch-loop-arrays): Re-define
21694         -fprefetch-loop-arrays as a tri-state option with the initial
21695         value of -1.
21696         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
21697         pass only when flag_prefetch_loop_arrays > 0.
21698         * toplev.c (process_options): Note that, with tri-states,
21699         flag_prefetch_loop_arrays>0 means prefetching is enabled.
21700         * config/i386/i386.c (override_options): Enable prefetching at -O3
21701         for a set of CPUs that sw prefetching is helpful.
21702         (software_prefetching_beneficial_p): New.  Return TRUE if software
21703         prefetching is beneficial for the given CPU.
21704
21705 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
21706
21707         PR rtl-optimization/44326
21708         * implicit-zee.c (find_removable_zero_extends): Replace
21709         INSN_P with NONDEBUG_INSN_P.
21710
21711 2010-06-25  Martin Jambor  <mjambor@suse.cz>
21712
21713         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
21714         (struct ipa_node_params): Removed the modification_analysis_done flag.
21715         (ipa_is_param_modified): Removed.
21716         (ipa_analyze_node): Declare.
21717         (ipa_compute_jump_functions): Remove declaration.
21718         (ipa_count_arguments): Likewise.
21719         (ipa_detect_param_modifications): Likewise.
21720         (ipa_analyze_params_uses): Likewise.
21721         * ipa-prop.c (struct param_analysis_info): New type.
21722         (visit_store_addr_for_mod_analysis): Removed.
21723         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
21724         moved down in the file.
21725         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
21726         (ipa_count_arguments): Made static.
21727         (mark_modified): New function.
21728         (is_parm_modified_before_call): New function.
21729         (compute_pass_through_member_ptrs): New parameter parms_info, call
21730         is_parm_modified_before_call instead of ipa_is_param_modified.
21731         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
21732         it to compute_pass_through_member_ptrs.
21733         (ipa_compute_jump_functions): New parameter parms_info, pass it to
21734         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
21735         on the callee if it is analyzed.  Made static.
21736         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
21737         is_parm_modified_before_call instead of ipa_is_param_modified.
21738         (ipa_analyze_call_uses): New parameter parms_info, pass it to
21739         ipa_analyze_indirect_call_uses.
21740         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
21741         ipa_analyze_call_uses.
21742         (ipa_analyze_params_uses): New parameter parms_info, pass it to
21743         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
21744         (ipa_analyze_node): New function.
21745         (ipa_print_node_params): Do not dump the modified flag.
21746         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
21747         it.  Do not stream the modified parameter flag.
21748         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
21749         it.  Do not stream the modified parameter flag.
21750         * ipa-cp.c (ipcp_analyze_node): Removed.
21751         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
21752         with only a call to ipa_analyze_node.
21753         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
21754         node with only a call to ipa_analyze_node.
21755
21756 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21757
21758         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
21759
21760 2010-06-25  Jan Hubicka  <jh@suse.cz>
21761
21762         * tree-pass.h (pass_split_functions): Declare.
21763         * opts.c (decode_options): Enable function splitting at -O2
21764         * timevar.def (TV_IPA_FNSPLIT): New macro.
21765         * ipa-split.c: New file.
21766         * common.opt (-fpartial-inlining): New flag.
21767         * Makefile.in (ipa-split.o): New object file.
21768         * passes.c (init_optimization_passes): Add ipa-split.
21769         * params.def (partial-inlining-entry-probability): New parameters.
21770         * doc/invoke.texi (-fpartial-inlining): New.
21771
21772 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21773
21774         PR 44665
21775         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
21776         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
21777         (gimplify_expr): Likewise.
21778
21779 2010-06-25  Martin Jambor  <mjambor@suse.cz>
21780
21781         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
21782         statements instead of bailing out on them.
21783         (ipa_analyze_indirect_call_uses): Do not require that loads from the
21784         parameter are in the same BB as the condition.  Update comments.
21785
21786 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
21787
21788         PR middle-end/43866
21789         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
21790         true or always false, return NULL_TREE.
21791         (tree_unswitch_single_loop): Optimize conditions even when reaching
21792         max-unswitch-level parameter.  If num > 0, optimize first all conditions
21793         using entry checks, then do still reachable block discovery and consider
21794         only conditions in still reachable basic blocks in the loop.
21795
21796         PR tree-optimization/44539
21797         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
21798         the call doesn't have LHS, but has VDEF.
21799
21800 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
21801
21802         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
21803         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
21804         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
21805         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
21806         * system.h (MODIFY_TARGET_NAME): Poison.
21807
21808 2010-06-25  Alan Modra  <amodra@gmail.com>
21809
21810         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
21811         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
21812         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
21813         CMODEL_LARGE as default.
21814         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
21815         (offsettable_ok_by_alignment): Delete.
21816         (rs6000_emit_move): Remove mcmodel=medium optimization.
21817
21818 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
21819
21820         With large parts from Jim Wilson:
21821         PR target/43902
21822         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
21823         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
21824         * optabs.c (optab_for_tree_code): Likewise.
21825         (expand_widen_pattern_expr): Likewise.
21826         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
21827         out of execute_optimize_widening_mul.
21828         (convert_plusminus_to_widen): New function.
21829         (execute_optimize_widening_mul): Use the two new functions.
21830         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
21831         Remove code to generate widening multiply-accumulate.  Add support
21832         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
21833         * gimple-pretty-print.c (dump_ternary_rhs): New function.
21834         (dump_gimple_assign): Call it when appropriate.
21835         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
21836         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
21837         (expand_gimple_stmt_1): Likewise.
21838         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
21839         WIDEN_MULT_MINUS_EXPR.
21840         * tree-ssa-operands.c (get_expr_operands): Likewise.
21841         * tree-inline.c (estimate_operator_cost): Likewise.
21842         * gimple.c (extract_ops_from_tree_1): Renamed from
21843         extract_ops_from_tree.  Add new arg for a third operand; fill it.
21844         (gimple_build_assign_stat): Support operations with three operands.
21845         (gimple_build_assign_with_ops_stat): Likewise.
21846         (gimple_assign_set_rhs_from_tree): Likewise.
21847         (gimple_assign_set_rhs_with_ops_1): Renamed from
21848         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
21849         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
21850         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
21851         WIDEN_MULT_MINUS_EXPR.
21852         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
21853         (extract_ops_from_tree_1): Adjust declaration.
21854         (gimple_assign_set_rhs_with_ops_1): Likewise.
21855         (gimple_build_assign_with_ops): Pass NULL for last operand.
21856         (gimple_build_assign_with_ops3): New macro.
21857         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
21858         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
21859         functions.
21860         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
21861         (verify_gimple_assign): Call it.
21862         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
21863         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
21864         functions for dealing with three-operand statements.
21865         * tree.c (commutative_ternary_tree_code): New function.
21866         * tree.h (commutative_ternary_tree_code): Declare it.
21867         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
21868         ternary statements.
21869         (gimple_assign_nonzero_warnv_p): Likewise.
21870         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
21871         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
21872         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
21873         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
21874         (struct hashtable_expr): New member ternary in the union.
21875         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
21876         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
21877         (iterative_hash_hashable_expr): Likewise.
21878         (print_expr_hash_elt): Handle EXPR_TERNARY.
21879         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
21880         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
21881         statements.  Handle GIMPLE_TERNARY_RHS.
21882
21883 2010-06-25  Jan Hubicka  <jh@suse.cz>
21884
21885         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
21886
21887 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
21888
21889         PR c/44517
21890         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
21891         parameters are not good.
21892         (c_parser_parameter_declaration): Error unknown type name if the type
21893         name can't start declaration specifiers.
21894
21895 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
21896
21897         * gcc.c (translate_options): Don't mention +e in comment.
21898         (process_command): Don't handle +e specially.
21899
21900 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
21901
21902         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
21903
21904         * ira-build.c (merge_hard_reg_conflicts): New function.
21905         (create_cap_allocno, copy_info_to_removed_store_destinations,
21906         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
21907         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
21908         (remove_unnecessary_allocnos, remove_low_level_allocnos)
21909         copy_nifo_to_removed_store_destination): Use them.
21910         * ira-lives.c (make_hard_regno_born): New function, split out of
21911         make_regno_born.
21912         (make_allocno_born): Likewise.
21913         (make_hard_regno_dead): New function, split out of make_regno_dead.
21914         (make_allocno_dead): Likewise.
21915         (inc_register_pressure): New function, split out of set_allocno_live.
21916         (dec_register_pressure): New function, split out of clear_allocno_live.
21917         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
21918         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
21919         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
21920         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
21921         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
21922         mark_pseudo_regno_live.
21923         (process_bb_node_lives): Use mark_pseudo_regno_live,
21924         make_hard_regno_born and make_allocno_dead.
21925         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
21926         set_allocno_live, clear_allocno_live): Delete functions.
21927
21928         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
21929         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
21930         functions.
21931         (ira_flattening): Use ira_parent_allocno.
21932         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
21933         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
21934
21935         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
21936         statement.
21937
21938         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
21939         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
21940         minmax_set_iter_cond, minmax_set_iter_next,
21941         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
21942         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
21943         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
21944         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
21945         uses changed.
21946
21947         * ira-int.h (struct live_range, live_range_t): Renamed from struct
21948         ira_allocno_live_range and allocno_live_range_t; all uses changed.
21949         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
21950         All uses changed.
21951
21952 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
21953
21954         * thumb2.md (thumb2_tlobits_cbranch): Delete.
21955         (peephole2 to convert zero_extract/compare of single bit to
21956          lshift/compare): New.
21957
21958 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
21959
21960         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
21961         recursive call and call to 'int_const_binop'.
21962         (build_range_check, fold_cond_expr_with_comparison, unextend,
21963         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
21964         multiple_of_p): Adjust call to const_binop.
21965
21966 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
21967
21968         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
21969         determine size of XFmode operand.
21970         (XFmode extended DFmode push splitter): Ditto.
21971         (XFmode extended SFmode push splitter): Ditto.
21972
21973 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
21974
21975         PR target/44588
21976         * config/i386/i386.md (extract_code): New.
21977         (<u>divmodqi4): Likewise.
21978         (divmodhiqi3): Likewise.
21979         (udivmodhiqi3): Likewise.
21980         (<u>divqi3): Remvoved.
21981
21982 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
21983
21984         PR middle-end/44492
21985         * recog.h (struct recog_data): Add is_asm field.
21986         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
21987         present in constraints of inline-asm operand and memory operand
21988         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
21989         (extract_insn): Initialize recog_data.is_asm.
21990         * doc/md.texi (Constraints): Document operand side-effect rules.
21991
21992 2010-06-24  Andi Kleen  <ak@linux.intel.com>
21993
21994         * c-parser.c (c_parser_conditional_expression): Call
21995         warn_for_omitted_condop.
21996         * doc/invoke.texi: Document omitted condop warning.
21997
21998 2010-06-24  Nick Clifton<nickc@redhat.com>
21999
22000         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
22001         insn in the sequence is a jump insn before setting its label.
22002
22003 2010-06-24  Alan Modra  <amodra@gmail.com>
22004
22005         * collect2.c (main): Match exactly --version and --help.
22006
22007 2010-06-24  DJ Delorie  <dj@redhat.com>
22008
22009         * config/m32c/m32c-pragma.c: Don't include rtl.h.
22010
22011 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
22012
22013         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
22014         using X87MODEF mode iterator.
22015         (pushsf splitter): Macroize splitter using P mode iterator.
22016         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
22017         mode iterator.
22018
22019         (*movxf_internal): Rename from *movxf_integer.
22020         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
22021         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
22022         (*movdf_internal): Rename from *movdf_integer.
22023         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
22024         (*movsf_internal): Rename from *movdf_1.
22025
22026 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
22027
22028         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
22029         (const_gimple_seq_node): Removed typedefs.
22030
22031         * gimple.h (gimple_seq_node_d, gimple_seq_node)
22032         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
22033
22034 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
22035
22036         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
22037         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
22038         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
22039         and CODE_FOR_vec_extract_lo_v4df.
22040
22041         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
22042         Changed to define_insn_and_split.
22043         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
22044         (vec_extract_lo_v16hi): Likewise.
22045         (vec_extract_lo_v32qi): Likewise.
22046         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
22047         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
22048
22049 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
22050
22051         PR target/44640
22052         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
22053         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
22054         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
22055         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
22056         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
22057
22058         PR target/44640
22059         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
22060
22061         PR other/44644
22062         * df-core.c (struct df): Rename to df_d.
22063         * df.h (struct df): Likewise.
22064         * dse.h (struct df): Remove forward declaration.
22065         * recog.h (struct insn_data): Rename to:
22066         (struct_insn_data_d).  Adjusted all users.
22067
22068 2010-06-23  Arnaud Charlet  <charlet@adacore.com
22069
22070         PR ada/22220
22071         * doc/install.texi: Update requirements to build GNAT.
22072
22073 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
22074
22075         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
22076         enum type.
22077         (m68k_sched_attr_opx_type): Remove unreachable return.
22078         (m68k_sched_attr_opy_type): Likewise.
22079         (m68k_sched_attr_size): Likewise.
22080         (sched_get_opxy_mem_type): Likewise.
22081         (m68k_sched_attr_op_mem): Likewise.
22082
22083 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
22084
22085         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
22086         new statement and adjust VDEF only if necessary.  Remove superfluous
22087         call to maybe_clean_or_replace_eh_stmt.
22088         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
22089         copy the flags.
22090         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
22091         * tree-inline.c (copy_bb): ...and not there.
22092
22093 2010-06-22  Cary Coutant  <ccoutant@google.com>
22094
22095         * dwarf2out.c (is_nested_in_subprogram): New function.
22096         (should_move_die_to_comdat): Use it.
22097         (copy_ancestor_tree): Don't mark DIEs here.
22098         (copy_decls_walk): Start walk from root of newly-added tree;
22099         mark DIEs here instead.
22100
22101 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
22102
22103         * config/i386/i386.md (unit): Also check sseishft1.
22104
22105 2010-06-22  Jan Hubicka  <jh@suse.cz>
22106
22107         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
22108         enabled.
22109
22110 2010-06-22  Jan Hubicka  <jh@suse.cz>
22111
22112         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
22113         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
22114         Return true if something changed.
22115         * df.h (df_confluence_function_n): Return bool.
22116         * df-core.c (df_worklist_propagate_forward,
22117         df_worklist_propagate_backward): Track changes and ages.
22118         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
22119         track ages.
22120         * dse.c (dse_confluence_n): Return always true.
22121
22122 2010-06-22  Jan Hubicka  <jh@suse.cz>
22123
22124         * bitmap.c (bitmap_clear_bit): Micro optimize.
22125
22126 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
22127
22128         * config/i386/i386.md (SWI1248x): New mode iterator.
22129         (SWI48x): Ditto.
22130         (SWI12): Ditto.
22131         (SWI24): Ditto.
22132
22133         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
22134         SWI1248x mode iterator.
22135         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
22136         using SWI124 mode iterator.
22137         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
22138         mode iterator.
22139         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
22140         *pushdi2_prologue_rex64 using P mode iterator.
22141         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
22142         using SWI48 mode iterator.
22143         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
22144         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
22145         using SWI1248x mode iterator.
22146         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
22147         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
22148         SWI48 mode iterator.
22149         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
22150         iterator.
22151         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
22152         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
22153         SWI12 mode iterator.
22154         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
22155         SWI12 mode iterator.
22156         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
22157         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
22158         SWI24 mode iterator.
22159         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
22160         SWI48 mode iterator.
22161         (mov<mode>_insn_1): New expander.
22162         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
22163         using SWI48x mode iterator.
22164
22165         (*movoi_internal_avx): Rename from *movoi_internal.
22166         (*movti_internal_rex64): Rename from *movti_rex64.
22167         (*movti_internal_sse): Rename from *movti_sse.
22168         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
22169         (*movdi_internal): Rename from *movdi_2.
22170         (*movsi_internal): Rename from *movsi_1.
22171         (*movhi_internal): Rename from *movhi_1.
22172         (*movqi_internal): Rename from *movqi_1.
22173
22174         (insv): Update the call to gen_movsi_insv_1 for rename.
22175         * config/i386/i386.c (promote_duplicated_reg): Ditto.
22176
22177 2010-06-22  Jan Hubicka  <jh@suse.cz>
22178
22179         * passes.c (execute_function_todo): Move call of statistics_fini_pass
22180         to ...
22181         (execute_todo) ... this one.
22182
22183 2010-06-22  Alan Modra  <amodra@gmail.com>
22184
22185         PR target/44364
22186         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
22187         * caller-save.c (insert_restore, insert_save): Use non-validate
22188         form of adjust_address.
22189
22190 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22191
22192         PR target/39690
22193         * config/pa/pa.c (override_options): Disable
22194         -freorder-blocks-and-partition.
22195
22196 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
22197
22198         PR target/44615
22199         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
22200
22201         * config/i386/i386.md (type): Add sseishft1
22202
22203         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
22204         (ppro_insn_load): Likewise.
22205         (ppro_insn_store): Likewise.
22206         (ppro_insn_both): Likewise.
22207
22208         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
22209         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
22210         for type.
22211         (*vec_extractv2di_1_avx): Likewise.
22212         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
22213         type.  Remove atom_unit.
22214         (*vec_extractv2di_1_sse2): Likewise.
22215
22216 2010-06-21  DJ Delorie  <dj@redhat.com>
22217
22218         * diagnostic.h (diagnostic_classification_change_t): New.
22219         (diagnostic_context): Add history and push/pop list.
22220         (diagnostic_push_diagnostics): Declare.
22221         (diagnostic_pop_diagnostics): Declare.
22222         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
22223         from pragmas in a history chain instead of the global table.
22224         (diagnostic_push_diagnostics): New.
22225         (diagnostic_pop_diagnostics): New.
22226         (diagnostic_report_diagnostic): Scan history chain to find state
22227         of diagnostics as of the diagnostic location.
22228         * opts.c (set_option): Pass UNKNOWN_LOCATION to
22229         diagnostic_classify_diagnostic.
22230         (enable_warning_as_error): Likewise.
22231         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
22232         use in the history chain.
22233         * doc/extend.texi: Document pragma GCC diagnostic changes.
22234
22235 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
22236
22237         * dwarf2out.c (add_linkage_name): New function.  Don't add
22238         anything to DW_TAG_member DIEs.
22239         (add_name_and_src_coords_attributes): Use it.
22240         (gen_variable_die): Call it for C++ static data members if
22241         specification is DW_TAG_member.
22242
22243         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
22244         C++ char16_t and char32_t.
22245
22246         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
22247         * genattrtab.c: Include vecprim.h.
22248         (cached_attrs, cached_attr_count, attrs_seen_once,
22249         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
22250         attrs_cached_after): New variables.
22251         (find_attrs_to_cache): New function.
22252         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
22253         (write_test_expr): Add attrs_cached argument, return it too,
22254         attempt to cache non-const attributes used more than once in
22255         a single case handling.
22256         (write_attr_get): Use find_attrs_to_cache, for caching candidates
22257         emit cached_* variables.  Adjust write_attr_set callers.
22258         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
22259         to find attributes that should be cached in this block.  Adjust
22260         write_test_expr callers.
22261         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
22262         callers.
22263         (make_automaton_attrs): Adjust write_test_expr caller.
22264
22265         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
22266         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
22267         (make_automaton_attrs): If find_tune_attr returns non-NULL,
22268         write separate internal_dfa_insn_code_* and insn_default_latency_*
22269         functions for each attribute's value and emit init_sched_attrs
22270         function and function pointers.
22271         * genattr.c (const_attrs, reservations): New variables.
22272         (gen_attr): Add const attributes to const_attrs vector.
22273         (check_tune_attr, find_tune_attr): New functions.
22274         (main): Add reservations to reservations vector.  If find_tune_attr
22275         returns true, add prototype for init_sched_attrs and make
22276         internal_dfa_insn_code and insn_default_latency function pointers,
22277         otherwise define init_sched_attrs as dummy macro.
22278         * cfgexpand.c: Include insn-attr.h.
22279         (gimple_expand_cfg): Call init_sched_attrs.
22280
22281         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
22282
22283         PR target/44575
22284         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
22285         va_arg from a set of register save slots into a temporary,
22286         if the container is bigger than type size, do the copying
22287         using smaller mode or using memcpy.
22288
22289         PR bootstrap/44426
22290         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
22291         prototype.
22292         (sel_print_to_dot): Remove macro.
22293         (sel_print): Likewise.  New prototype.
22294         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
22295         (sel_print): New function.
22296
22297 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22298
22299         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
22300         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
22301
22302 2010-06-21  Nick Clifton  <nickc@redhat.com>
22303
22304         * config/rx/rx.h (PTRDIFF_TYPE): Define.
22305         (SMALL_REGISTER_CLASS): Define (to zero).
22306         (PRINT_OPERAND): Delete.
22307         (PRINT_OPERAND_ADDRESS): Delete.
22308         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
22309         (rx_print_operand_address): Delete prototype.
22310         * config/rx/rx.c (rx_print_operand): Make static.
22311         Allow %H and %L to handle CONST_DOUBLEs.
22312         (rx_print_operand_address): Make static.
22313         (rx_gen_move_template): Rename local variable 'template' to
22314         out_template.
22315         (rx_function_arg): Do not pass unknown sized objects in registers.
22316         (TARGET_PRINT_OPERAND): Define.
22317         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22318
22319 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
22320
22321         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
22322
22323 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
22324
22325         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
22326         stack-alignment for simple leaf-functions.
22327
22328 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
22329
22330         * doc/install.texi: Document bootstrap-lto.
22331
22332 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
22333
22334         PR debug/44248
22335         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
22336         (input_function): Drop them here, if VTA is disabled.
22337
22338 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
22339
22340         PR target/44546
22341         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
22342         New predicate.
22343         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
22344         ix86_swapped_fp_comparsion_operator instead of
22345         ix86_fp_comparison_operator.
22346
22347         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
22348         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
22349         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
22350         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
22351         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
22352         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
22353
22354 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
22355
22356         PR other/32998
22357         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
22358         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
22359         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
22360         (decode_cmdline_option): Update for this return value.  Set
22361         orig_option_with_args_text field.  Set arg field for unknown
22362         options.  Make static.
22363         (decode_cmdline_options_to_array): New.
22364         (prune_options): Update handling of find_opt return value.
22365         * opts.c (read_cmdline_option): Take decoded option.  Return void.
22366         (read_cmdline_options): Take decoded options.
22367         (decode_options): Add parameters for decoded options.  Use
22368         decode_cmdline_options_to_array.  Use decoded options for -O
22369         scan.  Use integral_argument for -O parameters.  Update call to
22370         read_cmdline_options.
22371         (enable_warning_as_error): Update handling of find_opt return value.
22372         * opts.h: Update comment on unknown options.
22373         (struct cl_decoded_option): Update comments on opt_index and arg.
22374         Add orig_option_with_args_text.
22375         (decode_cmdline_option): Remove.
22376         (decode_cmdline_options_to_array): Declare.
22377         (decode_options): Update prototype.
22378         * toplev.c (save_argv): Remove.
22379         (save_decoded_options, save_decoded_options_count): New.
22380         (read_integral_parameter): Remove.
22381         (print_switch_values): Use decoded options.
22382         (toplev_main): Don't set save_argv.  Update call to decode_options.
22383         * toplev.h (read_integral_parameter): Remove.
22384         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
22385
22386 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
22387
22388         PR target/44072
22389         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
22390         immediate.
22391         * constraints.md (Pw, Px): New constraints.
22392         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
22393
22394 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
22395
22396         * config/i386/sse.md (fma4modesuffixf4): Removed.
22397         (ssemodesuffixf2s): Likewise.
22398         (ssemodesuffixf4): Likewise.
22399         (ssemodesuffixf2c): Likewise.
22400         (ssescalarmodesuffix2s): Likewise.
22401         (avxmodesuffixf2c): Likewise.
22402         (ssemodesuffix): New.
22403         (ssescalarmodesuffix): Likewise.
22404         Update patterns with ssemodesuffix and ssescalarmodesuffix.
22405
22406 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
22407
22408         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
22409
22410 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
22411
22412         * stor-layout.c (debug_rli): Remove unused local variables.
22413
22414 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
22415
22416         PR rtl-optimization/40900
22417         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
22418         original expression for later reuse.
22419         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
22420         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
22421
22422 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
22423
22424         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
22425         double_int_fits_in_uhwi_p): Implement as static inline.
22426         (double_int_xor): New inline function.
22427         (double_int_lrotate, double_int_rrotate, double_int_max,
22428         double_int_umax, double_int_smax, double_int_min, double_int_umin,
22429         double_int_smin): Declare.
22430         (lrotate_double, rrotate_double): Remove declaration.
22431         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
22432         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
22433         (double_int_lrotate, double_int_rrotate, double_int_max,
22434         double_int_umax, double_int_smax, double_int_min, double_int_umin,
22435         double_int_smin): New function.
22436         * fold-const.c (int_const_binop): Clean up, use double_int_*
22437         functions.
22438         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
22439         double_int_* and immed_double_int_const functions.
22440
22441 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
22442
22443         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
22444         * function.c (types_used_by_cur_var_decl): Likewise.
22445         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
22446
22447 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
22448
22449         * tree.h (record_layout_info): Change type of pending_statics field
22450         to a VEC.
22451         * stor-layout.c (start_record_layout): Store NULL into
22452         pending_statics.
22453         (debug_rli): Call debug_vec_tree instead of debug_tree.
22454         (place_field): Likewise.
22455         (finish_record_layout): Likewise.
22456
22457 2010-06-18  Alan Modra  <amodra@gmail.com>
22458
22459         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
22460
22461 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22462
22463         PR target/43740
22464         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
22465         for SET source operand from SET destination operand.
22466
22467 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
22468
22469         PR rtl-optimization/39871
22470         * reload1.c (init_eliminable_invariants): For flag_pic, disable
22471         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
22472         (function_invariant_p): Rule out a plus of frame or arg pointer with
22473         a SYMBOL_REF.
22474         * ira.c (find_reg_equiv_invariant_const): Likewise.
22475
22476 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
22477
22478         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
22479         print_operand_address and puts to output the operand for CONST.
22480
22481 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
22482
22483         PR debug/44572
22484         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
22485         hook.
22486
22487 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22488
22489         * v850-protos.h (print_operand): Delete.
22490         (print_operand_address): Delete.
22491         * v850.h (PRINT_OPERAND): Delete.
22492         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22493         (PRINT_OPERAND_ADDRESS): Delete.
22494         * v850.c (print_operand_address): Rename to...
22495         (v850_print_operand_address): ...this.  Make static. Call
22496         v850_print_operand.
22497         (print_operand): Rename to...
22498         (v850_print_operand): ...this.  Make static.  Call
22499         v850_print_operand_address.
22500         (v850_print_operand_punct_valid_p): New function.
22501         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
22502         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
22503
22504 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22505
22506         * config/sh/sh-protos.h (print_operand): Delete.
22507         (print_operand_address): Delete.
22508         * config/sh/sh.h (PRINT_OPERAND): Delete.
22509         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22510         (PRINT_OPERAND_ADDRESS): Delete.
22511         * config/sh/sh.c (sh_print_operand_address): Make static.
22512         (sh_print_operand): Make static.  Call sh_print_operand_address
22513         and sh_print_operand.
22514         (sh_print_operand_punct_valid_p): New function.
22515         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
22516         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
22517
22518 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22519
22520         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
22521         (mcore_print_operand_address): Delete.
22522         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
22523         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22524         (PRINT_OPERAND_ADDRESS): Delete.
22525         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
22526         (mcore_print_operand): Make static.
22527         (mcore_print_operand_punct_valid_p): New function.
22528         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
22529         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
22530
22531 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22532
22533         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
22534         (print_operand_address): Delete.
22535         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
22536         (PRINT_OPERAND_ADDRESS): Delete.
22537         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
22538         static.
22539         (m68hc11_print_operand): Make static.
22540         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
22541
22542 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22543
22544         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
22545         (m32r_print_operand_address): Delete.
22546         * config/m32r/m32r.h (m32r_punct_chars): Delete.
22547         (PRINT_OPERAND): Delete.
22548         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22549         (PRINT_OPERAND_ADDRESS): Delete.
22550         * config/m32r/m32r.c (m32r_punct_chars): Make static.
22551         (m32r_print_operand_address): Make static.
22552         (m32r_print_operand): Make static.
22553         (m32r_print_operand_punct_valid_p): New function.
22554         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22555         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22556
22557 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22558
22559         * config/iq2000/iq2000-protos.h (print_operand): Delete.
22560         (print_operand_address): Delete.
22561         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
22562         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22563         (PRINT_OPERAND_ADDRESS): Delete.
22564         (iq2000_print_operand_punct): Delete.
22565         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
22566         (iq2000_print_operand_address): Make static.
22567         (iq2000_print_operand): Make static.
22568         (iq2000_print_operand_punct_valid_p): New function.
22569         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22570         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22571
22572 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22573
22574         * config/frv/frv-protos.h (frv_print_operand): Delete.
22575         (frv_print_operand_address): Delete.
22576         * config/frv/frv.h (PRINT_OPERAND): Delete.
22577         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22578         (PRINT_OPERAND_ADDRESS): Delete.
22579         * config/frv/frv.c (frv_print_operand_address): Make static.
22580         (frv_print_operand): Make static.
22581         (frv_print_operand_punct_valid_p): New function.
22582         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22583         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22584
22585 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22586
22587         * tree.h (vec_member): Declare.
22588         * tree.c (vec_member): Define.
22589
22590 2010-06-17  Richard Guenther  <rguenther@suse.de>
22591
22592         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
22593         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
22594
22595 2010-06-17  Richard Guenther  <rguenther@suse.de>
22596
22597         * tree-inline.c (declare_return_variable): Remove bogus code.
22598
22599 2010-06-17  Richard Guenther  <rguenther@suse.de>
22600
22601         * gimplify.c (gimplify_bind_expr): Always promote complex
22602         and vector variables to registers if possible.
22603
22604 2010-06-17  Richard Guenther  <rguenther@suse.de>
22605
22606         * expr.c (get_inner_reference): Use double_int for bit_offset
22607         calculation.
22608
22609 2010-06-16  DJ Delorie  <dj@redhat.com>
22610
22611         * common.opt (-fstrict-volatile-bitfields): new.
22612         * doc/invoke.texi: Document it.
22613         * fold-const.c (optimize_bit_field_compare): For volatile
22614         bitfields, use the field's type to determine the mode, not the
22615         field's size.
22616         * expr.c (expand_assignment): Likewise.
22617         (get_inner_reference): Likewise.
22618         (expand_expr_real_1): Likewise.
22619         * expmed.c (store_fixed_bit_field): Likewise.
22620         (extract_bit_field_1): Likewise.
22621         (extract_fixed_bit_field): Likewise.
22622
22623 2010-06-16  Richard Guenther  <rguenther@suse.de>
22624
22625         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
22626
22627 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
22628
22629         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
22630         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
22631         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
22632         * debug.c: Likewise.
22633         * sdbout.c: Likewise.
22634         * vmsdbgout.c: Likewise.
22635         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
22636         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
22637         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
22638         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
22639         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
22640         * dwarf2out.c (dw_fde_struct): New fields
22641         dw_fde_vms_{end,begin}_prologue.
22642         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
22643         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
22644         (dwarf2out_vms_end_prologue): New function.
22645         (dwarf2out_vms_begin_epilogue): New function.
22646         (dw_val_struct): New value dw_val_class_vms_delta.
22647         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
22648         begin_epilogue for VMS.
22649         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
22650         new static functions.
22651         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
22652         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
22653         static functions.
22654         (print_die): New case dw_val_class_vms_delta.
22655         (attr_checksum): Likewise.
22656         (same_dw_val_p: Likewise.
22657         (size_of_die): Likewise.
22658         (value_format): Likewise.
22659         (output_die): Likewise.
22660         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
22661         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
22662         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
22663         dwarf2out_cfi_begin_epilogue
22664         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
22665
22666 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
22667
22668         * config/cris/cris-protos.h (cris_print_operand): Delete.
22669         (cris_print_operand_address): Delete.
22670         * config/cris/cris.h (PRINT_OPERAND): Delete.
22671         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22672         (PRINT_OPERAND_ADDRESS): Delete.
22673         * config/cris/cris.c (cris_print_operand_address): Make static.
22674         (cris_print_operand): Make static.
22675         (cris_print_operand_punct_valid_p): New function.
22676         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22677         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22678
22679 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
22680
22681         * config/arm/arm-protos.h (arm_print_operand): Delete.
22682         (arm_print_operand_address): Delete.
22683         * config/arm/arm.h (PRINT_OPERAND): Delete.
22684         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22685         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
22686         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
22687         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
22688         (arm_print_operand): Make static.
22689         (arm_print_operand_punct_valid_p): New function.
22690         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22691         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22692
22693 2010-06-16  Nick Clifton  <nickc@redhat.com>
22694
22695         * config/rx/constraints.md (NEGint4): New constraint.
22696         * config/rx/rx.md (attr cc): Add set_zsc.
22697         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
22698         initialised.
22699         (cmpsf): Likewise.
22700         (call_internal): Clobber the cc0 register.
22701         (call_value_internal): Likewise.
22702         (cstoresi4): Likewise.
22703         (movsieq): Likewise.
22704         (movsine): Likewise.
22705         (addsi3): Add alternative to handle small negative constants.
22706         (sunsi3): Likewise.
22707         (addsi3): Do not set the O bit in the cc0 register.
22708         (adddi3): Likewise.
22709         (subsi3): Likewise.
22710         (subdi3): Likewise.
22711         (andsi3): Reorder alternatives to prefer shorter forms.
22712         (mulsi3): Likewise.
22713         (iorsi3): Likewise.
22714         (negsi2): Note that the cc0 flags are set.
22715         (rotlsi3): Note that only the Z and S bits are set in cc0.
22716         (lshrsi3): Likewise.
22717         (ashlsi3): Likewise.
22718         (subsf3): Use %Q for the MEM operand.
22719         (fix_truncsfsi2): Likewise.
22720         (floatsisf2): Likewise.
22721         (bitset): Remove early clobber from destination.
22722         (bitset_in_memory): Likewise.
22723         (lrintsf2): Clobber the cc0 register.
22724         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
22725         (rx_print_operand): Handle %N.
22726
22727 2010-06-16  Jan Hubicka  <jh@suse.cz>
22728
22729         * df-core.c (df_compact_blocks): Free problem_temps vector.
22730
22731 2010-06-16  Martin Jambor  <mjambor@suse.cz>
22732
22733         PR tree-optimization/43905
22734         * tree-sra.c: Include tree-inline.h.
22735         (create_abstract_origin): Removed.
22736         (modify_function): Version the call graph node instead of creating
22737         abstract origins and dealing with same_body aliases.
22738         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
22739         function is versionable.
22740         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
22741
22742 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
22743
22744         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
22745         (CHOOSE_DYNAMIC_LINKER): Update.
22746
22747 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
22748
22749         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
22750         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
22751         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
22752         *prefetch_3dnow_rex.
22753
22754 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
22755
22756         * target.h (struct asm_out):Add declare_constant_name field.
22757         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
22758         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
22759         * output.h (default_asm_declare_constant_name): Declare.
22760         (assemble_label): Update prototype.
22761         * varasm.c (assemble_constant_contents): Use
22762         targetm.asm_out.declare_constant_name target hook.
22763         (assemble_label): Add 'file' argument.
22764         (default_asm_declare_constant_name): New function.
22765         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
22766         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
22767         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
22768
22769         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
22770         * config/darwin.c (darwin_asm_declare_constant_name): New function.
22771         (machopic_output_indirection): Update assemble_label argument list.
22772         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
22773         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
22774
22775 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
22776
22777         PR middle-end/44391
22778         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
22779         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
22780
22781 2010-06-15  Richard Guenther  <rguenther@suse.de>
22782
22783         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
22784
22785 2010-06-15  Paul Brook  <paul@codesourcery.com>
22786
22787         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
22788         hard-float ABI.
22789
22790 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
22791
22792         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
22793         don't get a vector type for output.
22794
22795 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
22796
22797         PR fortran/44536
22798         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
22799         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
22800         (LANG_HOOKS_DECLS): Add it.
22801         * gimplify.c (omp_notice_variable): Call
22802         lang_hooks.decls.omp_report_decl.
22803
22804 2010-06-15  Martin Jambor  <mjambor@suse.cz>
22805
22806         PR lto/44464
22807         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
22808         on the newly dead SSA name.
22809
22810 2010-06-15  Alan Modra  <amodra@gmail.com>
22811
22812         * doc/invoke.texi: Add mcmodel to powerpc options.
22813         * configure.ac: Add HAVE_LD_LARGE_TOC test.
22814         * configure: Regenerate.
22815         * config.in: Regenerate.
22816         * config/rs6000/linux64.opt (mcmodel): New.
22817         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
22818         (TARGET_CMODEL, SET_CMODEL): Define.
22819         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
22820         select CMODEL_MEDIUM default.
22821         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
22822         (TARGET_CMODEL): Define default.
22823         * config/rs6000/rs6000.c (cmodel): New variable.
22824         (rs6000_explicit_options): Add cmodel field.
22825         (rs6000_handle_option): Handle -mcmodel.
22826         (create_TOC_reference): Add largetoc_reg param.  Generate high,
22827         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
22828         (rs6000_delegitimize_address): Recognise new toc reference rtl
22829         and minimal-toc rtl.
22830         (rs6000_legitimize_reload_address): Handle new toc references.
22831         (print_operand_address): Handle legitimate_constant_pool_address_p
22832         match before lo_sum.
22833         (rs6000_eliminate_indexed_memrefs): Tidy.
22834         (rs6000_emit_move): Tweak threshold for inlining constants.
22835         Keep rs6000_emit_allocate_stack large stack frame offsets
22836         loaded into r0 inline.
22837         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
22838         (tocrel_base, tocrel_offset): New variables.
22839         (toc_relative_expr_p): Set them here.
22840         (print_operand_address): Skip over any offset on constant pool address.
22841         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
22842         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
22843         (offsettable_ok_by_alignment): New function.
22844         (rs6000_emit_move): Address suitably aligned local symbol_refs
22845         relative to the toc pointer for -mcmodel=medium.
22846         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
22847         strict param.  Allow lo_sum version of addressing.  Verify reg
22848         used for -mminimal-toc and -mcmodel != small.  Update all callers.
22849         * config/rs6000/constraints.md: Update for above change.
22850         * config/rs6000/predicates.md: Likewise.
22851         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
22852         code.
22853         (tls_gd): Split for -mcmodel=medium/large.
22854         (tls_gd_high, tls_gd_low): New.
22855         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
22856         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
22857         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
22858         (largetoc_high, largetoc_low): New.
22859         (cmptf_internal2): Add clobber.
22860         * config/rs6000/rs6000-protos.h: Update.
22861
22862 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
22863
22864         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
22865         true if no prefetch is going to be generated for a given group.
22866         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
22867         estimate the prefetch_count.
22868         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
22869         prefetch count by considering the unroll_factor and prefetch_mod
22870         for is_loop_prefetching_profitable.
22871
22872 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
22873
22874         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
22875         anything if the argument is not a MEM.
22876
22877 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
22878
22879         PR debug/43650
22880         PR debug/44181
22881         PR debug/44247
22882         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
22883         debug stmts.
22884         (canonicalize_loop_ivs): Likewise.
22885
22886 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
22887
22888         PR debug/43656
22889         * haifa-sched.c (setup_insn_reg_pressure_info,
22890         update_register_pressure): Reject debug insns.
22891         (ready_sort): Don't setup reg pressure for debug insns.
22892         (schedule_insn): Don't update reg pressure for debug insns.
22893
22894 2010-06-14  Richard Guenther  <rguenther@suse.de>
22895
22896         * lto-streamer.c (cached_bp): Remove.
22897         (bitpack_delete): Likewise.
22898         (bitpack_create): Likewise.
22899         (bp_get_next_word): Likewise.
22900         (bp_pack_value, bp_unpack_value): Move ...
22901         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
22902         Re-implement.
22903         (struct bitpack_d): Likewise.
22904         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
22905         New inline functions.
22906         * lto-streamer-out.c (lto_output_bitpack): Remove.
22907         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
22908         (pack_value_fields): Adjust.
22909         (lto_write_tree): Likewise.
22910         (output_gimple_stmt): Likewise.
22911         (output_function): Likewise.
22912         * lto-streamer-in.c (input_gimple_stmt): Adjust.
22913         (input_function): Likewise.
22914         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
22915         (lto_input_bitpack): Remove.
22916         (lto_materialize_tree): Adjust.
22917         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
22918         * lto-cgraph.c (lto_output_edge): Adjust.
22919         (lto_output_node): Likewise.
22920         (lto_output_varpool_node): Likewise.
22921         (lto_output_ref): Likewise.
22922         (input_node): Likewise.
22923         (input_varpool_node): Likewise.
22924         (input_ref): Likewise.
22925         (input_edge): Likewise.
22926         (output_node_opt_summary): Likewise.
22927         (input_node_opt_summary): Likewise.
22928         * ipa-pure-const.c (pure_const_write_summary): Likewise.
22929         (pure_const_read_summary): Likewise.
22930         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
22931         (ipa_read_indirect_edge_info): Likewise.
22932         (ipa_write_node_info): Likewise.
22933         (ipa_read_node_info): Likewise.
22934
22935 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
22936
22937         PR target/44534
22938         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
22939         (vec_extract_lo_v16hi): Likewise.
22940         (vec_extract_lo_v32qi): Likewise.
22941
22942 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
22943
22944         PR bootstrap/44426
22945         * tree.h (build_call_expr): Don't define as vararg macro, instead
22946         add a prototype.
22947         * builtins.c (build_call_nofold): Remove.
22948         (expand_builtin_int_roundingfn, expand_builtin_pow,
22949         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
22950         expand_builtin_memset_args, expand_builtin_strcmp,
22951         expand_builtin_strncmp, expand_builtin_memory_chk): Use
22952         build_call_nofold_loc instead of build_call_nofold.
22953         (build_call_expr): New function.
22954
22955         PR tree-optimization/44508
22956         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
22957         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
22958         don't eliminate trivially dead stmts.
22959         * tree-vrp.c (vrp_finalize): Pass false as last argument
22960         to substitute_and_fold.
22961         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
22962         to substitute_and_fold.
22963         * tree-ssa-ccp.c (ccp_finalize): Likewise.
22964
22965         PR bootstrap/44509
22966         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
22967
22968 2010-06-14  Ira Rosen  <irar@il.ibm.com>
22969
22970         PR tree-optimization/44507
22971         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
22972         to build initial vector for BIT_AND_EXPR.
22973         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
22974
22975 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
22976
22977         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
22978         adjust z10prop set_attr.
22979
22980 2010-06-13  Jan Hubicka  <jh@suse.cz>
22981
22982         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
22983         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
22984         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
22985         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
22986         datastructure checks into checking asserts.
22987         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
22988         * tree-ssa-sccvn.c (VN_INFO): Likewise.
22989         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
22990         df_ref_create_structure): Likewise.
22991         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
22992         pool_free): Use gcc_checking_assert.
22993         * alias.c (get_alias_set): Likewise.
22994         * var-tracking.c (variable_htab_free, shared_hash_copy,
22995         canonicalize_values_mark, variable_merge_over_cur): Likewise.
22996         * lto-streamer.c (bp_unpack_value): Likewise.
22997
22998 2010-06-13  Richard Guenther  <rguenther@suse.de>
22999
23000         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
23001         Do not stream but initialize TYPE_CANONICAL to NULL.
23002         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
23003         * gimple.c (gimple_types_compatible_p): Disregard
23004         TYPE_STRUCTURAL_EQUALITY_P.
23005         (gimple_register_type): Use TYPE_CANONICAL as cache.
23006         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
23007         before registering common types.
23008         * config/i386/i386.c (ix86_function_arg_boundary): Do not
23009         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
23010         * tree.h (TYPE_CANONICAL): Clarify documentation.
23011
23012 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
23013
23014         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
23015         LIBCALL_VALUE): Remove macros.
23016         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
23017         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23018         TARGET_FUNCTION_VALUE_REGNO_P): Define.
23019         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
23020         (ia64_function_value): Make static. Handle receiving the function
23021         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
23022
23023 2010-06-12  Jan Hubicka  <jh@suse.cz>
23024
23025         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
23026         at correct place.
23027
23028 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
23029
23030         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
23031
23032 2010-06-12  Jan Hubicka  <jh@suse.cz>
23033
23034         * df-core.c (df_clear_bb_info): New function.
23035         (df_set_blocks): bb_info is always allocated.
23036         (df_get_bb_info): Use block_info_elt_size.
23037         (df_set_bb_info): Likewise.
23038         (df_compact_blocks): Update for new block_info.
23039         (grow_bb_info): New function.
23040         * df-problems.c (df_grow_bb_info): Move to df-core.c
23041         (df_rd_set_bb_info): Remove.
23042         (df_rd_free_bb_info): Do not free block pool.
23043         (df_rd_alloc): Do not create pool, use check for
23044         obstack presence instead of NULL pointer for new blocks.
23045         (df_rd_free): DO not free alloc pool; clear block_info.
23046         (problem_RD): Add size of block info structure.
23047         (df_lr_set_bb_info): Remove.
23048         (df_lr_free_bb_info): Do not free block pool.
23049         (df_lr_alloc): Do not create pool, use check for
23050         obstack presence instead of NULL pointer for new blocks.
23051         (df_lr_free): DO not free alloc pool; clear block_info.
23052         (problem_LR): Add size of block info structure.
23053         (df_live_set_bb_info): Remove.
23054         (df_live_free_bb_info): Do not free block pool.
23055         (df_live_alloc): Do not create pool, use check for
23056         obstack presence instead of NULL pointer for new blocks.
23057         (df_live_free): DO not free alloc pool; clear block_info.
23058         (problem_LIVE): Add size of block info structure.
23059         (problem_CHAIN): Add size of block info structure.
23060         (df_byte_lr_set_bb_info): Remove.
23061         (df_byte_lr_free_bb_info): Do not free block pool.
23062         (df_byte_lr_alloc): Do not create pool, use check for
23063         obstack presence instead of NULL pointer for new blocks.
23064         (df_byte_lr_free): DO not free alloc pool; clear block_info.
23065         (problem_BYTE_LR): Add size of block info structure.
23066         (problem_NOTE): Add size of block info structure.
23067         (df_byte_MD_set_bb_info): Remove.
23068         (df_byte_MD_free_bb_info): Do not free block pool.
23069         (df_byte_MD_alloc): Do not create pool, use check for
23070         obstack presence instead of NULL pointer for new blocks.
23071         (df_byte_MD_free): DO not free alloc pool; clear block_info.
23072         (problem_BD): Add size of block info structure.
23073         * df-scan.c (df_scan_free_internal): Free block pool.
23074         (df_scan_set_bb_info): Remove.
23075         (df_scan_free_bb_info): Check for artificial_defs instead
23076         of bb_info being non-NULL.
23077         (df_scan_alloc): DO not create df_scan_block pool.
23078         (problem_SCAN): Set size of block info.
23079         (df_bb_refs_record): Do not allocate bb_info.
23080         * df.h (df_problem): Add block_info_elt_size.
23081         (struct dataflow): Change block_info to void *.
23082         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
23083         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
23084         in-line structures.
23085
23086 2010-06-12  Jan Hubicka  <jh@suse.cz>
23087
23088         PR tree-optimize/44485
23089         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
23090         containing use of return value of noreturn function.
23091
23092 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
23093
23094         * targhooks.c (default_function_value): Don't use
23095         FUNCTION_OUTGOING_VALUE.
23096         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
23097         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
23098
23099 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
23100
23101         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
23102         Add crtfastmath.o to extra_parts.
23103         * config/mips/crtfastmath.c: New.
23104         * config/mips/linux.h (ENDFILE_SPEC): New.
23105
23106 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
23107
23108         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
23109         old_type in parameter.
23110         (gcc_type_for_value): Update call to gcc_type_for_interval.
23111         (compute_type_for_level_1): Renamed compute_type_for_level.
23112         Update call to gcc_type_for_interval.
23113
23114 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
23115
23116         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
23117         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
23118
23119 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
23120
23121         * opts-common.c: Include options.h.
23122         (integral_argument): Move from opts.c.
23123         (decode_cmdline_option): New.  Based on read_cmdline_option.
23124         * opts.c (integral_argument): Move to opts-common.c.
23125         (read_cmdline_option): Move most contents to
23126         decode_cmdline_option.  Use %qs in diagnostics.
23127         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
23128         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
23129         decode_cmdline_option): New.
23130
23131 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23132
23133         PR target/44481
23134         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
23135         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
23136         (partiysi2_cmp): Ditto.
23137         (*partiyhi2_cmp): Ditto.
23138         (*parityqi2_cmp): Remove.
23139
23140 2010-06-11  Jan Hubicka  <jh@suse.cz>
23141
23142         * bitmap.h (bmp_iter_next_bit): New.
23143         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
23144
23145 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
23146             Eric Botcazou  <ebotcazou@adacore.com>
23147
23148         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
23149         computed cost.
23150
23151 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23152
23153         * config/i386/i386.md (unspec): New define_c_enum.
23154         (unspecv): Ditto.
23155
23156 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
23157
23158         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
23159
23160 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
23161
23162         PR middle-end/44483
23163         * tree-if-conv.c (bb_predicate_s): New struct.
23164         (bb_predicate_p): New.
23165         (bb_has_predicate): New.
23166         (bb_predicate): New.
23167         (set_bb_predicate): New.
23168         (bb_predicate_gimplified_stmts): New.
23169         (set_bb_predicate_gimplified_stmts): New.
23170         (add_bb_predicate_gimplified_stmts): New.
23171         (init_bb_predicate): New.
23172         (free_bb_predicate): New.
23173         (is_predicated): Use bb_predicate.
23174         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
23175         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
23176         before processing their successors.
23177         (clean_predicate_lists): Removed.
23178         (find_phi_replacement_condition): Use bb_predicate.
23179         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
23180         computations.
23181         (insert_gimplified_predicates): New.
23182         (combine_blocks): Call insert_gimplified_predicates.
23183         (tree_if_conversion): Call free_bb_predicate instead of
23184         clean_predicate_lists.
23185
23186 2010-10-11  Paul Brook  <paul@codesourcery.com>
23187
23188         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
23189         * config/arm/arm.c (all_architectures): Change v7e-m default to
23190         cortexm4.
23191         * config/arm/arm-cores.def: Add cortex-m4.
23192         * config/arm/arm-tune.md: Regenerate.
23193
23194 2010-06-11  Jan Hubicka  <jh@suse.cz>
23195
23196         * ipa-pure-const.c (special_builtlin_state): New function.
23197         (check_call): Use it instead of special casign BUILT_IN_RETURN.
23198         (propagate_pure_const): Use it.
23199
23200 2010-06-11  Jan Hubicka  <jh@suse.cz>
23201
23202         * df-problems.c (df_live_scratch): Convert to bitmap_head.
23203         (df_live_alloc): Initialize df_live_scratch when initializing
23204         problem_data.
23205         (df_live_transfer_function): Update uses of df_live_scratch.
23206         (df_live_free): Free problem_data; clear df_live_scratch before
23207         releasing the obstack.
23208         (df_md_free): Free problem data.
23209
23210 2010-06-11  Jan Hubicka  <jh@suse.cz>
23211
23212         * doc/invoke.texi (Wsuggest-attribute): Document.
23213         (Wmissing-noreturn): Remove.
23214         * ipa-pure-const.c (warn_function_noreturn): New function.
23215         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
23216         warn_missing_noreturn.
23217         * common.opt (Wsuggest-attribute=noreturn): New.
23218         * tree-flow.h (warn_function_noreturn): Declare.
23219         * tree-cfg.c (execute_warn_function_noreturn): Use
23220         warn_function_noreturn.
23221         (gate_warn_function_noreturn): New.
23222         (pass_warn_function_noreturn): Update.
23223
23224 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23225
23226         * c-typeck.c (handle_warn_cast_qual): Add loc
23227         parameter. Improve warning message.
23228         (build_c_cast): Pass location to handle_warn_cast_qual.
23229
23230 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23231
23232         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
23233         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
23234         insn mnemonic.
23235         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
23236
23237 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
23238
23239         Fix bootstap on mips
23240         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
23241         be naming typedefs.
23242
23243 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
23244
23245         * system.h (helper_const_non_const_cast): New inline for
23246         gcc version <= 4.0.
23247         (CONST_CAST2): For gcc version <= 4.0 use
23248         new helper to do const/non-const casting.
23249
23250 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23251
23252         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
23253         * Makefile.in (OBJS-common): Include insn-enums.o.
23254         (insn-enums.o): New rule.
23255         (simple_generated_c): Add insn-enums.c.
23256         (build/genenums.o): New rule.
23257         (genprogmd): Add "enums".
23258         * genconstants.c (print_enum_type): Declare a C string array
23259         for each enum.
23260         * genenums.c: New file.
23261         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
23262         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
23263         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
23264
23265 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23266
23267         * doc/md.texi (define_enum_attr): Document.
23268         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
23269         * read-md.h (lookup_enum_type): Declare.
23270         * read-md.c (lookup_enum_type): New function.
23271         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
23272         * genattrtab.c (attr_desc): Add an enum_name field.
23273         (evaluate_eq_attr): Take the associated attribute as argument.
23274         Get the enum prefix from the enum_name field, if defined.
23275         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
23276         (simplify_test_exp): Pass attr to evaluate_eq_attr.
23277         (add_attr_value): New function, split out from...
23278         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
23279         (write_test_expr): Pass attr to evaluate_eq_attr.
23280         (write_attr_get): Use the enum_name as the enum tag, if defined.
23281         (write_attr_valueq): Use the enum_name as a prefix, if defined.
23282         (find_attr): Initialize enum_name.
23283         (main): Handle DEFINE_ENUM_ATTR.
23284         * gensupport.c (process_rtx): Likewise.
23285         * config/mips/mips.h (mips_tune_attr): Delete.
23286         * config/mips/mips.md (cpu): Use define_attr_enum.
23287
23288 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23289
23290         * doc/md.texi (define_c_enum, define_enum): Document.
23291         * read-md.h (md_constant): Add a parent_enum field.
23292         (enum_value, enum_type): New structures.
23293         (upcase_string, traverse_enum_types): Declare.
23294         * read-md.c (enum_types): New variable.
23295         (upcase_string, add_constant): New functions.
23296         (handle_constants): Don't create the hash table here.
23297         Use add_constant.
23298         (traverse_md_constants): Don't check for a null md_constants.
23299         (decimal_string, handle_enum, traverse_enum_types): New functions.
23300         (read_md_files): Initialize md_constants and md_enums.
23301         * genconstants.c (print_md_constant): Ignore info argument.
23302         Only print constants that belong to no enum.
23303         (print_enum_type): New function.
23304         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
23305         for each defined enum type.
23306         * config/mips/mips.md (processor): New define_enum.
23307         (unspec): New define_c_enum.
23308         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
23309         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
23310         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
23311         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
23312         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
23313         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
23314         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
23315         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
23316         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
23317         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
23318         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
23319         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
23320         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
23321         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
23322         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
23323         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
23324         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
23325         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
23326         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
23327         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
23328         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
23329         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
23330         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
23331         (UNSPEC_RDDSP): Move to mips-dsp.md.
23332         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
23333         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
23334         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
23335         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
23336         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
23337         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
23338         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
23339         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
23340         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
23341         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
23342         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
23343         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
23344         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
23345         Moved to mips-dspr2.md.
23346         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
23347         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
23348         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
23349         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
23350         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
23351         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
23352         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
23353         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
23354         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
23355         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
23356         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
23357         UNSPEC_LOONGSON_PSADBH)
23358         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
23359         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
23360         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
23361         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
23362         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
23363         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
23364         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
23365         (cpu): Update comment.
23366         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
23367         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
23368         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
23369         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
23370         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
23371         UNSPEC_LOONGSON_PCMPEQ)
23372         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
23373         UNSPEC_LOONGSON_PINSR_0)
23374         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
23375         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
23376         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
23377         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
23378         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
23379         UNSPEC_LOONGSON_PSADBH)
23380         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
23381         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
23382         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
23383         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
23384         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
23385         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
23386         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
23387         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
23388         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
23389         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
23390         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
23391         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
23392         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
23393         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
23394         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
23395         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
23396         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
23397         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
23398         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
23399         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
23400         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
23401         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
23402         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
23403         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
23404         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
23405         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
23406         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
23407         (UNSPEC_RDDSP): Moved from mips.md.
23408         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
23409         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
23410         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
23411         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
23412         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
23413         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
23414         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
23415         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
23416         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
23417         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
23418         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
23419         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
23420         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
23421         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
23422         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
23423         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
23424         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
23425         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
23426         (UNSPEC_SCC): Moved from mips.md.
23427         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
23428         "processor_type" to "processor".
23429         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
23430         * config/mips/mips.h (processor_type): Delete.
23431         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
23432         "processor_type" to "processor".
23433
23434 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23435
23436         * configure.ac (tm_include_list): Add insn-constants.h.
23437         * configure: Regenerate.
23438         * Makefile.in (GTM_H): Move insn-constants.h here from...
23439         (TM_H): ...here.
23440         * mkconfig.sh: Remove special handling for insn-constants.h.
23441
23442 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23443
23444         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
23445         (BUILD_MD): ...this new variable.
23446         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
23447         that include the old contents of simple_generated_h and
23448         simple_generated_c.
23449         (simple_generated_h, simple_generated_c): Include them.  Add
23450         insn-constants.h.
23451         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
23452         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
23453         Remove these dependencies from the main rule and include
23454         insn-conditions.md in the command line only if it appears
23455         in the dependency list.
23456         (insn-constants.h, s-constants): Delete.
23457         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
23458         or gensupport.h.
23459         (build/genmddeps.o): Likewise.
23460         (genprogrtl): New variable that contains everything from genprogmd
23461         except mddeps and constants.
23462         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
23463         depend on $(BUILD_MD)
23464         (genprog): New variable.  Make these programs depend on
23465         $(BUILD_ERRORS).
23466         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
23467         (main): Use read_md_files instead of init_rtx_reader_args.
23468         * genconstants.c: As for genmddeps.c.
23469         * read-md.h (read_skip_construct): Declare.
23470         * read-md.c (read_skip_construct): New function.
23471         (handle_file): Allow a null handle_directive, skipping the
23472         construct if so.
23473         (parse_include): Update the comment accordingly.
23474
23475 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23476
23477         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
23478         * genmddeps.c: Include read-md.h.
23479         (main): Call init_rtx_reader_args instead of init_md_reader_args.
23480         * genattr.c (main): Likewise.
23481         * genattrtab.c (main): Likewise.
23482         * genautomata.c (main): Likewise.
23483         * gencodes.c (main): Likewise.
23484         * genconditions.c (main): Likewise.
23485         * genconfig.c (main): Likewise.
23486         * genconstants.c (main): Likewise.
23487         * genemit.c (main): Likewise.
23488         * genextract.c (main): Likewise.
23489         * genflags.c (main): Likewise.
23490         * genopinit.c (main): Likewise.
23491         * genoutput.c (main): Likewise.
23492         * genpeep.c (main): Likewise.
23493         * genrecog.c (main): Likewise.
23494         * genpreds.c (main): Likewise.
23495         * gensupport.h (in_fname): Move to read-md.h.
23496         (init_md_reader_args_cb): Rename to...
23497         (init_rtx_reader_args_cb): ...this and return a bool.
23498         (init_md_reader_args): Rename to...
23499         (init_rtx_reader_args): ...this and return a bool.
23500         (include_callback): Move to read-md.h.
23501         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
23502         (file_name_list, first_dir_md_include): Move to read-md.c
23503         (first_bracket_include): Delete unused variable.
23504         (last_dir_md_include): Move to read-md.c.
23505         (process_include): Delete, moving code to read-md.c:handle_include.
23506         (process_rtx): Don't handle INCLUDE.
23507         (save_string): Delete.
23508         (rtx_handle_directive): New function.
23509         (init_md_reader_args_cb): Rename to...
23510         (init_rtx_reader_args_cb): ...this and return a boolean success value.
23511         Use read_md_args.
23512         (init_md_reader_args): Rename to...
23513         (init_rtx_reader_args): ...this and return a boolean success value.
23514         * rtl.def (INCLUDE): Delete.
23515         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
23516         argument.
23517         * read-rtl.c (read_conditions): Don't gobble ')' here.
23518         (read_mapping): Likewise.
23519         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
23520         Handle top-level non-rtx constructs here rather than in read_rtx_1.
23521         Store the whole queue in *X.  Remove call to init_md_reader.
23522         (read_rtx_1): Rename to...
23523         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
23524         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
23525         here.
23526         (read_nested_rtx): New function.  Handle (nil) here rather than
23527         in read_rtx_code.
23528         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
23529         gobble ')' here.
23530         * read-md.h (directive_handler_t): New type.
23531         (in_fname, include_callback): Moved from read-md.h.
23532         (read_constants, init_md_reader): Delete.
23533         (read_md_files): Declare.
23534         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
23535         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
23536         from gensupport.c.
23537         (read_constants): Rename to...
23538         (handle_constants): ...this.  Don't gobble ')' here.
23539         (handle_include, handle_file, handle_toplevel_file)
23540         (parse_include): New functions, mostly taken from gensupport.c.
23541         (init_md_reader): Subsume into...
23542         (read_md_files): ...this new function.
23543
23544 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23545
23546         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
23547         (unread_char): Decrement read_md_lineno after putting back '\n'.
23548         * read-md.c (fatal_with_file_and_line): Push back any characters
23549         that we decide not to add to the context.
23550         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
23551         fatal_expected_char in cases where '/' ends a line (for example).
23552         (read_name): Don't increment read_md_lineno here.
23553         (read_escape): Likewise.
23554         (read_quoted_string): Likewise.
23555         (read_braced_string): Likewise.
23556
23557 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23558
23559         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
23560         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
23561         * genconstants.c: Include read-md.h.
23562         * read-rtl.c (md_constants): Move to read-md.c.
23563         (md_name): Move to read-md.h.
23564         (initialize_iterators): Use leading_string_hash instead of def_hash
23565         and leading_string_eq_p instead of def_name_eq_p.
23566         (read_name): Move to read-md.c.
23567         (def_hash, def_name_eq_p): Delete.
23568         (read_constants, traverse_md_constants): Move to read-md.c.
23569         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
23570         * read-md.h: Include hashtab.h.
23571         (md_name): Moved from read-rtl.c.
23572         (md_constant): Moved from read-md.h.
23573         (leading_string_hash, leading_string_eq_p, read_name)
23574         (read_constants, traverse_md_constants): Declare.
23575         * read-md.c (md_constants): Moved from read-rtl.c.
23576         (leading_string_hash, leading_string_eq_p): New functions.
23577         (read_name, read_constants, traverse_md_constants): Moved from
23578         read-rtl.c.
23579
23580 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23581
23582         * read-rtl.c (md_name): New structure.
23583         (read_name): Take an md_name instead of a buffer pointer.
23584         Use the "string" field instead of strcpy when expanding constants.
23585         (read_constants): Remove the tmp_char argument.  Update the calls
23586         to read_name, using two local name buffers instead of the tmp_char
23587         argument.  Merge the constant-creation code.
23588         (read_conditions): Remove the tmp_char argument.  Update the calls
23589         to read_name, using a local name buffer instead of the tmp_char
23590         argument.
23591         (read_mapping): Replace tmp_char variable with a local name buffer.
23592         Update the calls to read_name.
23593         (read_rtx_1): Likewise.  Update the calls to read_constants and
23594         read_conditions.
23595
23596 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23597
23598         * Makefile.in (build/read-md.o): Depend on errors.h.
23599         * read-md.h (error_with_line): Declare.
23600         * read-md.c: Include errors.h.
23601         (message_with_line_1): New function, extracted from...
23602         (message_with_line): ...here.
23603         (error_with_line): New function.
23604         * genattrtab.c: If a call to message_with_line is followed by
23605         "have_error = 1;", replace both statements with a call to
23606         error_with_line.
23607         * genoutput.c: Likewise.
23608         * genpreds.c: Likewise.
23609         * genrecog.c: If a call to message_with_line is followed by
23610         "error_count++;", replace both statements with a call to
23611         error_with_line.
23612         (errorcount): Delete.
23613         (main): Don't check it.
23614         * gensupport.c: If a call to message_with_line is followed by
23615         "errors = 1;", replace both statements with a call to error_with_line.
23616         (errors): Delete.
23617         (process_define_cond_exec): Check have_error instead of errors.
23618         (init_md_reader_args_cb): Likewise.  Don't set errors.
23619
23620 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23621
23622         * read-md.h (read_md_file): Declare.
23623         (read_char, unread_char): New functions.
23624         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
23625         (read_quoted_string, read_string): Remove FILE * argument.
23626         * read-md.c (read_md_file): New variable.
23627         (read_md_filename, read_md_lineno): Update comments and remove
23628         unnecessary initialization.
23629         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
23630         (read_escape, read_quoted_string, read_braced_string, read_string):
23631         Remove FILE * argument.  Update calls accordingly, using read_char
23632         and unread_char instead of getc and ungetc.
23633         * rtl.h (read_rtx): Remove FILE * argument.
23634         * read-rtl.c (iterator_group): Remove FILE * argument from
23635         "find_builtin".
23636         (iterator_traverse_data): Remove "infile" field.
23637         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
23638         (add_mapping, read_name, read_constants, read_conditions)
23639         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
23640         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
23641         Remove file arguments from all calls, using read_char and unread_char
23642         instead of getc and ungetc.
23643         * gensupport.c (process_include): Preserve read_md_file around
23644         the include.  Set read_md_file to the handle of the included file.
23645         Update call to read_rtx.
23646         (init_md_reader_args_cb): Set read_md_file to the handle of the file
23647         and remove local FILE *.  Update calls to read_rtx.
23648
23649 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23650
23651         * read-md.h (read_rtx_lineno): Rename to...
23652         (read_md_lineno): ...this.
23653         (read_rtx_filename): Rename to...
23654         (read_md_filename): ...this.
23655         (copy_rtx_ptr_loc): Rename to...
23656         (copy_md_ptr_loc): ...this.
23657         (print_rtx_ptr_loc): Rename to...
23658         (print_md_ptr_loc): ...this.
23659         * read-md.c: Likewise.  Update references after renaming.
23660         (string_obstack): Replace RTL with MD in comment.
23661         (set_rtx_ptr_loc): Rename to...
23662         (set_md_ptr_loc): ...this.
23663         (get_rtx_ptr_loc): Rename to...
23664         (get_md_ptr_loc): ...this.
23665         * genconditions.c: Update references after renaming.
23666         * genemit.c: Likewise.
23667         * genoutput.c: Likewise.
23668         * genpreds.c: Likewise.
23669         * gensupport.c: Likewise.
23670         * read-rtl.c: Likewise.
23671
23672 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23673
23674         * Makefile.in (READ_MD_H): New variable.
23675         (BUILD_RTL): Add build/read-md.o.
23676         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
23677         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
23678         (build/genattrtab.o, build/genconditions.o build/genemit.o)
23679         (build/genextract.o, build/genflags.o, build/genoutput.o)
23680         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
23681         (build/read-md.o): New rule.
23682         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
23683         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
23684         * coretypes.h: ...here.
23685         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
23686         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
23687         * genattr.c: Include read-md.h.
23688         * genattrtab.c: Likewise.
23689         * genconditions.c: Likewise.
23690         * genemit.c: Likewise.
23691         * genextract.c: Likewise.
23692         * genflags.c: Likewise.
23693         * genoutput.c: Likewise.
23694         * genpreds.c: Likewise.
23695         * genrecog.c: Likewise.
23696         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
23697         (join_c_conditions, print_c_condition, read_rtx_filename)
23698         (read_rtx_lineno): Move to read-md.h.
23699         * read-rtl.c: Include read-md.h.
23700         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
23701         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
23702         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
23703         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
23704         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
23705         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
23706         (read_braced_string, read_string): Move to read-md.c.
23707         (read_rtx): Move some initialization to init_md_reader and call
23708         init_md_reader here.
23709         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
23710         Move to read-md.h.
23711         * gensupport.c: Include read-md.h.
23712         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
23713         * read-md.h, read-md.c: New files.
23714
23715 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
23716
23717         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
23718         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
23719         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
23720         * config/moxie/moxie.c (moxie_function_value): Make static.
23721         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
23722         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
23723
23724 2010-06-10  Martin Jambor  <mjambor@suse.cz>
23725
23726         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
23727         * dbgcnt.def (tree_sra): New counter.
23728         * tree-sra.c: Include dbgcnt.h.
23729         (gate_intra_sra): Check tree_sra debug counter.
23730
23731 2010-06-10  Martin Jambor  <mjambor@suse.cz>
23732
23733         PR tree-optimization/44258
23734         * tree-sra.c (build_access_subtree): Return false iff there is a
23735         partial overlap.
23736         (build_access_trees): Likewise.
23737         (analyze_all_variable_accesses): Disqualify candidates if
23738         build_access_trees returns true for them.
23739
23740 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
23741
23742         PR debug/41371
23743         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
23744         tail-recurse into canonical node.  Fast-forward over
23745         non-canonical VALUEs.
23746
23747 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
23748
23749         PR boostrap/44470
23750         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
23751         (*addsi_1_zext) <TYPE_LEA>: Likewise.
23752         (add lea splitter): Likewise.
23753         (add_zext lea splitter): Likewise.
23754
23755 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
23756
23757         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
23758
23759 2010-06-10  Jan Hubicka  <jh@suse.cz>
23760
23761         * df-problems.c (df_live_problem_data): Add live_bitmaps.
23762         (df_live_alloc): Initialize problem data and live_osbtacks.
23763         (df_live_finalize): Remove obstack, problem data; do not
23764         clear all bitmaps.
23765         (df_live_top_dump, df_live_bottom_dump): Do not dump old
23766         data when not allocated.
23767         (df_live_verify_solution_start): Do not allocate problem data.
23768         (df_live_verify_solution_end): Check if out is allocated.
23769         (struct df_md_problem_data): New structure.
23770         (df_md_alloc): Allocate problem data.
23771         (df_md_free): Free problem data; do not clear bitmaps.
23772
23773 2010-06-10  Jan Beulich  <jbeulich@novell.com>
23774
23775         PR bootstrap/37304
23776         * configure.ac: Replace $() with ${} when intending to expand
23777         variables rather than invoking commands.
23778         * configure: Re-generate.
23779
23780 2010-06-10  Jan Hubicka  <jh@suse.cz>
23781
23782         PR rtl-optimization/44460
23783         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
23784         TYPE_NEEDS_CONSTRUCTING sanity check.
23785
23786 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
23787
23788         * doc/include/fdl.texi: Move to GFDL version 1.3.
23789
23790         * doc/cpp.texi: Move to GFDL version 1.3.
23791         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
23792         * doc/gccint.texi: Move to GFDL version 1.3.
23793         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
23794         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
23795         * doc/invoke.texi: Move to GFDL version 1.3.
23796
23797 2010-06-09  Jan Hubicka  <jh@suse.cz>
23798
23799         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
23800         Break out from ...
23801         (propagate) ... here; swap the order.
23802
23803 2010-06-09  Jan Hubicka  <jh@suse.cz>
23804
23805         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
23806         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
23807         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
23808         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
23809
23810 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
23811
23812         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
23813         Do not the gather memory reference in the outer loop if the step
23814         is not a constant.
23815
23816 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
23817
23818         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
23819         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
23820         8 to 4.  Minor change of the related comments.
23821
23822 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
23823
23824         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
23825         the scev analysis when the variable is not used outside the loop
23826         in a close phi node: call compute_overall_effect_of_inner_loop.
23827
23828 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
23829
23830         * graphite-sese-to-poly.c (single_pred_cond): Renamed
23831         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
23832         (build_sese_conditions_before): Renamed call to single_pred_cond.
23833         (build_sese_conditions_after): Same.
23834
23835 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
23836
23837         * graphite-poly.h: Fix comments and indentation.
23838         * graphite-sese-to-poly.c: Same.
23839         (build_sese_conditions_before): Compute stmt and gbb only when needed.
23840         * tree-chrec.c: Fix comments and indentation.
23841         (tree-ssa-loop-niter.c): Same.
23842
23843 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
23844
23845         PR rtl-optimization/42461
23846         * dce.c (deletable_insn_p): Return true for const or pure calls again.
23847         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
23848
23849 2010-06-09  Jan Hubicka  <jh@suse.cz>
23850
23851         * bitmap.c (bitmap_and): Walk array forward.
23852         (bitmap_and_compl_into): Likewise.
23853         (bitmap_xor): Likewise.
23854         (bitmap_xor_into):  Likewise.
23855         (bitmap_equal_p): Likewise.
23856         (bitmap_intersect_p): Likewise.
23857         (bitmap_intersect_compl_p): Likewise.
23858         (bitmap_ior_and_into): Likewise.
23859         (bitmap_elt_copy): Likewise.
23860         (bitmap_and_compl): Likewise.
23861         (bitmap_elt_ior): Likewise.
23862
23863 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
23864
23865         * opts-common.c (prune_options): Ensure replacement argv array
23866         is correctly terminated by a NULL entry.
23867
23868 2010-06-09  Jan Hubicka  <jh@suse.cz>
23869
23870         * cgraph.h (varpool_first_static_initializer,
23871         varpool_next_static_initializer): Make checking only when
23872         checking enabled.
23873         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
23874         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
23875         gcc_assert to gcc_checking_assert.
23876         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
23877         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
23878         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
23879         op_iter_init_phiuse, op_iter_init_phidef,
23880         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
23881         gcc_checking_assert.
23882         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
23883         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
23884         partition_is_global, live_on_entry, live_on_exit,
23885         live_merge_and_clear): Likewise.
23886         * system.h (gcc_checking_assert): New macro.
23887         * gimple.h (set_bb_seq): Use gcc_checking_assert.
23888
23889 2010-06-09  Jason Merrill  <jason@redhat.com>
23890
23891         * Makefile.in (TAGS): Collect tags info from c-family.
23892
23893 2010-06-09  Jan Hubicka  <jh@suse.cz>
23894
23895         * gimple.h (gcc_gimple_checking_assert): New macro.
23896         (gimple_set_def_ops, gimple_set_use_ops,
23897         gimple_set_vuse, gimple_set_vdef,
23898         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
23899         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
23900         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
23901         gimple_asm_output_op, gimple_asm_output_op_ptr,
23902         gimple_asm_set_output_op, gimple_asm_clobber_op,
23903         gimple_asm_set_clobber_op, gimple_asm_label_op,
23904         gimple_asm_set_label_op, gimple_try_set_kind,
23905         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
23906         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
23907         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
23908         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
23909         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
23910         gimple_omp_for_set_initial, gimple_omp_for_final,
23911         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
23912         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
23913         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
23914         conditional with ENABLE_GIMPLE_CHECKING.
23915         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
23916
23917 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
23918
23919         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
23920         (get_computation_cost_at): Use it.
23921         (determine_use_iv_cost_condition): Likewise.
23922         (determine_iv_cost): Likewise.
23923
23924 2010-06-09  Richard Guenther  <rguenther@suse.de>
23925
23926         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
23927         replace constants.
23928
23929 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
23930
23931         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
23932
23933 2010-06-09  Martin Jambor  <mjambor@suse.cz>
23934
23935         PR tree-optimization/44423
23936         * tree-sra.c (dump_access): Dump also grp_assignment_read.
23937         (analyze_access_subtree): Pass negative allow_replacements to children
23938         if the current type is scalar.
23939
23940 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
23941
23942         PR testsuite/42843
23943         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
23944         * doc/plugins.texi (Plugin license check): Update information
23945         on type of plugin_is_GPL_compatible.
23946         * Makefile.in (PLUGINCC): Define as $(COMPILER).
23947         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
23948
23949 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
23950
23951         * config/arm/arm.c (thumb2_reorg): New function.
23952         (arm_reorg): Call it.
23953         * config/arm/thumb2.md (define_peephole2 for flag clobbering
23954         arithmetic operations): Delete.
23955
23956 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
23957
23958         PR target/44067
23959         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
23960         e500v2 target.
23961
23962 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
23963
23964         PR plugins/44459
23965         * gcc-plugin.h: Encapsulate all declarations in extern "C".
23966
23967 2010-06-08  Jan Hubicka  <jh@suse.cz>
23968
23969         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
23970         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
23971
23972 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
23973
23974         PR tree-optimization/39874
23975         PR middle-end/28685
23976         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
23977         Declare.
23978         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
23979         same_bool_result_p): New.
23980         (and_var_with_comparison, and_var_with_comparison_1,
23981         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
23982         (or_var_with_comparison, or_var_with_comparison_1,
23983         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
23984         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
23985         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
23986         of combine_comparisons.
23987         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
23988
23989 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
23990
23991         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
23992         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
23993         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
23994         pdp11_function_value_regno_p): New functions.
23995         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23996         TARGET_FUNCTION_VALUE_REGNO_P): Define.
23997
23998 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
23999
24000         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
24001         Thumb-2 in the MINUS case.
24002
24003 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
24004
24005         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
24006
24007         * doc/gty.texi (GTY Options): Document typed GC allocation and
24008         variable_size GTY option.
24009
24010         * ggc-internal.h: New.
24011
24012         * ggc.h: Update copyright year.
24013         (digit_string): Move to stringpool.c.
24014         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
24015         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
24016         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
24017         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
24018         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
24019         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
24020         (ggc_force_collect, ggc_get_size, ggc_statistics)
24021         (ggc_print_common_statistics): Move to ggc-internal.h.
24022         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
24023         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
24024         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
24025         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
24026         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
24027         (ggc_alloc_zone_pass_stat): Remove.
24028         (ggc_internal_alloc_stat, ggc_internal_alloc)
24029         (ggc_internal_cleared_alloc_stat): New.
24030         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
24031         (ggc_internal_vec_alloc_stat)
24032         (ggc_internal_cleared_vec_alloc_stat)
24033         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
24034         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
24035         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
24036         (ggc_cleared_alloc_ptr_array_two_args): New.
24037         (htab_create_ggc, splay_tree_new_ggc): Redefine.
24038         (ggc_splay_alloc): Change the type of the first argument to
24039         enum gt_types_enum.
24040         (ggc_alloc_string): Make macro.
24041         (ggc_alloc_string_stat): New.
24042         (ggc_strdup): Redefine.
24043         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
24044         (ggc_alloc_rtvec_sized): New.
24045         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
24046         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
24047         (ggc_internal_cleared_alloc_zone_stat)
24048         (ggc_internal_zone_alloc_stat)
24049         (ggc_internal_zone_cleared_alloc_stat)
24050         (ggc_internal_zone_vec_alloc_stat)
24051         (ggc_alloc_zone_rtx_def_stat)
24052         (ggc_alloc_zone_tree_node_stat)
24053         (ggc_alloc_zone_cleared_tree_node_stat)
24054         (ggc_alloc_cleared_gimple_statement_d_stat): New.
24055
24056         * ggc-common.c: Include ggc-internal.h.
24057         (ggc_internal_cleared_alloc_stat): Rename from
24058         ggc_alloc_cleared_stat.
24059         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
24060         (ggc_calloc): Remove.
24061         (ggc_cleared_alloc_htab_ignore_args): New.
24062         (ggc_cleared_alloc_ptr_array_two_args): New.
24063         (ggc_splay_alloc): Add obj_type parameter.
24064         (init_ggc_heuristics): Formatting fixes.
24065
24066         * ggc-none.c: Update copyright year.
24067         (ggc_alloc_stat): Rename to ggc_alloc_stat.
24068         (ggc_alloc_cleared_stat): Rename to
24069         ggc_internal_cleared_alloc_stat.
24070         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
24071
24072         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
24073         Remove references to ggc_alloc in comments.
24074         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
24075         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
24076         (new_ggc_zone, destroy_ggc_zone): Remove.
24077         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
24078
24079         * ggc-zone.c: Include ggc-internal.h.  Remove references to
24080         ggc_alloc in comments.
24081         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
24082         (ggc_internal_alloc_zone_pass_stat): New.
24083         (ggc_internal_cleared_alloc_zone_stat): New.
24084         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
24085         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
24086         (new_ggc_zone, destroy_ggc_zone): Remove.
24087
24088         * stringpool.c: Update copyright year.  Include ggc-internal.h
24089         (digit_vector): Make static.
24090         (digit_string): Moved from ggc.h.
24091         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
24092         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
24093
24094         * Makefile.in (GGC_INTERNAL_H): New.
24095         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
24096         $(GGC_INTERNAL_H) to dependencies.
24097
24098         * gengtype.c: Update copyright year.
24099         (walk_type): Accept variable_size GTY option.
24100         (USED_BY_TYPED_GC_P): New macro.
24101         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
24102         whitespace at the end of strings.
24103         (get_type_specifier, variable_size_p): New functions.
24104         (alloc_quantity, alloc_zone): New enums.
24105         (write_typed_alloc_def): New function.
24106         (write_typed_struct_alloc_def): Likewise.
24107         (write_typed_typed_typedef_alloc_def): Likewise.
24108         (write_typed_alloc_defns): Likewise.
24109         (output_typename, write_splay_tree_allocator_def): Likewise.
24110         (write_splay_tree_allocators): Likewise.
24111         (main): Call write_typed_alloc_defns and
24112         write_splay_tree_allocators.
24113
24114         * lto-streamer.h (lto_file_decl_data_ptr): New.
24115
24116         * passes.c (order): Define using cgraph_node_ptr.
24117
24118         * strinpool.c (struct string_pool_data): Declare nested_ptr using
24119         ht_identifier_ptr.
24120
24121         * gimple.h (union gimple_statement_d): Likewise.
24122
24123         * rtl.h (struct rtx_def): Likewise.
24124         (struct rtvec_def): Likewise.
24125
24126         * tree.h (union tree_node): Likewise.
24127
24128         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
24129
24130         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
24131
24132         * tree-scalar-evolution.c (scev_initialize): Likewise.
24133
24134         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
24135
24136         * dwarf2asm.c (dw2_force_const_mem): Likewise.
24137
24138         * omp-low.c (lower_omp_critical): Likewise.
24139
24140         * bitmap.h (struct bitmap_head_def): Update comment to not
24141         reference ggc_alloc.
24142
24143         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
24144
24145         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
24146
24147         * ipa-prop.c (duplicate_ggc_array): Rename to
24148         duplicate_ipa_jump_func_array.  Use typed GC allocation.
24149         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
24150
24151         * gimple.c (gimple_alloc_stat): Use
24152         ggc_alloc_cleared_gimple_statement_d_stat.
24153
24154         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
24155
24156         * tree.c (make_node_stat): Use
24157         ggc_alloc_zone_cleared_tree_node_stat.
24158         (make_tree_vec_stat): Likewise.
24159         (build_vl_exp_stat): Likewise.
24160         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
24161         (make_tree_binfo_stat): Likewise.
24162         (tree_cons_stat): Likewise.
24163
24164         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
24165         (shallow_copy_rtx_stat): Likewise.
24166         (make_node_stat): Likewise.
24167
24168         * lto-symtab.c: Fix comment.
24169
24170         * tree-cfg.c (create_bb): Update comment to not reference
24171         ggc_alloc_cleared.
24172         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
24173
24174         * varpool.c (varpool_node): Use typed GC allocation.
24175         (varpool_extra_name_alias): Likewise.
24176
24177         * varasm.c (emutls_decl): Likewise.
24178         (get_unnamed_section): Likewise.
24179         (get_noswitch_section): Likewise.
24180         (get_section): Likewise.
24181         (get_block_for_section): Likewise.
24182         (build_constant_desc): Likewise.
24183         (create_constant_pool): Likewise.
24184         (force_const_mem): Likewise.
24185
24186         * tree.c (build_vl_exp_stat): Likewise.
24187         (build_real): Likewise.
24188         (build_string): Likewise.
24189         (decl_debug_expr_insert): Likewise.
24190         (decl_value_expr_insert): Likewise.
24191         (type_hash_add): Likewise.
24192         (build_omp_clause): Likewise.
24193
24194         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
24195
24196         * tree-ssa.c (init_tree_ssa): Likewise.
24197
24198         * tree-ssa-structalias.c (heapvar_insert): Likewise.
24199
24200         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
24201
24202         * tree-ssa-loop-niter.c (record_estimate): Likewise.
24203
24204         * tree-ssa-alias.c (get_ptr_info): Likewise.
24205
24206         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
24207
24208         * tree-phinodes.c (allocate_phi_node): Likewise.
24209
24210         * tree-iterator.c (tsi_link_before): Likewise.
24211         (tsi_link_after): Likewise.
24212
24213         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
24214
24215         * tree-dfa.c (create_var_ann): Likewise.
24216
24217         * tree-cfg.c (create_bb): Likewise.
24218
24219         * toplev.c (alloc_for_identifier_to_locale): Likewise.
24220         (general_init): Likewise.
24221
24222         * stringpool.c (stringpool_ggc_alloc): Likewise.
24223         (gt_pch_save_stringpool): Likewise.
24224
24225         * sese.c (if_region_set_false_region): Likewise.
24226
24227         * passes.c (do_per_function_toporder): Likewise.
24228
24229         * optabs.c (set_optab_libfunc): Likewise.
24230         (set_conv_libfunc): Likewise.
24231
24232         * lto-symtab.c (lto_symtab_register_decl): Likewise.
24233
24234         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
24235         (input_eh_region): Likewise.
24236         (input_eh_lp): Likewise.
24237         (make_new_block): Likewise.
24238         (unpack_ts_real_cst_value_fields): Likewise.
24239
24240         * lto-section-in.c (lto_new_in_decl_state): Likewise.
24241
24242         * lto-cgraph.c (input_node_opt_summary): Likewise.
24243
24244         * loop-init.c (loop_optimizer_init): Likewise.
24245
24246         * lambda.h (lambda_vector_new): Likewise.
24247
24248         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
24249
24250         * ira.c (update_equiv_regs): Likewise.
24251
24252         * ipa.c (cgraph_node_set_new): Likewise.
24253         (cgraph_node_set_add): Likewise.
24254         (varpool_node_set_new): Likewise.
24255         (varpool_node_set_add): Likewise.
24256
24257         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
24258         (duplicate_ipa_jump_func_array): Likewise.
24259         (ipa_read_node_info): Likewise.
24260
24261         * ipa-cp.c (ipcp_create_replace_map): Likewise.
24262
24263         * integrate.c (get_hard_reg_initial_val): Likewise.
24264
24265         * gimple.c (gimple_alloc_stat): Likewise.
24266         (gimple_build_omp_for): Likewise.
24267         (gimple_seq_alloc): Likewise.
24268         (gimple_copy): Likewise.
24269
24270         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
24271         (gsi_insert_after_without_update): Likewise.
24272
24273         * function.c (add_frame_space): Likewise.
24274         (insert_temp_slot_address): Likewise.
24275         (assign_stack_temp_for_type): Likewise.
24276         (allocate_struct_function): Likewise.
24277         (types_used_by_var_decl_insert): Likewise.
24278
24279         * except.c (init_eh_for_function): Likewise.
24280         (gen_eh_region): Likewise.
24281         (gen_eh_region_catch): Likewise.
24282         (gen_eh_landing_pad): Likewise.
24283         (add_call_site): Likewise.
24284
24285         * emit-rtl.c (get_mem_attrs): Likewise.
24286         (get_reg_attrs): Likewise.
24287         (start_sequence): Likewise.
24288         (init_emit): Likewise.
24289
24290         * dwarf2out.c (new_cfi): Likewise.
24291         (queue_reg_save): Likewise.
24292         (dwarf2out_frame_init): Likewise.
24293         (new_loc_descr): Likewise.
24294         (find_AT_string): Likewise.
24295         (new_die): Likewise.
24296         (add_var_loc_to_decl): Likewise.
24297         (clone_die): Likewise.
24298         (clone_as_declaration): Likewise.
24299         (break_out_comdat_types): Likewise.
24300         (new_loc_list): Likewise.
24301         (loc_descriptor): Likewise.
24302         (add_loc_descr_to_each): Likewise.
24303         (add_const_value_attribute): Likewise.
24304         (tree_add_const_value_attribute): Likewise.
24305         (add_comp_dir_attribute): Likewise.
24306         (add_name_and_src_coords_attributes): Likewise.
24307         (lookup_filename): Likewise.
24308         (store_vcall_insn): Likewise.
24309         (dwarf2out_init): Likewise.
24310
24311         * dbxout.c (dbxout_init): Likewise.
24312
24313         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
24314
24315         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
24316
24317         * config/score/score7.c (score7_output_external): Likewise.
24318
24319         * config/score/score3.c (score3_output_external): Likewise.
24320
24321         * config/s390/s390.c (s390_init_machine_status): Likewise.
24322
24323         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
24324         (rs6000_init_machine_status): Likewise.
24325         (output_toc): Likewise.
24326
24327         * config/pa/pa.c (pa_init_machine_status): Likewise.
24328         (get_deferred_plabel): Likewise.
24329
24330         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
24331
24332         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
24333
24334         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
24335
24336         * config/mep/mep.c (mep_init_machine_status): Likewise.
24337         (mep_note_pragma_flag): Likewise.
24338
24339         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
24340
24341         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
24342
24343         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
24344
24345         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
24346         (i386_pe_maybe_record_exported_symbol): Likewise.
24347
24348         * config/i386/i386.c (get_dllimport_decl): Likewise.
24349         (ix86_init_machine_status): Likewise.
24350         (assign_386_stack_local): Likewise.
24351
24352         * config/frv/frv.c (frv_init_machine_status): Likewise.
24353
24354         * config/darwin.c (machopic_indirection_name): Likewise.
24355
24356         * config/cris/cris.c (cris_init_machine_status): Likewise.
24357
24358         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
24359
24360         * config/avr/avr.c (avr_init_machine_status): Likewise.
24361
24362         * config/arm/arm.c (arm_init_machine_status): Likewise.
24363
24364         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
24365         (alpha_need_linkage): Likewise.
24366         (alpha_use_linkage): Likewise.
24367
24368         * cgraph.c (cgraph_allocate_node): Likewise.
24369         (cgraph_create_edge_1): Likewise.
24370         (cgraph_create_indirect_edge): Likewise.
24371         (cgraph_add_asm_node): Likewise.
24372
24373         * cfgrtl.c (init_rtl_bb_info): Likewise.
24374
24375         * cfgloop.c (alloc_loop): Likewise.
24376         (rescan_loop_exit): Likewise.
24377
24378         * cfg.c (init_flow): Likewise.
24379         (alloc_block): Likewise.
24380         (unchecked_make_edge): Likewise.
24381
24382         * c-parser.c (c_parse_init): Likewise.
24383         (c_parse_file): Likewise.
24384
24385         * c-decl.c (bind): Likewise.
24386         (record_inline_static): Likewise.
24387         (push_scope): Likewise.
24388         (make_label): Likewise.
24389         (lookup_label_for_goto): Likewise.
24390         (finish_struct): Likewise.
24391         (finish_enum): Likewise.
24392         (c_push_function_context): Likewise.
24393
24394         * bitmap.c (bitmap_element_allocate): Likewise.
24395         (bitmap_gc_alloc_stat): Likewise.
24396
24397         * alias.c (record_alias_subset): Likewise.
24398         (init_alias_analysis): Likewise.
24399
24400 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
24401
24402         * fold-const.c (fold_comparison): Remove redundant parenthesis.
24403         * tree-inline.c (expand_call_inline): Pass translated return value of
24404         cgraph_inline_failed_string to diagnostic function.
24405
24406 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
24407             Shujing Zhao  <pearly.zhao@oracle.com>
24408
24409         PR c/37724
24410         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
24411         implicit bad conversions is initialization.
24412         (error_init): Use gmsgid instead of msgid for argument name and change
24413         the call for error.
24414         (pedwarn_init): Use gmsgid instead of msgid for argument name and
24415         change the call for pedwarn.
24416         (warning_init): Use gmsgid instead of msgid for argument name and
24417         change the call for warning.
24418
24419 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
24420
24421         * config/mips/mips-protos.h (mips_print_operand): Delete.
24422         (mips_print_operand_address): Delete.
24423         * config/mips/mips.h (mips_print_operand_punct): Delete.
24424         (PRINT_OPERAND): Delete.
24425         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24426         (PRINT_OPERAND_ADDRESS): Delete.
24427         * config/mips/mips.c (mips_print_operand_punct): Make static.
24428         (mips_print_operand_address): Make static.
24429         (mips_print_operand): Make static.  Call
24430         mips_print_operand_punct_valid_p.
24431         (mips_print_operand_punct_valid_p): New function.
24432         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
24433         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
24434
24435 2010-06-07  Jan Hubicka  <jh@suse.cz>
24436
24437         PR middle-end/44454
24438         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
24439         are allocated.
24440
24441 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
24442
24443         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
24444         name of RECORD.
24445
24446 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24447
24448         * doc/sourcebuild.texi (Effective-Target Keywords, Other
24449         attributes): Document gas.
24450
24451 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
24452
24453         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
24454         <TYPE_LEA>: Split instruction.
24455         <default>: Remove alternative 2 handling.
24456         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
24457         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
24458         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
24459
24460         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
24461         (ashift_zext lea splitter): Use DImode for multiplication.
24462
24463         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
24464         to generate addition.
24465
24466 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
24467
24468         * common.opt (fira-verbose): Use Var.
24469         (fpcc-struct-return): Use Init instead of VarExists.
24470         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
24471         toplev.c.
24472         * flags.h (flag_signed_char, flag_short_enums,
24473         flag_pcc_struct_return, flag_ira_verbose,
24474         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
24475         * toplev.c (flag_detailed_statistics, flag_signed_char,
24476         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
24477         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
24478         * toplev.h (flag_crossjumping, flag_if_conversion,
24479         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
24480         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
24481         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
24482         flag_cprop_registers, time_report, flag_ira_loop_pressure,
24483         flag_ira_coalesce, flag_ira_move_spills,
24484         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
24485
24486 2010-06-07  Jan Hubicka  <jh@suse.cz>
24487
24488         * df-core.c (df_analyze_problem): Do verification after allocation.
24489
24490         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
24491         (df_lr_alloc): Initialize problem data; move bitmaps to
24492         lr_bitmaps obstack.
24493         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
24494         (df_lr_verify_solution_start): Do not initialize problem data;
24495         allocate bitmaps in lr_bitmaps.
24496         (df_lr_verify_solution_end): Do not free problem data.
24497
24498 2010-06-07  Jan Hubicka  <jh@suse.cz>
24499
24500         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
24501         if caller is noreturn.
24502         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
24503         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
24504         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
24505         * ipa-pure-const.c (check_decl): Add IPA parameter.
24506         (state_from_flags): New function.
24507         (better_state, worse_state): New functions.
24508         (check_call): When in IPA mode, do not care about callees.
24509         (check_load, check_store): Update.
24510         (check_ipa_load, check_ipa_store): New.
24511         (check_stmt): When in IPA mode, use IPA checkers.
24512         (analyze_function): Use state_from_flags.
24513         (propagate): Check indirect edges and references.
24514
24515 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
24516
24517         PR rtl-optimization/44404
24518         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
24519         of count_occurrences to see if it's safe to modify mem_insn.
24520
24521 2010-06-07  Richard Guenther  <rguenther@suse.de>
24522
24523         * gimplify.c (gimplify_cleanup_point_expr): For empty body
24524         and EH-only cleanup drop the cleanup instead of inserting it
24525         unconditionally.
24526
24527 2010-06-07  Ira Rosen  <irar@il.ibm.com>
24528
24529         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
24530         documentation.
24531         * targhooks.c (default_builtin_vectorization_cost): New function.
24532         * targhooks.h (default_builtin_vectorization_cost): Declare.
24533         * target.h (enum vect_cost_for_stmt): Define.
24534         (builtin_vectorization_cost): Change argument and comment.
24535         * tree-vectorizer.h: Remove cost model macros.
24536         * tree-vect-loop.c: Include target.h.
24537         (vect_get_cost): New function.
24538         (vect_estimate_min_profitable_iters): Replace cost model macros with
24539         calls to vect_get_cost.
24540         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
24541         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
24542         default implementation.
24543         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
24544         calls to target hook builtin_vectorization_cost.
24545         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
24546         Likewise.
24547         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
24548         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
24549         implementation to return costs.
24550         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
24551         * config/spu/spu.h: Remove vectorizer cost model macros.
24552         * config/i386/i386.h: Likewise.
24553         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
24554         a call to target hook builtin_vectorization_cost.
24555
24556 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
24557
24558         PR target/44319
24559         * config/i386/i386.c (override_options): Turn zee pass on for level 2
24560         and above and defer till target is known.
24561         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
24562         turn off otherwise.
24563
24564 2010-05-25  Jan Hubicka  <jh@suse.cz>
24565
24566         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
24567         (df_compact_blocks): Likewise.
24568         * df.h (struct df): Turn hardware_regs_used,
24569         regular_block_artificial_uses, eh_block_artificial_uses,
24570         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
24571         bitmap_head.
24572         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
24573         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
24574         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
24575         df_scan_blocks, df_insn_delete, df_insn_rescan,
24576         df_insn_rescan_debug_internal, df_insn_rescan_all,
24577         df_process_deferred_rescans, df_process_deferred_rescans,
24578         df_notes_rescan, df_get_call_refs, df_get_call_refs,
24579         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
24580         df_record_entry_block_defs, df_record_exit_block_uses,
24581         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
24582         df_scan_verify): Update.
24583
24584 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
24585
24586         PR c++/44188
24587         * c-common.c (is_typedef_decl): Move this definition ...
24588         * tree.c (is_typedef_decl): ... here.
24589         (typdef_variant_p): Move definition here from cp/tree.c.
24590         * c-common.h (is_typedef_decl): Move this declaration ...
24591         * tree.h (is_typedef_decl): ... here.
24592         (typedef_variant_p): Move declaration here from cp/cp-tree.h
24593         * dwarf2out.c (is_naming_typedef_decl): New function.
24594         (gen_tagged_type_die): Split out of ...
24595         (gen_type_die_with_usage): ... this function. When an anonymous
24596         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
24597         is emitted for the typedef.
24598         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
24599         anonymous tagged types.
24600
24601 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24602
24603         PR c/20000
24604         * c-decl.c (grokdeclarator): Delete warning.
24605
24606 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
24607
24608         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
24609         newly built CALL_EXPR.
24610         * tree-profile.c (tree_profiling): Don't profile functions produced
24611         for built-in stuff.
24612
24613 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
24614
24615         PR bootstrap/44427
24616         PR bootstrap/44428
24617         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
24618         endianness-independent.
24619
24620 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
24621
24622         * c-common.c: Move to c-family/.
24623         * c-common.def: Likewise.
24624         * c-common.h: Likewise.
24625         * c-cppbuiltin.c: Likewise.
24626         * c-dump.c: Likewise.
24627         * c-format.c: Likewise.
24628         * c-format.h : Likewise.
24629         * c-gimplify.c: Likewise.
24630         * c-lex.c: Likewise.
24631         * c-omp.c: Likewise.
24632         * c.opt: Likewise.
24633         * c-opts.c: Likewise.
24634         * c-pch.c: Likewise.
24635         * c-ppoutput.c: Likewise.
24636         * c-pragma.c: Likewise.
24637         * c-pragma.h: Likewise.
24638         * c-pretty-print.c: Likewise.
24639         * c-pretty-print.h: Likewise.
24640         * c-semantics.c: Likewise.
24641         * stub-objc.c: Likewise.
24642
24643         * gengtype.c (get_file_langdir): Special-case files in c-family/.
24644         (get_output_file_with_visibility): Fix name for c-common.h.
24645         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
24646
24647         * c-tree.h: Update include path for moved files.
24648         * c-lang.c: Likewise.
24649         * c-lang.h: Likewise.
24650         * c-parser.c: Likewise.
24651         * c-convert.c: Likewise.
24652         * c-decl.c: Likewise.
24653         * c-objc-common.c: Likewise.
24654         * configure.ac: Make sure c-family/ exists in the build directory.
24655         * configure: Regenerate.
24656         * Makefile.in: Update paths for moved files.  Regroup files per
24657         location and update dependencies.  Move generated_files down after
24658         ALL_GTFILES_H.
24659
24660         * config/spu/spu-c.c: Update paths for moved files.
24661         * config/mep/mep-pragma.c: Likewise.
24662         * config/darwin-c.c: Likewise.
24663         * config/i386/msformat-c.c: Likewise.
24664         * config/i386/i386-c.c: Likewise.
24665         * config/avr/avr-c.c: Likewise.
24666         * config/sol2-c.c: Likewise.
24667         * config/ia64/ia64-c.c: Likewise.
24668         * config/rs6000/rs6000-c.c: Likewise.
24669         * config/arm/arm.c: Likewise.
24670         * config/arm/arm-c.c: Likewise.
24671         * config/h8300/h8300.c: Likewise.
24672         * config/v850/v850-c.c: Likewise.
24673
24674         * config/t-darwin: Fix dependencies for moved files.
24675         * config/t-sol2: Fix dependencies for moved files.
24676         * config/mep/t-mep: Fix dependencies for moved files.
24677         * config/ia64/t-ia64: Fix dependencies for moved files.
24678         * config/rs6000/t-rs6000: Fix dependencies for moved files.
24679         * config/v850/t-v850: Fix dependencies for moved files.
24680         * config/v850/t-v850e: Fix dependencies for moved files.
24681
24682         * config/m32c/m32c-pragma.c
24683
24684         * po/exgettext: Look in c-family/ also.
24685
24686 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
24687
24688         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
24689         (mark_control_dependent_edges_necessary): Call it instead of marking
24690         the last statement manually.
24691         (propagate_necessity): Likewise.
24692
24693 2010-06-05  Jan Hubicka  <jh@suse.cz>
24694
24695         * basic-block.h (compute_dominance_frontiers): Updated.
24696         (compute_idf): Likewise.
24697
24698         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
24699         for dominance frontiers.
24700         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
24701         (insert_updated_phi_nodes_for): Likewise.
24702         (update_ssa): Likewise.
24703         * cfganal.c (compute_dominance_frontiers_1): Likewise.
24704         (compute_dominance_frontiers): Likewise.
24705         (compute_idf): Likewise.
24706         * df-problems.c (df_md_local_compute): Likewise.
24707
24708 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
24709
24710         * target.h (struct gcc_target): Add memory_move_cost field.
24711         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
24712         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
24713         * targhooks.c (default_memory_move_cost): New function.
24714         * targhooks.h (default_memory_move_cost): Declare function.
24715         * reload.h (memory_move_cost): Declare.
24716         (memory_move_secondary_cost): Change type of 'in' argument to bool.
24717         * reginfo.c (memory_move_cost): New function.
24718         (memory_move_secondary_cost): Change type of 'in' argument to bool.
24719         * ira.h (ira_memory_move_cost): Update comment.
24720         * ira.c (ira_memory_move_cost): Update comment.
24721         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
24722         with memory_move_cost.
24723         * postreload.c (reload_cse_simplify_set): (Ditto.).
24724         * reload1.c (choose_reload_regs): (Ditto.).
24725         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
24726         (MEMORY_MOVE_COST):  Revise documentation.
24727
24728         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
24729         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
24730         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
24731         type of 'in' argument to bool.
24732         (TARGET_MEMORY_MOVE_COST): Define.
24733
24734 2010-06-05  Jan Hubicka  <jh@suse.cz>
24735
24736         * ipa-pure-const.c (propagate): Fix typo in handling of functions
24737         that cannot return.  Be more careful when merging the results with
24738         previously known ones.
24739
24740 2010-06-05  Matthias Klose  <doko@ubuntu.com>
24741
24742         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
24743         function to add the -iplugindir option.
24744         (find_plugindir_spec_function): Add new declaration and function.
24745         (static_spec_func): Use it for "find-plugindir".
24746
24747 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
24748
24749         PR c++/44361
24750         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
24751         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
24752         statement expression.
24753
24754 2010-06-05  Jan Hubicka  <jh@suse.cz>
24755
24756         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
24757         (df_rd_problem_data): Convert sparse_invalidated_by_call,
24758         dense_invalidated_by_call to bitmap head.
24759         (df_rd_alloc, df_rd_bb_local_compute_process_def,
24760         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
24761         df_rd_start_dump, df_lr_verify_transfer_functions,
24762         df_live_verify_transfer_functions, df_chain_create_bb,
24763         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
24764         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
24765         df_simulate_one_insn_forwards, df_md_alloc,
24766         df_md_bb_local_compute_process_def,
24767         df_md_bb_local_compute_process_def, df_md_local_compute,
24768         df_md_transfer_function df_md_free): Update.
24769
24770 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
24771
24772         PR c/44322
24773         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
24774         target type for ADDR_EXPR; require no changes to qualifiers except
24775         for function types.
24776         * c-tree.h (c_build_type_variant): Remove.
24777
24778 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
24779
24780         * genautomata.c (get_excl_set): Do work per element, not per char.
24781         (check_presence_pattern_sets): Similar.
24782         (check_absence_pattern_sets): Similar.
24783
24784 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
24785
24786         * genautomata.c (curr_state_pass_num): Delete.
24787         (min_issue_delay_pass_states): Delete.
24788         (min_issue_delay): Delete.
24789         (initiate_min_issue_delay_pass_states): Delete.
24790         (output_min_issue_delay_table): Compute min_issue_delay_vect
24791         using a breadth-first search variant.
24792         (output_tables): Don't call initiate_min_issue_delay_pass_states.
24793
24794 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
24795
24796         PR boostrap/44421
24797         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
24798         (df_byte_lr_bb_local_compute): Likewise.
24799
24800 2010-06-03  Jason Merrill  <jason@redhat.com>
24801
24802         Implement noexcept operator (5.3.7)
24803         * c-common.c (c_common_reswords): Add noexcept.
24804         * c-common.h (enum rid): Add RID_NOEXCEPT.
24805
24806 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
24807
24808         * config/darwin-driver.c (darwin_default_min_version): Use
24809         GCC-specific formats in diagnostics.
24810         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
24811         diagnostics.
24812         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
24813         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
24814         eval_spec_function, handle_braces, process_brace_body, main,
24815         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
24816         getenv_spec_function, compare_version_strings,
24817         version_compare_spec_function): Use GCC-specific formats in
24818         diagnostics.
24819
24820 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
24821
24822         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
24823         that operand 0 and operand 1 are equal.
24824         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
24825         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
24826         and operand 1 are equal.
24827         <default>: Ditto.  Remove ??? comment.
24828         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
24829         and operand 1 are equal.
24830         <default>: Ditto.  Remove ??? comment.
24831         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
24832         are equal.
24833         (*add<mode>_4) <default>: Ditto.
24834         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
24835
24836 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
24837
24838         * config/i386/i386-protos.h (ix86_print_operand): Declare.
24839         * config/i386/i386.c (ix86_print_operand): Make non-static.
24840         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
24841         * output.h (output_operand): Declare.
24842         * final.c (output_operand): Make non-static.
24843
24844 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
24845
24846         PR rtl-optimization/44013
24847         * sched-deps.c (add_dependence_list_and_free): Don't free lists
24848         when processing debug insns.
24849
24850         PR debug/41371
24851         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
24852         recursing.  Check that recursion is bounded.  Rename inner var
24853         to avoid hiding incoming argument.
24854
24855 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
24856
24857         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
24858         operands[2] == 255.
24859         (*addqi_3): Ditto.
24860         (*addqi_4): Ditto.
24861         (*addqi_5): Ditto.
24862         (*addqi_ext_1_rex64): Ditto.
24863         (*addqi_ext_1): Ditto.
24864
24865         (*addqi_4): Check for incdec_operand in QImode.
24866
24867         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
24868         using SWI mode iterator.
24869         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
24870         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
24871         mode iterator.
24872         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
24873         using SWI mode iterator.
24874
24875 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24876
24877         PR c/25880
24878         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
24879         * c-format.c (gcc_diag_flag_specs): Add hash.
24880         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
24881         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
24882         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
24883         pp_c_cv_qualifiers. Handle qualifiers spelling here.
24884         (pp_c_type_qualifier_list): Call the function above.
24885         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
24886         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
24887         (WARN_FOR_QUALIFIERS): New macro.
24888         (convert_for_assignment): Use it.
24889
24890 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
24891
24892         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
24893
24894 2010-06-04  Jan Hubicka  <jh@suse.cz>
24895
24896         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
24897         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
24898         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
24899         DF_BYTE_LR_OUT): Update for embedded bitmaps.
24900         * fwprop.c (single_def_use_enter_block): Likewise.
24901         * ddg.c (create_ddg_dep_from_intra_loop_link,
24902         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
24903         * loop-iv.c (latch_dominating_def): Likewise.
24904         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
24905         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
24906         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
24907         df_rd_transfer_function, df_rd_top_dump,
24908         df_rd_bottom_dump): Update.
24909         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
24910         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
24911         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
24912         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
24913         df_lr_verify_solution_start, df_lr_verify_solution_end,
24914         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
24915         df_live_free_bb_info, df_live_alloc, df_live_reset,
24916         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
24917         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
24918         df_live_verify_solution_start, df_live_verify_solution_end,
24919         df_live_verify_transfer_functions, df_chain_create_bb,
24920         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
24921         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
24922         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
24923         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
24924         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
24925         df_byte_lr_transfer_function, df_byte_lr_top_dump,
24926         df_byte_lr_bottom_dump, df_create_unused_note,
24927         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
24928         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
24929         df_md_transfer_function, df_md_init, df_md_confluence_0,
24930         df_md_confluence_n,
24931         df_md_top_dump, df_md_bottom_dump): Update.
24932         (struct df_lr_problem_data): Embedd bitmap headers.
24933
24934 2010-06-04  Jan Hubicka  <jh@suse.cz>
24935
24936         * dce.c (dce_process_block): Do not re-scan already marked
24937         instructions.
24938
24939 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
24940
24941         PR rtl-optimization/39871
24942         PR rtl-optimization/40615
24943         PR rtl-optimization/42500
24944         PR rtl-optimization/42502
24945         * ira.c (init_reg_equiv_memory_loc: New function.
24946         (ira): Call it twice.
24947         * reload.h (calculate_elim_costs_all_insns): Declare.
24948         * ira-costs.c: Include "reload.h".
24949         (regno_equiv_gains): New static variable.
24950         (init_costs): Allocate it.
24951         (finish_costs): Free it.
24952         (ira_costs): Call calculate_elim_costs_all_insns.
24953         (find_costs_and_classes): Take estimated elimination costs
24954         into account.
24955         (ira_adjust_equiv_reg_cost): New function.
24956         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
24957         * reload1.c (init_eliminable_invariants, free_reg_equiv,
24958         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
24959         (elim_bb): New static variable.
24960         (reload): Move code out of here into init_eliminable_invariants and
24961         free_reg_equiv.  Call them.
24962         (calculate_elim_costs_all_insns): New function.
24963         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
24964         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
24965         but call note_reg_elim_costly if we turned a valid memory address
24966         into an invalid one.
24967         * Makefile.in (ira-costs.o): Depend on reload.h.
24968
24969 2010-06-04  Julian Brown  <julian@codesourcery.com>
24970
24971         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
24972         for pool ranges.
24973
24974 2010-06-04  Richard Guenther  <rguenther@suse.de>
24975
24976         PR lto/41584
24977         * cgraph.h (struct varpool_node): Add lto_file_data field.
24978         * lto-cgraph.c (input_varpool_node): Initialize it.
24979
24980 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
24981
24982         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
24983         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
24984         predicate in "type" attribute calculation.
24985         (*addsi_1_zext): Ditto.
24986         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
24987         (*addsi_2_zext): Ditto.
24988         (*add<mode>_3): Ditto.
24989         (*addsi_3_zext): Ditto.
24990         (*add<mode>_5): Ditto.
24991
24992 2010-06-03  Jan Hubicka  <jh@suse.cz>
24993
24994         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
24995         of bitmap_bit_p.
24996         * cfganal.c (compute_dominance_frontiers_1): Likewise.
24997
24998 2010-06-03  Jan Hubicka  <jh@suse.cz>
24999
25000         * df-problems.c (df_create_unused_note, df_note_bb_compute):
25001         micro-optimize the checks when to add new note.
25002
25003 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
25004
25005         * final.c (output_asm_insn): Call
25006         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
25007         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
25008         (output_address): Call targetm.asm_out.print_operand_address.
25009         Update comments.
25010         * target.h (struct gcc_target): Add print_operand,
25011         print_operand_address, and print_operand_punct_valid_p fields.
25012         * targhooks.h (default_print_operand): Declare.
25013         (default_print_operand_address): Declare.
25014         (default_print_operand_punct_valid_p): Declare.
25015         * targhooks.c (default_print_operand): Define.
25016         (default_print_operand_address): Define.
25017         (default_print_operand_punct_valid_p): Define.
25018         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
25019         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
25020         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
25021         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
25022         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
25023         * vmsdbgout.c (addr_const_to_string): Update comment.
25024         * config/i386/i386.c (print_operand): Rename to...
25025         (ix86_print_operand): ...this.  Make static.
25026         (print_operand_address): Rename to...
25027         (ix86_print_operand_address): ...this.  Make static.  Call
25028         ix86_print_operand instead of PRINT_OPERAND.
25029         (ix86_print_operand_punct_valid_p): New function.
25030         (TARGET_PRINT_OPERAND): Define.
25031         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25032         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25033         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
25034         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25035         (PRINT_OPERAND): Delete.
25036         (PRINT_OPERAND_ADDRESS): Delete.
25037         * config/i386/i386-protos.h (print_operand): Delete prototype.
25038         (print_operand_address): Delete prototype.
25039
25040 2010-06-03  Richard Guenther  <rguenther@suse.de>
25041
25042         PR tree-optimization/44403
25043         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
25044         Preserve pointer qualifiers.
25045         (vect_create_data_ref_ptr): Likewise.
25046
25047 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
25048
25049         PR c++/44294
25050         * defaults.h (MAX_FIXED_MODE_SIZE): New.
25051
25052         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
25053
25054 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
25055
25056         PR debug/44375
25057         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
25058         return false if merging the bbs would lead to goto_locus
25059         location being lost from the IL.
25060
25061 2010-06-03  Jan Hubicka  <jh@suse.cz>
25062             Jakub Jelinek  <jakub@redhat.com>
25063
25064         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
25065         set->regs[i] is NULL or has just one entry.
25066
25067 2010-06-03  Jan Hubicka  <jh@suse.cz>
25068
25069         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
25070         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
25071
25072 2010-06-03  Paul Brook  <paul@codesourcery.com>
25073
25074         * config/arm/arm.c (FL_TUNE): Define.
25075         (arm_default_cpu, arm_cpu_select): Remove.
25076         (all_cores): Populate core field.
25077         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
25078         (arm_find_cpu): New function.
25079         (arm_handle_option): Lookup cpu/architecture names.
25080         (arm_override_options): Cleanup mcpu/march/mtune handling.
25081         (arm_file_start): Ditto.
25082
25083 2010-06-03  Alan Modra  <amodra@gmail.com>
25084
25085         PR target/44169
25086         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
25087         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
25088         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
25089         (rs6000_emit_load_toc_table): Likewise.
25090
25091 2010-06-02  Jan Hubicka  <jh@suse.cz>
25092
25093         * passes.c (init_optimization_passes): Put ipa reference
25094         after ipa pure-const.
25095
25096 2010-06-02  Jan Hubicka  <jh@suse.cz>
25097
25098         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
25099         calls_read_all and calls_write_all.
25100         (get_reference_optimization_summary): Fix formatting.
25101         (is_proper_for_analysis): Check that decl is not readonly.
25102         (propagate_bits): Check CONST/PURE/noreturn flags.
25103         (ipa_init): Move all_module_statics to optimization_summary_obstack.
25104         (analyze_function): Ignore indirect edges.
25105         (copy_global_bitmap): For all module statics, do nothing.
25106         (generate_summary): Do not print calls_read_all/calls_write_all.
25107         (read_write_all_from_decl): Take node as argument; check
25108         cgraph_node_cannot_return.
25109         (propagate): Reorganize read_all/write_all computation;
25110         check indirect edges; check ecf flags; use all_module_statics
25111         in the results; do not free all_module_statics.
25112         (stream_out_bitmap): Handle all_module_statics.
25113         (ipa_reference_write_optimization_summary): Likewise; use
25114         varpool/cgraph encoders to get boundaries.
25115         (ipa_reference_read_optimization_summary): Read in all_module_statics;
25116         use it when possible.
25117
25118 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
25119
25120         PR target/44218
25121         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
25122         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
25123
25124         * doc/extend.texi (powerpc builtins): Document vec_recip,
25125         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
25126
25127         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
25128         (rs6000_emit_swrsqrt): Ditto.
25129         (rs6000_emit_swdivsf): Delete.
25130         (rs6000_emit_swdivdf): Ditto.
25131         (rs6000_emit_swrsqrtsf): Ditto.
25132
25133         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
25134         describe the reciprocal estimate support for each type.
25135         (recip_options): Map -mrecip=<opt> into option bits.
25136         (gen_2arg_fn_t): New typedef for binary rtx gen function.
25137         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
25138         reciprocal estimate instructions.
25139         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
25140         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
25141         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
25142         cost information if -mdebug=cost or -mdebug=reg.
25143         (rs6000_override_options): Set -mrecip-precision for power6, and
25144         power7 machines.  If -mvsx or -mdfp, enable various options that
25145         came in previous instruction set ISAs, unless the option was
25146         explicitly disabled by the command line option.  Parse
25147         -mrecip=<opt> options.
25148         (rs6000_builtin_vectorized_function): Add support for vectorizing
25149         the reciprocal estimate builtins and expansions.
25150         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
25151         (bdesc_2arg): Add reciprocal estimate builtins.
25152         (bdesc_1arg): Add reciprocal square root estimate builtins.
25153         (rs6000_expand_builtin): Rewrite to use a switch statement,
25154         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
25155         (rs6000_init_builtins): Create declarations for reciprocal
25156         estimate builtins.
25157         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
25158         sized, prefer traditional floating point registers, if integer
25159         vector types, prefer altivec registers.  Don't actually look at
25160         the memory address any more.
25161         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
25162         builtins.
25163         (rs6000_load_constant_and_splat): New helper function to load up
25164         the constant for reciprocal estimate instructions.
25165         (rs6000_emit_madd): New helper function for generating
25166         multiply/add type instructions, based on the current switches.
25167         (rs6000_emit_msub): Ditto.
25168         (rs6000_emit_mnsub): Ditto.
25169         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
25170         replace a divide with a reciprocal estimate and fixup, adding
25171         support for machines with high precision and vectors.
25172         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
25173         low precision machines.
25174         (rs6000_emit_swdiv): New common function to be called to replace a
25175         division with reciprocal estimate and fixup.
25176         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
25177         for double and vector types.  Add support for high precision machines.
25178
25179         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
25180         the reciprocal estimate instructions can be generated.
25181         (TARGET_FRE): Ditto.
25182         (TARGET_FRSQRTES): Ditto.
25183         (TARGET_FRSQRTE): Ditto.
25184         (RS6000_RECIP_*): New macros for reciprocal estimate support.
25185
25186         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
25187         square root estimate on vectors.
25188         (re<mode>2): New insn for reciprocal division estimate on vectors.
25189
25190         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
25191         New builtin.
25192         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
25193         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
25194         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
25195         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
25196         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
25197         (RS6000_BUILTIN_RSQRT): Ditto.
25198         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
25199         floating point builtin.
25200
25201         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
25202         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
25203         __RECIP_PRECISION__ based on the command line switches.
25204         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
25205
25206         * config/rs6000/rs6000.opt (-mrecip): Document add support for
25207         replacing division instructions with reciprocal estimate and fixup.
25208         (-mrecip=<opt>): New option.
25209         (-mrecip-precision): Ditto.
25210
25211         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
25212         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
25213         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
25214         precision scalar.
25215
25216         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
25217         (UNSPEC_VREFP): Ditto.
25218         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
25219         conterparts with regard to support of -mno-fused-madd and -ffast-math.
25220         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
25221         reciprocal estimate instructions to be generated.
25222         (altivec_vrefp): Ditto.
25223
25224         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
25225         estimate support.
25226         (rreg): New mode attribute for reciprocal estimate support.
25227         (recip<mode>3): New insn for division using reciprocal estimate
25228         and fixup builtins.
25229         (divide define_split): New define_split to convert floating point
25230         division to use reciprocal estimate if the user used the
25231         appropriate options and the split is run when we can add new
25232         pseudo registers for the fixup.
25233         (rsqrt<mode>2): New insn for reciprocal square root support.
25234         (recipsf3): Move into recip<mode>3.
25235         (recipdf3): Ditto.
25236         (fres): Use TARGET_FRES.
25237         (rsqrtsf2): Move into rsqrt<mode>2.
25238         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
25239         (copysignsf3): Add support for VSX.
25240         (fred): Use TARGET_FRE.
25241         (fred_fpr): Ditto.
25242         (rsqrtdf_internal1): New function for frsqrte instruciton.
25243
25244         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
25245         (vec_rsqrt): Ditto.
25246
25247 2010-06-03  Richard Guenther  <rguenther@suse.de>
25248
25249         PR middle-end/44291
25250         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
25251         (set_user_assembler_libfunc): Likewise.
25252
25253 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25254
25255         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
25256         defaults.h.
25257         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
25258         to defaults.h
25259         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
25260         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
25261         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
25262         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
25263         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
25264         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
25265         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
25266         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
25267         * defaults.h: Updated for above mentioned changes.
25268
25269 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
25270
25271         * c-common.c: Remove header include of tm_p.h.
25272         * Makefile.in (c-common.o): Remove TM_P_H dependency.
25273
25274 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
25275
25276         * tree.h (struct tree_decl_map): New type.
25277         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
25278         (tree_decl_map_hash): New prototype.
25279         (debug_expr_for_decl, value_expr_for_decl): Change into
25280         tree_decl_map hashtab from tree_map.
25281         (init_ttree): Adjust initialization.
25282         (tree_decl_map_hash): New function.
25283         (decl_debug_expr_lookup, decl_debug_expr_insert,
25284         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
25285
25286 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25287
25288         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
25289         linker emulations.
25290         * configure: Regenerate.
25291         * config.in: Regenerate.
25292
25293         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
25294         (X86_64_EMULATION): Define.
25295         (TARGET_LD_EMULATION): Use them.
25296
25297         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
25298         (SPARC64_EMULATION): Define.
25299         (LINK_ARCH_SPEC): Use them.
25300
25301 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25302
25303         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
25304         smallest_mode_for_size for computing the precision types of new
25305         graphite IVs.  Do not call lang_hooks.types.type_for_size.
25306
25307 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25308
25309         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
25310         information.
25311         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
25312
25313 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25314
25315         PR middle-end/44363
25316         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
25317         return false instead.
25318
25319 2010-06-02  Jan Hubicka  <jh@suse.cz>
25320
25321         PR middle-end/44295
25322         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
25323         create new cgraph node to check callee.
25324
25325 2010-06-02  Richard Guenther  <rguenther@suse.de>
25326
25327         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
25328
25329 2010-06-02  Richard Guenther  <rguenther@suse.de>
25330
25331         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
25332         (lto_wrapper_cleanup): ... this.  Do not exit.
25333         (fatal): Adjust.  Exit here.
25334         (fatal_perror): Likewise.
25335         (fatal_signal): New function.
25336         (main): Set up signal handlers to cleanup temporary files.
25337         * Makefile.in (lto-wrapper.o): Adjust dependencies.
25338
25339 2010-06-02  Richard Guenther  <rguenther@suse.de>
25340
25341         PR tree-optimization/44377
25342         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
25343
25344 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25345
25346         * config/s390/2097.md (z10_fhex): Remove insn reservation.
25347         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
25348         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
25349         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
25350         instruction.
25351         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
25352
25353 2010-06-02  Jan Hubicka  <jh@suse.cz>
25354
25355         * bitmap.c (bitmap_descriptor): Add search_iter.
25356         (bitmap_find_bit): Increment it.
25357         (print_statistics): Print it.
25358
25359 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
25360
25361         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
25362         instead of gimple_build_call_vec.  Delete unnecessary local variable.
25363
25364 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25365
25366         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
25367         change from yesterday.
25368
25369 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25370
25371         * c-ada-spec.c: Clean up redundant includes.
25372
25373 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
25374
25375         * gimplify.c: Do not include except.h and optabs.h.
25376         (gimplify_body): Do not initialize RTL profiling.
25377         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
25378         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
25379         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
25380         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
25381         langhooks.h.
25382
25383         * tree-pretty-print.h: Include pretty-print.h.
25384         * gimple-pretty-print.h: Include pretty-print.h.
25385
25386         * tree-pretty-print.c: Do not include diagnostic.h.
25387         * tree-vrp.c: Likewise.
25388         * tree-tailcall.c: Likewise
25389         * tree-scalar-evolution.c: Likewise
25390         * tree-ssa-dse.c: Likewise
25391         * tree-chrec.c: Likewise
25392         * tree-ssa-sccvn.c: Likewise
25393         * tree-ssa-copyrename.c: Likewise
25394         * tree-nomudflap.c: Likewise
25395         * tree-call-cdce.c: Likewise
25396         * tree-stdarg.c: Likewise
25397         * tree-ssa-math-opts.c: Likewise
25398         * tree-nrv.c: Likewise
25399         * tree-ssa-sink.c: Likewise
25400         * tree-browser.c: Likewise
25401         * tree-ssa-loop-ivcanon.c: Likewise
25402         * tree-ssa-loop.c: Likewise
25403         * tree-parloops.c: Likewise
25404         * tree-ssa-address.c: Likewise
25405         * tree-ssa-ifcombine.c: Likewise
25406         * tree-if-conv.c: Likewise
25407         * tree-data-ref.c: Likewise
25408         * tree-affine.c: Likewise
25409         * tree-ssa-phiopt.c: Likewise
25410         * tree-ssa-coalesce.c: Likewise
25411         * tree-ssa-pre.c: Likewise
25412         * tree-ssa-live.c: Likewise
25413         * tree-predcom.c: Likewise
25414         * tree-ssa-forwprop.c: Likewise
25415         * tree-ssa-dce.c: Likewise
25416         * tree-ssa-ter.c: Likewise
25417         * tree-ssa-loop-prefetch.c: Likewise
25418         * tree-optimize.c: Likewise
25419         * tree-ssa-phiprop.c: Likewise
25420         * tree-object-size.c: Likewise
25421         * tree-outof-ssa.c: Likewise
25422         * tree-ssa-structalias.c: Likewise
25423         * tree-switch-conversion.c: Likewise
25424         * tree-ssa-reassoc.c: Likewise
25425         * tree-ssa-operands.c: Likewise
25426         * tree-vectorizer.c: Likewise
25427         * tree-vect-data-refs.c: Likewise
25428         * tree-vect-generic.c: Likewise
25429         * tree-vect-stmts.c: Likewise
25430         * tree-vect-patterns.c: Likewise
25431         * tree-vect-slp.c: Likewise
25432         * tree-vect-loop.c: Likewise
25433         * tree-ssa-loop-ivopts.c: Likewise
25434         * tree-ssa-loop-im.c: Likewise
25435         * tree-ssa-loop-niter.c: Likewise
25436         * tree-ssa-loop-unswitch.c: Likewise
25437         * tree-ssa-loop-manip.c: Likewise
25438         * tree-ssa-loop-ch.c: Likewise
25439         * tree-dump.c: Likewise
25440         * tree-complex.c: Likewise
25441
25442         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
25443         * tree-ssa-uninit.c: Likewise
25444         * tree-ssa-threadupdate.c: Likewise
25445         * tree-ssa-uncprop.c: Likewise
25446         * tree-ssa-ccp.c: Likewise
25447         * tree-ssa-dom.c: Likewise
25448         * tree-ssa-propagate.c: Likewise
25449         * tree-ssa-alias.c: Likewise
25450         * tree-dfa.c: Likewise
25451         * tree-cfgcleanup.c: Likewise
25452         * tree-sra.c: Likewise
25453         * tree-ssa-copy.c: Likewise
25454         * tree-ssa.c: Likewise
25455         * tree-profile.c: Likewise
25456         * tree-cfg.c: Likewise
25457         * tree-ssa-threadedge.c: Likewise
25458         * tree-vect-loop-manip.c: Likewise
25459
25460         * tree-inline.c: Do not include diagnostic.h and expr.h.
25461         Include rtl.h.
25462         (copy_decl_for_dup_finish): Do not use NULL_RTX.
25463
25464         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
25465         * tree-loop-distribution.c: Likewise.
25466
25467 2010-06-01  Jan Hubicka  <jh@suse.cz>
25468
25469         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
25470
25471 2010-06-01  Jan Hubicka  <jh@suse.cz>
25472
25473         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
25474         remove return value.
25475         (split_bbs_on_noreturn_calls) .... here.
25476         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
25477         * tree-flow.h (fixup_noreturn_call): New.
25478
25479 2010-06-01  Jan Hubicka  <jh@suse.cz>
25480
25481         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
25482
25483 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
25484
25485         * tree.h (build_nt_call_list): Delete.
25486         * tree.c (build_nt_call_list): Delete.
25487
25488 2010-06-01  Jan Hubicka  <jh@suse.cz>
25489
25490         * fwprop.c: Make emit-rtl.h include last.
25491         * rtlanal.c: Include emit-rtl.h.
25492         * genautomata.c: Output emit-rtl include into insn-automata.c
25493         * df-scan.c: Include emit-rtl.h.
25494         * haifa-sched.c: Indlude emit-rtl.h.
25495         * mode-switching.c: Indlude emit-rtl.h.
25496         * graph.c: Indlude emit-rtl.h.
25497         * sel-sched.c: Include emit-rtl.h.
25498         * sel-sched-ir.c: Include emit-rtl.h.
25499         * ira-build.c: Include emit-rtl.h.
25500         * emit-rtl.c (first_insn, last_insn): Remove defines.
25501         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
25502         Move to emit-rtl.h.
25503         (set_new_first_and_last_insn, get_last_insn_anywhere,
25504         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
25505         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
25506         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
25507         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
25508         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
25509         Use accessor functions.
25510         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
25511          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
25512         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
25513         mem_expr_equal_p): Move here from rtl.h.
25514         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
25515         Move here from emit-rtl.c; make inline.
25516         * cfglayout.h: Include emit-rtl.h.
25517         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
25518          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
25519         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
25520         mem_expr_equal_p, get_insns, set_first-insn,
25521         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
25522         * reg-stack.c: Include emit-rtl.h.
25523         * dce.c: Likewise.
25524
25525 2010-06-01  Jan Hubicka  <jh@suse.cz>
25526
25527         * cgraph.h (tree_function_versioning): Update prototype.
25528         (cgraph_function_versioning): Update prototype.
25529         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
25530         bitmap.
25531         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
25532         (cgraph_materialize_clone, save_inline_function_body): Update use of
25533         tree_function_versioning.
25534         * tree-inline.c (copy_bb): Look for previous copied block to link
25535         after; fix debug output.
25536         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
25537         (copy_body): Likewise.
25538         (expand_call_inline): Update use of copy_body.
25539         (tree_function_versioning): Update use of copy body; accept
25540         blocks_to_copy and new_entry.
25541
25542 2010-06-01  Jan Hubicka  <jh@suse.cz>
25543
25544         * gegenrtl.c: Remove unnecesary prototypes.
25545         (gendecl): Remove.
25546         (gendef): Produce static inline.
25547         (gencode): Remove.
25548         (main): Do not decode parameters; generate header only.
25549         * Makefile.in (genrtl.c): Remove.
25550
25551 2010-06-01  Jan Hubicka  <jh@suse.cz>
25552
25553         * tree-switch-conversion.c (build_one_array): Make it readonly.
25554
25555 2010-06-01  Richard Guenther  <rguenther@suse.de>
25556
25557         * optabs.c (init_optabs): Guard all accesses to reinit.
25558         * ipa-pure-const.c (propagate): Fix another typo.
25559         * opts.c (common_handle_option): Split assignment to bool.
25560         * c-opts.c (c_common_handle_option): Likewise.
25561
25562 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
25563             Matthew Gingell  <gingell@adacore.com>
25564
25565         * doc/invoke.texi: Mention -fdump-ada-spec.
25566         * tree-dump.c (dump_files): Add ada-spec.
25567         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
25568         * tree-pass.h (tree_dump_index): Add TDI_ada.
25569         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
25570         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
25571         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
25572         * c-decl.c: Include c-ada-spec.h.
25573         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
25574         functions.
25575         (c_write_global_declarations): Add handling of -fdump-ada-spec.
25576         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
25577         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
25578         * c-ada-spec.h, c-ada-spec.c: New files.
25579
25580 2010-06-01  Richard Guenther  <rguenther@suse.de>
25581
25582         PR lto/43853
25583         * ipa-pure-const.c (get_function_state): Hand back varying state
25584         if we do not have one.
25585         (has_function_state): New function.
25586         (duplicate_node_data): Adjust.
25587         (remove_node_data): Likewise.
25588         (pure_const_write_summary): Likewise.
25589         (propagate): Likewise.  Fix typo.
25590
25591 2010-06-01  Jan Hubicka  <jh@suse.cz>
25592
25593         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
25594         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
25595         (execute_all_ipa_transforms): Do not play with the states.
25596
25597 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
25598
25599         * config/arm/t-linux-androideabi: New.
25600         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
25601
25602 2010-06-01  Jan Hubicka  <jh@suse.cz>
25603
25604         * tree-inline.c (estimate_num_insns): For stdarg functions look
25605         into call statement to count cost of argument passing.
25606
25607 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
25608
25609         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
25610         argument for fprintf.
25611         (ix86_output_addr_diff_elt): Likewise.
25612         (x86_function_profiler): Likewise.
25613         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
25614         (LPREFIX): Likewise.
25615         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
25616
25617 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
25618
25619         PR target/44338
25620         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
25621         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
25622         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
25623         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
25624         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
25625         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
25626         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
25627         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
25628         TARGET_FUSED_MADD.
25629
25630 2010-05-31  Jan Hubicka  <jh@suse.cz>
25631
25632         * tree.h (tree_range_check_failed): Declare noreturn.
25633
25634 2010-05-31  Jan Hubicka  <jh@suse.cz>
25635
25636         * gimple.c (gimple_call_builtin_p): New function.
25637         * gimple.h (gimple_call_builtin_p): Declare.
25638         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
25639         to exit.
25640         (execute_warn_function_return): BUILT_IN_RETURN is return.
25641         (split_critical_edges): Return edges are not critical.
25642         (is_ctrl_altering_stmt): Builtin_in_return is altering.
25643         (gimple_verify_flow_info): Handle built_in_return.
25644         (execute_warn_function_return): Handle built_in_return.
25645         * ipa-pure-const.c (check_call): Ignore builtin_return.
25646
25647 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
25648
25649         PR middle-end/44337
25650         * expr.c (expand_assignment): Don't store anything for out-of-bounds
25651         array accesses with non-MEM.
25652
25653         PR tree-optimization/44182
25654         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
25655         newly needs to end a bb is followed by debug stmts, instead return
25656         true from the function at the end.
25657         (maybe_move_debug_stmts_to_successors): New function.
25658         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
25659
25660 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
25661
25662         PR target/44161
25663         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
25664
25665 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
25666
25667         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
25668         for nested functions in non-optimized compilation.
25669
25670 2010-05-31  Richard Guenther  <rguenther@suse.de>
25671
25672         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
25673
25674 2010-05-30  Jan Hubicka  <jh@suse.cz>
25675
25676         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
25677
25678 2010-05-30  Richard Guenther  <rguenther@suse.de>
25679
25680         PR lto/42975
25681         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
25682         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
25683         no longer needed.
25684
25685 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
25686
25687         * config/darwin.c (output_objc_section_asm_op): Add comment.
25688         (name_needs_quotes): Add '_' to list of valid comment chars.
25689         (machopic_output_function_base_name): Remove unneeded quotes.
25690         (darwin_encode_section_info): Adjust asm whitespace.
25691         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
25692         (ASM_OUTPUT_LOCAL): Ditto.
25693         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
25694         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
25695         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
25696
25697 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
25698
25699         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
25700         RS6000_OUTPUT_BASENAME unconditionally.
25701         (rs6000_output_function_epilogue): Likewise.
25702
25703 2010-05-30  Jan Hubicka  <jh@suse.cz>
25704
25705         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
25706         nodes.
25707
25708 2010-05-30  Richard Guenther  <rguenther@suse.de>
25709
25710         * tree-cfg.c (verify_gimple_assign_single): Implement
25711         verification for COND_EXPR rhs.
25712
25713 2010-05-30  Jan Hubicka  <jh@suse.cz>
25714
25715         * cgraph.h (cgraph_dump_file): Declare.
25716         * cgraphunit.c (cgraph_dump_file): Export.
25717         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
25718
25719 2010-05-30  Jan Hubicka  <jh@suse.cz>
25720
25721         * dwarf2out.c (reference_to_unused,
25722         premark_types_used_by_global_vars_helper): Avoid creation of new
25723         varpool nodes.
25724
25725 2010-05-30  Jan Hubicka  <jh@suse.cz>
25726
25727         * cgraph.h (cgraph_node_cannot_return,
25728         cgraph_edge_cannot_lead_to_return): New functions.
25729         * cgraph.c (cgraph_node_cannot_return,
25730         cgraph_edge_cannot_lead_to_return): Use them.
25731         * ipa-pure-const.c (pure_const_names): New static var.
25732         (check_call): Handle calls not leading to return.
25733         (pure_const_read_summary): Dump info read.
25734         (propagate): Dump info about propagation process; ignore side effects
25735         of functions not leading to exit; fix handling of pure functions.
25736
25737 2010-05-30  Jan Hubicka  <jh@suse.cz>
25738
25739         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
25740         for tail call epilogues.
25741
25742 2010-05-30  Jan Hubicka  <jh@suse.cz>
25743
25744         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
25745         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
25746         dump files.
25747
25748 2010-05-29  Jan Hubicka  <jh@suse.cz>
25749
25750         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
25751         node; remove references in node we no longer keep in cgrpah but need
25752         body of.
25753
25754 2010-05-29  Jan Hubicka  <jh@suse.cz>
25755
25756         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
25757
25758 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25759
25760         PR target/44165
25761         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
25762
25763 2010-05-29  Jan Hubicka  <jh@suse.cz>
25764
25765         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
25766         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
25767         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
25768         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
25769         debug_names_replaced_by, debug_update_ssa): Likewise.
25770         * sbitmap.c (debug_sbitmap): Likewise.
25771         * genrecog.c (debug_decision, debug_decision_list): Likewise.
25772         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
25773         debug_tree_chain): Likewise.
25774         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
25775         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
25776         * optabs.c (debug_optab_libfuncs): Likewise.
25777         (verify_loop_closed_ssa): Likewise.
25778         * value-prof.c (verify_histograms): Likewise.
25779         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
25780         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
25781         * cfghooks.c (verify_flow_info): Likewise.
25782         * fold-const.c (debug_fold_checksum): Likewise.
25783         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
25784         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
25785         Likewise.
25786         * omega.c (debug_omega_problem): Likewise.
25787         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
25788         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
25789         * dominance.c (verify_dominators, debug_dominance_info,
25790         debug_dominance_tree): Likewise.
25791         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
25792         * df_regno_debug, df_ref_debug,
25793         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
25794         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
25795         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
25796         * sel-sched.c (debug_state): Likewise.
25797         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
25798         Likewise.
25799         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
25800         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
25801         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
25802         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
25803         Likewise.
25804         * c-pretty-print.c (debug_c_tree): Likewise.
25805         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
25806         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
25807         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
25808         * ebitmap.c (debug_ebitmap): Likewise.
25809         * function.c (debug_find_var_in_block_tree): Likewise.
25810         * print-rtl.c (debug_rtx): Likewise.
25811         (debug_rtx_count): Likewise.
25812         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
25813         * stor-layout.c (debug_rli): Likewise.
25814         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
25815         * tree-data-ref.c (debug_data_references,
25816         debug_data_dependence_relations, debug_data_reference,
25817         debug_data_dependence_relation, debug_rdg_vertex,
25818         debug_rdg_component, debug_rdg): Likewise.
25819         * tree-affine.c (debug_aff): Likewise.
25820         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
25821         Likewise.
25822         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
25823         * emit-rtl.c (verify_rtl_sharing): Likewise.
25824         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
25825         debug_value_expressions): Likewise.
25826         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
25827         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
25828         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
25829         * cfglayout.c (verify_insn_chain): Likewise.
25830         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
25831         debug_clast_stmt, debug_generated_program): Likewise.
25832         * ggc-page.c (debug_print_page_list): Likewise.
25833         * tree-ssa-ter.c (debug_ter): Likewise.
25834         * graphite-dependences.c (debug_pddr): Likewise.
25835         * sched-deps.c (debug_ds): Likewise.
25836         * tree-ssa.c (verify_ssa): Likewise.
25837         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
25838         debug_scattering_functions, debug_iteration_domains, debug_pdr,
25839         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
25840         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
25841         * tree-inline.c (debug_find_tree): Likewise.
25842         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
25843         debug_ppl_powerset_matrix): Likewise.
25844         * var-tracking.c (debug_dv): Likewise.
25845         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
25846         * cfgloop.c (verify_loop_structure): Likewise.
25847         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
25848         * c-common.c (verify_sequence_points): Likewise.
25849         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
25850         debug_candidates, debug_rgn_dependencies): Likewise.
25851         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
25852         * debug_constraint_graph, debug_solution_for_var,
25853         debug_sa_points_to_info): Likewise.
25854         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
25855         Likewie.
25856         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
25857         debug_loops, debug_loop, debug_loop_num): Likewise.
25858         * passes.c (debug_pass): Likewise.
25859         (dump_properties): Likewise; add cfglayout property.
25860         (debug_properties): Likewise.
25861         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
25862         * varpool.c (debug_varpool): Likewise.
25863         * regcprop.c (debug_value_data): Likewise.
25864         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
25865         debug_immediate_uses_for): Likewise.
25866
25867 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
25868
25869         PR bootstrap/44315
25870         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
25871         Filter out insn-flags.h.
25872
25873 2010-05-29  Jan Hubicka  <jh@suse.cz>
25874
25875         * cgraph.h (struct varpool_node_set_def,
25876         struct cgraph_node_set_def): Remove unused AUX pointer.
25877         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
25878         VEC_empty macro.
25879
25880 2010-05-29  Jan Hubicka  <jh@suse.cz>
25881
25882         PR middle-end/44324
25883         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
25884
25885 2010-05-29  Richard Guenther  <rguenther@suse.de>
25886
25887         * lto-streamer.c (cached_bp): New global variable.
25888         (bitpack_create): Return the cached bitpack, if available.
25889         (bitpack_delete): Clear and cache the bitpack, if appropriate.
25890         (bp_pack_value): Remove redundant asserts.
25891
25892 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
25893
25894         PR middle-end/44306
25895         * tree-if-conv.c (is_true_predicate): New.
25896         (is_predicated): Use is_true_predicate.
25897         (add_to_predicate_list): Same.  Do not use unshare_expr.
25898         (add_to_dst_predicate_list): Same.
25899
25900 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
25901
25902         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
25903         field on edges.
25904         (predicate_bbs): Same.
25905         (clean_predicate_lists): Same.
25906         (find_phi_replacement_condition): Do not AND the predicate from
25907         edge->aux.
25908
25909 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
25910
25911         PR bootstrap/44315
25912         * Makefile.in (build/gencondmd.o): Add a missing `\'.
25913
25914 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25915
25916         PR target/44261
25917         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
25918         (negdf2): Adjust expander pattern and use negdf2_slow.
25919         (negsf2): Likewise.
25920
25921 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
25922
25923         * basic-block.h (struct control_flow_graph): Move last_label_uid field
25924         up.
25925         * df.h (struct df_base_ref): Move regno field up.
25926         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
25927         * expr.h (struct separate_ops): Move location field up.
25928         * optabs.h (struct optab_d): Move libcall_basename field down.
25929         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
25930         * config/i386/i386.h (struct machine_function): Convert call_abi field
25931         into a bitfield.  Move cfa field to the end of the structure.
25932
25933 2010-05-29  Jan Hubicka  <jh@suse.cz>
25934
25935         * varpool.c (varpool_get_node): Fix lookup.
25936
25937 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
25938
25939         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
25940         RTL specific prototypes with #ifdef RTX_CODE.
25941         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
25942         * config/spu/t-spu-elf: Fix dependencies.
25943
25944         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
25945
25946 2010-05-29  Mike Stump  <mikestump@comcast.net>
25947
25948         PR bootstrap/44315
25949         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
25950         TM_H when building to avoid dependency loops.
25951
25952 2010-05-29  Jan Hubicka  <jh@suse.cz>
25953
25954         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
25955         refs and body; not the whole node for masters of materialized clones.
25956
25957 2010-05-29  Mike Stump  <mikestump@comcast.net>
25958
25959         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
25960
25961 2010-05-29  Jan Hubicka  <jh@suse.cz>
25962
25963         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
25964         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
25965         use of clone_function_name.
25966         * cgraph.h (cgraph_create_virtual_clone,
25967         cgraph_function_versioning): update prototypes.
25968         (clone_function_name): Declare.
25969         * ipa-cp.c (ipcp_insert_stage): Update call of
25970         cgraph_create_virtual_clone.
25971         * omp-low.c (create_omp_child_function_name): Use
25972         cgraph_create_virtual_clone.
25973         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
25974         (cgraph_function_versioning): Take SUFFIX argument; produce new name
25975         and make decl local.
25976
25977 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
25978
25979         * vec.h: Include statistics.h
25980         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
25981         with VEC_H.
25982
25983 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
25984
25985         * c-lex.c: Do not include c-tree.h.
25986         * c-pretty-print.c: Likewise.
25987         * c-opts.c: Likewise.
25988         * c-gimplify.c: Likewise.
25989         * c-common.c: Likewise.
25990         * c-dump.c: Likewise.  Include c-common.h.
25991
25992 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
25993
25994         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
25995         before including diagnostic-core.h.
25996         (c_cpp_error): New prototype moved from c-tree.h.
25997         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
25998         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
25999         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
26000         (c_cpp_error): Prototype moved to c-common.h.
26001         * Makefile.in: Update dependency for C_COMMON_H.
26002
26003 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26004
26005         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
26006         * c-common.c (c_register_addr_space): Remove here.
26007         * c-decl.c (c_register_addr_space): Re-add here.
26008
26009 2010-05-28  Mike Stump  <mikestump@comcast.net>
26010
26011         * config/darwin-c.c: Remove c-tree.h include.
26012
26013 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26014
26015         * gcc.c: Include diagnostic.h.
26016         (error_count): Remove.  All users changed to use errorcount.
26017         (programname): Remove.  All users changed to use progname.
26018         (fancy_abort, internal_error, fatal_error, error, warning, inform,
26019         fnotice): Remove.
26020         (execute): Don't include "Internal error" and bug reporting
26021         information in argument of internal_error call.
26022         (process_command): Don't increment error_count after calling
26023         perror_with_name.
26024         (input_filename): Rename to gcc_input_filename.  All users
26025         changed.
26026         (main): Call diagnostic_initialize.  Register delete_temp_files
26027         with atexit.  Use seen_error to test for errors.
26028         * gcc.h: Include diagnostic-core.h.
26029         (fatal_error, error, warning): Remove.
26030         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
26031         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
26032         (gcc.o): Update dependencies.
26033
26034 2010-05-28  Jeff Law  <law@redhat.com>
26035
26036         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
26037         functions.
26038         * ira.h (ira_bad_reload_regno): Declare
26039         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
26040
26041         * ira-color.c (update_curr_costs): Free updated hard reg costs.
26042         (ira_reassign_conflict_allocnos): Remove bogus asserts.
26043         (allocno_reload_assign): Likewise.
26044
26045 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
26046
26047         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
26048         build1_stat.
26049
26050 2010-05-28  Richard Guenther  <rguenther@suse.de>
26051
26052         PR lto/44312
26053         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
26054         Stream fixed-point constants mode.
26055         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
26056         and TYPE_PRECISION.
26057         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
26058         Stream fixed-point constants mode.
26059         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
26060         and TYPE_PRECISION.
26061
26062 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26063
26064         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
26065         only place it was called from.
26066         (number_of_latch_executions): Do not return chrec_dont_know when the
26067         may_be_zero is a runtime condition: instead, return a COND_EXPR
26068         including the may_be_zero condition.
26069         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
26070         of nb_iterations.
26071         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
26072         COND_EXPRs.
26073
26074 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26075
26076         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
26077         generate COND_EXPRs for degenerate_phi_result.
26078
26079 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26080
26081         PR middle-end/44293
26082         * tree-if-conv.c (if_convertible_loop_p): Check the
26083         if-convertibility of phi nodes in non predicated BBs.
26084
26085 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26086
26087         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
26088
26089 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26090
26091         PR driver/15303
26092         * gcc.c (inform, warning, inform): New functions.
26093         (fatal_ice): Rename to internal_error; change cmsgid parameter to
26094         gmsgid.  All callers changed.
26095         (notice): Rename to fnotice; add parameter fp.  All callers changed.
26096         (fatal_error): Rename to fatal_signal.  All users changed.
26097         (fatal): Rename to fatal_error; change cmsgid parameter to
26098         gmsgid.  All callers changed.
26099         (process_command): Use warning instead of error for warnings.
26100         (end_going_arg): Don't use _() around argument of error.
26101         (do_spec_1): Use inform for message from %n specs.  Use warning
26102         instead of error for warnings.
26103         (main): Use inform for comparison messages.  Use warning for
26104         message about unused linker input.
26105         (error): Increment error_count.  Print "error: ".
26106         * gcc.h (fatal): Change to fatal_error.
26107         (warning): Declare.
26108         * config/darwin-driver.c (darwin_default_min_version): Use warning
26109         instead of fprintf for warnings.
26110         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
26111
26112 2010-05-28  Julian Brown  <julian@codesourcery.com>
26113
26114         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
26115         (*thumb2_addsi3_compare0_scratch): New.
26116         * config/arm/constraints.md (Pv): New.
26117         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
26118         for ARM mode only.
26119         (*addsi3_compare0_scratch): Likewise.
26120
26121 2010-05-28  Jan Hubicka  <jh@suse.cz>
26122
26123         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
26124         check.
26125         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
26126         only on local statics.
26127
26128 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
26129
26130         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
26131
26132 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
26133
26134         PR bootstrap/44314
26135         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
26136         (OPTION_GLIBC): Define.
26137
26138 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
26139
26140         PR debug/41048
26141         * dwarf2out.c (double_int_type_size_in_bits): New function.
26142         (round_up_to_align): Change first argument and return value to
26143         double_int.
26144         (field_byte_offset): Work internally on double_ints.
26145
26146         PR target/43636
26147         * builtins.c (expand_movstr): Use a temporary pseudo instead
26148         of target even when target is not NULL and not const0_rtx, but
26149         fails movstr predicate.
26150         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
26151
26152 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26153
26154         * final.c (rest_of_clean_state): Use %m in errors instead of
26155         strerror (errno).
26156         * gengtype.c (read_input_list, close_output_files): Use xstrerror
26157         instead of strerror.
26158         * toplev.c (process_options): Use %m in errors instead of strerror
26159         (errno).
26160         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
26161         (errno).
26162
26163 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
26164
26165         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
26166         (ix86_canonical_va_list_type): Make static.  Add declaration.
26167         (ix86_enum_va_list): Make static.  Reindent.
26168         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
26169         (ix86_canonical_va_list_type): Ditto.
26170         (ix86_enum_va_list): Ditto.
26171
26172 2010-05-28  Richard Guenther  <rguenther@suse.de>
26173
26174         * lto-wrapper.c (run_gcc): With -save-temps generate a
26175         user-visible ltrans filename.  Fixup ltrans unit numbering.
26176
26177 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
26178
26179         * c-common.c (c_common_nodes_and_builtins): Replace use
26180         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
26181         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
26182         to ix86_enum_va_list.
26183         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
26184         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
26185         (TARGET_ENUM_VA_LIST_P): Add hook description.
26186         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
26187         * target.h (gcc_target): Add enum_va_list hook.
26188
26189         PR bootstrap/44299
26190         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
26191         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
26192         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
26193
26194 2010-05-28  Alan Modra  <amodra@gmail.com>
26195
26196         PR target/44266
26197         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
26198         emit_library_call machinery to set up __tls_get_addr calls.
26199
26200 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26201
26202         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
26203
26204 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
26205
26206         Revert fix for PR c++/44188
26207         * c-common.c (is_typedef_decl): Revert the moving of  this
26208         definition ...
26209         * tree.c (is_typedef_decl): ... here.
26210         (typdef_variant_p): Revert the moving of this  definition
26211         here from cp/tree.c.
26212         * c-common.h (is_typedef_decl): Revert the moving of this
26213         declaration ...
26214         * tree.h (is_typedef_decl): ... here.
26215         (typedef_variant_p): Revert the moving of this  declaration here
26216         from cp/cp-tree.h
26217         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
26218         (gen_tagged_type_die): Revert the splitting out of ...
26219         (gen_type_die_with_usage): ... this function. Revert the anonymous
26220         tagged type handling.
26221         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
26222         typedefs naming anonymous tagged types.
26223
26224 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
26225
26226         * config/rs6000/rs6000-modes.def (PSImode): Delete.
26227
26228 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
26229
26230         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
26231         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
26232         throughout.
26233         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
26234         "xer" to "ca".
26235         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
26236         XER_REGS to CA_REGS throughout.
26237         * config/rs6000/rs6000.h: Same.
26238         (ADDITIONAL_REGISTER_NAMES): Add "xer".
26239         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
26240         that mode_iterator "P" is the size for arithmetic carries as well.
26241         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
26242
26243 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
26244
26245         PR bootstrap/44255
26246         * combine.c (struct rtx_subst_pair): Define unconditionally.
26247         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
26248         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
26249         Call make_compound_operation on pair->to.
26250         (propagate_for_debug): Don't call make_compound_operation here.
26251         Always use simplify_replace_fn_rtx.
26252
26253 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
26254
26255         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
26256         * config/xtensa/xtensa.c (override_options): Check
26257           TARGET_FORCE_NO_PIC and set flag_pic.
26258         * config/xtensa/xtensa.opt: Document -mforce-no-pic
26259
26260 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
26261
26262         PR bootstrap/44299
26263         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
26264         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
26265
26266 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
26267
26268         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
26269         toplev.h.
26270         * diagnostic.c: Don't include toplev.h.
26271         (progname): Define.  Moved from toplev.c.
26272         (seen_error): New function.
26273         * diagnostic.h: Include diagnostic-core.h.
26274         (diagnostic_t, emit_diagnostic): Don't declare here.
26275         * toplev.c (progname): Move to toplev.c.
26276         (emit_debug_global_declarations, compile_file, finalize,
26277         do_compile, toplev_main): Use seen_error.
26278         * toplev.h: Include diagnostic-core.h.
26279         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
26280         internal_error, warning, warning_at, error, error_n, error_at,
26281         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
26282         verbatim, fnotice, progname): Move to diagnostic-core.h.
26283         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
26284         (expand_builtin_expect): Use seen_error.
26285         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
26286         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
26287         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
26288         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
26289         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
26290         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
26291         errorcount for errors.
26292         * c-opts.c (c_common_finish): Use seen_error.
26293         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
26294         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
26295         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
26296         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
26297         (get_coverage_counts): Use seen_error.
26298         * dwarf2out.c (dwarf2out_finish): Use seen_error.
26299         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
26300         gimplify_body): Use seen_error.
26301         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
26302         * ipa-pure-const.c (gate_pure_const): Use seen_error.
26303         * ipa-reference.c (gate_reference): Use seen_error.
26304         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
26305         * lambda-code.c: Include diagnostic-core.h instead of
26306         diagnostic.h.
26307         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
26308         * lto-compress.c: Include diagnostic-core.h instead of
26309         diagnostic.h.
26310         * lto-section-in.c: Include diagnostic-core.h instead of
26311         diagnostic.h.
26312         * lto-streamer-out.c: Include diagnostic-core.h instead of
26313         diagnostic.h.
26314         * lto-streamer.c: Include diagnostic-core.h instead of
26315         diagnostic.h.
26316         (gate_lto_out): Use seen_error.
26317         * matrix-reorg.c: Include diagnostic-core.h instead of
26318         diagnostic.h.
26319         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
26320         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
26321         (gate_expand_omp, lower_omp_1): Use seen_error.
26322         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
26323         (rest_of_decl_compilation, rest_of_type_compilation,
26324         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
26325         * tree-cfg.c (label_to_block_fn): Use seen_error.
26326         * tree-inline.c (optimize_inline_calls): Use seen_error.
26327         * tree-mudflap.c (mudflap_finish_file): Use
26328         seen_error.
26329         * tree-optimize.c (gate_all_optimizations,
26330         gate_all_early_local_passes, gate_all_early_optimizations): Use
26331         seen_error.
26332         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
26333         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
26334         (varpool_remove_unreferenced_decls,
26335         varpool_assemble_pending_decls): Use seen_error.
26336         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
26337         (TOPLEV_H, DIAGNOSTIC_H): Update.
26338         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
26339         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
26340         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
26341         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
26342         coverage.o, lambda-code.o): Update dependencies.
26343
26344 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
26345
26346         PR c++/44188
26347         * c-common.c (is_typedef_decl): Move this definition ...
26348         * tree.c (is_typedef_decl): ... here.
26349         (typdef_variant_p): Move definition here from cp/tree.c.
26350         * c-common.h (is_typedef_decl): Move this declaration ...
26351         * tree.h (is_typedef_decl): ... here.
26352         (typedef_variant_p): Move declaration here from cp/cp-tree.h
26353         * dwarf2out.c (is_naming_typedef_decl): New function.
26354         (gen_tagged_type_die): Split out of ...
26355         (gen_type_die_with_usage): ... this function. When an anonymous
26356         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
26357         is emitted for the typedef.
26358         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
26359         anonymous tagged types.
26360
26361 2010-05-27  Jason Merrill  <jason@redhat.com>
26362
26363         * print-tree.c (debug_vec_tree): New fn.
26364         (print_vec_tree): New fn.
26365         * tree.h: Declare them.
26366         * gdbinit.in (pvt): New command.
26367
26368         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
26369
26370         * gdbinit.in (pdd): New command.
26371
26372 2010-05-27  Jan Hubicka  <jh@suse.cz>
26373
26374         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
26375         (update_caller_keys): Return early if there are no callers;
26376         only update fibheap when decresing the key.
26377         (update_callee_keys): Avoid recursion.
26378         (decide_inlining_of_small_functions): When badness does not match;
26379         re-insert into fibheap.
26380
26381 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
26382
26383         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
26384         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
26385         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
26386         (ALL_HOST_OBJS): Now a union of the above two.
26387         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
26388         all files in ALL_HOST_FRONTEND_OBJS.
26389         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
26390
26391         * c-common.c: Pretend to be a backend file by undefining
26392         IN_GCC_FRONTEND (still need rtl.h here).
26393
26394 2010-05-27  Jan Hubicka  <jh@suse.cz>
26395
26396         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
26397         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
26398
26399 2010-05-27  Jan Hubicka  <jh@suse.cz>
26400
26401         * sched-ebb.c: Rename struct deps to struct deps_desc.
26402         * ddg.c: Likewise.
26403         * sel-sched-ir.c: Likewise.
26404         * sched-deps.c: Likewise.
26405         * sched-int.h: Likewise.
26406         * sched-rgn.c: Likewise.
26407
26408 2010-05-27  Jon Beniston  <jon@beniston.com>
26409
26410         PR 43726
26411         * config/lm32/lm32.h: Remove definition of
26412         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
26413
26414 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
26415
26416         PR lto/44230
26417         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
26418
26419 2010-05-27  Richard Guenther  <rguenther@suse.de>
26420
26421         PR tree-optimization/44284
26422         * tree-vect-stmts.c (vectorizable_assignment): Handle
26423         sign-changing conversions as simple copy.
26424
26425 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
26426
26427         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
26428         Bionic C library.
26429         (__gthread_active_p): Check for pthread_create if compiling against
26430         Bionic C library.
26431
26432 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
26433
26434         Support compilation for Android platform.  Reimplement -mandroid.
26435
26436         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
26437         (*android*): Set ANDROID_DEFAULT.
26438         (arm*-*-linux*): Include linux-android.h.
26439         (arm*-*-eabi*): Don't include previous -mandroid implementation.
26440         * config/arm/eabi.h: Remove, move Android-specific parts ...
26441         * config/linux-android.h: ... here.  New file.
26442         * config/arm/eabi.opt: Rename to ...
26443         * config/linux-android.opt: ... this.
26444         (mandroid): Allow -mno-android option.  Initialize based on
26445         ANDROID_DEFAULT.
26446         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
26447         Move logic to corresponding LINUX_TARGET_* macros.
26448         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
26449         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
26450         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
26451         Android definitions.
26452         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
26453         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
26454         Document.
26455
26456 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
26457
26458         Add support for Bionic C library
26459
26460         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
26461         macro.
26462         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
26463         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
26464
26465         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
26466         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
26467         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
26468         to support multiple C libraries.  Handle Bionic.
26469         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
26470         (BIONIC_DYNAMIC_LINKER64): Define.
26471         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
26472         Update.
26473         (TARGET_HAS_SINCOS): Enable for Bionic.
26474
26475         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
26476         the last option specified on command line take effect.
26477         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
26478         (mbionic): New.
26479         (mglibc, muclibc): Update.
26480
26481         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
26482         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
26483         DEFAULT_LIBC.
26484
26485         * doc/invoke.texi (-mglibc, -muclibc): Update.
26486         (-mbionic): Document.
26487
26488 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
26489
26490         * c-common.h (c_register_addr_space): Add prototype.
26491         (ADDR_SPACE_KEYWORD): Remove.
26492         * c-common.c (c_register_addr_space): New function.
26493         (c_addr_space_name): Reimplement.
26494         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
26495
26496         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
26497         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
26498
26499         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
26500         Remove TARGET_ADDR_SPACE_KEYWORDS.
26501
26502 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
26503
26504         * input.c: New file.
26505         * input.h (main_input_filename): Move declaration to toplev.h.
26506         * toplev.c (input_location, line_table): Move to input.c
26507         * toplev.h (main_input_filename): Move declaration from input.h.
26508         * tree.c (expand_location): Move to input.c.
26509         * Makefile.in (OBJS-common): Add input.o.
26510         (input.o): Add dependencies.
26511
26512 2010-05-27  Richard Guenther  <rguenther@suse.de>
26513
26514         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
26515         for non-existant files.
26516         (fork_execute): Mark args_name file as deleted.
26517
26518 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
26519
26520         PR bootstrp/44287
26521         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
26522         (narrow_signed_type): Likewise.
26523
26524 2010-05-26  Jan Hubicka  <jh@suse.cz>
26525
26526         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
26527         edge only when checking is enabled; check using former_clone_of;
26528         check inline clones too.
26529         (cgraph_materialize_clone): Record former_clone_of pointer.
26530         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
26531         combining redirections; dump args_to_skip bitmap
26532         (cgraph_materialize_all_clones): Do no redirection here.
26533         * ipa-inline.c (inline_transform): Do redirection here.
26534         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
26535         cheking only).
26536
26537 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
26538
26539         * config/avr/avr-c.c: Do not include regs.h.
26540         Include cpplib.h for cpp_define and tree.h for c-common.h.
26541         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
26542         * config/avr/t-avr: Fix dependencies for avr-c.o.
26543
26544 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
26545
26546         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
26547         string instead of SYMBOL_REF rtx.
26548         * rtl.h (set_stack_check_libfunc): Move prototype from here...
26549         * libfuncs.h: ...to here.  Adjust for explow.c change.
26550
26551 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
26552
26553         * pretty-print.c: Don't include ggc.h.
26554         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
26555         (identifier_to_locale): Use them for allocation.
26556         * pretty-print.h (identifier_to_locale_alloc,
26557         identifier_to_locale_free): Declare.
26558         * toplev.c (alloc_for_identifier_to_locale): New.
26559         (general_init): Set identifier_to_locale_alloc and
26560         identifier_to_locale_free.
26561         * Makefile.in (pretty-print.o): Update dependencies.
26562
26563 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
26564
26565         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
26566         pointer types if they have different alignment or mode.
26567
26568 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
26569
26570         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
26571         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
26572         * config/sparc/sparc-protos.h (function_value): Remove declaration.
26573         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
26574         sparc_function_value_regno_p): New functions.
26575         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
26576         TARGET_FUNCTION_VALUE_REGNO_P): Define.
26577         (function_value): Rename to...
26578         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
26579         argument to 'outgoing'.
26580         (function_arg_record_value, function_arg_union_value,
26581         function_arg_vector_value): Update comment.
26582
26583 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
26584
26585         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
26586         (fde_needed_for_eh_p): New predicate.
26587         (output_call_frame_info): Use it throughout to decide whether FDEs
26588         are needed for EH purpose.
26589         (dwarf2out_begin_prologue): Reorder assignments.
26590
26591 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26592
26593         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
26594         special case loop->header.
26595         (is_predicated): New.
26596         (if_convertible_loop_p): Call it.
26597
26598 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26599
26600         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
26601         iterator in parameter.  Do not generate code during the analysis.
26602         (tree_if_convert_cond_stmt): Removed.
26603         (tree_if_convert_stmt): Removed.
26604         (predicate_bbs): New.
26605         (if_convertible_loop_p): Call predicate_bbs.
26606         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
26607         now contains all the analysis part.
26608
26609 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26610
26611         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
26612         statements in the analysis part.
26613         (tree_if_convert_stmt): Update comment.
26614         (remove_conditions_and_labels): New.
26615         (combine_blocks): Call remove_conditions_and_labels.
26616         (tree_if_conversion): Update comment.
26617
26618 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26619
26620         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
26621         than 2 predecessors or more than 2 successors.
26622
26623 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26624
26625         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
26626         of loops in which the data dependence analysis fails.
26627
26628 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26629
26630         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
26631         CDI_POST_DOMINATORS.
26632         (tree_if_conversion): Same.
26633
26634 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26635
26636         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
26637
26638 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26639
26640         * tree-if-conv.c: Update copyright years.  Fix comments.
26641         Fix indentation.
26642
26643 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
26644
26645         * builtin-types.def (BT_INT128): New primitive type.
26646         (BT_UINT128): Likewise.
26647         * c-common.c (c_common_r): Add __int128 keyword.
26648         (c_common_type_for_size): Handle __int128.
26649         (c_common_type_for_mode): Likewise.
26650         (c_common_signed_or_unsigned_type): Likewise.
26651         (c_common_nodes_and_builtins): Add builtin type
26652         if target supports 128-bit integer scalar.
26653         * c-common.h (enum rid): Add RID_INT128.
26654         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
26655         if target supports 128-bit integer scalar.
26656         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
26657         (finish_declspecs): Likewise.
26658         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
26659         (c_token_starts_declspecs): Likewise.
26660         (c_parser_declspecs): Likewise.
26661         (c_parser_attributes): Likewise.
26662         (c_parser_objc_selector): Likewise.
26663         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
26664         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
26665         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
26666         * tree.c (make_or_reuse_type): Likewise.
26667         (make_unsigned_type): Likewise.
26668         (build_common_tree_nodes_2): Likewise.
26669         * tree.h (enum integer_type_kind): Add itk_int128 and
26670         itk_unsigned_int128.
26671         (int128_integer_type_node): New define.
26672         (int128_unsigned_type_node): New define.
26673         * doc/extend.texi: Add documentation about __int128 type.
26674
26675 2010-05-26  Richard Guenther  <rguenther@suse.de>
26676
26677         * tree-ssa-sccvn.c (copy_nary): Adjust.
26678         (copy_phis): Rename to ...
26679         (copy_phi): ... this.  Adjust.
26680         (copy_references): Rename to ...
26681         (copy_reference): ... this.  Adjust.
26682         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
26683         result into the valid table.
26684
26685 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
26686
26687         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
26688         insn-config.h, insn-codes.h, recog.h, and optabs.h.
26689
26690 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26691
26692         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
26693
26694 2010-05-26  Richard Guenther  <rguenther@suse.de>
26695
26696         * opts.c (common_handle_option): Handle OPT_Ofast.
26697
26698 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
26699
26700         * diagnostic.c: Don't include opts.h.
26701         (permissive_error_option): Define.
26702         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
26703         for classify_diagnostic.  Don't use memset for
26704         classify_diagnostic.  Initialize new and recently added fields.
26705         (diagnostic_classify_diagnostic): Use context->n_opts instead of
26706         N_OPTS.
26707         (diagnostic_report_diagnostic): Pass context parameter to
26708         diagnostic_report_warnings_p.  Use option_enabled and option_name
26709         hooks from context.
26710         (emit_diagnostic): Use permissive_error_option.
26711         (permerror): Likewise.
26712         * diagnostic.h: Don't include options.h.
26713         (struct diagnostic_context): Add n_opts, opt_permissive,
26714         inhibit_warnings, warn_system_headers, option_enabled and
26715         option_name fields.  Change classify_diagnostic to a pointer.
26716         * opts-diagnostic.h: New file.
26717         * opts.c: Include opts-diagnostic.h.
26718         (common_handle_option): Set global_dc fields for -Wfatal-errors,
26719         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
26720         (option_name): New function.
26721         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
26722         (c_common_handle_option): Set global_dc->permissive for
26723         -fpermissive.
26724         * c-common.c (c_cpp_error): Save and restore
26725         global_dc->warn_system_headers, not variable warn_system_headers.
26726         * toplev.c: Include opts-diagnostic.h.
26727         (general_init): Update call to diagnostic_initialize.  Set
26728         global_dc->show_column, global_dc->option_enabled and
26729         global_dc->option_name.
26730         (process_options): Don't set global_dc fields here.
26731         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
26732         (diagnostic.o, opts.o, toplev.o): Update dependencies.
26733
26734 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
26735
26736         * config/picochip/picochip.md (movsi): Split a movsi from a
26737         const after reload.
26738
26739 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26740
26741         * ggc-zone.c: Update copyright year.
26742         (poison_region): Mark memory for Valgrind as undefined before
26743         memset () call and inaccessible afterwards.
26744         (ggc_pch_total_size): Change type of i to int.
26745
26746 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26747
26748         * ggc-common.c (ggc_free_overhead): Allow empty slot.
26749
26750 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26751
26752         * ggc-common.c: Update copyright year.
26753         (ggc_rlimit_bound): Remove prototype.  Compile only if
26754         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
26755         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
26756         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
26757         (ggc_min_heapsize_heuristic): Likewise.
26758
26759 2010-05-26  Richard Guenther  <rguenther@suse.de>
26760
26761         PR rtl-optimization/44164
26762         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
26763         no-common access-path disambiguation.
26764         (indirect_ref_may_alias_decl_p): Adjust.
26765         (indirect_refs_may_alias_p): Likewise.
26766         (refs_may_alias_p_1): Likewise.
26767
26768 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
26769
26770         * c-typeck.c: Do not include expr.h.
26771
26772 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
26773
26774         * rtl.h (decl_default_tls_model): Move prototype from here...
26775         * output.h: ...to here.
26776         * c-decl.c: Do not include rtl.h.
26777         * c-pragma.c: Likewise.
26778         * c-parser.c: Likewise.
26779         * c-gimplify.c: Likewise.  And also not hard-reg-set.
26780         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
26781         FIXME note for it.  Add a FIXME note for expr.h.
26782         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
26783         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
26784         defined.
26785
26786 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
26787
26788         PR target/44199
26789         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
26790         or total_size is larger than red zone size for non-V4 ABI, emit a
26791         stack_tie resp. frame_tie insn before stack pointer restore.
26792         * config/rs6000/rs6000.md (frame_tie): New insn.
26793
26794 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
26795
26796         * function.h (struct function): Add can_throw_non_call_exceptions bit.
26797         * lto-streamer-in.c (input_function): Stream it in.
26798         * lto-streamer-out.c (output_function): Stream it out.
26799         * function.c (allocate_struct_function): Set it.
26800         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
26801         for flag_non_call_exceptions.
26802         * cfgbuild.c (control_flow_insn_p): Likewise.
26803         (make_edges): Likewise.
26804         * cfgexpand.c (expand_stack_alignment): Likewise.
26805         * combine.c (distribute_notes): Likewise.
26806         * cse.c (cse_extended_basic_block): Likewise.
26807         * except.c (insn_could_throw_p): Likewise.
26808         * gcse.c (simple_mem): Likewise.
26809         * ipa-pure-const.c (check_call): Likewise.
26810         (check_stmt ): Likewise.
26811         * lower-subreg.c (lower-subreg.c): Likewise.
26812         * optabs.c (emit_libcall_block): Likewise.
26813         (prepare_cmp_insn): Likewise.
26814         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
26815         * postreload.c (rest_of_handle_postreload): Likewise.
26816         * reload1.c (reload_as_needed): Likewise.
26817         (emit_input_reload_insns): Likewise.
26818         (emit_output_reload_insns): Likewise.
26819         (fixup_abnormal_edges): Likewise.
26820         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
26821         * store-motion.c (find_moveable_store): Likewise.
26822         * tree-eh.c (stmt_could_throw_p): Likewise.
26823         (tree_could_throw_p): Likewise.
26824         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
26825         * config/arm/arm.c (arm_expand_prologue): Likewise.
26826         (thumb1_expand_prologue): Likewise.
26827         * config/rx/rx.md (cbranchsf4): Likewise.
26828         (cmpsf): Likewise.
26829         * config/s390/s390.c (s390_emit_prologue): Likewise.
26830         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
26831         (inline_forbidden_into_p): New predicate.
26832         (expand_call_inline): Use it to forbid inlining.
26833         (tree_can_inline_p): Likewise.
26834
26835 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
26836
26837         * config/i386/i386-c.c: Do not include rtl.h.
26838         * config/i386/t-i386: Update dependencies.
26839
26840 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
26841
26842         * attribs.c: Do not include rtl.h.
26843         * Makefile.in: Update dependencies.
26844
26845 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
26846
26847         * double-int.h (double_int_and): New.
26848         * combine.c (try_combine): Clean up, use double_int_* and
26849         immed_double_int_const functions.
26850
26851 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26852
26853         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
26854         stderr to /dev/null instead of grep -q.
26855         * configure: Regenerate.
26856
26857 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
26858
26859         * Makefile.in (EXCEPT_H): Fix typo.
26860
26861 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
26862
26863         * ira-build.c (update_conflict_hard_reg_costs): New.
26864         (ira_build): Call update_conflict_hard_reg_costs.
26865
26866 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
26867
26868         PR debug/41371
26869         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
26870         ENABLE_CHECKING.
26871         (intersect_loc_chains): Walk the s2var's loc_chain together
26872         with s1node chain as long as the locations are equal, don't
26873         call find_loc_in_1pdv in that case.
26874
26875         PR debug/42801
26876         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
26877         (copy_bind_expr): ... instead of here.
26878         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
26879         if the block hasn't been remapped.
26880         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
26881         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
26882
26883 2010-05-25  Richard Guenther  <rguenther@suse.de>
26884
26885         PR middle-end/44069
26886         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
26887         out-of-bounds array accesses.
26888
26889 2010-05-25  Richard Guenther  <rguenther@suse.de>
26890
26891         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
26892         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
26893         (run_gcc): Re-organize to make cleanup easier.
26894
26895 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26896
26897         * config/s390/s390.c (optimization_options): Fix and move the
26898         flag_prefetch_loop_arrays override ...
26899         (override_options): ... here.
26900
26901 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
26902
26903         * diagnostic.c: Don't include plugin.h.
26904         (diagnostic_report_diagnostic): Don't handle plugins specially
26905         here.  Pass context to internal_error callback.
26906         * diagnostic.h (struct diagnostic_context): Add context parameter
26907         to internal_error callback.
26908         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
26909         * plugin.h (struct diagnostic_context): Declare.
26910         (warn_if_plugins, plugins_internal_error_function): Declare.
26911         * toplev.c (general_init): Set global_dc->internal_error.
26912         * Makefile.in (diagnostic.o): Update dependencies.
26913
26914 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
26915
26916         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
26917         * config/rs6000/t-darwin64: New.
26918         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
26919         build crt2.
26920
26921 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
26922
26923         PR 44203
26924         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
26925         match the original (and intended) behaviour before r159557.  This
26926         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
26927         in two ways.
26928
26929 2010-05-25  Richard Guenther  <rguenther@suse.de>
26930
26931         * doc/invoke.texi: Document -Ofast.
26932         * target.h (struct gcc_target): Add handle_ofast.
26933         * target-def.h (TARGET_HANDLE_OFAST): Add.
26934         (TARGET_INITIALIZER): Adjust.
26935         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
26936         * common.opt (Ofast): Add.
26937
26938 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
26939
26940         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
26941         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
26942
26943 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
26944
26945         PR target/43610
26946         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
26947         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
26948         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
26949         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
26950
26951 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
26952
26953         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
26954         DW_OP_minus with negated offset instead of DW_OP_plus.
26955         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
26956
26957 2010-05-25  Wei Guozhi  <carrot@google.com>
26958
26959         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
26960         tst instruction and a new alternative.
26961         * config/arm/constraints.md (Pu): New constraint.
26962
26963 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
26964
26965         * function.c (assign_stack_local_1): Initialize variable
26966         to avoid warning when bootstrapping at -O3.
26967
26968 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
26969
26970         * configure.ac (all_lang_makefiles): Remove everything related to it.
26971         * configure: Regenerate.
26972         * Makefile.in: Fix reference to ada Make-lang.in.
26973         Remove support for LANG_MAKEFILES.
26974
26975 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
26976             Sandra Loosemore  <sandra@codesourcery.com>
26977
26978         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
26979         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
26980         description.  Add arm_neon_fp16_ok.
26981         (Add Options): Add arm_neon and arm_neon_fp16.
26982
26983 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
26984
26985         * diagnostic.c: Don't include flags.h.
26986         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
26987         context parameters.  Check flags in the context passed as a parameter.
26988         (diagnostic_build_prefix): Add context parameter.  Check
26989         show_column flag in context.
26990         (diagnostic_action_after_output): Check fatal_errors flag in context.
26991         (diagnostic_report_current_module): Check show_column flag in context.
26992         (default_diagnostic_starter): Update call to
26993         diagnostic_build_prefix.
26994         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
26995         (emit_diagnostic): Pass context to permissive_error_kind.
26996         (permerror): Pass context to permissive_error_kind.
26997         * diagnostic.h (struct diagnostic_context): Add show_column,
26998         pedantic_errors, permissive and fatal_errors fields.
26999         (diagnostic_build_prefix): Update prototype.
27000         * langhooks.c
27001         * toplev.c (process_options): Set flags in global_dc from
27002         flag_show_column, flag_pedantic_errors, flag_permissive,
27003         flag_fatal_errors.
27004         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
27005         to diagnostic_build_prefix.
27006         * Makefile.in (diagnostic.o): Update dependencies.
27007
27008 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
27009
27010         * config/i386/ia32intrin.h (__crc32q): Define only if
27011         __SSE4_2__ is defined.
27012
27013 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
27014
27015         PR target/44132
27016         PR middle-end/43602
27017         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
27018         DECL_VISIBILITY_SPECIFIED.
27019         (emutls_decl): Set DECL_PRESERVE_P and copy
27020         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
27021         (emutls_finalize_control_var): New callback.
27022         (emutls_finish): Finalize emutls control variables.
27023         * toplev.c (compile_file): Move the call to emutls_finish ()
27024         before varpool_assemble_pending_decls ().
27025
27026 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
27027
27028         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
27029         added to the preprocessor condition.
27030
27031 2010-05-24  Paul Brook  <paul@codesourcery.com>
27032
27033         * gengtype-lex.l: Add HARD_REG_SET.
27034         * expr.c (expand_expr_real_1): Record writes to hard registers.
27035         * function.c (rtl_data): Add asm_clobbers.
27036         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
27037         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
27038         Use crtl->asm_clobbers.
27039
27040 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27041
27042         * doc/makefile.texi (Makefile): Mention stages 'profile'
27043         and 'feedback' for profiledbootstrap.
27044
27045 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
27046
27047         PR target/44245
27048         * config/i386/i386.c (def_builtin): Properly check
27049         OPTION_MASK_ISA_64BIT.
27050
27051 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
27052
27053         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
27054         typedefs with different but compatible types.  Allow duplicate
27055         typedefs with the same type except for pedantic non-C1X, but give
27056         warning for variably modified types.
27057         * c-typeck.c (tagged_types_tu_compatible_p,
27058         function_types_compatible_p, type_lists_compatible_p,
27059         comptypes_internal): Add parameter different_types_p; set
27060         *different_types_p for different but compatible types.  All
27061         callers changed.
27062         (comptypes_check_different_types): New.
27063         * c-tree.h (comptypes_check_different_types): Declare.
27064
27065 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
27066
27067         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
27068         * jump.c: Include basic-block.h.
27069         * profile.c: Likewise.
27070         * tree-profile.c: Likewise.
27071         * coverage.c: Likewise.
27072         * basic-block.h (optimize_function_for_size_p): Move to function.h.
27073         (optimize_function_for_speed_p): Likewise.
27074         * function.h (optimize_function_for_size_p,
27075         optimize_function_for_speed_p): Moved here from basic-block.h.
27076         * Makefile.in: Update dependencies.
27077
27078 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27079
27080         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
27081         before calling make; allow override through $MAKE.
27082         * doc/invoke.texi (Optimize Options): Document override.
27083
27084 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
27085
27086         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
27087         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27088         (rs6000_mode_dependent_address_ptr): Make static.
27089         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27090         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
27091         Remove.
27092
27093 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
27094
27095         PR target/43869
27096         * config/i386/i386.c: Make sure that the correct regparm is passed.
27097
27098 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
27099
27100         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
27101         * sbitmap.c: ...to here to internalize sbitmap element access.
27102         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
27103         Explain why basic-block.h is included.
27104         * function.h: Include tm.h for CUMULATIVE_ARGS.
27105         * Makefile.in: Update dependencies.
27106
27107 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
27108
27109         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
27110         New core types.
27111         * sbitmap.h (struct sbitmap_def): Do not typedef here.
27112         * sbitmap.c: Include sbitmap.h.
27113         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
27114         hard-reg-set.h.  Split everything related to regsets out from here...
27115         * regset.h: ...to here.  New file.
27116         * df.h: Include regset.h and sbitmap.h.
27117         * tree-flow.h: Likewise.
27118         * cfgloop.h: Likewise.
27119         * except.h: Do not include sbitmap.h.  Include hashtab.h.
27120         * cgraph.h: Include vec.h and function.h.
27121         * reload.h (struct insn_chain): Change types of live_throughout
27122         and dead_or_set from regset_head to bitmap_head.
27123         (compute_use_by_pseudos): Be defined also if regset.h is not included.
27124         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
27125         spilled_regs from regset_head to bitmap_head to avoid dependency
27126         in regset.h.
27127         * sel-sched-ir.h: Include regset.h.
27128         * reload.c: Include df.h before reload.h.
27129         * caller-save.c: Likewise.
27130         * reload1.c: Likewise.
27131         * ira.c: Likewise.
27132         (mark_elimination): Update type of r to bitmap, consistent with
27133         DF_LR_IN.
27134         * dominance.c: Include bitmap.h.
27135         * modulo-sched.c: Include df.h.
27136         * cfganal.c: Include bitmap.h and sbitmap.h.
27137         * cfgbuild.c: Include sbitmap.h.
27138         * lcm.c: Include sbitmap.h.
27139         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
27140         * domwalk.c: Include sbitmap.h, exclude ggc.h.
27141         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
27142         * cselib.c: Include bitmap.h.
27143         * tree-optimize.c: Include regset.h.
27144         * stmt.c: Include bitmap.h.
27145         * Makefile.in: Update dependencies.
27146
27147 2010-05-22  Jan Hubicka  <jh@suse.cz>
27148
27149         * cgraph.h (struct varpool_node): Add same_comdat_group.
27150         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
27151         pointer.
27152         (output_varpool): Update call of lto_output_varpool_node.
27153         (input_varpool): Read same_comdat_group pointer.
27154         (input_varpool_1): Fixup same_comdat_group pointer.
27155         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
27156         group is needed, all are.
27157         * varpool.c (varpool_remove_node): Remove node from same comdat group
27158         linklist too.
27159         (varpool_analyze_pending_decls): Walk same comdat groups.
27160
27161 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
27162
27163         * rtl.h (union rtunion_def): Remove rt_bit member.
27164         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
27165         * print-rtl (print_rtx): Do not print the member.
27166         * gengtype.c (adjust_field_rtx_def): Do not handle it.
27167         * gengenrtl.c (type_from_format): Likewise.
27168         (accessor_from_format): Likewise.
27169
27170 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
27171
27172         * dbgcnt.c: Include toplev.h instead of errors.h.
27173         * ira-emit.c: Don't include errors.h.
27174         * ira.c: Include toplev.h instead of errors.h.
27175         * lto-compress.c: Include toplev.h instead of errors.h.
27176         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
27177         ira.o, dbgcnt.o): Update dependencies.
27178
27179 2010-05-22  Richard Guenther  <rguenther@suse.de>
27180
27181         * gimple.c (gimple_types_compatible_p): Check type qualifications
27182         before merging pointer to complete and pointer to incomplete type.
27183         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
27184         we use our own resolution algorithm.  The gold linker plugin
27185         doesn't do the job we want it to do here.
27186
27187 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
27188
27189         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27190         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27191         (sparc_mode_dependent_address_p): New function.
27192
27193 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
27194
27195         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
27196
27197         * timevar.c: Do not include any core headers.
27198         (timevar_print): De-i18n-ize.
27199         (print_time): Likewise.
27200         * timevar.h (timevar_push, timevar_pop): Make inline functions.
27201
27202 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
27203
27204         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
27205         langhooks-def.h.
27206         (diagnostic_initialize): Initialize x_data not last_function.
27207         (diagnostic_report_current_function): Move to tree-diagnostic.c.
27208         (default_diagnostic_starter): Call
27209         diagnostic_report_current_module not
27210         diagnostic_report_current_function.
27211         (diagnostic_report_diagnostic): Initialize x_data not
27212         abstract_origin.
27213         (verbatim): Likewise.
27214         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
27215         x_data.
27216         (struct diagnostic_context): Change last_function to x_data.
27217         (diagnostic_auxiliary_data): Replace with
27218         diagnostic_context_auxiliary_data and
27219         diagnostic_info_auxiliary_data.
27220         (diagnostic_last_function_changed, diagnostic_set_last_function,
27221         diagnostic_report_current_function): Move to tree-diagnostic.h.
27222         (print_declaration, dump_generic_node, print_generic_stmt,
27223         print_generic_stmt_indented, print_generic_expr,
27224         print_generic_decl, debug_c_tree, dump_omp_clauses,
27225         print_call_name, debug_generic_expr, debug_generic_stmt,
27226         debug_tree_chain, default_tree_printer): Move to
27227         tree-pretty-print.h.
27228         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
27229         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
27230         gimple-pretty-print.h.
27231         * pretty-print.c: Don't include tree.h
27232         (pp_base_format): Don't handle %K here.
27233         (pp_base_tree_identifier): Move to tree-pretty-print.c.
27234         * pretty-print.h (text_info): Change abstract_origin to x_data.
27235         (pp_tree_identifier, pp_unsupported_tree,
27236         pp_base_tree_identifier): Move to tree-pretty-print.h.
27237         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
27238         tree-pretty-print.h: New files.
27239         * tree-pretty-print.c: Include tree-pretty-print.h.
27240         (percent_K_format): New.  Moved from pretty-print.c.
27241         (pp_base_tree_identifier): Move from pretty-print.c.
27242         * c-objc-common.c: Include tree-pretty-print.h.
27243         (c_tree_printer): Handle %K here.
27244         * langhooks.c: Include tree-diagnostic.h.
27245         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
27246         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
27247         (default_tree_printer): Handle %K using percent_K_format.
27248         (general_init): Use default_tree_diagnostic_starter.
27249         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
27250         (free_lang_data): Use default_tree_diagnostic_starter.
27251         * c-pretty-print.c: Include tree-pretty-print.h.
27252         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27253         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27254         * dwarf2out.c: Include tree-pretty-print.h.
27255         * except.c: Include tree-pretty-print.h.
27256         * gimple-pretty-print.c: Include tree-pretty-print.h and
27257         gimple-pretty-print.h.
27258         * gimplify.c: Include tree-pretty-print.h.
27259         * graphite-poly.c: Include tree-pretty-print.h and
27260         gimple-pretty-print.h.
27261         * ipa-cp.c: Include tree-pretty-print.h.
27262         * ipa-inline.c: Include gimple-pretty-print.h.
27263         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27264         * ipa-pure-const.c: Include gimple-pretty-print.h.
27265         * ipa-struct-reorg.c: Include tree-pretty-print.h and
27266         gimple-pretty-print.h.
27267         * ipa-type-escape.c: Include tree-pretty-print.h.
27268         * print-rtl.c: Include tree-pretty-print.h.
27269         * print-tree.c: Include gimple-pretty-print.h.
27270         * sese.c: Include tree-pretty-print.h.
27271         * tree-affine.c: Include tree-pretty-print.h.
27272         * tree-browser.c: Include tree-pretty-print.h.
27273         * tree-call-cdce.c: Include gimple-pretty-print.h.
27274         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27275         * tree-chrec.c: Include tree-pretty-print.h.
27276         * tree-data-ref.c: Include tree-pretty-print.h and
27277         gimple-pretty-print.h.
27278         * tree-dfa.c: Include tree-pretty-print.h.
27279         * tree-if-conv.c: Include tree-pretty-print.h and
27280         gimple-pretty-print.h.
27281         * tree-inline.c: Include tree-pretty-print.h.
27282         * tree-into-ssa.c: Include tree-pretty-print.h and
27283         gimple-pretty-print.h.
27284         * tree-nrv.c: Include tree-pretty-print.h.
27285         * tree-object-size.c: Include tree-pretty-print.h and
27286         gimple-pretty-print.h.
27287         * tree-outof-ssa.c: Include tree-pretty-print.h and
27288         gimple-pretty-print.h.
27289         * tree-parloops.c: Include tree-pretty-print.h and
27290         gimple-pretty-print.h.
27291         * tree-predcom.c: Include tree-pretty-print.h and
27292         gimple-pretty-print.h.
27293         * tree-scalar-evolution.c: Include tree-pretty-print.h and
27294         gimple-pretty-print.h.
27295         * tree-sra.c: Include tree-pretty-print.h.
27296         * tree-ssa-address.c: Include tree-pretty-print.h.
27297         * tree-ssa-alias.c: Include tree-pretty-print.h.
27298         * tree-ssa-ccp.c: Include tree-pretty-print.h and
27299         gimple-pretty-print.h.
27300         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
27301         * tree-ssa-copy.c: Include tree-pretty-print.h and
27302         gimple-pretty-print.h.
27303         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
27304         * tree-ssa-dce.c: Include tree-pretty-print.h and
27305         gimple-pretty-print.h.
27306         * tree-ssa-dom.c: Include tree-pretty-print.h and
27307         gimple-pretty-print.h.
27308         * tree-ssa-dse.c: Include gimple-pretty-print.h.
27309         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
27310         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
27311         * tree-ssa-live.c: Include tree-pretty-print.h and
27312         gimple-pretty-print.h.
27313         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
27314         gimple-pretty-print.h.
27315         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
27316         gimple-pretty-print.h.
27317         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
27318         gimple-pretty-print.h.
27319         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
27320         gimple-pretty-print.h.
27321         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
27322         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
27323         * tree-ssa-operands.c: Include tree-pretty-print.h and
27324         gimple-pretty-print.h.
27325         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
27326         gimple-pretty-print.h.
27327         * tree-ssa-pre.c: Include tree-pretty-print.h and
27328         gimple-pretty-print.h.
27329         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
27330         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
27331         gimple-pretty-print.h.
27332         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
27333         gimple-pretty-print.h.
27334         * tree-ssa-sink.c: Include gimple-pretty-print.h.
27335         * tree-ssa-ter.c: Include tree-pretty-print.h and
27336         gimple-pretty-print.h.
27337         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
27338         * tree-ssa.c: Include tree-pretty-print.h and
27339         gimple-pretty-print.h.
27340         * tree-stdarg.c: Include gimple-pretty-print.h.
27341         * tree-switch-conversion.c: Include gimple-pretty-print.h.
27342         * tree-tailcall.c: Include tree-pretty-print.h and
27343         gimple-pretty-print.h.
27344         * tree-vect-data-refs.c: Include tree-pretty-print.h and
27345         gimple-pretty-print.h.
27346         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
27347         gimple-pretty-print.h.
27348         * tree-vect-loop.c: Include tree-pretty-print.h and
27349         gimple-pretty-print.h.
27350         * tree-vect-patterns.c: Include gimple-pretty-print.h.
27351         * tree-vect-slp.c: Include tree-pretty-print.h and
27352         gimple-pretty-print.h.
27353         * tree-vect-stmts.c: Include tree-pretty-print.h and
27354         gimple-pretty-print.h.
27355         * tree-vectorizer.c: Include tree-pretty-print.h.
27356         * tree-vrp.c: Include tree-pretty-print.h and
27357         gimple-pretty-print.h.
27358         * value-prof.c: Include tree-pretty-print.h and
27359         gimple-pretty-print.h.
27360         * var-tracking.c: Include tree-pretty-print.h.
27361         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
27362         (tree-diagnostic.o): New dependencies.
27363         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
27364         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
27365         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
27366         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
27367         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
27368         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
27369         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
27370         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
27371         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
27372         tree-ssa-address.o, tree-ssa-loop-niter.o,
27373         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
27374         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
27375         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
27376         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
27377         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
27378         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
27379         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
27380         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
27381         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
27382         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
27383         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
27384         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
27385         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
27386         tree-switch-conversion.o, var-tracking.o, value-prof.o,
27387         cfgexpand.o, pretty-print.o): Update dependencies.
27388
27389 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
27390
27391         * tree-ssa-structalias.c: Remove tm_p.h from include.
27392
27393 2010-05-21  Jeff Law  <law@redhat.com>
27394
27395         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
27396
27397 2010-05-21  Jason Merrill  <jason@redhat.com>
27398
27399         * tree-eh.c (cleanup_is_dead_in): New.
27400         (lower_try_finally): Don't generate a dead cleanup region.
27401         (lower_cleanup): Likewise.
27402
27403 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
27404
27405         PR debug/44223
27406         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
27407         unchain each use from the cyclic next_regno_use chain first.
27408
27409 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
27410
27411         * real: Do not include gmp.h, mpfr.h, and mpc.h.
27412         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
27413         (real_value_negate, real_value_abs): New prototypes.
27414         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
27415         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
27416         new include file for interface between MPFR and REAL_VALUE_TYPE.
27417         * real.c: Include realmpfr.h.
27418         (real_arithmetic2): Remove legacy function.
27419         (real_value_negate): New.
27420         (real_value_abs): New.
27421         (mfpr_from_real, real_from_mpfr): Move from here...
27422         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
27423         * builtins.c: Include realmpfr.h.
27424         * fold-const.c: Include realmpfr.h.
27425         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
27426         (fold_negate_const): Likewise.
27427         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
27428         * toplev.c: Include realmpfr.h.
27429         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
27430         and real_value_negate.
27431         * fixed-value.c (check_real_for_fixed_mode): Likewise.
27432         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
27433         (vfp3_const_double_index): Likewise.
27434         (arm_print_operand): Likewise.
27435         * Makefile.in: Update dependencies.
27436
27437 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27438
27439         * config/s390/s390.c (override_options): Increase the default
27440         of max-completely-peel-times.
27441
27442 2010-05-21  Julian Brown  <julian@codesourcery.com>
27443             Mark Mitchell  <mark@codesourcery.com>
27444
27445         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
27446         sibling calls for Thumb-1.
27447         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
27448         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
27449         Thumb-2.
27450         (*call_insn, *call_value_insn): Don't use for Thumb-2.
27451         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
27452         for Thumb-2.
27453         (return): New expander.
27454         (*arm_return): New name for ARM return insn.
27455         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
27456
27457 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
27458
27459         * config.gcc (sparc64-*-rtems*): New target.
27460
27461 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
27462
27463         * tree.c (build_function_decl_skip_args): Fix grammar.
27464         (build_function_type_list_1): Fix typos, adjust formatting.
27465
27466 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
27467
27468         * tree.h: Include real.h and fixed-value.h as basic datatypes.
27469         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
27470         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
27471         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
27472         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
27473         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
27474         tree-pretty-print.c, tree-loop-distribution.c,
27475         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
27476         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
27477         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
27478         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
27479         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
27480         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
27481         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
27482         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
27483         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
27484         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
27485         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
27486         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
27487         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
27488         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
27489         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
27490         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
27491         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
27492         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
27493         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
27494         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
27495         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
27496         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
27497         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
27498         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
27499         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
27500         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
27501         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
27502         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
27503         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
27504         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
27505         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
27506         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
27507         config/score/score7.c, config/score/score.c, config/arm/arm.c,
27508         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
27509         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
27510         config/bfin/bfin.c: Clean up redundant includes.
27511         * Makefile.in: Update accordingly.
27512
27513 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
27514
27515         PR middle-end/44204
27516         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
27517         statement has no arguments.
27518
27519 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
27520
27521         PR/44139
27522         * varasm.c (emutls_decl): Merge attributes to new decl.
27523
27524 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
27525
27526         PR middle-end/44101
27527         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
27528         around the uniquized constructor if its type requires a conversion.
27529
27530 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
27531
27532         PR debug/44205
27533         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
27534         at -O0 goto_locus of any of the incoming edges differs from
27535         goto_locus of outgoing edge, or gimple_location of any of the
27536         labels differs.
27537
27538 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
27539
27540         * ira.c (ira_non_ordered_class_hard_regs): Define.
27541         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
27542         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
27543         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
27544         cost of unaligned hard regs when allocating multi-reg pseudos.
27545
27546 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
27547
27548         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
27549         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
27550         for TARGET_NO_FLOAT.
27551         * config/mips/mips.c (mips_file_start): Expand conditional expression
27552         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
27553         (mips_override_options): Move -mno-float override -msoft-float and
27554         -mhard-float.
27555         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
27556         Condition(TARGET_SUPPORTS_NO_FLOAT).
27557         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
27558         __mips_no_float here.
27559         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
27560         (TARGET_SUPPORTS_NO_FLOAT): Define.
27561         * config/mips/sdemtk.opt: Delete.
27562
27563 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
27564
27565         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
27566
27567 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
27568
27569         PR target/43733
27570         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
27571         * configure: Regenerate.
27572         * config.in: Regenerate.
27573         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
27574         instead of sahf only for 64bit targets.
27575
27576 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
27577
27578         PR debug/44178
27579         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
27580         setup_ref_regs for DEBUG_INSNs.
27581
27582 2010-05-20  Jan Hubicka  <jh@suse.cz>
27583
27584         PR middle-end/44197
27585         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
27586
27587 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
27588
27589         PR bootstrap/43870
27590         * df-scan.c (df_ref_compare): Stabilize sort.
27591
27592 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
27593
27594         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
27595         argument.  Don't use DW_OP_piece if offset is non-zero,
27596         put offset into second DW_OP_bit_piece argument.
27597         (dw_sra_loc_expr): Adjust callers.  For memory expressions
27598         compute offset.
27599
27600 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
27601
27602         PR target/44202
27603         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
27604         settings for 16-bit-constant "addo" alternative.
27605
27606 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
27607
27608         * config/mips/mips-dsp.md (add<DSPV:mode>3,
27609         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
27610
27611         PR target/43764
27612         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
27613         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
27614         Use it.
27615
27616 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
27617
27618         * diagnostic.c (FLOAT, FFS): Don't undefine.
27619         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
27620         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
27621         include ordering.
27622
27623 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
27624
27625         * combine.c (propagate_for_debug): Call make_compound_operation
27626         on the source value.
27627         (try_combine): When implementing a split chosen by find_split_point,
27628         either copy i2src or set it to null.  Assert that i2src is not null
27629         before substituting into CALL_INSN_FUNCTION_USAGE.
27630
27631 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
27632
27633         * double-int.h (double_int_ior): New function.
27634         * tree.h (build_int_cst_wide_type): Remove.
27635         * tree.c (build_int_cst_wide_type): Remove.
27636         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
27637         of build_int_cst_wide_type.
27638         * stor-layout.c (set_sizetype): (Ditto.).
27639         * dojump.c (do_jump): Use build_int_cstu instead of
27640         build_int_cst_wide_type.
27641
27642 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
27643
27644         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
27645         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
27646         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
27647         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
27648         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
27649         propagate the 'data' argument to copy_tree_r.
27650         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
27651         Propagate 'data' argument to walk_tree.
27652         (copy_if_shared): New function.
27653         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
27654         (unmark_visited): New function.
27655         (unshare_body): Call copy_if_shared instead of doing it manually.
27656         (unvisit_body): Call unmark_visited instead of doing it manually.
27657
27658 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
27659
27660         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
27661         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
27662         * hooks.c: Likewise.
27663         * target-def.h (TARGET_FOLD_BUILTIN): Define to
27664         hook_tree_tree_int_treep_bool_null.
27665         * target.h (struct gcc_target): Update signature of fold_builtin
27666         field.
27667         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
27668         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
27669         instead of the call expression.
27670         (fold_builtin_call_array): Pass n and argarray directly.
27671         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
27672         consing a list.
27673         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
27674         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
27675         `i' and use it in place of `arity'.
27676         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
27677         Dereference `args' directly.
27678         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
27679
27680 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27681
27682         * doc/sourcebuild.texi (Effective-Target Keywords): Document
27683         3dnow, sse3, sse2.
27684         (Directives): Document optional dg-require-effective-target
27685         selector.
27686
27687 2010-05-19  Richard Guenther  <rguenther@suse.de>
27688
27689         PR lto/44196
27690         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
27691
27692 2010-05-19  Richard Guenther  <rguenther@suse.de>
27693
27694         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
27695         * common.opt (fwhopr=): New.
27696         * opts.c (common_handle_option): Handle OPT_fwhopr.
27697         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
27698         * collect2.c (main): Match -fwhopr*.
27699         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
27700         Execute ltrans stage in parallel when jobs is bigger than 1.
27701
27702 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27703
27704         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
27705         pentiumpro on Solaris 8/x86 with Sun as.
27706         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
27707         hidden alias bug.
27708         (gcc_cv_as_ix86_quad): Check for .quad directive.
27709         * configure: Regenerate.
27710         * config.in: Regenerate.
27711         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
27712
27713 2010-05-19  Martin Jambor  <mjambor@suse.cz>
27714
27715         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
27716         also for indirect edges.  Actual printing moved...
27717         (ipa_print_node_jump_functions_for_edge): ...here.
27718         (ipa_compute_jump_functions): Renamed to
27719         ipa_compute_jump_functions_for_edge and made static.
27720         (ipa_compute_jump_functions): New function.
27721         (make_edge_direct_to_target): Check if the number of arguments on
27722         the newly direct edge is the same as the number of parametrs of
27723         the callee.
27724         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
27725         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
27726         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
27727         analysis functions unconditionally, call the new
27728         ipa_analyze_params_uses on the node instead of every edge.
27729
27730 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
27731
27732         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
27733         to tree.
27734         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
27735         also checks for a constant int vs.  non-constant but
27736         loop-invariant steps.
27737         (find_or_create_group): Change the sort algorithm to only consider
27738         steps that are constant ints.
27739         (idx_analyze_ref): Adopt code to handle a tree instead of a
27740         HOST_WIDE_INT for step.
27741         (gather_memory_references_ref): Handle tree instead of int and be
27742         prepared to see a NULL_TREE.
27743         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
27744         prefetches if the step cannot be calculated at compile time.
27745         (issue_prefetch_ref): Issue prefetches for non-constant but
27746         loop-invariant steps.
27747
27748 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
27749
27750         Revert:
27751         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
27752
27753         * tree.h (build_call_list): Remove.
27754         * tree.c (build_call_list): Remove.
27755
27756 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
27757
27758         * tree.h (build_call_list): Remove.
27759         * tree.c (build_call_list): Remove.
27760
27761 2010-05-18  Jan Hubicka  <jh@suse.cz>
27762
27763         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
27764
27765 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
27766
27767         PR rtl-optimization/43332
27768         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
27769
27770 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
27771
27772         * tree.h (build_int_cstu): Implement as static inline.
27773         * tree.c (build_int_cstu): Remove function.
27774         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
27775         sign extended.
27776
27777 2010-05-18  Richard Guenther  <rguenther@suse.de>
27778
27779         PR lto/44143
27780         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
27781         (debug): Initialize from -save-temps.
27782         (collect_execute): Print command-line when verbose.
27783         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
27784         for ltrans invocation.  Produce -dumpbase flag again.
27785         (process_args): Remove.
27786         (main): Simplify.
27787         * collect2.c (maybe_run_lto_and_relink): Only pass object
27788         files to lto-wrapper.
27789         * gcc.c (LINK_COMMAND_SPEC): Likewise.
27790
27791 2010-05-18  Jan Hubicka  <jh@suse.cz>
27792
27793         * opts.c (decode_options): Do not disable whopr at ipa_cp.
27794         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
27795
27796 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
27797
27798         PR lto/44184
27799         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
27800         in a GIMPLE_ASM.
27801         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
27802         in a GIMPLE_ASM.
27803
27804 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
27805
27806         PR debug/41371
27807         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
27808         rtx_equal_p inline.
27809
27810 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
27811
27812         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
27813         lto-macho as lto_binary_reader.
27814
27815         * darwin.c (darwin_asm_named_section): Do not add assembler comment
27816         after .section directive; just print it before the directive instead.
27817
27818 2010-05-17  Jan Hubicka  <jh@suse.cz>
27819
27820         * cgraph.c (cgraph_create_virtual_clone): Only check
27821         versionable_function_p when not in wpa and checking is enabled.
27822         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
27823         there are no more functions to materialize.
27824
27825 2010-05-17  Jan Hubicka  <jh@suse.cz>
27826
27827         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
27828         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
27829         New functions.
27830         (output_cgraph): Call output_cgraph_opt_summary.
27831         (input_cgrpah): Call input_cgraph_opt_summary.
27832         (output_cgraph_opt_summary_p, output_node_opt_summary,
27833         input_node_opt_summary, input_cgraph_opt_section): New functions.
27834         * lto-section-in.c (lto_section_name): Add cgraphopt.
27835         * tree-inline.c (tree_function_versioning): Handle parm_num.
27836         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
27837         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
27838
27839 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
27840
27841         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
27842         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
27843         the insn to prefetch ratio heuristic to loops with known trip count.
27844
27845 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
27846
27847         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
27848         (schedule_prefetches): Do not generate a prefetch if the unroll factor
27849         is far from what is required by the prefetch.
27850
27851 2010-05-17  Jan Hubicka  <jh@suse.cz>
27852
27853         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
27854         (ipcp_estimate_growth): Likewise.
27855         (ipcp_const_param_count): Likewise.
27856         (ipcp_insert_stage): Likewise.
27857         * ipa-prop.c (visit_load_for_mod_analysis): New function.
27858         (visit_store_addr_for_mod_analysis): Set used flag.
27859         (ipa_detect_param_modifications): Set used flag for SSE params;
27860         update use of walk_stmt_load_store_addr_ops.
27861         (ipa_print_node_params): Print used flag.
27862         (ipa_write_node_info): Stream used flag.
27863         (ipa_read_node_info): Likewise.
27864         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
27865         (ipa_is_param_used): New function.
27866         (lto_ipa_fixup_call_notes): Remove unused declaration.
27867
27868 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27869
27870         PR target/44074
27871         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
27872         * configure: Regenerate.
27873         * config.in: Regenerate.
27874         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
27875         !HAVE_AS_IX86_REP_LOCK_PREFIX.
27876         Don't emit whitespace.
27877         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
27878         (*rep_movsi): Likewise.
27879         (*rep_movsi_rex64): Likewise.
27880         (*rep_movqi): Likewise.
27881         (*rep_movqi_rex64): Likewise.
27882         (*rep_stosdi_rex64): Likewise.
27883         (*rep_stossi): Likewise.
27884         (*rep_stossi_rex64): Likewise.
27885         (*rep_stosqi): Likewise.
27886         (*rep_stosqi_rex64): Likewise.
27887         (*cmpstrnqi_nz_1): Use {%;} after repz.
27888         (*cmpstrnqi_nz_rex_1): Likewise.
27889         (*cmpstrnqi_1): Likewise.
27890         (*cmpstrnqi_rex_1): Likewise.
27891         (*strlenqi_1): Use {%;} after repnz.
27892         (*strlenqi_rex_1): Likewise.
27893         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
27894         (*sync_compare_and_swap<mode>): Likewise.
27895         (sync_double_compare_and_swap<mode>): Likewise.
27896         (*sync_double_compare_and_swapdi_pic): Likewise.
27897         (sync_old_add<mode>): Likewise.
27898         (sync_add<mode>): Likewise.
27899         (sync_sub<mode>): Likewise.
27900         (sync_<code><mode>): Likewise.
27901
27902 2010-05-17  Martin Jambor  <mjambor@suse.cz>
27903
27904         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
27905         otr_token and polymorphic.
27906         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
27907         (cgraph_clone_edge): Copy the above fields.
27908         * tree.c (get_binfo_at_offset): New function.
27909         * tree.h (get_binfo_at_offset): Declare.
27910         * ipa-prop.h (enum jump_func_type): Added known_type jump function
27911         type, reordered items, updated comments.
27912         (union jump_func_value): Added base_type field, reordered fields.
27913         (enum ipa_lattice_type): Moved down in the file.
27914         (struct ipa_param_descriptor): New field polymorphic.
27915         (ipa_is_param_polymorphic): New function.
27916         * ipa-prop.c: Include gimple.h and gimple-fold.h.
27917         (ipa_print_node_jump_functions): Print known type jump functions.
27918         (compute_complex_pass_through): Renamed to...
27919         (compute_complex_assign_jump_func): this.
27920         (compute_complex_ancestor_jump_func): New function.
27921         (compute_known_type_jump_func): Likewise.
27922         (compute_scalar_jump_functions): Create known type and complex ancestor
27923         jump functions.
27924         (ipa_note_param_call): New parameter polymorphic, set the corresponding
27925         flag in the call note accordingly.
27926         (ipa_analyze_call_uses): Renamed to...
27927         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
27928         variable var only in the block where it is used.
27929         (ipa_analyze_virtual_call_uses): New function.
27930         (ipa_analyze_call_uses): Likewise.
27931         (combine_known_type_and_ancestor_jfs): Likewise.
27932         (update_jump_functions_after_inlining): Implemented handling of a
27933         number of new jump function types combination.
27934         (print_edge_addition_message): Removed.
27935         (make_edge_direct_to_target): New function.
27936         (try_make_edge_direct_simple_call): Likewise.
27937         (try_make_edge_direct_virtual_call): Likewise.
27938         (update_call_notes_after_inlining): Renamed to...
27939         (update_indirect_edges_after_inlining): this.  Moved edge creation for
27940         indirect calls to try_make_edge_direct_simple_call, also calls
27941         try_make_edge_direct_virtual_call for virtual calls.
27942         (ipa_print_node_params): Changed the header message.
27943         (ipa_write_jump_function): Stream also known type jump functions.
27944         (ipa_read_jump_function): Likewise.
27945         (ipa_write_indirect_edge_info): Stream new fields in
27946         cgraph_indirect_call_info.
27947         (ipa_read_indirect_edge_info): Likewise.
27948         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
27949         GIMPLE_FOLD_H.
27950
27951 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27952
27953         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
27954
27955 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
27956
27957         * tree.h (CALL_EXPR_ARGS): Delete.
27958         (call_expr_arglist): Delete.
27959         * tree.c (call_expr_arglist): Delete.
27960         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
27961         targetm.fold_builtin.
27962         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
27963         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
27964         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
27965         arglist parameter.  Use CALL_EXPR_ARG.
27966         (picochip_expand_builtin_3op): Likewise.
27967         (picochip_expand_builtin_2opvoid): Likewise.
27968         (picochip_expand_array_get): Likewise.
27969         (picochip_expand_array_put): Likewise.
27970         (picochip_expand_array_testport): Likewise.
27971         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
27972         rather than arglist.
27973         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
27974         CALL_EXPR_ARGS.
27975         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
27976         than TREE_VALUE and TREE_CHAIN.
27977         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
27978         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
27979         the arglist.
27980
27981 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
27982
27983         PR bootstrap/42347
27984         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
27985         to have no fallthru edge.
27986
27987         PR middle-end/44102
27988         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
27989         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
27990         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
27991         add BARRIER after previous bb if needed.
27992
27993 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
27994
27995         * tree.c (build_function_type_list_1): Remove bogus assert condition.
27996
27997 2010-05-17  Alan Modra  <amodra@gmail.com>
27998
27999         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
28000         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
28001         with copy_reg rtx param.
28002         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
28003         Correct cases where code for ABI_V4 did not initialise the reg
28004         used to access frame.  Also leave frame_reg_rtx as sp for large
28005         frames that save no regs.
28006
28007 2010-05-17  Martin Jambor  <mjambor@suse.cz>
28008
28009         PR middle-end/44133
28010         * tree-sra.c (create_access_replacement): New parameter rename, mark
28011         the replaement for renaming only when it is true.
28012         (get_access_replacement): Pass true in the rename parameter of
28013         create_access_replacement.
28014         (get_unrenamed_access_replacement): New function.
28015         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
28016         replacement declaration from it.
28017
28018 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
28019
28020         * function.c (try_fit_stack_local, add_frame_space): New static
28021         functions.
28022         (assign_stack_local_1): Use them.  Look for opportunities to use
28023         space previously wasted on alignment.
28024         * function.h (struct frame_space): New.
28025         (struct rtl_data): Add FRAME_SPACE_LIST member.
28026         * reload1.c (something_was_spilled): New static variable.
28027         (alter_reg): Set it.
28028         (reload): Test it in addition to testing if the frame size changed.
28029
28030 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
28031
28032         * config/s390/s390.c: Define sane prefetch settings and activate
28033         flag_prefetch_loop_arrays on -O3.
28034         * config/s390/s390.h: Declare that read can use write prefetch.
28035
28036 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
28037
28038         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
28039         build.
28040
28041 2010-05-16  Jan Hubicka  <jh@suse.cz>
28042
28043         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
28044         function body; do not check stdarg field of struct function.
28045
28046 2010-05-16  Jan Hubicka  <jh@suse.cz>
28047
28048         * cgraph.c (dump_cgraph_node): Dump versionable flag.
28049         * cgraph.h (cgraph_local_info): Add versionable flag.
28050         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
28051         (ipcp_versionable_function_p): Use it.
28052         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
28053         versionable flag.
28054
28055 2010-05-16  Jan Hubicka  <jh@suse.cz>
28056
28057         * cgraph.c (cgraph_clone_node): Take decl argument and insert
28058         clone into hash when it is different from orig.
28059         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
28060         * cgraph.h (cgraph_clone_node): Update prototype.
28061         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
28062         (lto_cgraph_encoder_delete): Delete body map.
28063         (lto_cgraph_encoder_size): Move to header.
28064         (lto_cgraph_encoder_encode_body_p,
28065         lto_set_cgraph_encoder_encode_body): New.
28066         (lto_output_node): Do not take written_decls argument; output clone_of
28067         pointer.
28068         (add_node_to): Add include_body_argument; call
28069         lto_set_cgraph_encoder_encode_body on master of the clone.
28070         (add_references): Update use of add_node_to.
28071         (compute_ltrans_boundary): Likewise.
28072         (output_cgraph): Do not create written_decls bitmap.
28073         (input_node): Take nodes argument; stream in clone_of correctly.
28074         (input_cgraph_1): Update use of input_node.
28075         * lto-streamer-out.c (lto_output): Use encoder info to decide
28076         what bodies to output.
28077         * ipa-inline.c (cgraph_clone_inlined_nodes,
28078         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
28079         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
28080         (lto_cgraph_encoder_size): Define here.
28081         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
28082         Declare.
28083
28084 2010-05-16  Richard Guenther  <rguenther@suse.de>
28085
28086         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
28087         -fipa-type-escape.
28088         * ipa-type-escape.c (gate_type_escape_vars): Run when
28089         -fipa-struct-reorg runs.
28090         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
28091         * common.opt (fipa-type-escape): Remove.
28092
28093 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
28094
28095         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
28096         (decode_options): Likewise.
28097         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
28098
28099 2010-05-16  Jan Hubicka  <jh@suse.cz>
28100
28101         * ipa.c (function_and_variable_visibility): Also bring local all
28102         aliases.
28103
28104 2010-05-16  Richard Guenther  <rguenther@suse.de>
28105
28106         * alias.c (nonoverlapping_memrefs_p): Remove use of
28107         IPA type-escape information.
28108
28109 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
28110
28111         * c-common.c (c_common_reswords): Add _Static_assert for C.
28112         * c-parser.c (c_token_starts_declaration,
28113         c_parser_next_token_starts_declaration,
28114         c_parser_static_assert_declaration_no_semi,
28115         c_parser_static_assert_declaration): New.
28116         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
28117         Handle static assertions if static_assert_ok.
28118         (c_parser_external_declaration, c_parser_declaration_or_fndef,
28119         c_parser_compound_statement_nostart, c_parser_label,
28120         c_parser_for_statement, c_parser_objc_methodprotolist,
28121         c_parser_omp_for_loop): All callers of
28122         c_parser_declaration_or_fndef changed.
28123         (c_parser_struct_declaration): Handle static assertions.
28124         (c_parser_compound_statement_nostart): Use
28125         c_parser_next_token_starts_declaration and
28126         c_token_starts_declaration to detect start of declarations.
28127         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
28128         Likewise.
28129
28130 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
28131
28132         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
28133         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
28134         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
28135         TARGET_FUNCTION_VALUE_REGNO_P): Define.
28136         (mmix_function_outgoing_value): Rename to...
28137         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
28138         (mmix_function_value_regno_p): Make static.
28139         (mmix_libcall_value): New function.
28140         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
28141         mmix_function_value_regno_p): Remove declaration.
28142
28143 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
28144
28145         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
28146         BUILT_IN_ALLOCA if stack checking is enabled.
28147
28148 2010-05-16  Richard Guenther  <rguenther@suse.de>
28149
28150         * var-tracking.c (vars_copy_1): Inline ...
28151         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
28152         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
28153         (variable_merge_over_cur): Adjust.  Merge asserts.
28154         (variable_merge_over_src): Likewise.
28155         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
28156         (variable_post_merge_new_vals): Merge asserts.
28157         (variable_post_merge_perm_vals): Likewise.
28158         (find_mem_expr_in_1pdv): Likewise.
28159         (dataflow_set_different_value): Remove.
28160         (onepart_variable_different_p): Merge asserts.
28161         (variable_different_p): Likewise.
28162         (dataflow_set_different_1): Inline ...
28163         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
28164         (emit_notes_for_differences_1): Merge asserts.
28165
28166 2010-05-16  Richard Guenther  <rguenther@suse.de>
28167
28168         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
28169         * optabs.c (libfunc_decl_hash): Likewise.
28170         * varasm.c (emutls_decl): Likewise.
28171
28172 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
28173
28174         * c-decl.c: Don't include gimple.h.
28175         (merge_decls): Do not copy gimple_body.
28176
28177 2010-05-15  Jason Merrill  <jason@redhat.com>
28178
28179         * c.opt: Add -fnothrow-opt.
28180
28181 2010-05-15  Jan Hubicka  <jh@suse.cz>
28182
28183         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
28184         analyzed.
28185         * passes.c (ipa_write_summaries): Write all analyzed nodes.
28186
28187 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
28188
28189         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
28190         * Makefile.in: Add it.
28191         Fix all other Makefile dependencies for changes below.
28192         * tree.h: Include it instead of defining VEC primitives here.
28193         * gimple.h: Likewise.
28194         * rtl.h: Likewise.
28195         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
28196         * except.h: Include vecir.h, break dependence on tree.h.
28197
28198         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
28199         Move from here...
28200         * tree-iterator.c: ...to here.
28201         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
28202
28203         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
28204         tm_p.h.
28205         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
28206         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
28207         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
28208         tree-mudflap.h, and target.h.
28209         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
28210         predict.h, tree-inline.h, gimple.h, and langhooks.h.
28211         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
28212         Add FIXME for why gimple.h is still included (should be unnecessary
28213         since GCC 4.5 gimplification unit-at-a-time).
28214         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
28215         * c-pragma.c: Add FIXME for why function.h needs to be included just
28216         for cfun, at front-end level.
28217         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
28218         Do not include ggc.h, but include vecprim.h for VEC(char).
28219         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
28220         Explain why target.h is included.
28221         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
28222         Explain why gimple.h is included.
28223         * c-ppoutput.c: Do not include tm.h.
28224         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
28225         * c-parses.c: Explain why rtl.h is included, and that this (and only
28226         this) is also why tm.h must be included.
28227         Do not include except.h.
28228         * c-lang.c: Do not include ggc.h.
28229
28230 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
28231
28232         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
28233
28234 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
28235
28236         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
28237         unions by default if those structs and unions have no tags.  Do
28238         not condition anonymous struct and unions handling on flag_iso.
28239         Allow anonymous structs and unions for C1X.
28240         (finish_struct): Do not diagnose lack of named fields when
28241         anonymous structs and unions present for C1X.  Accept flexible
28242         array members in structure with anonymous structs or unions but no
28243         directly named fields.
28244         * doc/extend.texi (Unnamed Fields): Update.
28245
28246 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
28247
28248         * gimple.h (compare_field_offset): Rename into...
28249         (gimple_compare_field_offset): ...this.
28250         * gimple.c (compare_field_offset): Rename into...
28251         (gimple_compare_field_offset): ...this.  Compare the full access if
28252         the offset is self-referential.
28253         (gimple_types_compatible_p): Adjust for above renaming.
28254         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
28255         DECL_NONADDRESSABLE_P flag of fields before merging them.
28256
28257 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
28258
28259         * tree.h (ctor_to_list): Delete.
28260         * tree.c (ctor_to_list): Delete.
28261
28262 2010-05-15  Jan Hubicka  <jh@suse.cz>
28263
28264         * ipa-reference.c: Include toplev.h
28265         (is_proper_for_analysis): Only add to all_module_statics
28266         if it is allocated.
28267         (write_node_summary_p, stream_out_bitmap,
28268         ipa_reference_write_optimization_summary,
28269         ipa_reference_read_optimization_summary): New.
28270         (struct ipa_opt_pass_d pass_ipa_reference): Add
28271         optimization summary streaming.
28272         * lto-cgraph.c (referenced_from_this_partition_p,
28273         reachable_from_this_partition_p): New functions.
28274         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
28275         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
28276         * opts.c (decode_options): Enable ipa_reference.
28277         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
28278         * lto-streamer.h (referenced_from_this_partition_p,
28279         reachable_from_this_partition_p): Declare.
28280
28281 2010-05-15  Richard Guenther  <rguenther@suse.de>
28282
28283         PR tree-optimization/44038
28284         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
28285         taking the address of a V_C_E of a constant.
28286
28287 2010-05-14  Jan Hubicka  <jh@suse.cz>
28288
28289         * tree.h (memory_identifier_string): Remove.
28290         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
28291         (ipa_reference_global_vars_info_d): Remove statics_not_read and
28292         statics_not_written.
28293         (ipa_reference_optimization_summary_d): New structure.
28294         (ipa_reference_optimization_summary_t): New type and vector.
28295         (ipa_reference_vars_info_d): Embedd structures instead of using
28296         pointers.
28297         (reference_vars_to_consider): Remove out of GGC space.
28298         (module_statics_escape): Remove.
28299         (global_info_obstack): Rename to ...
28300         (optimization_summary_obstack): ... this one.
28301         (initialization_status_t): Remove.
28302         (memory_identifier_string): Remove.
28303         (get_reference_vars_info): Fix indenting.
28304         (set_reference_vars_info): Likewise.
28305         (get_reference_optimization_summary): New.
28306         (set_reference_optimization_summary): New.
28307         (get_global_reference_vars_info): Remove.
28308         (ipa_reference_get_read_global): Remove.
28309         (ipa_reference_get_written_global): Remove.
28310         (ipa_reference_get_not_read_global): Update.
28311         (ipa_reference_get_not_written_global): Update.
28312         (is_proper_for_analysis): Outlaw addressable.
28313         (propagate_bits): Update for new datastructures.
28314         (analyze_variable): Remove.
28315         (init_function_info): Update for new datastructures.
28316         (clean_function_local_data): Remove.
28317         (clean_function): Remove.
28318         (copy_global_bitmap): Use optimizations_summary_obstack.
28319         (duplicate_node_data): Duplicate optimization summary only.
28320         (remove_node_data): Remove optimization summary only.
28321         (generate_summary): Do not analyze variables; do not compute
28322         module_statics_escape; do not prune solutions by it.
28323         (read_write_all_from_decl): Fix typos in comments.
28324         (propagate): Doscover readonly and nonaddressable first;
28325         update for new datastructures; share global bitmaps.
28326         * ipa-reference.h (ipa_reference_get_read_global,
28327         ipa_reference_get_written_global): Remove.
28328         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
28329         * Makefile.in: Remove ipa-refereference from GT files.
28330
28331 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
28332
28333         PR debug/44112
28334         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
28335         for all SYMBOL_REF_DECLs.
28336
28337 2010-05-14  Jan Hubicka  <jh@suse.cz>
28338
28339         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
28340         (varpool_all_refs_explicit_p): New inline function.
28341         * ipa-reference.c: Update comment.
28342         (module_statics_written): Remove.
28343         (get_static_decl): Remove.
28344         (ipa_init): Do not initialize module_statics_written.
28345         (analyze_function): Likewise.
28346         (generate_summary): Likewise; do not compute module_statics_readonly
28347         and do not update variable flags.
28348         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
28349         * ipa.c: Inlucde flags.h
28350         (cgraph_local_node_p): New.
28351         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
28352         promote functions to local.
28353         (ipa_discover_readonly_nonaddressable_vars): New function.
28354         (function_and_variable_visibility): Use cgraph_local_node_p.
28355         * varpool.c (varpool_finalize_decl): Set force_output for
28356         DECL_PRESERVE_P vars.
28357
28358 2010-05-14  Jan Hubicka  <jh@suse.cz>
28359
28360         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
28361
28362 2010-05-14  Richard Guenther  <rguenther@suse.de>
28363
28364         PR tree-optimization/44119
28365         * tree-ssa-pre.c (eliminate): Properly mark replacement of
28366         a PHI node necessary.
28367
28368 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
28369
28370         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
28371
28372 2010-05-14  Jason Merrill  <jason@redhat.com>
28373
28374         PR c++/44127
28375         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
28376         (gimple_call_set_nothrow): New.
28377         * gimple.c (gimple_build_call_from_tree): Call it.
28378         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
28379
28380         PR c++/44127
28381         * gimplify.c (gimplify_seq_add_stmt): No longer static.
28382         * gimple.h: Declare it.
28383         * gimple.c (gimple_build_eh_filter): No ops.
28384
28385 2010-05-14  Jan Hubicka  <jh@suse.cz>
28386
28387         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
28388         nodes already in queue.
28389         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
28390         re-enqueueing node.
28391
28392 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
28393
28394         PR debug/44136
28395         * cfgexpand.c (expand_debug_expr): If non-memory op0
28396         has BLKmode, return NULL.
28397
28398 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
28399
28400         * config.gcc: Add support for --with-cpu option for bdver1.
28401         * config/i386/i386.h (TARGET_BDVER1): New macro.
28402         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
28403         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
28404         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
28405         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
28406         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
28407         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
28408         (processor_type): Add PROCESSOR_BDVER1.
28409         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
28410         processor_type in config/i386/i386.h.
28411         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
28412         movaps <reg, reg> instead of movapd <reg, reg> when replacing
28413         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
28414         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
28415         to emit packed xor instead of packed double/packed integer
28416         xor for SSE and AVX when moving a zero value.
28417         * config/i386/sse.md: Add check for
28418         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
28419         movapd/movdqa for SSE and AVX.
28420         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
28421         single logical operations i.e and, or and xor instead of packed double
28422         logical operations for SSE and AVX.
28423         * config/i386/i386-c.c (ix86_target_macros_internal):
28424         Add PROCESSOR_BDVER1.
28425         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
28426         (has_fma4, has_xop): New.
28427         * config/i386/i386.c (bdver1_cost): New variable.
28428         (m_BDVER1): New macro.
28429         (m_AMD_MULTIPLE): Add m_BDVER1.
28430         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
28431         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
28432         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
28433         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
28434         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
28435         x86_tune_sse_partial_reg_dependency,
28436         x86_tune_sse_unaligned_load_optimal,
28437         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
28438         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
28439         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
28440         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
28441         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
28442         Enable/disable for bdver1.
28443         (processor_target_table): Add bdver1_cost.
28444         (cpu_names): Add bdver1.
28445         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
28446          processor_alias_table.
28447         (ix86_expand_vector_move_misalign): Change.
28448         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
28449         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
28450         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
28451         of movupd/movdqu for SSE and AVX.
28452         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
28453         (ix86_tune_adjust_cost): Add code for bdver1.
28454         (standard_sse_constant_opcode): Add check for
28455         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
28456         of packed double xor for SSE and AVX.
28457
28458 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
28459
28460         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
28461         result to unsigned.
28462
28463 2010-05-14  Tristan Gingold  <gingold@adacore.com>
28464
28465         * toplev.c (default_debug_hooks): Remove this variable.
28466         (process_options): Remove assignments to default_debug_hooks.
28467
28468 2010-05-14  Martin Jambor  <mjambor@suse.cz>
28469
28470         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
28471         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
28472         * langhooks.h (struct lang_hooks_for_decls): Removed field
28473         fold_obj_type_ref.
28474         * tree.c (free_lang_data): Remove assignment to
28475         lang_hooks.fold_obj_type_ref.
28476         * tree.def (OBJ_TYPE_REF): Update comment.
28477
28478 2010-05-14  Richard Guenther  <rguenther@suse.de>
28479
28480         PR tree-optimization/44124
28481         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
28482
28483 2010-05-14  Alan Modra  <amodra@gmail.com>
28484
28485         PR target/44075
28486         * config/rs6000/rs6000.c (struct machine_function): Reorder
28487         fields for better packing.  Add lr_save_state.
28488         (rs6000_ra_ever_killed): Return lr_save_state if set.
28489         (rs6000_emit_eh_reg_restore): Set lr_save_state.
28490
28491 2010-05-13  Jan Hubicka  <jh@suse.cz>
28492
28493         * varpool.c (decide_is_variable_needed): Drop code checking
28494         TREE_SYMBOL_REFERENCED.
28495
28496 2010-05-13  Jan Hubicka  <jh@suse.cz>
28497
28498         * final.c (output_addr_const): Do not call mark_decl_referenced.
28499         * cgraphunit.c (process_function_and_variable_attributes): Use
28500         mark_needed_node dirrectly.
28501         (assemble_thunk): Do not call mark_decl_referenced.
28502
28503 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
28504
28505         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
28506
28507 2010-05-13  Jeff Law  <law@redhat.com>
28508
28509         * ira-conflicts.c (print_allocno_conflicts): New function broken out
28510         from...
28511         (print_conflicts): Call print_allocno_conflicts.
28512
28513 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
28514
28515         PR debug/44104
28516         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
28517         if it is NULL.
28518
28519 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
28520
28521         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
28522         t-mingw-w64 or t-mingw-w32 for multilib configuration.
28523         * config/i386/t-mingw-w32: New.
28524         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
28525
28526 2010-05-13  Martin Jambor  <mjambor@suse.cz>
28527
28528         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
28529         gimple-fold.c).
28530         * gimple-fold.c (get_base_binfo_for_type): New function.
28531         (gimple_get_relevant_ref_binfo): Likewise.
28532         (gimple_fold_obj_type_ref_known_binfo): Likewise.
28533         (gimple_fold_obj_type_ref): Likewise.
28534         (fold_gimple_call): Simplify condition for folding virtual calls
28535         and call gimple_fold_obj_type_ref.
28536         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
28537         (gimple_fold_obj_type_ref_known_binfo): Likewise.
28538
28539 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
28540
28541         * config/rs6000/rs6000-protos.h
28542         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
28543         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
28544         (rs6000_debug_mode_dependent_address)
28545         (rs6000_mode_dependent_address_ptr): Likewise.
28546
28547 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
28548
28549         PR debug/43983
28550         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
28551         by SRA.
28552         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
28553         * tree-sra.c (create_access_replacement): Call unshare_expr before
28554         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
28555         * dwarf2out.c: Include tree-flow.h.
28556         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
28557         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
28558         Handle DW_OP_bit_piece.
28559         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
28560         construct_piece_list, adjust_piece_list): New functions.
28561         (add_var_loc_to_decl): Handle SRA optimized variables.
28562         Adjust for var_loc_note to loc field renaming.
28563         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
28564         in VAR_LOCATION note.
28565         (new_loc_descr_op_bit_piece): New function.
28566         (dw_sra_loc_expr): New function.
28567         (dw_loc_list): Use it.  Don't handle the last range after the
28568         loop, handle it inside of the loop.  Adjust for var_loc_note
28569         to loc field renaming.
28570         (add_location_or_const_value_attribute): Only special case
28571         single entry loc lists if loc is NOTE_P.  Adjust for
28572         var_loc_note to loc field renaming.
28573         (dwarf2out_var_location): Don't set newloc->var_loc_note
28574         and newloc->next here.
28575
28576 2010-05-12  Jan Hubicka  <jh@suse.cz>
28577
28578         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
28579         flag.
28580         * cgraph.h (cgraph_only_called_directly_p,
28581         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
28582         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
28583         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
28584         (assemble
28585         * ipa.c (cgraph_remove_unreachable_nodes): Use
28586         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
28587         flags.
28588         * tree-inline.c (copy_bb): Check address_taken flag.
28589         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
28590         externally_visible flag.
28591
28592 2010-05-12  Jason Merrill  <jason@redhat.com>
28593
28594         PR bootstrap/44048
28595         PR target/44099
28596         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
28597         * sdbout.c (plain_type_1): Likewise.
28598         * dwarf2out.c (is_base_type): Likewise.
28599         (gen_type_die_with_usage): Likewise.  Generate
28600         DW_TAG_unspecified_type for any LANG_TYPE.
28601
28602 2010-05-12  Jan Hubicka  <jh@suse.cz>
28603
28604         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
28605         indrect edges too.
28606         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
28607         (cgraph_clone_edge): Update.
28608         (cgraph_node_remove_callees): Remove indirect calls too.
28609         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
28610         (cgraph_create_indirect_edge): Update prototype.
28611         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
28612         is_proper_for_analysis.
28613         (add_new_function, visited_nodes, function_insertion_hook_holder,
28614         get_local_reference_vars_info, mark_address_taken, mark_address,
28615         mark_load, mark_store, check_asm_memory_clobber, check_call,
28616         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
28617         (ipa_init): Do not initialize visited_nodes;
28618         function_insertion_hook_holder.
28619         (analyze_variable): Rewrite.
28620         (analyze_function): Rewrite.
28621         (copy_local_bitmap): Remove.
28622         (duplicate_node_dat): Do not duplicate local info.
28623         (generate_summary): Simplify to only walk cgraph.
28624         (write_node_summary_p, ipa_reference_write_summary,
28625         ipa_reference_read_summary): Remove.
28626         (propagate): Do not remove function insertion;
28627         generate summary.
28628         (pass_ipa_reference): NULLify summary handling fields.
28629         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
28630         (input_edge): Input ecf_flags.
28631         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
28632         (update_indirect_edges_after_inlining): Ignore edges with unknown
28633         param.
28634
28635 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
28636
28637         * implicit-zee.c: New file.
28638         * tree-pass.h (pass_implicit_zee): Declare.
28639         * passes.c (init_optimization_passes): Add zee pass.
28640         * common.opt (fzee): New flag.
28641         * timevar.def (TV_ZEE): Define.
28642         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
28643         and beyond.
28644         * Makefile.in (implicit-zee.o): Add new build file.
28645
28646 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
28647             Nathan Froyd  <froydnj@codesourcery.com>
28648
28649         * c-common.c (sync_resolve_params): Remove write-only variable.
28650
28651 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
28652
28653         * target.h (struct gcc_target): Add mode_dependent_address_p field.
28654         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
28655         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
28656         * targhooks.c (default_mode_dependent_address_p): New function.
28657         * targhooks.h (default_mode_dependent_address_p): Declare function.
28658         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
28659         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
28660         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
28661         target hook. Change return type to bool.
28662         * recog.h (mode_dependent_address_p): Change return type to bool.
28663
28664 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
28665             Nathan Froyd  <froydnj@codesourcery.com>
28666
28667         * tree-mudflap.c (build_function_type_0, build_function_type_1,
28668         build_function_type_2, build_function_type_3): Remove.
28669         (mudflap_init): Use build_function_type_list.
28670
28671 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
28672             Nathan Froyd  <froydnj@codesourcery.com>
28673
28674         * coverage.c (build_fn_info_value): Call build_constructor instead of
28675         build_constructor_from_list.
28676         (build_ctr_info_value): Likewise.
28677         (build_gcov_info): Likewise.
28678
28679 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
28680
28681         * tree.c (build_constructor): Compute TREE_CONSTANT for the
28682         resultant constructor.
28683         (build_constructor_single): Don't set TREE_CONSTANT.
28684         (build_constructor_from_list): Don't compute TREE_CONSTANT.
28685
28686 2010-05-12  Jan Hubicka  <jh@suse.cz>
28687
28688         * cgraph.h (struct varpool_node): Add aux.
28689         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
28690         * varpool.c (varpool_remove_node): Do not remove initializer.
28691         (varpool_reset_queue): Export.
28692         (varpool_finalize_decl): Volatile vars are forced to be output.
28693         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
28694         replaced decl.
28695         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
28696         process_references, varpool_can_remove_if_no_refs): New functions.
28697         (cgraph_remove_unreachable_nodes): Handle variables too.
28698
28699 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
28700
28701         PR target/44088
28702         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
28703
28704 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
28705
28706         PR middle-end/44085
28707         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
28708         change value of ORT_TASK.
28709         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
28710         (omp_notice_threadprivate_variable): New function.
28711         (omp_notice_variable): Call it for threadprivate variables.
28712         If enclosing ctx is a task, print enclosing task rather than
28713         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
28714         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
28715         if task has untied clause.
28716
28717         PR debug/42278
28718         * dwarf2out.c (base_type_die): Don't add name attribute here.
28719         (modified_type_die): Instead of sizetype use
28720         its underlying original type.  If a DW_TAG_base_type doesn't
28721         have name added, add __unknown__.
28722         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
28723         always call force_type_die instead.
28724
28725 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
28726
28727         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
28728         for __stack_chk_guard.
28729
28730 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
28731
28732         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
28733         don't call start_source_file debug hook here...
28734         (finish_options): ... but here, after outputting predefined and
28735         command line defines and undefs.
28736
28737         PR middle-end/44071
28738         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
28739         no fallthru edge.
28740         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
28741         optimizing away empty bb with no successors, move over its
28742         footer chain to fallthru predecessor.
28743         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
28744         (rtl_split_edge): For asm goto call patch_jump_insn even if
28745         splitting fallthru edge.
28746
28747         PR c++/44059
28748         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
28749         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
28750         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
28751         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
28752         on DW.ref.* decls.
28753
28754         PR c++/44062
28755         * c-parser.c (c_parser_expression): Mark LHS of a comma
28756         expression as read if it is a decl, handled component or
28757         COMPOUND_EXPR with that on the RHS.
28758         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
28759         if it is a decl or handled component.
28760
28761 2010-05-11  Jan Hubicka  <jh@suse.cz>
28762
28763         * lto-symtab.c (lto_symtab_free): New function.
28764         * lto-streamer.h (lto_symtab_free): Declare.
28765
28766 2010-05-11  Jan Hubicka  <jh@suse.cz>
28767
28768         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
28769         that if function is needed it is reachable.
28770         (lto_output_node): See if it the function is reachable or referenced.
28771         (output_cgraph): Update call of lto_output_node.
28772         * lto-streamer.h (reachable_from_other_partition_p): Declare.
28773
28774 2010-05-11  Jan Hubicka  <jh@suse.cz>
28775
28776         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
28777         Mark as used.
28778
28779 2010-05-11  Jan Hubicka  <jh@suse.cz>
28780
28781         PR tree-optimize/44063
28782         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
28783         queue.
28784         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
28785         limits.
28786         (estimate_function_body_sizes): Compute sizes even when disregarding.
28787
28788 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
28789
28790         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
28791
28792 2010-05-11  Jan Hubicka  <jh@suse.cz>
28793
28794         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
28795         into every boundary.
28796
28797 2010-05-11  Jan Hubicka  <jh@suse.cz>
28798
28799         * matrix-reorg.c (matrix_reorg): Rebuild edges.
28800
28801 2010-05-11  Jan Hubicka  <jh@suse.cz>
28802
28803         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
28804         lto_streamer_cache_delete): Put nodes into heap.
28805         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
28806         heap.
28807
28808 2010-05-11  Jan Hubicka  <jh@suse.cz>
28809
28810         * cgraphbuild.c (cgraph_rebuild_references): New.
28811         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
28812         out extern inlines.
28813         * cgraph.h (cgraph_rebuild_references): Declare.
28814         * tree-inline.c (tree_function_versioning): Use it.
28815         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
28816
28817 2010-05-11  Jan Hubicka  <jh@suse.cz>
28818
28819         * cgraph.c: Include ipa-utils.h
28820         (cgraph_create_virtual_clone): Update references.
28821         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
28822
28823 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
28824
28825         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
28826         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
28827         cache size.
28828
28829 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
28830
28831         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
28832
28833 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
28834
28835         * gcc.c (execute): For -### don't quote arguments that
28836         contain just alphanumerics and _/-. characters.
28837         * doc/invoke.texi: Document that change for -###.
28838
28839         PR debug/44023
28840         * df-problems.c (struct dead_debug): Add to_rescan field.
28841         (dead_debug_init): Clear to_rescan field.
28842         (dead_debug_finish): Rescan all debug insns in to_rescan
28843         bitmap and free the bitmap.
28844         (dead_debug_insert_before): Instead of rescanning debug insns
28845         immediately queue their rescanning until dead_debug_finish.
28846         (df_note_bb_compute): After dead_debug_add do continue instead
28847         of break.
28848
28849 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
28850
28851         PR debug/44028
28852         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
28853         clear also INSN_REG_USE_LIST.
28854
28855 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28856
28857         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
28858
28859 2010-05-10  Jan Hubicka  <jh@suse.cz>
28860
28861         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
28862         commited change.
28863
28864 2010-05-10  Jan Hubicka  <jh@suse.cz>
28865
28866         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
28867         Allocate encoders.
28868         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
28869         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
28870         (lto_streamer_cache_create): Init alloc pool.
28871         (lto_streamer_cache_delete): Free alloc pool.
28872         * lto-streamer.h: Include alloc pool.
28873         (lto_streamer_cache_d): Use alloc pool.
28874         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
28875
28876 2010-05-10  Jan Hubicka  <jh@suse.cz>
28877
28878         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
28879         * cgraphbuild.c: Include except.h
28880         (record_type_list, record_eh_tables): New function.
28881         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
28882
28883 2010-05-10  Jan Hubicka  <jh@suse.cz>
28884
28885         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
28886         __frame_dummy_init_array_entry, force_to_data): Attribute as used
28887         rather than unused.
28888
28889 2010-05-10  Michael Matz  <matz@suse.de>
28890
28891         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
28892         (can_reassociate_p): Use FLOAT_TYPE_P.
28893         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
28894         (vect_force_simple_reduction): ... this.
28895         * tree-parloops.c (gather_scalar_reductions): Use
28896         vect_force_simple_reduction.
28897         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
28898         vect_is_simple_reduction, add modify argument, if true rewrite
28899         "a-b" into "a+(-b)".
28900         (vect_is_simple_reduction, vect_force_simple_reduction): New
28901         functions.
28902         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
28903
28904 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
28905             Vladimir Makarov  <vmakarov@redhat.com>
28906
28907         PR rtl-optimization/44012
28908         * ira-build.c (remove_unnecessary_allocnos): Nullify
28909         regno_allocno_map of the removed allocno.
28910
28911 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28912
28913         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
28914         to /dev/null.
28915         * configure: Regenerate.
28916
28917 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28918
28919         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
28920         unused.
28921         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
28922         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
28923         support in Sun ld.
28924         * configure: Regenerate.
28925
28926 2010-05-10  Richard Guenther  <rguenther@suse.de>
28927
28928         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
28929         marked if the entry identifier is marked.
28930
28931 2010-05-10  Richard Guenther  <rguenther@suse.de>
28932
28933         * c-common.c (struct c_common_attributes): Add fnspec attribute.
28934         (handle_fnspec_attribute): New function.
28935         * gimple.h (gimple_call_return_flags): Declare.
28936         (gimple_call_arg_flags): Likewise.
28937         * gimple.c (gimple_call_arg_flags): New function.
28938         (gimple_call_return_flags): Likewise.
28939         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
28940         New argument flags.
28941         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
28942         return value flags.
28943         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
28944         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
28945         main work to ...
28946         (make_heapvar_for): ... this new function.
28947         (handle_rhs_call): Handle fnspec attribute argument specifiers.
28948         (handle_lhs_call): Likewise.
28949         (find_func_aliases): Adjust.
28950
28951 2010-05-10  Richard Guenther  <rguenther@suse.de>
28952
28953         PR tree-optimization/44050
28954         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
28955
28956 2010-05-10  Wei Guozhi  <carrot@google.com>
28957
28958         PR target/42879
28959         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
28960
28961 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
28962
28963         PR c/10676
28964         * c-typeck.c (lookup_field): Take a type directly.  Update
28965         recursive calls.
28966         (build_component_ref): Update call to lookup_field.
28967         (set_init_label): Use lookup_field to find initialized field.
28968         Handle returned list of fields like a sequence of designators.
28969
28970 2010-05-09  Richard Guenther  <rguenther@suse.de>
28971
28972         PR middle-end/44024
28973         * fold-const.c (tree_single_nonzero_warnv_p): Properly
28974         handle &FUNCTION_DECL.
28975
28976 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
28977
28978         PR c/4784
28979         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
28980         structures and unions recursively.
28981         (detect_field_duplicates): Move duplicate detection with a hash to
28982         detect_field_duplicates_hash.  Always use a hash if anonymous
28983         structures or unions are present.
28984         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
28985         give errors.
28986
28987 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
28988
28989         PR target/44046
28990         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
28991         detect Atom, Core 2 and Core i7.
28992
28993 2010-05-09  Richard Guenther  <rguenther@suse.de>
28994
28995         * gcc.c (store_arg): Handle temporary file deletion for
28996         joined arguments.
28997
28998 2010-05-09  Richard Guenther  <rguenther@suse.de>
28999
29000         PR middle-end/44043
29001         * ipa-inline.c (estimate_function_body_sizes): Return after
29002         disregarding inline limits.
29003
29004 2010-05-09  Richard Guenther  <rguenther@suse.de>
29005
29006         * gcc.c (store_arg): Revert last change.
29007
29008 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
29009
29010         PR middle-end/28685
29011         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
29012         (optimize_ops_list): Call it.
29013
29014 2010-05-08  Richard Guenther  <rguenther@suse.de>
29015
29016         PR tree-optimization/44030
29017         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
29018         NECESSARY flag if we propagate from a inserted expression.
29019
29020 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
29021
29022         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
29023         domain types as equal if they are both PLACEHOLDER_EXPRs.
29024
29025 2010-05-08  Richard Guenther  <rguenther@suse.de>
29026
29027         * lto-wrapper.c (run_gcc): Remove linker output from
29028         command line for LTRANS invocation.
29029
29030 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
29031
29032         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
29033         lto-macho as lto_binary_reader.
29034         * target.h (struct gcc_target): New hooks lto_start and lto_end.
29035         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
29036         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
29037         in lto_start and lto_end calls.
29038         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
29039         magic numbers.
29040         (scan_prog_file): Update is_elf_or_coff call.
29041         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
29042
29043         * collect2.c (main): Fix enum comparison.
29044
29045         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
29046         Add prototypes.
29047         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
29048         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
29049         and TARGET_ASM_LTO_END.
29050         * darwin.c: Include obstack.h and lto-streamer.h.
29051         (lto_section_names_offset, lto_section_names_obstack,
29052         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
29053         global variables.
29054         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
29055         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
29056         to a temporary file.
29057         (darwin_asm_lto_end): New function.  Restore asm_out_file.
29058         (darwin_asm_named_section): For LTO sections, replace the name with
29059         the offset of the section name in a string table, and build this
29060         table.
29061         (darwin_file_start): Initialize global vars for LTO support.
29062         (darwin_file_end): If output to asm_out_file was redirected, append it
29063         to the proper asm_out_file here.  Add the section names section.
29064
29065 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
29066
29067         * c-pragma.c (pending_weak_d, pending_weak): New.
29068         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
29069         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
29070         handle_pragma_weak): Update the uses of pending_weaks.
29071
29072 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29073
29074         PR documentation/44016
29075         * doc/standards.texi (Standards): Link to unversioned
29076         cxx0x_status.html page.
29077
29078 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
29079
29080         PR target/43708
29081         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
29082         in addition to TREE_USED, to avoid "set but unused" warnings.
29083
29084 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29085
29086         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
29087         (is_loop_prefetching_profitable): Do not insert prefetches
29088         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
29089         times the prefetch ahead distance.
29090
29091 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29092
29093         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
29094         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
29095         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
29096         the unroll_factor.
29097
29098 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29099
29100         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
29101         a diagnostic info when the insn-to-mem ratio is too small.
29102
29103 2010-05-07  Richard Guenther  <rguenther@suse.de>
29104
29105         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
29106         the linker plugin.
29107         (store_arg): Queue temp_filename for deletion instead of
29108         the whole argument.
29109
29110 2010-05-07  Richard Guenther  <rguenther@suse.de>
29111
29112         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
29113         (run_gcc): Handle LTRANS phase invocation.
29114         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
29115
29116 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
29117
29118         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
29119         this is also meaningful on PARM_DECLs and RESULT_DECLs.
29120
29121 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29122
29123         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
29124
29125 2010-05-07  Richard Guenther  <rguenther@suse.de>
29126
29127         PR tree-optimization/44020
29128         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
29129         code when PRE is not yet initialized.
29130
29131 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29132
29133         * config/mips/dbxmdebug.h: Remove.
29134         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
29135
29136 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
29137
29138         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
29139         with null pointer and also warn about ordered comparison of zero with
29140         pointer if -Wextra.
29141
29142 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
29143
29144         * graphite-blocking.c
29145         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
29146         * graphite-clast-to-gimple.c
29147         (clast_to_gcc_expression): Same.
29148         (precision_for_value): Same.
29149         (precision_for_interval): Same.
29150         (gcc_type_for_interval): Same.
29151         (graphite_create_new_guard): Same.
29152         (compute_bounds_for_level): Same.
29153         (graphite_create_new_loop_guard): Same.
29154         * graphite-interchange.c
29155         (build_linearized_memory_access): Same.
29156         (pdr_stride_in_loop): Same.
29157         (memory_strides_in_loop_1): Same.
29158         (memory_strides_in_loop): Same.
29159         (extend_scattering): Same.
29160         (psct_scattering_dim_for_loop_depth): Same.
29161         (pbb_number_of_iterations): Same.
29162         * graphite-poly.h
29163         (debug_iteration_domains): Same.
29164         * graphite-ppl.c
29165         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
29166         (ppl_set_inhomogeneous_gmp): Same.
29167         (ppl_strip_loop): Same.
29168         (ppl_lexico_compare_linear_expressions): Same.
29169         (ppl_read_polyhedron_matrix): Same.
29170         (ppl_max_for_le_pointset): Same.
29171         * graphite-ppl.h
29172         (ppl_read_polyhedron_matrix): Same.
29173         (tree_int_to_gmp): Same.
29174         (gmp_cst_to_tree): Same.
29175         (ppl_set_inhomogeneous): Same.
29176         (ppl_set_inhomogeneous_tree): Same.
29177         (ppl_set_coef): Same.
29178         (ppl_set_coef_tree): Same.
29179         * graphite-sese-to-poly.c
29180         (build_pbb_scattering_polyhedrons): Same.
29181         (build_scop_scattering): Same.
29182         (scan_tree_for_params_right_scev): Same.
29183         (scan_tree_for_params): Same.
29184         (find_params_in_bb): Same.
29185         (find_scop_parameters): Same.
29186         (add_upper_bounds_from_estimated_nit): Same.
29187         (build_loop_iteration_domains): Same.
29188         (add_condition_to_domain): Same.
29189         (pdr_add_memory_accesses): Same.
29190
29191 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
29192
29193         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
29194         CLooG's value_* macros to their respective mpz_* counterparts.
29195         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
29196         (graphite_create_new_loop_guard): Same.
29197         * graphite-interchange.c (build_linearized_memory_access): Same.
29198         (pdr_stride_in_loop): Same.
29199         (memory_strides_in_loop_1): Same.
29200         (1st_interchange_profitable_p): Same.
29201         * graphite-poly.c (extend_scattering): Same.
29202         (psct_scattering_dim_for_loop_depth): Same.
29203         (pbb_number_of_iterations): Same.
29204         (pbb_number_of_iterations_at_time): Same.
29205         * graphite-poly.h (new_1st_loop): Same.
29206         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
29207         (oppose_constraint): Same.
29208         (insert_constraint_into_matrix): Same.
29209         (ppl_set_inhomogeneous_gmp): Same.
29210         (ppl_set_coef_gmp): Same.
29211         (ppl_strip_loop): Same.
29212         (ppl_lexico_compare_linear_expressions): Same.
29213         (ppl_max_for_le_pointset): Same.
29214         (ppl_min_for_le_pointset): Same.
29215         (ppl_build_realtion): Same.
29216         * graphite-ppl.h (gmp_cst_to_tree): Same.
29217         (ppl_set_inhomogeneous): Same.
29218         (ppl_set_inhomogeneous_tree): Same.
29219         (ppl_set_coef): Same.
29220         (ppl_set_coef_tree): Same.
29221         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
29222         (build_scop_scattering): Same.
29223         (add_value_to_dim): Same.
29224         (scan_tree_for_params_right_scev): Same.
29225         (scan_tree_for_params_int): Same.
29226         (scan_tree_for_params): Same.
29227         (find_params_in_bb): Same.
29228         (find_scop_parameters): Same.
29229         (add_upper_bounds_from_estimated_nit): Same.
29230         (build_loop_iteration_domains): Same.
29231         (create_linear_expr_from_tree): Same.
29232         (add_condition_to_domain): Same.
29233         (pdr_add_memory_accesses): Same.
29234
29235 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
29236             Jason Merrill  <jason@redhat.com>
29237
29238         * c-common.c (c_common_reswords): Add nullptr.
29239         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
29240         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
29241         (gen_type_die_with_usage): Likewise.
29242         * dbxout.c (dbxout_type): Likewise.
29243         * sdbout.c (plain_type_1): Likewise.
29244
29245 2010-05-06  Jason Merrill  <jason@redhat.com>
29246
29247         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
29248         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
29249         ret appropriately.
29250         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
29251
29252         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
29253         stripping WITH_SIZE_EXPR.
29254         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
29255         change.
29256
29257 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29258
29259         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
29260         list of obsolete configurations.
29261         Disabled check for obsolete configurations.
29262         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
29263         Removed support for previous versions.
29264         * config/mips/iris.h: Removed.
29265         * config/mips/iris5.h: Removed.
29266         * config/mips/iris6.h: Merged old iris.h contents.
29267         (TARGET_IRIX): Removed.
29268         (DRIVER_SELF_SPECS): Removed mabi=32.
29269         (IDENT_ASM_OP): Removed undef.
29270         (STARTFILE_SPEC): Removed mabi=32.
29271         (ENDFILE_SPEC): Likewise.
29272         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
29273         (MACHINE_TYPE): Update for IRIX 6.5.
29274         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
29275         TARGET_IRIX by TARGET_IRIX6.
29276         (mips_file_start): Likewise.
29277         (mips_output_external): Remove IRIX 5/6 O32 support.
29278         (mips_output_function_prologue): Likewise.
29279         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
29280         TARGET_IRIX6.
29281         (TARGET_CPU_CPP_BUILTINS): Likewise.
29282         (TARGET_IRIX): Removed.
29283         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
29284         (MULTILIB_DIRNAMES): Removed 32.
29285         (MULTILIB_OSDIRNAMES): Removed ../lib.
29286         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
29287         (Specific, mips-sgi-irix5): Document removal.
29288         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
29289         Remove references to older IRIX 6 releases and the O32 ABI.
29290
29291 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
29292
29293         PR bootstrap/43994
29294         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
29295         instead of DF_REF_REAL_REG.
29296
29297 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
29298
29299         PR target/43888
29300         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
29301         handling to still return true for x64 targets.
29302
29303 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
29304
29305         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
29306
29307 2010-05-06  Jan Hubicka  <jh@suse.cz>
29308
29309         PR tree-optimization/43791
29310         * ipa-inline.c (update_caller_keys): Remove bogus
29311         disregard_inline_limits check.
29312
29313 2010-05-06  Michael Matz  <matz@suse.de>
29314
29315         PR tree-optimization/43984
29316         * tree-ssa-pre.c (inserted_phi_names): Remove.
29317         (inserted_exprs): Change to bitmap.
29318         (create_expression_by_pieces): Set bits, don't append to vector.
29319         (insert_into_preds_of_block): Don't handle inserted_phi_names.
29320         (eliminate): Don't look at inserted_phi_names, remove deleted
29321         insns from inserted_exprs.
29322         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
29323         (init_pre, fini_pre): Allocate and free bitmaps.
29324         (execute_pre): Insert insns on edges before elimination.
29325
29326 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
29327
29328         * tree.c (initializer_zerop): Handle STRING_CST.
29329
29330 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29331
29332         PR 40989
29333         * doc/invoke.texi (Wimplicit): Document as C only.
29334         * opts.c (common_handle_option): Add argument kind.
29335         (handle_option): Rename as read_cmdline_option. Factor out code to...
29336         (handle_option): ... here. New.
29337         (handle_options): Rename as read_cmdline_options.
29338         (decode_options): Update call.
29339         (set_option): Use option index instead of option pointer. Classify
29340         diagnostics correctly.
29341         (enable_warning_as_error): Call handle_option.
29342         * opts.h (set_option): Update declaration.
29343         (handle_option): Declare.
29344         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
29345         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
29346         * c-opts.c (set_Wimplicit): Delete.
29347         (c_family_lang_mask): New static constant.
29348         (c_common_handle_option): Add argument kind. Use handle_option
29349         instead of set_Wimplicit.
29350         (c_common_post_options): warn_implicit and warn_implicit_int
29351         are disabled by default.
29352         * c-common.c (warn_implicit): Do not define here.
29353         * c-common.h (warn_implicit): Do not declare here.
29354         (c_common_handle_option): Update declaration.
29355         * lto-opts.c (lto_reissue_options): Update call to set_option.
29356
29357 2010-05-06  Richard Guenther  <rguenther@suse.de>
29358
29359         PR tree-optimization/43571
29360         * domwalk.c (walk_dominator_tree): Walk the dominator
29361         sons in more optimal order.
29362
29363 2010-05-06  Richard Guenther  <rguenther@suse.de>
29364
29365         PR tree-optimization/43934
29366         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
29367         (stmt_cost): Likewise.
29368         (extract_true_false_args_from_phi): New helper.
29369         (determine_max_movement): For PHI nodes verify we can hoist them
29370         and compute their cost.
29371         (determine_invariantness_stmt): Handle PHI nodes.
29372         (move_computations_stmt): Likewise.  Hoist PHI nodes in
29373         if-converted form using COND_EXPRs.
29374         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
29375         (tree_ssa_lim): Likewise.
29376         * tree-flow.h (tree_ssa_lim): Adjust prototype.
29377         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
29378
29379 2010-05-06  Richard Guenther  <rguenther@suse.de>
29380
29381         PR tree-optimization/43987
29382         * tree-ssa-structalias.c (could_have_pointers): For possibly
29383         address-taken variables force pointers to be recorded.
29384         (create_variable_info_for_1): Likewise.
29385         (push_fields_onto_fieldstack): Pass in wheter all fields
29386         must have pointers.
29387         (find_func_aliases): Query types instead of vars whether
29388         they contain pointers where appropriate.
29389
29390 2010-05-06  Jan Hubicka  <jh@suse.cz>
29391
29392         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
29393         (record_reference, mark_address, mark_load, mark_store): Record
29394         references.
29395         (record_references_in_initializer): Update call of record_references.
29396         (rebuild_cgraph_edges): Remove all references before rebuiding.
29397         * cgraph.c (cgraph_create_node): Clear ref list.
29398         (cgraph_remove_node): Remove references.
29399         (dump_cgraph_node): Dump references.
29400         (cgraph_clone_node): Clone references.
29401         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
29402         (struct cgraph_node, varpool_node): Add ref_lst.
29403         * ipa-ref.c: New file.
29404         * ipa-ref.h: New file.
29405         * ipa-ref-inline.h: New file.
29406         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
29407         (referenced_from_other_partition_p): New function.
29408         (lto_output_varpool_node): Take set arugment; call
29409         referenced_from_other_partition.
29410         (lto_output_ref): New.
29411         (add_references): New.
29412         (output_refs): New.
29413         (output_cgraph): Compute boundary based on references; output refs.
29414         (output_varpool): Accept cgraph_node_set argument.
29415         (input_ref): New.
29416         (input_refs): New.
29417         (input_cgraph): Call input_refs.
29418         * lto-section-in.c (lto_section_name): Add refs.
29419         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
29420         (ipa-ref.o): New file.
29421         * varpool.c (varpool_node): Clear ipa ref list.
29422         (varpool_remove_node): Remove references.
29423         (dump_varpool_node): Dump references.
29424         (varpool_assemble_decl): Only compile finalized ones.
29425         (varpool_extra_name_alias): Initialize ref list.
29426         * lto-streamer.c (lto-get_section_name): Add .refs section.
29427         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
29428         (referenced_from_other_partition_p): Declared.
29429
29430 2010-05-06  Ira Rosen  <irar@il.ibm.com>
29431
29432         PR tree-optimization/43901
29433         * tree-vect-stmts.c (vectorizable_call): Assert that vector
29434         type is not NULL if it's transformation phase, and return
29435         FALSE if it's analysis.
29436         (vectorizable_conversion, vectorizable_operation,
29437         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
29438
29439 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
29440
29441         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
29442         Delete.
29443         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
29444         New define.
29445         * config/mips/mips-protos.h
29446         (mips_small_register_classes_for_mode_p): Delete prototype.
29447
29448 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
29449
29450         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
29451         * config/arm/arm.c (multiple_operation_profitable_p,
29452         compute_offset_order): New static functions.
29453         (load_multiple_sequence, store_multiple_sequence): Use them.
29454         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
29455         memory offsets, not register numbers.
29456         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
29457
29458 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
29459
29460         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
29461         (get_pending_sizes, put_pending_size, put_pending_sizes):
29462         Update the uses of pending_sizes.
29463         * c-decl.c (store_parm_decls): Likewise.
29464         * c-tree.h (struct c_arg_info): Likewise.
29465         * tree.h: Update the prototype for get_pending_sizes and
29466         put_pending_sizes.
29467
29468 2010-05-05  Jason Merrill  <jason@redhat.com>
29469
29470         PR debug/43370
29471         * c-common.c (handle_aligned_attribute): Respect
29472         ATTR_FLAG_TYPE_IN_PLACE.
29473
29474         PR testsuite/43758
29475         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
29476         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
29477         (TARGET_INITIALIZER): Use it.
29478         * c-common.c (attribute_takes_identifier_p): Call it.
29479         * c-common.h: Update prototype.
29480         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
29481         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
29482
29483 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
29484
29485         PR debug/43950
29486         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
29487         DW_ID_down_case for Fortran compilation units.
29488
29489 2010-05-05  Jan Hubicka  <jh@suse.cz>
29490
29491         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
29492         handle aliases.
29493
29494 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
29495
29496         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
29497         a variable-sized RESULT_DECL.
29498
29499 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
29500
29501         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
29502
29503 2010-05-05  Jason Merrill  <jason@redhat.com>
29504
29505         PR c++/43787
29506         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
29507         returns GS_OK.
29508         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
29509
29510 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
29511             Jakub Jelinek  <jakub@redhat.com>
29512
29513         PR debug/43478
29514         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
29515         (dead_debug_init, dead_debug_finish): New functions.
29516         (dead_debug_add, dead_debug_insert_before): Likewise.
29517         (df_note_bb_compute): Initialize a dead_debug object, add dead
29518         debug uses to it, insert debug bind insns before death insns,
29519         reset debug insns that refer to pending uses at the end.
29520         * rtl.h (make_debug_expr_from_rtl): New prototype.
29521         * varasm.c (make_debug_expr_from_rtl): New function.
29522
29523 2010-05-05  Jan Hubicka  <jh@suse.cz>
29524
29525         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
29526         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
29527         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
29528         lto_varpool_encoder_deref, lto_varpool_encoder_size,
29529         lto_varpool_encoder_encode_initializer_p,
29530         lto_set_varpool_encoder_encode_initializer): New functions.
29531         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
29532         call output_varpool.
29533         (input_varpool_node): Do not always set analyzed.
29534         (input_cgraph_1): Return vector of cgraph nodes.
29535         (input_varpool_1): Return vector of varpools.
29536         (input_cgraph): Free the vectors.
29537         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
29538         output only initializers needed.
29539         (lto_output): Only call output_cgraph.
29540         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
29541         * lto-section-out.c (lto_new_out_decl_state): Initialize
29542         state->varpool_node_encoder.
29543         * lto-streamer.h (lto_varpool_encoder_d): New.
29544         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
29545         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
29546         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
29547         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
29548         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
29549         Declare.
29550         (output_varpool, input_varpool): Remove declarations.
29551
29552 2010-05-05  Jan Hubicka  <jh@suse.cz>
29553
29554         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
29555         with body can prevail.
29556
29557 2010-05-05  Jan Hubicka  <jh@suse.cz>
29558
29559         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
29560         size.
29561
29562 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29563
29564         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
29565
29566         * gengtype.h (erro_at_line): Constify pos argument.
29567
29568         * gengtype.c: Include hashtab.h.
29569         (enum gc_used): Document GC_MAYBE_POINTED_TO.
29570         (error_at_line): Constify pos argument.
29571         (do_typedef): Initialize p->opt field.
29572         (get_file_gtfilename): Fix comment typo.
29573         (struct walk_type_data): Constify line field.
29574         (get_output_file_for_structure): New function.
29575         (write_local_func_for_structure): Constify orig_s argument.
29576         Use get_output_file_for_structure.
29577         (write_func_for_structure): Use get_output_file_for_structure.
29578         (INDENT): New define.
29579         (dump_pair, dump_type, dump_type_list, dump_typekind)
29580         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
29581         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
29582         functions.
29583         (seen_types): New variable.
29584         (main): New variable do_dump.  Process "-d" command line option.
29585         Call dump_everything if dump requested.
29586
29587 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
29588
29589         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
29590         in a temporary instead of invoking the macro multiple times.
29591         (track_expr_p): Likewise.
29592
29593 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
29594
29595         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
29596         per new semantics.
29597         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
29598         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
29599         conditions for printing notes.
29600         * common.opt (-Wcoverage-mismatch): Allow negative, default to
29601         true, update documentation.
29602         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
29603
29604 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
29605
29606         PR c/43981
29607         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
29608         on dimen.
29609
29610 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
29611
29612         PR target/43799
29613         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
29614         (*sse_prologue_save_insn1): Likewise.
29615         (SSE prologue save splitter): Likewise.
29616
29617 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
29618
29619         * tree.c (free_lang_data_in_one_sizepos): New inline function.
29620         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
29621         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
29622         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
29623         all decls.  Call it on DECL_FIELD_OFFSET of fields.
29624         (find_decls_types_r): Follow DECL_VALUE_EXPR.
29625         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
29626
29627 2010-05-04  Martin Jambor  <mjambor@suse.cz>
29628
29629         * tree-sra.c (build_access_from_expr_1): The first parameter type
29630         changed to simple tree.
29631         (build_access_from_expr): Likewise, gsi parameter was eliminated.
29632         (scan_assign_result): Renamed to assignment_mod_result, enum elements
29633         renamed as well.
29634         (build_accesses_from_assign): Removed all parameters except for a
29635         simple gimple statement.  Now returns a simple bool.
29636         (scan_function): All non-analysis parts moved to separate functions
29637         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
29638         parameters and updated both callers.
29639         (sra_modify_expr): Removed parameter data.
29640         (sra_modify_function_body): New function.
29641         (perform_intra_sra): Call sra_modify_function_body to modify the
29642         function body.
29643         (replace_removed_params_ssa_names): Parameter data changed into
29644         adjustments vector.
29645         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
29646         changed the parameter dont_convert to convert with the opposite
29647         meaning.
29648         (sra_ipa_modify_assign): Parameter data changed into adjustments
29649         vector, return value changed to bool.
29650         (ipa_sra_modify_function_body): New function.
29651         (sra_ipa_reset_debug_stmts): Updated a comment.
29652         (modify_function): Use ipa_sra_modify_function_body to modify function
29653         body.
29654
29655 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
29656
29657         PR middle-end/43671
29658         * alias.c (true_dependence): Handle the same VALUE in x and mem.
29659         (canon_true_dependence): Likewise.
29660         (write_dependence_p): Likewise.
29661
29662 2010-05-04  Jan Hubicka  <jh@suse.cz>
29663
29664         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
29665         * cgraphbuild.c: Include ipa-utils.h
29666         (record_reference_ctx): New struct.
29667         (record_reference): Simplify to work on initializers; not statements.
29668         (mark_address, mark_load, mark_store): New.
29669         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
29670         walk PHI nodes too.
29671         (record_references_in_initializer): Update use of record_reference.
29672         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
29673         walk PHI nodes too.
29674
29675 2010-05-04  Jan Hubicka  <jh@suse.cz>
29676
29677         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
29678         node will be removed anyway.
29679         (lto_varpool_replace_node): Allow also unanalyzed nodes;
29680         relink aliases of node into prevailing node.
29681         * varpool.c (varpool_remove_node): Remove aliases properly;
29682         when removing node, remove all its aliases too; remove DECL_INITIAL
29683         of removed node; ggc_free the varpool node.
29684
29685 2010-05-04  Richard Guenther  <rguenther@suse.de>
29686
29687         PR tree-optimization/43879
29688         * tree-ssa-structalias.c (alias_get_name): Use
29689         DECL_ASSEMBLER_NAME if available.
29690         (create_function_info_for): Return the varinfo node.
29691         (ipa_pta_execute): Associate same-body aliases and extra names
29692         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
29693
29694 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
29695
29696         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
29697
29698 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
29699
29700         PR bootstrap/43964
29701         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
29702         only if HONOR_REG_ALLOC_ORDER is not defined.
29703
29704 2010-05-04  Richard Guenther  <rguenther@suse.de>
29705
29706         PR tree-optimization/43949
29707         * tree-vrp.c (extract_range_from_binary_expr): Only handle
29708         TRUNC_MOD_EXPR.
29709
29710 2010-04-26  Jason Merrill  <jason@redhat.com>
29711
29712         * c.opt (-fstrict-enums): New.
29713         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
29714
29715 2010-05-03  David Ung  <davidu@mips.com>
29716             James E. Wilson  <wilson@codesourcery.com>
29717
29718         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
29719         emit the trap instruction before the divide for TUNE_74K.
29720
29721 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
29722
29723         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
29724         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
29725         based on the above, for new target hook.
29726
29727         * hooks.c (hook_bool_mode_true): New generic hook.
29728         * hooks.h (hook_bool_mode_true): Add prototype.
29729
29730         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
29731         target hook.
29732         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
29733         target hook, set to hook_bool_mode_false.
29734         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
29735         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
29736         with targetm.small_register_classes_for_mode_p.
29737         (find_reusable_reload): Likewise.
29738         (combine_reloads): Likewise.
29739         * reload1.c (reload_as_needed): Likewise.
29740         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
29741         * ifcvt.c (noce_process_if_block, check_cond_move_block,
29742         dead_or_predicable): Likewise.
29743         * regmove.c (optimize_reg_copy_1): Likewise.
29744         * calls.c (prepare_call_address): Likewise.
29745         (precompute_register_parameters): Likewise.
29746
29747         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
29748         hook definition.
29749         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
29750         implementation of the hook that considers all register classes
29751         small except for SH64.
29752         (sh_override_options): Use the new hook.
29753         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
29754         Add prototype.
29755
29756         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
29757         hook definition.
29758         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
29759         implementation of the hook that considers all register classes
29760         small for THUMB1.
29761         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
29762         Add prototype.
29763
29764         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
29765         hook definition.
29766         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
29767         implementation of the hook that considers all register classes
29768         small for MIPS16.
29769         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
29770         Add prototype.
29771
29772         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
29773         hook definition.
29774         * config/m32c/m32c.h: Likewise.
29775         * config/pdp11/pdp11.h: Likewise.
29776         * config/avr/avr.h: Likewise.
29777         * config/xtensa/xtensa.h: Likewise.
29778         * config/m68hc11/m68hc11.h: Likewise.
29779         * config/mn10300/mn10300.h: Likewise.
29780         * config/mcore/mcore.h: Likewise.
29781         * config/h8300/h8300.h: Likewise.
29782         * config/bfin/bfin.h: Likewise.
29783
29784         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
29785         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
29786
29787 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
29788
29789         * double-int.h (tree_to_double_int): Remove macro.
29790         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
29791         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
29792         (tree_to_double_int): New function.
29793         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
29794         Move ...
29795         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
29796
29797 2010-05-03  Richard Guenther  <rguenther@suse.de>
29798
29799         PR tree-optimization/43971
29800         * tree-ssa-structalias.c (get_constraint_for_1): Fix
29801         constraints in the !flag_delete_null_pointer_checks case.
29802
29803 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
29804
29805         PR debug/43972
29806         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
29807         result mode matches original rtl mode.
29808
29809 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
29810
29811         PR target/43888
29812         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
29813
29814 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
29815
29816         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
29817         when processing flag options.
29818
29819 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
29820
29821         * gcov-iov.c (main): Change format string placeholder
29822         from %#08x to 0x%08x.
29823         * genchecksum.c (dosum): Change format string placeholder
29824         from %#02x to 0x%02x.
29825
29826 2010-05-02  Richard Guenther  <rguenther@suse.de>
29827
29828         PR tree-optimization/43879
29829         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
29830
29831 2010-05-02  Bruno Haible  <bruno@clisp.org>
29832
29833         * doc/extend.texi (Function Attributes): Fix a typo.
29834
29835 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
29836
29837         Revert:
29838         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
29839         placeholder from 0x%x to %#x.
29840         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
29841         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
29842         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
29843         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
29844         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
29845         * config/i386/i386.c (ix86_target_string): Ditto.
29846         * config/i386/i386.c (output_pic_addr_const): Ditto.
29847         (print_operand): Ditto.
29848
29849 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
29850
29851         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
29852         placeholder from 0x%x to %#x.
29853         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
29854         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
29855         (ASM_OUTPUT_DEBUG_DATA): Ditto.
29856         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
29857         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
29858         * optc-gen.awk: Ditto.
29859         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
29860         (HOST_WIDE_INT_PRINT_HEX): Ditto.
29861         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
29862         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
29863
29864 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
29865
29866         * target.h (struct calls): Add function_value_regno_p field.
29867         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
29868         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
29869         * targhooks.c (default_function_value_regno_p): New function.
29870         * targhooks.h (default_function_value_regno_p): Declare function.
29871         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
29872         * builtins.c. (apply_result_size): (Ditto.).
29873         * combine.c. (likely_spilled_retval_p): (Ditto.).
29874         * mode-switching.c. Include 'target.h'.
29875         (create_pre_exit): Use function_value_regno_p hook.
29876         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
29877         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
29878         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
29879
29880         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
29881         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
29882         (ix86_function_value_regno_p): Declare as static, change argument
29883         type to const unsigned int.
29884         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
29885
29886 2010-05-01  Richard Guenther  <rguenther@suse.de>
29887
29888         PR tree-optimization/43949
29889         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
29890         types.
29891         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
29892
29893 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
29894
29895         * rtl.h (CONST_DOUBLE_P): Define.
29896         (rtx_to_double_int): Declare.
29897         * emit-rtl.c (rtx_to_double_int): New function.
29898         * dwarf2out.c (insert_double): New function.
29899         (loc_descriptor, add_const_value_attribute): Clean up, use
29900         rtx_to_double_int and insert_double functions.
29901
29902 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
29903
29904         * doc/extend.texi (Inline): Add missing return keyword to examples.
29905         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
29906         "command-line".
29907
29908 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
29909
29910         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
29911         the variable part of the offset as well.  Use highest_pow2_factor for
29912         all alignment checks.
29913
29914 2010-04-30  Richard Guenther  <rguenther@suse.de>
29915
29916         PR tree-optimization/43879
29917         * tree-ssa-structalias.c (type_could_have_pointers): Functions
29918         can have pointers.
29919
29920 2010-04-30  Jan Hubicka  <jh@suse.cz>
29921
29922         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
29923         varpool.
29924         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
29925
29926 2010-04-30  Jan Hubicka  <jh@suse.cz>
29927
29928         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
29929         New.
29930         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
29931         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
29932         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
29933         cgraph_node_set_needs_ltrans_p): Remove.
29934
29935 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
29936
29937         * sdbout.c: Include vec.h, do not include varray.h.
29938         (deferred_global_decls, sdbout_global_decl,
29939         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
29940         * toplev.c: Do not include varray.h.
29941         (dump_memory_report): Do not dump VARRAY statistics.
29942         * gengtype.c (open_base_file): Ignore varray.h.
29943         * Makefile.in: Update for abovementioned changes.
29944         Remove all traces of varray.c and varray.h.
29945         * varray.c: Remove file.
29946         * varray.h: Remove file.
29947
29948 2010-04-30  Jan Hubicka  <jh@suse.cz>
29949
29950         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
29951         references.
29952
29953 2010-04-30  Jan Hubicka  <jh@suse.cz>
29954
29955         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
29956         needed.
29957
29958 2010-04-30  Richard Guenther  <rguenther@suse.de>
29959
29960         * tree-ssa-structalias.c (get_constraint_for_1): Generate
29961         constraints for CONSTRUCTOR.
29962
29963 2010-04-30  Richard Guenther  <rguenther@suse.de>
29964
29965         PR lto/43946
29966         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
29967         first after all lowering passes.
29968
29969 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
29970
29971         * toplev.c: Include varray.h for statistics dumping.
29972         * tree.h: Do not declare varray_head_tag.
29973         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
29974         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
29975         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
29976         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
29977         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
29978         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
29979         c-common.c, c-common.h, reg-stack.c, basic-block.h,
29980         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
29981         include varray.h.
29982         * Makefile.in: Update for abovementioned changes.
29983
29984 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
29985
29986         PR debug/43942
29987         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
29988
29989 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
29990
29991         * config/picochip/picochip.c (picochip_legitimize_address): Define.
29992         Use this function to do machine-specific conversion.
29993         (picochip_legitimize_reload_address): Likewise.
29994         (picochip_legitimate_address_p): Check valid base register only if
29995         strict.
29996         (picochip_check_conditional_copy): Check for modw only if opnd is
29997         register.
29998         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
29999         to call the function in c.
30000         * config/picochip/picochip-protos.h
30001         (picochip_legitimize_reload_address): Define.
30002         * config/picochip/picochip.md (supported_compare1): Define.
30003
30004 2010-04-30  Jan Hubicka  <jh@suse.cz>
30005
30006         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
30007         (cgraph_global_info): Remove inlined.
30008         (LTO_cgraph_tag_names): Remove.
30009         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
30010         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
30011         simplify cgraph tags and document.
30012         (lto_output_node): Use only LTO_cgraph_unavail_node and
30013         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
30014         for_functions_valid, global info, process and output flags.
30015         (input_overwrite_node): Initialize estimated stack size and
30016         estimated growth.  Do not read flags we no longer store.
30017         (input_node): Likewise do not read info no longer stored.
30018         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
30019         flag.
30020
30021 2010-04-30  Richard Guenther  <rguenther@suse.de>
30022
30023         PR tree-optimization/43879
30024         * tree-ssa-structalias.c (get_constraint_for_1): Properly
30025         handle non-zero initializers.
30026
30027 2010-04-30  Richard Guenther  <rguenther@suse.de>
30028
30029         * builtins.c (fold_builtin_1): Delete free (0).
30030
30031 2010-04-29  Jan Hubicka  <jh@suse.cz>
30032
30033         * gengtype.c (open_base_files): Add lto-streamer.h
30034         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
30035         (pass_ipa_cp): GGC collect.
30036         * toplev. (compile_file): Do not output symbols.
30037         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
30038         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
30039         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
30040         * lto-section-in.c: Include ggc.h
30041         (lto_new_in_decl_state): Alloc in GGC.
30042         (lto_delete_in_decl_state): Likewise.
30043         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
30044         Collect.
30045
30046 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
30047
30048         PR target/42895
30049         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
30050         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
30051         (HONOR_REG_ALLOC_ORDER): Describe new macro.
30052         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
30053         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
30054         account only if HONOR_REG_ALLOC_ORDER is not defined.
30055         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
30056         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
30057
30058 2010-04-29  Jon Grant  <04@jguk.org>
30059
30060         * collect2.c (vflag): Change type from int to bool.
30061         (debug): Likewise.
30062         (helpflag): New global bool.
30063         (main): Set vflag and debug with boolean, not integer truth values.
30064         Accept new "--help" option and output usage text if found.
30065         * collect2.h (vflag): Update prototype.
30066         (debug): Likewise.
30067
30068 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
30069
30070         PR bootstrap/43936
30071         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
30072
30073 2010-04-29  Richard Guenther  <rguenther@suse.de>
30074
30075         PR bootstrap/43935
30076         * plugin.h (invoke_plugin_callbacks): Annotate arguments
30077         with ATTRIBUTE_UNUSED.
30078
30079 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
30080
30081         PR target/43921
30082         * config/i386/i386.c (get_some_local_dynamic_name): Replace
30083         INSN_P with NONDEBUG_INSN_P.
30084         (distance_non_agu_define): Likewise.
30085         (distance_agu_use): Likewise.
30086
30087 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
30088
30089         From Dominique d'Humieres  <dominiq@lps.ens.fr>
30090         PR bootstrap/43858
30091         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
30092         test_set.
30093
30094 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
30095
30096         * plugin.h (invoke_plugin_callbacks): New inline function.
30097         * plugin.c (flag_plugin_added): New global flag.
30098         (add_new_plugin): Initialize above flag.
30099         (invoke_plugin_callbacks): Rename to ...
30100         (invoke_plugin_callbacks_full): ... this.
30101
30102 2010-04-28  Jan Hubicka  <jh@suse.cz>
30103
30104         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
30105         (lto_varpool_replace_node): New.
30106         (lto_symtab_resolve_symbols): Resolve varpool nodes.
30107         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
30108         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
30109         * cgraph.h (varpool_node_ptr): New type.
30110         (varpool_node_ptr): New vector.
30111         (varpool_node_set_def): New structure.
30112         (varpool_node_set): New type.
30113         (varpool_node_set): New vector.
30114         (varpool_node_set_element_def): New structure.
30115         (varpool_node_set_element, const_varpool_node_set_element): New types.
30116         (varpool_node_set_iterator): New type.
30117         (varpool_node): Add prev pointers, add used_from_other_partition,
30118         in_other_partition.
30119         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
30120         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
30121         varpool_get_node, varpool_remove_node): Declare.
30122         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
30123         varpool_node_set_size): New inlines.
30124         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
30125         * tree-pass.h (varpool_node_set_def): Forward declare.
30126         (ipa_opt_pass_d): Summary writting takes vnode sets too.
30127         (ipa_write_optimization_summaries): Update prototype.
30128         * ipa-cp.c (ipcp_write_summary): Update.
30129         * ipa-reference.c (ipa_reference_write_summary): Update.
30130         * lto-cgraph.c (lto_output_varpool_node): New static function.
30131         (output_varpool): New function.
30132         (input_varpool_node): New static function.
30133         (input_varpool_1): New function.
30134         (input_cgraph): Input varpool.
30135         * ipa-pure-const.c (pure_const_write_summary): Update.
30136         * lto-streamer-out.c (lto_output): Update, output varpool too.
30137         (write_global_stream): Kill WPA hack.
30138         (produce_asm_for_decls): Update.
30139         (output_alias_pair_p): Handle variables.
30140         (output_unreferenced_globals): Output only needed partition of varpool.
30141         * ipa-inline.c (inline_write_summary): Update.
30142         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
30143         cgraph.
30144         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
30145         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
30146         varpool_node_set_new, varpool_node_set_add,
30147         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
30148         debug_varpool_node_set): New functions.
30149         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
30150         (execute_one_pass): Process new decls too.
30151         (ipa_write_summaries_2): Pass around vsets.
30152         (ipa_write_summaries_1): Likewise.
30153         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
30154         to add.
30155         (ipa_write_optimization_summaries_1): Pass around vsets.
30156         (ipa_write_optimization_summaries): Likewise.
30157         * varpool.c (varpool_get_node): New.
30158         (varpool_node): Update doubly linked lists.
30159         (varpool_remove_node): New.
30160         (dump_varpool_node): More dumping.
30161         (varpool_enqueue_needed_node): Update doubly linked lists.
30162         (decide_is_variable_needed): Kill ltrans hack.
30163         (varpool_finalize_decl): Kill lto hack.
30164         (varpool_assemble_decl): Skip decls in other partitions.
30165         (varpool_assemble_pending_decls): Update doubly linkes lists.
30166         (varpool_empty_needed_queue): Likewise.
30167         (varpool_extra_name_alias): Likewise.
30168         * lto-streamer.c (lto_get_section_name): Add vars section.
30169         * lto-streamer.h (lto_section_type): Update.
30170         (output_varpool, input_varpool): Declare.
30171
30172 2010-04-28  Mike Stump  <mikestump@comcast.net>
30173
30174         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
30175
30176 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30177
30178         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
30179         record or union type with RECORD_OR_UNION_TYPE_P predicate.
30180         (lto_input_ts_type_tree_pointers): Likewise.
30181         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
30182         (lto_output_ts_type_tree_pointers): Likewise.
30183
30184 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30185
30186         Uniquization of constants at the Tree level
30187         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
30188         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
30189         bit to the end.
30190         (tree_output_constant_def): Declare.
30191         * gimplify.c (gimplify_init_constructor): When using block copy, first
30192         uniquize the constant constructor on the RHS.
30193         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
30194         DECL_IN_CONSTANT_POOL flag.
30195         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
30196         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
30197         constant pool.
30198         (assemble_variable): Deal with symbols belonging to the tree constant
30199         pool.
30200         (get_constant_section): Add ALIGN parameter and simplify.
30201         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
30202         (assemble_constant_contents): Use the expression of the VAR_DECL.
30203         (output_constant_def_contents): Use the alignment of the VAR_DECL.
30204         (tree_output_constant_def): New global function.
30205         (mark_constant): Use the expression of the VAR_DECL.
30206         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
30207         its expression.
30208         (output_object_block): Likewise and assemble the expression.
30209
30210 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30211
30212         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
30213         hash_tree, eq_tree): New tree hash table.
30214         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
30215         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
30216         lto_orig_address_remove): Reimplement.
30217
30218 2010-04-28  Xinliang David Li  <davidxl@google.com>
30219
30220         PR c/42643
30221         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
30222         (compute_uninit_opnds_pos): New function.
30223         (is_non_loop_exit_postdominating): New function.
30224         (compute_control_dep_chain): New function.
30225         (find_pdom): New function.
30226         (convert_control_dep_chain_into_preds): New function.
30227         (find_predicates): New function.
30228         (find_control_equiv_block): New function.
30229         (collect_phi_def_edges): New function.
30230         (find_def_preds): New function.
30231         (find_dom): New function.
30232         (dump_predicates): New function.
30233         (get_cmp_code): New function.
30234         (is_value_included_in): New function.
30235         (find_matching_predicate_in_rest_chains): New function.
30236         (use_pred_not_overlap_with_undef_path_pred): New function.
30237         (is_use_properly_guarded): New function.
30238         (normalize_cond_1): New function.
30239         (is_and_or_or): New function.
30240         (normalize_cond): New function.
30241         (is_gcond_subset_of): New function.
30242         (is_subset_of_any): New function.
30243         (is_or_set_subset_of): New function.
30244         (is_and_set_subset_of): New function.
30245         (is_norm_cond_subset_of): New function.
30246         (is_pred_expr_subset_of): New function.
30247         (is_pred_chain_subset_of): New function.
30248         (is_included_in): New function.
30249         (is_superset_of): New function.
30250         (find_uninit_use): New function.
30251         (warn_uninitialized_phi): New function.
30252         (compute_possibly_undefined_names): New function.
30253         (ssa_undefined_value_p): New function.
30254         (execute_late_warn_uninitialized): New function.
30255         * tree-ssa.c (ssa_undefined_value_p): Removed.
30256         (warn_uninit): Changed to extern.
30257         (warn_uninitialized_phi): Removed.
30258         (warn_uninitialized_vars): Changed to extern.
30259         (execute_late_warn_uninitialized): Removed
30260         * tree-flow.h: Add new prototypes.
30261         * timevar.def: Add new time variable.
30262         * Makefile.in: Add new build file.
30263
30264 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
30265
30266         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
30267         type if available.
30268
30269 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30270
30271         PR target/22224
30272         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
30273
30274 2010-04-28  Martin Jambor  <mjambor@suse.cz>
30275
30276         * cgraph.h (struct cgraph_node): New field indirect_calls.
30277         (struct cgraph_indirect_call_info): New type.
30278         (struct cgraph_edge): Removed field indirect_call. New fields
30279         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
30280         (cgraph_create_indirect_edge): Declare.
30281         (cgraph_make_edge_direct): Likewise.
30282         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
30283         * ipa-prop.h (struct ipa_param_call_note): Removed.
30284         (struct ipa_node_params): Removed field param_calls.
30285         (ipa_create_all_structures_for_iinln): Declare.
30286         * cgraph.c: Described indirect edges and uids in initial comment.
30287         (cgraph_add_edge_to_call_site_hash): New function.
30288         (cgraph_edge): Search also among the indirect edges, use
30289         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
30290         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
30291         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
30292         site hash.
30293         (initialize_inline_failed): Assign a reason to indirect edges.
30294         (cgraph_create_edge_1): New function.
30295         (cgraph_create_edge): Moved some functionality to
30296         cgraph_create_edge_1.
30297         (cgraph_create_indirect_edge): New function.
30298         (cgraph_edge_remove_callee): Add an assert checking for
30299         non-indirectness.
30300         (cgraph_edge_remove_caller): Special-case indirect edges.
30301         (cgraph_remove_edge): Likewise.
30302         (cgraph_set_edge_callee): New function.
30303         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
30304         (cgraph_make_edge_direct): New function.
30305         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
30306         the declaration of the call statement matches.
30307         (cgraph_node_remove_callees): Special-case indirect edges.
30308         (cgraph_clone_edge): Likewise.
30309         (cgraph_clone_node): Clone also the indirect edges.
30310         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
30311         indirect_call, dump count of indirect_calls edges.
30312         * ipa-prop.c (iinlining_processed_edges): New variable.
30313         (ipa_note_param_call): Create indirect edges instead of
30314         creating notes.  New parameter node.
30315         (ipa_analyze_call_uses): New parameter node, pass it on to
30316         ipa_note_param_call.
30317         (ipa_analyze_stmt_uses): Likewise.
30318         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
30319         (print_edge_addition_message): Work on edges rather than on notes.
30320         (update_call_notes_after_inlining): Likewise, renamed to
30321         update_indirect_edges_after_inlining.
30322         (ipa_create_all_structures_for_iinln): New function.
30323         (ipa_free_node_params_substructures): Do not free notes.
30324         (ipa_edge_duplication_hook): Propagate bits within
30325         iinlining_processed_edges bitmap.
30326         (ipa_node_duplication_hook): Do not duplicate notes.
30327         (free_all_ipa_structures_after_ipa_cp): Renamed to
30328         ipa_free_all_structures_after_ipa_cp.
30329         (free_all_ipa_structures_after_iinln): Renamed to
30330         ipa_free_all_structures_after_iinln.
30331         (ipa_write_param_call_note): Removed.
30332         (ipa_read_param_call_note): Removed.
30333         (ipa_write_indirect_edge_info): New function.
30334         (ipa_read_indirect_edge_info): Likewise.
30335         (ipa_write_node_info): Do not stream notes, do stream information
30336         in indirect edges.
30337         (ipa_read_node_info): Likewise.
30338         (lto_ipa_fixup_call_notes): Removed.
30339         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
30340         * ipa-inline.c (pass_ipa_inline): Likewise.
30341         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
30342         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
30343         * tree-inline.c (copy_bb): Removed an unnecessary double check for
30344         is_gimple_call.
30345         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
30346         edges.
30347         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
30348         (output_cgraph): Stream also indirect edges.
30349         (lto_output_edge): Added capability to stream indirect edges.
30350         (input_edge): Likewise.
30351         (input_cgraph_1): Likewise.
30352         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
30353         of indirect edges.
30354
30355 2010-04-28  Richard Guenther  <rguenther@suse.de>
30356
30357         PR tree-optimization/43879
30358         PR tree-optimization/43909
30359         * tree-ssa-structalias.c (struct variable_info): Add
30360         only_restrict_pointers flag.
30361         (new_var_info): Initialize it.  Increment stats.total_vars here.
30362         (create_function_info_for): Do not increment stats.total_vars here.
30363         (get_function_part_constraint): Fix build with C++.
30364         (insert_into_field_list): Remove.
30365         (push_fields_onto_fieldstack): Properly merge fields.
30366         (create_variable_info_for): Split and simplify.
30367         (create_variable_info_for_1): New piece.
30368         (intra_create_variable_infos): Properly make restrict constraints
30369         from parameters.
30370
30371 2010-04-28  Richard Guenther  <rguenther@suse.de>
30372
30373         PR c++/43880
30374         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
30375
30376 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30377             Jan Hubicka  <hubicka@ucw.cz>
30378
30379         * doc/invoke.texi (-Wsuggest-attribute=const,
30380         -Wsuggest-attribute=pure): Document.
30381         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
30382         (function_always_visible_to_compiler_p,
30383         suggest_attribute, warn_function_pure, warn_function_const):
30384         New functions.
30385         (check_call): Improve debug info.
30386         (analyze_function): Do not check availability.
30387         (add_new_function): Check availability.
30388         (propagate): Output warnings.
30389         (skip_function_for_local_pure_const): New function.
30390         (local_pure_const): Use it; output warnings.
30391         * common.opt (Wsuggest-attribute=const,
30392         Wsuggest-attribute=pure): New.
30393
30394 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
30395
30396         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
30397         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
30398         or DW_CFA_def_cfa_offset{,_sf}.
30399
30400 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
30401
30402         * tree.h: Fix truncated long macros.
30403
30404 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
30405
30406         * collect2.c (TARGET_64BIT): Redefine to target's default.
30407         * tlink.c: Likewise.
30408         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
30409         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
30410         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
30411         for underscoring __USER_LABEL_PREFIX__.
30412         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
30413         (SUB_LINK_ENTRY32): New.
30414         (SUB_LINK_ENTRY64): New.
30415         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
30416         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
30417         (SUB_LINK_ENTRY64): New.
30418         (SUB_LINK_ENTRY): New.
30419         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
30420         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
30421         x64 target is choosen.
30422         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
30423         * configure: Regenerated.
30424         * configure.ac (leading-mingw64-underscores): Option added.
30425
30426 2010-04-27  Jan Hubicka  <jh@suse.cz>
30427
30428         * doc/invoke.texi (-fipa-profile): Document.
30429         * opts.c (decode_options): Enable ipa-profile at -O1.
30430         * timevar.def (TV_IPA_PROFILE): Define.
30431         * common.opt (fipa-profile): Add.
30432         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
30433         flag for clones.
30434         (cgraph_propagate_frequency): Handle only local ones.
30435         * tree-pass.h (pass_ipa_profile): Declare.
30436         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
30437         (pass_ipa_profile): Use TV_IPA_PROFILE.
30438         * ipa.c (ipa_profile): New function.
30439         (gate_ipa_profile): Likewise.
30440         (pass_ipa_profile): New global variable.
30441         * passes.c (pass_ipa_profile): New.
30442
30443 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
30444
30445         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
30446
30447 2010-04-27  Martin Jambor  <mjambor@suse.cz>
30448
30449         PR middle-end/43812
30450         * ipa.c (dissolve_same_comdat_group_list): New function.
30451         (function_and_variable_visibility): Call
30452         dissolve_same_comdat_group_list when comdat group contains external or
30453         newly local nodes.
30454         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
30455         lists are circular and that they contain only DECL_ONE_ONLY nodes.
30456
30457 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
30458
30459         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
30460         (const_hash_1) <VECTOR_CST>: New case.
30461         (compare_constant) <VECTOR_CST>: Likewise.
30462         <ADDR_EXPR>: Deal with LABEL_REFs.
30463         (copy_constant) <VECTOR_CST>: New case.
30464
30465 2010-04-27  Jan Hubicka  <jh@suse.cz>
30466
30467         * cgraph.c (cgraph_propagate_frequency): New function.
30468         * cgraph.h (cgraph_propagate_frequency): Declare.
30469         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
30470         cgraph_propagate_frequency.
30471
30472 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
30473
30474         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
30475
30476 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
30477
30478         PR target/40657
30479         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
30480         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
30481         here to determine which regs to push and how much stack to reserve.
30482
30483 2010-04-27  Jie Zhang  <jie@codesourcery.com>
30484
30485         * doc/gimple.texi (gimple_statement_with_ops): Remove
30486         addresses_taken field.
30487         (gimple_statement_with_memory_ops): Likewise.
30488
30489 2010-04-27  Jan Hubicka  <jh@suse.cz>
30490
30491         * tree-inline.c (eni_inlining_weights): Remove.
30492         (estimate_num_insns): Special case more builtins.
30493
30494 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
30495
30496         PR c/32207
30497         * c-typeck.c (build_binary_op): Move forward check for comparison
30498         pointer with null pointer constant and adjust the diagnostic message.
30499
30500 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
30501
30502         PR lto/42776
30503         * configure.ac (gcc_cv_as_section_has_align): Set if installed
30504         binutils supports extended .section directive needed by LTO, or
30505         warn if older binutils found.
30506         (LTO_BINARY_READER): New AC_SUBST'd variable.
30507         (LTO_USE_LIBELF): Likewise.
30508         * config.gcc (lto_binary_reader): New target-specific configure
30509         variable.
30510         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
30511         (LTO_USE_LIBELF): Likewise.
30512         * configure: Regenerate.
30513
30514         * collect2.c (is_elf): Rename from this ...
30515         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
30516          object files in addition to ELF-formatted ones.
30517         (scan_prog_file): Caller updated.  Also allow for LTO info marker
30518         symbol to be prefixed or not by an extra underscore.
30519
30520         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
30521         * config/i386/winnt.c: Also #include lto-streamer.h
30522         (i386_pe_asm_named_section): Specify 1-byte section alignment for
30523         LTO named sections.
30524         (i386_pe_asm_output_aligned_decl_common): Add comment.
30525         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
30526
30527 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
30528
30529         PR target/43889
30530         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
30531         Add missing earlyclobber for second alternative.
30532
30533 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
30534
30535         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
30536         bits for artificial defs at the top of the block.
30537         * fwprop.c (single_def_use_enter_block): Don't call it.
30538
30539 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
30540
30541         PR 43715
30542         * configure.ac: Use "$gcc_cv_nm -g" on darwin
30543         instead of "$gcc_cv_objdump -T".
30544         Use "-undefined dynamic_lookup" on darwin.
30545         * configure: Regenerate.
30546
30547 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
30548
30549         PR c/43893
30550         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
30551
30552 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
30553
30554         * c-parser.c (struct c_token): Move location field up.
30555         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
30556         (struct c_declspecs): Convert typespec_word, storage_class, and
30557         default_int_p into bitfields.
30558         (struct c_declarator): Move loc field up.
30559
30560 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
30561
30562         * cfgloop.h (struct loop): Move can_be_parallel field up.
30563         * ipa-prop.h (struct ip_node_params): Move bitfields up.
30564         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
30565         down.
30566         (struct iv_cand): Convert pos field into a bitfield.
30567         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
30568         field up.
30569         (struct _stmt_vec_info): Shuffle fields for better packing.
30570
30571 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
30572
30573         * varasm.c (IN_NAMED_SECTION): Remove guard.
30574         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
30575         (IN_NAMED_SECTION_P): ...this.
30576         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
30577         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
30578
30579 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
30580
30581         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
30582         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
30583         of shadowing it.  Fix comments.
30584
30585 2010-04-26  Jan Hubicka  <jh@suse.cz>
30586
30587         * cgraph.c (cgraph_create_node): Set node frequency to normal.
30588         (cgraph_clone_node): Copy function frequency.
30589         * cgraph.h (node_frequency): New enum
30590         (struct cgraph_node): Add.
30591         * final.c (rest_of_clean_state): Update.
30592         * lto-cgraph.c (lto_output_node): Output node frequency.
30593         (input_overwrite_node): Input node frequency.
30594         * tre-ssa-loop-ivopts (computation_cost): Update.
30595         * lto-streamer-out.c (output_function): Do not output function
30596         frequency.
30597         * predict.c (maybe_hot_frequency_p): Update and handle functions
30598         executed once.
30599         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
30600         attribute lookup.
30601         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
30602         (compute_function_frequency): Set noreturn functions to be executed
30603         once.
30604         (choose_function_section): Update.
30605         * lto-streamer-in.c (input_function): Do not input function frequency.
30606         * function.c (allocate_struct_function): Do not initialize function
30607         frequency.
30608         * function.h (function_frequency): Remove.
30609         (struct function): Remove function frequency.
30610         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
30611         (try_update): Update.
30612         * tree-inline.c (initialize_cfun): Do not update function frequency.
30613         * passes.c (pass_init_dump_file): Update.
30614         * i386.c (ix86_compute_frame_layout): Update.
30615         (ix86_pad_returns): Update.
30616
30617 2010-04-26  Jie Zhang  <jie@codesourcery.com>
30618
30619         PR tree-optimization/43833
30620         * tree-vrp.c (range_int_cst_p): New.
30621         (range_int_cst_singleton_p): New.
30622         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
30623         when both operands are constants.  Use range_int_cst_p in
30624         BIT_IOR_EXPR case.
30625
30626 2010-04-26  Jan Hubicka  <jh@suse.cz>
30627
30628         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
30629
30630 2010-04-26  Richard Guenther  <rguenther@suse.de>
30631
30632         PR lto/43080
30633         * gimple.c (gimple_decl_printable_name): Deal gracefully
30634         with a NULL DECL_NAME.
30635
30636 2010-04-26  Richard Guenther  <rguenther@suse.de>
30637
30638         PR lto/42425
30639         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
30640         if emitting debug information and it is either a function
30641         or a namespace decl.
30642
30643 2010-04-26  Ira Rosen  <irar@il.ibm.com>
30644
30645         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
30646         determine if the statement is vectorizable, and a macro to access it.
30647         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
30648         Skip statements that can't be vectorized. If the analysis fails,
30649         mark the statement as unvectorizable if vectorizing basic block.
30650         (vect_compute_data_refs_alignment): Likewise.
30651         (vect_verify_datarefs_alignment): Skip statements marked as
30652         unvectorizable. Add print.
30653         (vect_analyze_group_access): Skip statements that can't be
30654         vectorized. If the analysis fails, mark the statement as
30655         unvectorizable if vectorizing basic block.
30656         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
30657         * tree-vect-stmts.c (vectorizable_store): Fix the number of
30658         generated stmts for SLP.
30659         (new_stmt_vec_info): Initialize the new field.
30660         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
30661         statements marked as unvectorizable.
30662
30663 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
30664
30665         * c-common.c (flag_isoc1x): New.
30666         (flag_isoc99): Update comment.
30667         * c-common.h (flag_isoc1x): New.
30668         (flag_isoc99): Update comment.
30669         * c-cppbuiltin.c (builtin_define_float_constants): Also define
30670         __<type>_DECIMAL_DIG__.
30671         * c-opts.c (set_std_c1x): New.
30672         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
30673         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
30674         * c.opt (-std=c1x, -std=gnu1x): New options.
30675         * doc/cpp.texi: Mention -std=c1x.
30676         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
30677         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
30678         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
30679         * doc/standards.texi: Mention C1X.
30680         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
30681         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
30682         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
30683         Define for C1X.
30684
30685 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
30686
30687         * config/i386/gmon-sol2.c (_mcleanup): Change format string
30688         placeholder from 0x%x to %#x.
30689         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
30690         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
30691         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
30692         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
30693         * config/i386/i386.c (ix86_target_string): Ditto.
30694         (output_pic_addr_const): Ditto.
30695         (print_operand): Ditto.
30696
30697 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
30698
30699         * combine.c (find_split_point): Add third argument.  Use it
30700         to find nested multiply-accumulate instructions.  Adjust calls.
30701         (try_combine): Adjust call to find_split_point.
30702
30703 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
30704
30705         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
30706
30707 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
30708
30709         PR tree-optimization/41442
30710         * fold-const.c (merge_truthop_with_opposite_arm): New function.
30711         (fold_binary_loc): Call it.
30712
30713 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30714
30715         * toplev.c (general_init): Set default for fdiagnostics-show-option.
30716         * opts.c (common_handle_option): Allow disabling it.
30717         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
30718
30719 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
30720
30721         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
30722         between modes if both types are integral.
30723
30724 2010-04-23  Richard Guenther  <rguenther@suse.de>
30725
30726         PR tree-optimization/43572
30727         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
30728
30729 2010-04-23  Richard Guenther  <rguenther@suse.de>
30730
30731         PR lto/43455
30732         * tree-inline.c (tree_can_inline_p): Also check compatibility
30733         of return types.
30734
30735 2010-04-23  Martin Jambor  <mjambor@suse.cz>
30736
30737         PR tree-optimization/43846
30738         * tree-sra.c (struct access): New flag grp_assignment_read.
30739         (build_accesses_from_assign): Set grp_assignment_read.
30740         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
30741         (enum mark_read_status): New type.
30742         (analyze_access_subtree): Propagate grp_assignment_read, create
30743         accesses also if both direct_read and root->grp_assignment_read.
30744
30745 2010-04-23  Martin Jambor  <mjambor@suse.cz>
30746
30747         PR middle-end/43835
30748         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
30749         function does not have type attributes.
30750
30751 2010-04-23  Richard Guenther  <rguenther@suse.de>
30752
30753         PR lto/42653
30754         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
30755         of FUNCTION_DECLs.
30756
30757 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30758
30759         * sese.h (create_if_region_on_edge): Remove.
30760
30761         * sese.c (create_if_region_on_edge): Make static.
30762
30763         * tree-inline.c: Do not include ggc.h.
30764
30765         * expr.c: Do not include ggc.h.
30766
30767         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
30768         dependencies.
30769
30770 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
30771
30772         PR target/43744
30773         * config/sh/sh.c (find_barrier): Don't emit a constant pool
30774         in the middle of insns for casesi_worker_2.
30775
30776 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
30777
30778         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
30779
30780 2010-04-22  Ira Rosen  <irar@il.ibm.com>
30781
30782         PR tree-optimization/43842
30783         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
30784         loop unrolling in update of exit phis. Fix comment.
30785         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
30786         least two reduction statements in the loop before starting SLP
30787         analysis.
30788
30789 2010-04-22  Nick Clifton  <nickc@redhat.com>
30790
30791         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
30792
30793 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
30794
30795         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
30796         to simplify a + ~a.
30797
30798 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30799
30800         * tree-parloops.c (loop_parallel_p): New argument
30801         parloop_obstack.  Pass it down.
30802         (parallelize_loops): New variable parloop_obstack.  Initialize it,
30803         pass it down, free it.
30804
30805         * tree-loop-linear.c (linear_transform_loops): Pass down
30806         lambda_obstack.
30807
30808         * tree-data-ref.h (lambda_compute_access_matrices): New argument
30809         of type struct obstack *.
30810
30811         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
30812         scratch_obstack.  Initialize it, pass down, free it.
30813
30814         * lambda.h (lambda_loop_new): Remove.
30815         (lambda_matrix_new, lambda_matrix_inverse)
30816         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
30817         argument of type struct obstack *.
30818
30819         * lambda-trans.c (lambda_trans_matrix_new): New argument
30820         lambda_obstack.  Pass it down, use obstack allocation for ret.
30821         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
30822         it down.
30823
30824         * lambda-mat.c (lambda_matrix_get_column)
30825         (lambda_matrix_project_to_null): Remove.
30826         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
30827         allocation for mat.
30828         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
30829         lambda_obstack.
30830
30831         * lambda-code.c (lambda_loop_new): New function.
30832         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
30833         (lambda_compute_auxillary_space, lambda_compute_target_space)
30834         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
30835         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
30836         (build_access_matrix): New argument lambda_obstack.  Use obstack
30837         allocation for am.
30838         (lambda_compute_step_signs, lambda_compute_access_matrices): New
30839         argument lambda_obstack.  Pass it down.
30840
30841 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
30842
30843         * optabs.h (expand_widening_mult): Declare.
30844
30845 2010-04-22  Richard Guenther  <rguenther@suse.de>
30846
30847         PR tree-optimization/43845
30848         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
30849         lookup the CALL_EXPR function and arguments.
30850
30851 2010-04-22  Nick Clifton  <nickc@redhat.com>
30852
30853         * config/stormy16/stormy16.c
30854         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
30855         * config/stormy16/stormy16.h: Tidy up formatting.
30856         (DONT_USE_BUILTIN_SETJMP): Remove definition.
30857         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
30858         (ineqbranchsi): Delete pattern.
30859         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
30860         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
30861         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
30862         stormy16-lib2-ucmpsi2.c.
30863
30864 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
30865
30866         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
30867         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
30868         extra set merge_set_noclobber, and use it to relax the final test
30869         slightly.
30870         * df.h (df_simulate_find_noclobber_defs): Declare.
30871         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
30872         conditional defs.
30873         (df_simulate_find_noclobber_defs): New function.
30874
30875 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
30876
30877         * config/i386/i386.md: Use {} around multi-line preparation statements.
30878
30879 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30880
30881         * c-tree.h (push_init_level, pop_init_level, set_init_index)
30882         (process_init_element): New argument of type struct obstack *.
30883
30884         * c-typeck.c (push_init_level, pop_init_level, set_designator)
30885         (set_init_index, set_init_label, set_nonincremental_init)
30886         (set_nonincremental_init_from_string, find_init_member)
30887         (output_init_element, output_pending_init_elements)
30888         (process_init_element): New argument braced_init_obstack.  Pass it
30889         down.
30890         (push_range_stack, add_pending_init): New argument
30891         braced_init_obstack.  Use obstack allocation.
30892
30893         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
30894         braced_init_obstack.  Pass it down.
30895         (c_parser_braced_init): New variables ret, braced_init_obstack.
30896         Initialize obstack, pass it down and finally free it.
30897
30898 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
30899
30900         PR middle-end/29274
30901         * tree-pass.h (pass_optimize_widening_mul): Declare.
30902         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
30903         gate_optimize_widening_mul): New static functions.
30904         (pass_optimize_widening_mul): New.
30905         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
30906         <case MULT_EXPR>: Remove support for widening multiplies.
30907         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
30908         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
30909         simplify_gen_unary rather than directly building extensions.
30910         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
30911         WIDEN_MULT_EXPR.
30912         * expmed.c (expand_widening_mult): New function.
30913         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
30914
30915 2010-04-21  Jan Hubicka  <jh@suse.cz>
30916
30917         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
30918         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
30919         * lto-wpa-fixup.c: Remove.
30920         * Makefile.in (lto-wpa-fixup.o): Remove.
30921         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
30922         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
30923         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
30924
30925 2010-04-21  Jan Hubicka  <jh@suse.cz>
30926
30927         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
30928         add write_optimization_summary, read_optimization_summary.
30929         (ipa_write_summaries_of_cgraph_node_set): Remove.
30930         (ipa_write_optimization_summaries): Declare.
30931         (ipa_read_optimization_summaries): Declare.
30932         * ipa-cp.c (pass_ipa_cp): Update.
30933         * ipa-reference.c (pass_ipa_reference): Update.
30934         * ipa-pure-const.c (pass_ipa_pure_const): Update.
30935         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
30936         Update.
30937         * ipa-inline.c (pass_ipa_inline): Update.
30938         * ipa.c (pass_ipa_whole_program): Update.
30939         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
30940         * passes.c (ipa_write_summaries_1): Do not test wpa.
30941         (ipa_write_optimization_summaries_1): New.
30942         (ipa_write_optimization_summaries): New.
30943         (ipa_read_summaries): Do not test ltrans.
30944         (ipa_read_optimization_summaries_1): New.
30945         (ipa_read_optimization_summaries): New.
30946
30947 2010-04-21  Jan Hubicka  <jh@suse.cz>
30948
30949         * lto-cgraph.c (lto_output_node): Do not output comdat groups
30950         for boundary nodes.
30951         (output_cgraph): Do not arrange comdat groups for boundary nodes.
30952
30953 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
30954
30955         PR debug/40040
30956         * dwarf2out.c (add_name_and_src_coords_attributes): Add
30957         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
30958
30959 2010-04-21  Jan Hubicka  <jh@suse.cz>
30960
30961         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
30962
30963 2010-04-21  Jan Hubicka  <jh@suse.cz>
30964
30965         * varpool.c (decide_is_variable_needed): Variable is always needed
30966         during ltrans.
30967
30968 2010-04-21  Jan Hubicka  <jh@suse.cz>
30969
30970         * opts.c (decode_options): Enable pure-const pass for whopr.
30971
30972 2010-04-21  Jan Hubicka  <jh@suse.cz>
30973
30974         * cgraph.c (dump_cgraph_node): Dump also assembler name.
30975         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
30976         at WPA dumping.
30977         (cgraph_decide_inlining): Do not expect callee to be removed in all
30978         cases.
30979
30980 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
30981
30982         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
30983
30984 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
30985
30986         * config/i386/i386.md (x86_shrd): Add athlon_decode and
30987         amdfam10_decode attributes.
30988
30989 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
30990
30991         PR middle-end/43570
30992         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
30993         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
30994         (lower_copyprivate_clauses): Use private var in outer
30995         context instead of original var.  Make sure the types
30996         are correct for VLAs.
30997
30998 2010-04-21  Richard Guenther  <rguenther@suse.de>
30999
31000         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
31001         to non-pointer objects.
31002
31003 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31004
31005         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
31006         last chain entry if it starts with the still current label.
31007         (add_location_or_const_value_attribute): Check that
31008         loc_list->first->next is NULL instead of comparing ->first with ->last.
31009         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
31010         to add_var_loc_to_decl.
31011
31012         * dwarf2out.c (output_call_frame_info): For dw_cie_version
31013         >= 4 add also address size and segment size fields into CIE header.
31014
31015         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
31016         long as address size is the same as sizeof (void *) and
31017         segment size is 0.
31018         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
31019         address size or segment size is unexpected, return DW_EH_PE_omit.
31020         (classify_object_over_fdes): If get_cie_encoding returned
31021         DW_EH_PE_omit, return -1.
31022         (init_object): If classify_object_over_fdes returned -1,
31023         pretend there were no FDEs at all.
31024
31025 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
31026
31027         * config/i386/i386.md (bswap<mode>2): Macroize expander from
31028         bswap{si,di}2 using SWI48 mode iterator.
31029         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
31030         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
31031         set modrm attribute of bswap insn to 0 and remove length attribute.
31032         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
31033         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
31034         set mode attribute to <MODE> and remove length attribute.
31035
31036 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
31037
31038         PR rtl-optimization/43520
31039         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
31040         zero available registers.
31041
31042 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31043
31044         * builtins.c (fold_builtin_cproj): Fold more cases.
31045
31046 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31047
31048         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
31049         (fold_builtin_1): Fold builtin cproj.
31050         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
31051         Use ATTR_CONST_NOTHROW_LIST.
31052
31053 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
31054
31055         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
31056         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
31057         ffsi2_no_cmove for !TARGET_CMOVE.
31058         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
31059         (ffssi2): Remove expander.
31060         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
31061         mode iterator.
31062         (ctz<mode>2): Ditto from ctz{si,di}2.
31063         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
31064         mode iterator.
31065         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
31066         mode iterator.
31067
31068 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
31069
31070         * dwarf2out.c (AT_linkage_name): Define.
31071         (clone_as_declaration): Handle DW_AT_linkage_name.
31072         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
31073         of DW_AT_MIPS_linkage_name.
31074         (move_linkage_attr): Likewise.
31075         (dwarf2out_finish): Likewise.
31076
31077 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
31078
31079         PR middle-end/41952
31080         * fold-const.c (fold_comparison): New folding rule.
31081
31082 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
31083
31084         * double-int.h (double_int_setbit): Declare.
31085         * double-int.c (double_int_setbit): New function.
31086         * rtl.h (immed_double_int_const): Declare.
31087         * emit-rtl.c (immed_double_int_const): New function.
31088         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
31089         and immed_double_int_const functions.
31090         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
31091         expand_copysign_bit): (Ditto.).
31092         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
31093         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
31094         * dojump.c (prefer_and_bit_test): (Ditto.).
31095         * expr.c (convert_modes, reduce_to_bit_field_precision,
31096         const_vector_from_tree): (Ditto.).
31097         * expmed.c (mask_rtx, lshift_value): (Ditto.).
31098
31099 2010-04-20  Jan Hubicka  <jh@suse.cz>
31100
31101         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
31102         (dump_cgraph_node): Dump new flags.
31103         * cgraph.h (struct cgraph_node): Add flags
31104         reachable_from_other_partition and in_other_partition.
31105         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
31106         other partition can not be removed.
31107         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
31108         the other partition must be output; silence sanity checking on
31109         leaking functions bodies from other paritition.
31110         * lto-cgraph.c (reachable_from_other_partition_p): New function.
31111         (lto_output_node): Output new flags; do not sanity check that inline
31112         clones are output; drop lto_forced_extern_inline_p code; do not mock
31113         visibility flags at partition boundaries.
31114         (add_node_to): New function.
31115         (output_cgraph): Use it to sort functions so masters appear before
31116         clones.
31117         (input_overwrite_node): Input new flags.
31118         * passes.c (ipa_write_summaries): Do not call
31119         lto_new_extern_inline_states.
31120         * lto-section-out.c (forced_extern_inline,
31121         lto_new_extern_inline_states lto_delete_extern_inline_states,
31122         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
31123         * lto-streamer.h (lto_new_extern_inline_states,
31124         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
31125         lto_forced_extern_inline_p): Kill.
31126
31127 2010-04-20  Richard Guenther  <rguenther@suse.de>
31128
31129         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
31130         from vars that can have pointers.
31131         (process_constraint): Dump useless constraints.
31132
31133 2010-04-20  Richard Guenther  <rguenther@suse.de>
31134
31135         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
31136         (dump_sa_points_to_info): Remove asserts.
31137         (init_base_vars): nothing_id isn't an escape point nor does it
31138         have pointers.
31139
31140 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
31141
31142         * tree.h (TYPE_REF_IS_RVALUE): Define.
31143         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
31144         should_move_die_to_comdat, prune_unused_types_walk): Handle
31145         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
31146         (modified_type_die, gen_reference_type_die): Emit
31147         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
31148         if TYPE_REF_IS_RVALUE and -gdwarf-4.
31149
31150 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31151
31152         PR target/43635
31153         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
31154         calls for -fpic -m31 if they have been sibcall optimized.
31155
31156 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
31157
31158         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
31159         ar.lc fixed and call-used.
31160
31161         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
31162
31163 2010-04-19  Jan Hubicka  <jh@suse.cz>
31164
31165         * opts.c (decode_options): Disable whpr incompatible passes.
31166         * lto/lto.c (lto_1_to_1_map): Skip clones.
31167         (read_cgraph_and_symbols): Do not mark everything as needed.
31168         (do_whole_program_analysis): Do map only after optimizing;
31169         set proper cgraph_state; use passmanager.
31170
31171 2010-04-19  DJ Delorie  <dj@redhat.com>
31172
31173         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
31174         POINTER_PLUS_EXPR and fix them.
31175
31176 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
31177
31178         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
31179         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
31180         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
31181         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
31182         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
31183         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
31184         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
31185         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
31186         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
31187         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
31188         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
31189
31190 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
31191
31192         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
31193         (check_cond_move_block): Likewise.
31194         (cond_move_process_if_block): Likewise.
31195         (noce_find_if_block): Improve formatting.
31196         (find_if_header): Pass 0 to memset and tweak conditions.
31197         (cond_exec_find_if_block): Fix long lines and tweak conditions.
31198
31199 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
31200
31201         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
31202         for -gdwarf-4.
31203
31204         PR middle-end/43337
31205         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
31206         with non-local decl doesn't need chain.
31207
31208 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
31209
31210         * ira-color.c (allocno_reload_assign): Avoid accumulating
31211         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
31212
31213 2010-04-19  Martin Jambor  <mjambor@suse.cz>
31214
31215         * gimple.h (create_tmp_reg): Declare.
31216         * gimplify.c (create_tmp_reg): New function.
31217         (gimplify_return_expr): Use create_tmp_reg.
31218         (gimplify_omp_atomic): Likewise.
31219         (gimple_regimplify_operands): Likewise.
31220         * tree-dfa.c (make_rename_temp): Likewise.
31221         * tree-predcom.c (predcom_tmp_var): Likewise.
31222         (reassociate_to_the_same_stmt): Likewise.
31223         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
31224         (get_replaced_param_substitute): Likewise.
31225         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
31226         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
31227         * tree-ssa-pre.c (get_representative_for): Likewise.
31228         (create_expression_by_pieces): Likewise.
31229         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
31230         (create_tailcall_accumulator): Likewise.
31231
31232 2010-04-19  Martin Jambor  <mjambor@suse.cz>
31233
31234         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
31235         new_stmt.
31236         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
31237
31238 2010-04-19  Richard Guenther  <rguenther@suse.de>
31239
31240         PR tree-optimization/43796
31241         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
31242         from SCEV in the lattice.
31243         (vrp_visit_phi_node): Dump change.
31244
31245 2010-04-19  Richard Guenther  <rguenther@suse.de>
31246
31247         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
31248         * configure: Re-generated.
31249
31250 2010-04-19  Richard Guenther  <rguenther@suse.de>
31251
31252         PR tree-optimization/43783
31253         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
31254         constant ARRAY_REF operands two and three if possible.
31255
31256 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
31257
31258         PR target/43766
31259         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
31260
31261 2010-04-19  Jie Zhang  <jie@codesourcery.com>
31262
31263         PR target/43662
31264         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
31265
31266 2010-04-19  Ira Rosen  <irar@il.ibm.com>
31267
31268         PR tree-optimization/37027
31269         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
31270         and macro to access it.
31271         (vectorizable_reduction): Add argument.
31272         (vect_get_slp_defs): Likewise.
31273         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
31274         statements for possible use in SLP.
31275         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
31276         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
31277         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
31278         add new argument.
31279         (vectorizable_reduction): Likewise.
31280         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
31281         vect_get_slp_defs.
31282         (vectorizable_type_demotion, vectorizable_type_promotion,
31283         vectorizable_store): Likewise.
31284         (vect_analyze_stmt): Update call to vectorizable_reduction.
31285         (vect_transform_stmt): Likewise.
31286         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
31287         (vect_build_slp_tree): Fix indentation. Check that there are no loads
31288         from different interleaving chains in same node.
31289         (vect_slp_rearrange_stmts): New function.
31290         (vect_supported_load_permutation_p): Allow load permutations for
31291         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
31292         inside SLP nodes if necessary.
31293         (vect_analyze_slp_instance): Handle reductions.
31294         (vect_analyze_slp): Try to build SLP instances originating from groups
31295         of reductions.
31296         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
31297         (vect_get_constant_vectors): Create initial vectors for reductions
31298         according to reduction code. Add new argument.
31299         (vect_get_slp_defs): Add new argument, pass it to
31300         vect_get_constant_vectors.
31301         (vect_schedule_slp_instance): Remove SLP tree root statements.
31302
31303 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
31304
31305         * tree.h (ENUM_IS_SCOPED): Define.
31306         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
31307         for ENUM_IS_SCOPED enums.
31308
31309 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
31310
31311         * fold-const.c (fold_comparison): Use ssizetype.
31312         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
31313         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
31314         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
31315         * tree-object-size.c (compute_object_sizes): Use size_type_node.
31316
31317         * tree.h (initialize_sizetypes): Remove parameter.
31318         (build_common_tree_nodes): Remove second parameter.
31319         * stor-layout.c (initialize_sizetypes): Remove parameter.
31320         Always create an unsigned type.
31321         (set_sizetype): Assert that the passed type is unsigned and simplify.
31322         * tree.c (build_common_tree_nodes): Remove second parameter.
31323         Adjust call to initialize_sizetypes.
31324         * c-decl.c (c_init_decl_processing): Remove second argument in call to
31325         build_common_tree_nodes.
31326
31327 2010-04-18  Matthias Klose  <doko@ubuntu.com>
31328
31329         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
31330
31331 2010-04-18  Ira Rosen  <irar@il.ibm.com>
31332
31333         PR tree-optimization/43771
31334         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
31335         load permutation doesn't have gaps.
31336
31337 2010-04-18  Jan Hubicka  <jh@suse.cz>
31338
31339         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
31340         (sse_prologue_save_insn expander): Use new pattern.
31341         (sse_prologue_save_insn1): New pattern and splitter.
31342         (sse_prologue_save_insn): Update to deal also with 64bit aligned
31343         blocks.
31344         * i386.c (setup_incoming_varargs_64): Do not compute jump
31345         destination here.
31346         (ix86_gimplify_va_arg): Update alignment needed.
31347         (ix86_local_alignment): Do not align all local arrays to 128bit.
31348
31349 2010-04-17  Jan Hubicka  <jh@suse.cz>
31350
31351         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
31352
31353 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
31354
31355         * arm.md (negdi2): Remove redundant code to force values into a
31356         register.
31357
31358 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
31359
31360         * arm/bpabi.S: Add EABI alignment attributes to objects.
31361         * arm/bpabi-v6m.S: Likewise.
31362         * arm/crti.asm: Likewise.
31363         * arm/crtn.asm: Likewise.
31364         * arm/lib1funcs.asm: Likewise.
31365         * arm/libunwind.S: Likewise.
31366
31367 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
31368
31369         * arm-protos.h (tune_params): New structure.
31370         * arm.c (current_tune): New variable.
31371         (arm_constant_limit): Delete.
31372         (struct processors): Add pointer to the tune parameters.
31373         (arm_slowmul_tune): New tuning option.
31374         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
31375         (all_cores): Adjust to pick up the tuning model.
31376         (arm_constant_limit): New function.
31377         (arm_override_options): Select the appropriate tuning model.  Delete
31378         initialization of arm_const_limit.
31379         (arm_split_constant): Use the new constant-limit model.
31380         (arm_rtx_costs): Pick up the current tuning model.
31381         * arm.md (is_strongarm, is_xscale): Delete.
31382         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
31383         for Xscale variant architectures.
31384         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
31385
31386 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31387
31388         * config/arm/arm.c (arm_gen_constant): Remove unused variable
31389         can_shift.
31390         (arm_rtx_costs_1): Remove unused variable extra_cost.
31391         (arm_unwind_emit_set): Use variable offset.
31392         (thumb1_output_casesi): Remove unused variable flags.
31393
31394 2010-04-16  Jeff Law  <law@redhat.com>
31395
31396         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
31397         needing assignment rather than doing a two-phase assignment.  Remove
31398         unused variable 'm'.
31399
31400 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
31401
31402         PR bootstrap/43767
31403         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
31404
31405 2010-04-16  Doug Kwan  <dougkwan@google.com>
31406
31407         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
31408         (next_operand_entry_id): New static variable.
31409         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
31410         (add_to_ops_vec): Assigned unique ID to operand entry.
31411         (struct oecount_s): New field ID.
31412         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
31413         (undistribute_ops_list): Assign unique IDs to oecounts.
31414         (init_reassoc): reset next_operand_entry_id.
31415
31416 2010-04-16  Doug Kwan  <dougkwan@google.com>
31417
31418         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
31419         missing left parenthesis.
31420
31421 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
31422
31423         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
31424         *btdi_rex64 using SWI48 mode iterator.
31425         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
31426         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
31427         *jcc_btdi_mask_rex64.
31428
31429 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
31430
31431         * double-int.h (tree_to_double_int): Convert to macro.
31432         * double-int.c (tree_to_double_int): Remove.
31433
31434 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
31435
31436         PR debug/43762
31437         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
31438         with want_address 2 and in case a single element list might be
31439         possible, call it again with want_address 0.
31440
31441 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
31442
31443         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
31444         case 'W' print operands for HI mode.
31445         * config/h8300/h8300.h (Y0, Y2) : New constraints.
31446         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
31447         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
31448         * config/h8300/predicate.md (bit_register_indirect_operand): New.
31449
31450         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
31451
31452         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
31453         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
31454         #xx:3 and #xx:4 mode.
31455
31456         * config/h8300/h8300.md (inverted load with HImode dest): Add
31457         support for H8300SX.
31458
31459         * config/h8300/predicate.md (bit_operand): Allow immediate values that
31460         satisfy 'U' constraint.
31461
31462 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31463
31464         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
31465         * configure: Regenerate.
31466         * config.in: Regenerate.
31467         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
31468         works.
31469
31470 2010-04-16  Richard Guenther  <rguenther@suse.de>
31471
31472         * tree.h (struct tree_decl_minimal): Move pt_uid ...
31473         (struct tree_decl_common): ... here.
31474         (DECL_PT_UID): Adjust.
31475         (SET_DECL_PT_UID): Likewise.
31476         (DECL_PT_UID_SET_P): Likewise.
31477
31478 2010-04-16  Richard Guenther  <rguenther@suse.de>
31479
31480         PR tree-optimization/43572
31481         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
31482         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
31483         * tree-flow.h (is_call_clobbered): Remove.
31484         * tree-flow-inline.h (is_call_clobbered): Likewise.
31485         * tree-dfa.c (dump_variable): Do not dump call clobber state.
31486         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
31487         (execute_return_slot_opt): Adjust.
31488         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
31489         check for call clobbered vars here.
31490         (find_tail_calls): Move tailcall verification to the
31491         proper place.
31492
31493 2010-04-16  Diego Novillo  <dnovillo@google.com>
31494
31495         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
31496
31497 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
31498
31499         PR target/40603
31500         * config/arm/arm.md (cbranchqi4): New pattern.
31501         * config/arm/predicates.md (const0_operand,
31502         cbranchqi4_comparison_operator): New predicates.
31503
31504 2010-04-16  Richard Guenther  <rguenther@suse.de>
31505
31506         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
31507         (dump_gimple_stmt): Likewise.
31508
31509 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
31510
31511         * recog.h (struct recog_data): New field is_operator.
31512         (struct insn_operand_data): New field is_operator.
31513         * recog.c (extract_insn): Set recog_data.is_operator.
31514         * genoutput.c (output_operand_data): Emit code to set the
31515         is_operator field.
31516         * reload.c (find_reloads): Use it rather than testing for an
31517         empty constraint string.
31518
31519         PR target/41514
31520         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
31521         If the previous insn is a cbranchsi4_insn with the same arguments,
31522         omit the compare instruction.
31523
31524         * config/arm/arm.md (addsi3_cbranch): If destination is a high
31525         register, inputs must be low registers and we need a low register
31526         scratch.  Handle alternative 2 like alternative 3.
31527
31528 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
31529
31530         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
31531         don't call get_addr on both.  If one expression is a VALUE and
31532         the other a REG, check VALUE's locs if the REG isn't among them.
31533
31534 2010-04-16  Christian Bruel  <christian.bruel@st.com>
31535
31536         * config/sh/sh.h (sh_frame_pointer_required): New function.
31537         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
31538         (flag_omit_frame_pointer) Set.
31539         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
31540         (rounded_frame_size): Adjust size with outgoing_args_size.
31541         (sh_set_return_address): Must return from stack pointer.
31542         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
31543         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
31544         (ACCUMULATE_OUTGOING_ARGS): Define.
31545         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
31546         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
31547
31548 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
31549
31550         PR target/43471
31551         * config/sh/sh.c (sh_legitimize_reload_address): Use
31552         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
31553         Remove a unneeded check for offset_base.
31554
31555 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
31556
31557         * configure: Regenerated.
31558
31559 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31560
31561         * config/s390/s390.c (s390_call_save_register_used): Switch back
31562         to HARD_REGNO_NREGS.
31563
31564 2010-04-15  Richard Guenther  <rguenther@suse.de>
31565
31566         * alias.c (alias_set_subset_of): Handle alias-set zero
31567         child properly.
31568
31569 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
31570             Julian Brown  <julian@codesourcery.com>
31571
31572         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
31573         alternatives according to use of high and low regs.
31574         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
31575         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
31576         optimizing for size on Thumb-2.
31577
31578 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
31579
31580         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
31581
31582 2010-04-15  Richard Guenther  <rguenther@suse.de>
31583
31584         * tree-ssa-structalias.c (struct variable_info): Add
31585         is_fn_info flag.
31586         (new_var_info): Initialize it.
31587         (dump_constraints): Support printing last added constraints.
31588         (debug_constraints): Adjust.
31589         (dump_constraint_graph): Likewise.
31590         (make_heapvar_for): Check for NULL cfun.
31591         (get_function_part_constraint): New function.
31592         (get_fi_for_callee): Likewise.
31593         (find_func_aliases): Properly implement IPA PTA constraints.
31594         (process_ipa_clobber): New function.
31595         (find_func_clobbers): Likewise.
31596         (insert_into_field_list_sorted): Remove.
31597         (create_function_info_for): Properly allocate vars for IPA mode.
31598         Do not use insert_into_field_list_sorted.
31599         (create_variable_info_for): Properly generate constraints for
31600         global vars in IPA mode.
31601         (dump_solution_for_var): Always dump the solution.
31602         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
31603         (find_what_var_points_to): Adjust.
31604         (pt_solution_set): Change.
31605         (pt_solution_ior_into): New function.
31606         (pt_solution_empty_p): Export.
31607         (pt_solution_includes_global): Adjust.
31608         (pt_solution_includes_1): Likewise.
31609         (pt_solutions_intersect_1): Likewise.
31610         (dump_sa_points_to_info): Check some invariants.
31611         (solve_constraints): Move constraint dumping ...
31612         (compute_points_to_sets): ... here.
31613         (ipa_pta_execute): ... and here.
31614         (compute_may_aliases): Do not re-compute points-to info
31615         locally if IPA info is available.
31616         (ipa_escaped_pt): New global var.
31617         (ipa_pta_execute): Properly implement IPA PTA.
31618         * tree-into-ssa.c (dump_decl_set): Support dumping
31619         decls not in referenced-vars.
31620         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
31621         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
31622         (dump_points_to_solution): Likewise.
31623         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
31624         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
31625         (remap_gimple_stmt): Reset call clobber/use information if necessary.
31626         (copy_decl_to_var): Copy DECL_PT_UID.
31627         (copy_result_decl_to_var): Likewise.
31628         * tree.c (make_node_stat): Initialize DECL_PT_UID.
31629         (copy_node_stat): Copy it.
31630         * tree.h (DECL_PT_UID): New macro.
31631         (SET_DECL_PT_UID): Likewise.
31632         (DECL_PT_UID_SET_P): Likewise.
31633         (struct tree_decl_minimal): Add pt_uid member.
31634         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
31635         (pt_solution_empty_p): Declare.
31636         (pt_solution_set): Adjust.
31637         (ipa_escaped_pt): Declare.
31638         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
31639         * gimple-pretty-print.c (pp_points_to_solution): New function.
31640         (dump_gimple_call): Dump call clobber/use information.
31641         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
31642         * tree-pass.h (TDF_ALIAS): New dump option.
31643         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
31644         * doc/invoke.texi (-fipa-pta): Update documentation.
31645
31646 2010-04-15  Richard Guenther  <rguenther@suse.de>
31647
31648         * Makefile.in (OBJS-common): Add gimple-fold.o.
31649         (gimple-fold.o): New rule.
31650         * tree.h (maybe_fold_offset_to_reference,
31651         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
31652         prototypes ...
31653         * gimple.h: ... here.
31654         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
31655         may_propagate_address_into_dereference): Move prototypes ...
31656         * gimple.h: ... here.
31657         * tree-ssa-ccp.c (get_symbol_constant_value,
31658         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
31659         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
31660         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
31661         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
31662         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
31663         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
31664         gimplify_and_update_call_from_tree): Move ...
31665         * gimple-fold.c: ... here.  New file.
31666         (ccp_fold_builtin): Rename to ...
31667         (gimple_fold_builtin): ... this.
31668         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
31669
31670 2010-04-15  Richard Guenther  <rguenther@suse.de>
31671
31672         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
31673         fit_double_type, force_fit_type_double, add_double_with_sign,
31674         neg_double, mul_double_with_sign, lshift_double, rshift_double,
31675         lrotate_double, rrotate_double, div_and_round_double): Move ...
31676         * double-int.c: ... here.
31677         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
31678         add_double, neg_double, mul_double_with_sign, mul_double,
31679         lshift_double, rshift_double, lrotate_double, rrotate_double,
31680         div_and_round_double): Move prototypes ...
31681         * double-int.h: ... here.
31682
31683 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
31684
31685         PR target/43742
31686         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
31687         matching constraints to ensure inputs match the output.
31688
31689 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
31690
31691         PR target/43742
31692         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
31693         in an input-only operand.
31694
31695 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
31696
31697         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
31698         (double_int_not, double_int_lshift, double_int_rshift): Declare.
31699         (double_int_negative_p): Convert to static inline function.
31700         * double-int.c (double_int_lshift, double_int_lshift): New functions.
31701         (double_int_negative_p): Remove.
31702         * tree.h (lshift_double, rshift_double):
31703         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
31704         * fold-const.c (fold_convert_const_int_from_real,
31705         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
31706         (lshift_double): Change type of arith argument to bool.
31707         (rshift_double): Change type of arith argument to bool. Correct
31708         comment.
31709         * expmed.c (mask_rtx, lshift_value): (Ditto.).
31710
31711 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
31712
31713         PR target/21803
31714         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
31715         at the start and end of the then/else blocks, and omit them from the
31716         conversion.
31717         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
31718         argument; all callers changed.  Pass zero to old_insns_match_p instead.
31719         (flow_find_head_matching_sequence): New function.
31720         (old_insns_match_p): Check REG_EH_REGION notes for calls.
31721         * basic-block.h (flow_find_cross_jump,
31722         flow_find_head_matching_sequence): Declare functions.
31723
31724 2010-04-14  Jason Merrill  <jason@redhat.com>
31725
31726         PR c++/36625
31727         * c-common.c (attribute_takes_identifier_p): New fn.
31728         * c-common.h: Declare it.
31729
31730 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31731
31732         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
31733         splitter condition.
31734         (*udivmod<mode>4): Ditto.
31735
31736 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31737
31738         * config/i386/i386.md (maxmin_int): Rename code attribute from
31739         maxminiprefix and update all users.
31740         (maxmin_float): Ditto from maxminfprefix.
31741         (logic): Ditto from logicprefix.
31742         (absneg_mnemonic): Ditto from absnegprefix.
31743         * config/i386/mmx.md: Update all users of maxminiprefix,
31744         maxminfprefix and logicprefix for rename.
31745         * config/i386/sse.md: Ditto.
31746         * config/i386/sync.md (sync_<code><mode>): Update for
31747         logicprefix rename.
31748
31749 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31750
31751         PR 42966
31752         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
31753         warnings converted to errors.
31754
31755 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31756
31757         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
31758         used insn_type variable.
31759         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
31760         to avoid set-but-not-used warning.
31761
31762 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31763
31764         * df-core.c (df_ref_debug): Change format string placeholder
31765         from 0x%x to %#x.
31766         * dwarf2asm.c (dw2_asm_output_data_raw,
31767         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
31768         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
31769         * dwarf2out.c (output_cfi, output_cfi_directive,
31770         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
31771         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
31772         Ditto.
31773         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
31774         * print-rtl.c (print_rtx): Ditto.
31775
31776 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
31777
31778         PR middle-end/42694
31779         * builtins.c (expand_builtin_pow_root): New function to expand pow
31780         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
31781         series of sqrt and cbrt calls under -ffast-math.
31782         (expand_builtin_pow): Call it.
31783
31784 2010-04-14  Michael Matz  <matz@suse.de>
31785
31786         PR tree-optimization/42963
31787         * tree-cfg.c (touched_switch_bbs): New static variable.
31788         (group_case_labels_stmt): New function broken out from ...
31789         (group_case_labels): ... here, use the above.
31790         (start_recording_case_labels): Allocate touched_switch_bbs.
31791         (end_recording_case_labels): Deallocate it, call
31792         group_case_labels_stmt.
31793         (gimple_redirect_edge_and_branch): Remember index of affected BB.
31794
31795 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31796
31797         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
31798         from insn template.
31799
31800 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31801
31802         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
31803
31804 2010-04-13  Jan Hubicka  <jh@suse.cz>
31805
31806         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
31807         of optimized out static functions.
31808         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
31809         cost computation.  Also sanity check for overflows.
31810         (update_caller_keys): Update cgraph_edge_badness call; properly
31811         update fibheap and sanity check that it is up to date.
31812         (add_new_edges_to_heap): Update cgraph_edge_badness.
31813         (cgraph_decide_inlining_of_small_function): Likewise;
31814         add sanity checking that badness in heap is up to date;
31815         improve dumping of reason; Update badness of calls to the
31816         offline copy of function currently inlined; dump badness
31817         of functions not inlined because of unit growth limits.
31818
31819 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
31820
31821         PR middle-end/32628
31822         * c-common.c (pointer_int_sum): Disregard overflow that occured only
31823         because of sign-extension change when converting to sizetype here...
31824         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
31825
31826         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
31827         the folding to constants.  Remove redundant final conversion.
31828         (fold_binary) <associate>: Do not associate if the re-association of
31829         constants alone overflows.
31830         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
31831         to the end of the list.
31832         (multiple_of_p) <COND_EXPR>: New case.
31833
31834 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31835
31836         * opt-functions.awk (opt_sanitized_name): New.
31837         (opt_enum): New.
31838         * optc-gen.awk: Use it
31839         * opth-gen.awk: Use it.
31840
31841 2010-04-13  Martin Jambor  <mjambor@suse.cz>
31842
31843         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
31844         (sra_modify_assign): Delete stmts loading dead data even if racc has no
31845         children.  Call replace_uses_with_default_def_ssa_name to handle
31846         SSA_NAES on lhs.
31847
31848 2010-04-13  Michael Matz  <matz@suse.de>
31849
31850         PR middle-end/43730
31851         * builtins.c (expand_builtin_interclass_mathfn): Also create
31852         a register if the predicate doesn't match.
31853
31854 2010-04-13  Diego Novillo  <dnovillo@google.com>
31855
31856         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
31857         * c-pch.c: Include timevar.h.
31858         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
31859         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
31860         * ggc-common.c: Include timevar.h.
31861         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
31862         * timevar.def (TV_PCH_SAVE): Define.
31863         (TV_PCH_CPP_SAVE): Define.
31864         (TV_PCH_PTR_REALLOC): Define.
31865         (TV_PCH_PTR_SORT): Define.
31866         (TV_PCH_RESTORE): Define.
31867         (TV_PCH_CPP_RESTORE): Define.
31868
31869 2010-04-13  Michael Matz  <matz@suse.de>
31870
31871         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
31872         into MINUS_EXPRs.
31873         (can_reassociate_p): New function.
31874         (break_up_subtract_bb, reassociate_bb): Use it.
31875
31876 2010-04-13  Richard Guenther  <rguenther@suse.de>
31877
31878         PR bootstrap/43737
31879         * builtins.c (c_readstr): Fix assert.
31880
31881 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
31882
31883         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
31884         when generating cltd insn.
31885
31886         (*ashl<mode>3_1): Remove special handling for register operand 2.
31887         (*ashlsi3_1_zext): Ditto.
31888         (*ashlhi3_1): Ditto.
31889         (*ashlhi3_1_lea): Ditto.
31890         (*ashlqi3_1): Ditto.
31891         (*ashlqi3_1_lea): Ditto.
31892         (*<shiftrt_insn><mode>3_1): Ditto.
31893         (*<shiftrt_insn>si3_1_zext): Ditto.
31894         (*<shiftrt_insn>qi3_1_slp): Ditto.
31895         (*<rotate_insn><mode>3_1): Ditto.
31896         (*<rotate_insn>si3_1_zext): Ditto.
31897         (*<rotate_insn>qi3_1_slp): Ditto.
31898
31899 2010-04-13  Richard Guenther  <rguenther@suse.de>
31900
31901         * tree-ssa-structalias.c (callused_id): Remove.
31902         (call_stmt_vars): New.
31903         (get_call_vi): Likewise.
31904         (lookup_call_use_vi): Likewise.
31905         (lookup_call_clobber_vi): Likewise.
31906         (get_call_use_vi): Likewise.
31907         (get_call_clobber_vi): Likewise.
31908         (make_transitive_closure_constraints): Likewise.
31909         (handle_const_call): Adjust to do per-call call-used handling.
31910         (handle_pure_call): Likewise.
31911         (find_what_var_points_to): Remove general callused handling.
31912         (init_base_vars): Likewise.
31913         (init_alias_vars): Initialize call_stmt_vars.
31914         (compute_points_to_sets): Process call-used and call-clobbered
31915         vars for call statements.
31916         (delete_points_to_sets): Free call_stmt_vars.
31917
31918 2010-04-13  Richard Guenther  <rguenther@suse.de>
31919
31920         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
31921         Only add RW dependence for dependence distance zero.
31922         Adjust maximal vectorization factor according to dependences.
31923         Move alignment handling ...
31924         (vect_find_same_alignment_drs): ... here.  New function.
31925         (vect_analyze_data_ref_dependences): Adjust.
31926         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
31927         (vect_analyze_data_refs): Adjust minimal vectorization factor
31928         according to data references.
31929         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
31930         dependences before determining the vectorization factor.
31931         Analyze alignment after determining the vectorization factor.
31932         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
31933         dependences before alignment.
31934         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
31935         Adjust prototype.
31936         (vect_analyze_data_refs): Likewise.
31937         (MAX_VECTORIZATION_FACTOR): New define.
31938
31939 2010-04-13  Duncan Sands  <baldrick@free.fr>
31940
31941         * except.h (lang_eh_type_covers): Remove.
31942         * except.c (lang_eh_type_covers): Likewise.
31943
31944 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31945             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31946
31947         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
31948         * config/s390/s390.c: Replace UNTIS_PER_WORD with
31949         UNITS_PER_LONG where it is ABI relevant.
31950         (s390_return_addr_rtx): Likewise.
31951         (s390_back_chain_rtx): Likewise.
31952         (s390_frame_area): Likewise.
31953         (s390_frame_info): Likewise.
31954         (s390_initial_elimination_offset): Likewise.
31955         (save_gprs): Likewise.
31956         (s390_emit_prologue): Likewise.
31957         (s390_emit_epilogue): Likewise.
31958         (s390_function_arg_advance): Likewise.
31959         (s390_function_arg): Likewise.
31960         (s390_va_start): Likewise.
31961         (s390_gimplify_va_arg): Likewise.
31962         (s390_function_profiler): Likewise.
31963         (s390_optimize_prologue): Likewise.
31964         (s390_rtx_costs): Likewise.
31965         (s390_secondary_reload): Likewise.
31966         (s390_promote_function_mode): Likewise.
31967         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
31968         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
31969         registers available.
31970         (s390_unwind_word_mode): New function.
31971         (s390_function_value): Split 64 bit values into register pair if
31972         used as return value.
31973         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
31974         function call parameters.  Handle parallels.
31975         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
31976         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
31977         (DWARF_CIE_DATA_ALIGNMENT): New macro.
31978         (s390_expand_setmem): Remove unused variable src_addr.
31979         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
31980         deal with 64 bit registers.
31981         * config/s390/s390.h: Define __zarch__ predefined macro.
31982         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
31983         (UNITS_PER_LONG): New macro.
31984         * libjava/include/s390-signal.h: Define extended ucontext
31985         structure containing the upper halfs of the 64 bit registers.
31986
31987 2010-04-13  Simon Baldwin  <simonb@google.com>
31988
31989         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
31990
31991 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
31992
31993         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
31994         rvalue on the RHS if the LHS is of a non-renamable type.
31995         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
31996
31997 2010-04-13  Matthias Klose  <doko@ubuntu.com>
31998
31999         * gcc.c (cc1_options): Handle -iplugindir before processing
32000         the cc1 spec. Only add -iplugindir once.
32001         (cpp_unique_options): Add -iplugindir option if -fplugin* options
32002         found.
32003         * common.opt (iplugindir): Remove `Separate' property, initialize.
32004         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
32005         option.
32006         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
32007         (distclean): Remove plugin dir.
32008         * doc/invoke.texi: Document -iplugindir.
32009
32010 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
32011
32012         * doc/plugins.texi (Loading Plugins): Document short
32013         -fplugin=foo option.
32014         (Plugin API): Mention default_plugin_dir_name function.
32015
32016         * gcc.c (find_file_spec_function): Add new declaration.
32017         (static_spec_func): Use it for "find-file".
32018         (find_file_spec_function): Add new function.
32019         (cc1_options): Add -iplugindir option if -fplugin* options found.
32020
32021         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
32022
32023         * plugin.c (add_new_plugin): Updated comment, and handle short
32024         plugin name.
32025         (default_plugin_dir_name): Added new function.
32026
32027         * common.opt (iplugindir): New option to set the plugin directory.
32028
32029 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
32030
32031         * config/i386/i386.md (any_rotate): New code iterator.
32032         (rotate_insn): New code attribute.
32033         (rotate): Ditto.
32034         (SWIM124): New mode iterator.
32035         (<rotate_insn>ti3): New expander.
32036         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
32037         any_rotate code iterator.
32038         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
32039         using any_rotate code iterator and SWIM124 mode iterator.
32040         (ix86_rotlti3): New insn_and_split pattern.
32041         (ix86_rotrti3): Ditto.
32042         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
32043         ix86_rotl{di,ti}3 patterns.
32044         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
32045         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
32046         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
32047         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
32048         code iterator and SWI mode iterator.
32049         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
32050         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
32051         code iterator.
32052         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
32053         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
32054         (bswap rotatert splitter): Add splitter.
32055         (bswap splitter): Macroize splitter using any_rotate code iterator.
32056         Add insn predicate to split only for TARGET_USE_XCHGB or when
32057         optimizing function for size.
32058
32059 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32060
32061         * config/pa/pa.c (emit_move_sequence): Remove use of
32062         deleted variable flag_argument_noalias.
32063
32064 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32065
32066         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
32067         configurations.
32068         Add to unsupported targets list.
32069         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
32070         sparc*-sun-solaris2.[567]* from target lists.
32071         * configure: Regenerate.
32072         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
32073         removal.
32074         Remove Solaris 7 patch references.
32075         (Specific, sparc-sun-solaris2.7): Removed.
32076         (sparc-sun-solaris2*): Update Solaris 7 example.
32077         (sparc64-*-solaris2*): Likewise.
32078
32079 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32080
32081         * config.build (alpha*-dec-osf4*): Remove.
32082         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
32083         of obsolete configurations.
32084         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
32085         support.
32086         * config/alpha/t-osf4: Renamed to ...
32087         * config/alpha/t-osf5: ... this.
32088         * config/alpha/osf.h: Renamed to ...
32089         * config/alpha/osf5.h: ... this.
32090         Merged old osf5.h contents.
32091         Update comments.
32092         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
32093         (EXTRA_SPECS): Removed.
32094         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
32095         reflect removal of Tru64 UNIX V4.0/V5.0 support.
32096         Document that.
32097
32098 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32099
32100         * doc/contrib.texi (Contributors, Rainer Orth): Update.
32101
32102 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
32103
32104         PR/43702
32105         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
32106         __thiscall convention.
32107
32108 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32109
32110         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
32111         orig_base.
32112         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
32113
32114 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32115
32116         * function.c (assign_parms_initialize_all): Add unused attribute
32117         to fntype.
32118
32119 2010-04-12  Richard Guenther  <rguenther@suse.de>
32120
32121         * gsstruct.def (GSS_CALL): New.
32122         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
32123         * gimple.h: Include tree-ssa-alias.h.
32124         (struct gimple_statement_call): New.
32125         (union gimple_statement_struct_d): Add gimple_call member.
32126         (gimple_call_reset_alias_info): Declare.
32127         (gimple_call_use_set): New function.
32128         (gimple_call_clobber_set): Likewise.
32129         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
32130         * gimple.c (gimple_call_reset_alias_info): New function.
32131         (gimple_build_call_1): Call it.
32132         * lto-streamer-in.c (input_gimple_stmt): Likewise.
32133         * tree-inline.c (remap_gimple_stmt): Likewise.
32134         (expand_call_inline): Remove callused handling.
32135         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
32136         * tree-dfa.c (dump_variable): Likewise.
32137         * tree-parloops.c (parallelize_loops): Likewise.
32138         * tree-ssa.c (init_tree_ssa): Likewise.
32139         (delete_tree_ssa): Likewise.
32140         * tree-flow-inline.h (is_call_used): Remove.
32141         * tree-flow.h (struct gimple_df): Remove callused member.
32142         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
32143         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
32144         (ref_maybe_used_by_call_p_1): Simplify.
32145         (call_may_clobber_ref_p_1): Likewise.
32146         * tree-ssa-structalias.c (compute_points_to_sets): Set
32147         the call stmt used and clobbered sets.
32148         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
32149         (find_tail_calls): Verify the tail call.
32150
32151 2010-04-12  Richard Guenther  <rguenther@suse.de>
32152
32153         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
32154         single-iteration always-inline inlining.
32155         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
32156         (cgraph_decide_inlining): Do not handle always-inline specially.
32157         (try_inline): Remove always-inline cycle detection special case.
32158         Do not recurse on always-inlines.
32159         (cgraph_early_inlining): Do not iterate if not optimizing.
32160         (cgraph_gate_early_inlining): remove.
32161         (pass_early_inline): Run unconditionally.
32162         (gate_cgraph_decide_inlining): New function.
32163         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
32164         not inlining or optimizing.
32165         (cgraph_decide_inlining_of_small_functions): Also consider
32166         always-inline functions.
32167         (cgraph_default_inline_p): Return true for nodes which should
32168         disregard inline limits.
32169         (estimate_function_body_sizes): Assume zero size and time for
32170         nodes which are marked as disregarding inline limits.
32171         (cgraph_decide_recursive_inlining): Do not perform recursive
32172         inlining on always-inline nodes.
32173
32174 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
32175
32176         PR bootstrap/43699
32177         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
32178         for exprs satisfying handled_component_p.
32179
32180 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
32181
32182         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
32183         non-constant aggregate elements.
32184
32185         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
32186         is a real initialization.
32187
32188 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
32189
32190         PR c/36774
32191         * c-decl.c (start_function): Move forward check for nested function.
32192
32193 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
32194
32195         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
32196         * config/sh/sh.c: Include reload.h.
32197         (sh_legitimize_reload_address): New.
32198         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
32199         sh_legitimize_reload_address.
32200
32201 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32202
32203         * config/sh/sh.md (*movqi_pop): New insn pattern.
32204         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
32205
32206 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32207
32208         * config/i386/i386.md (any_shiftrt): New code iterator.
32209         (shiftrt_insn): New code attribute.
32210         (shiftrt): Ditto.
32211         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
32212         using any_shiftrt code iterator.
32213         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
32214         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
32215         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
32216         pattern from corresponding peephole2 patterns.
32217         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
32218         using any_shiftrt code iterator.
32219         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
32220         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
32221         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
32222         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
32223         *{ashr,lshr}<mode>3_cmp_zext.
32224         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
32225
32226 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32227
32228         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
32229         scratch register.
32230         (*lshr<mode>3_cconly): Ditto.
32231
32232 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32233
32234         * config/i386/i386.md (lshr<mode>3): Macroize expander from
32235         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
32236         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32237         pattern from *lshr{di,ti}3_1 and corresponding splitters using
32238         DWI mode iterator.
32239         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
32240         from corresponding peephole2 patterns.
32241         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
32242         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
32243         and *lshrdi3_1_rex64 using SWI mode iterator.
32244         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
32245         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
32246         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
32247         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
32248         and *lshrdi3_cmp_rex64 using SWI mode iterator.
32249         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
32250         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
32251         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
32252         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
32253         SWI mode iterator.
32254
32255 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
32256
32257         * config/i386/i386.md (ashr<mode>3): Macroize expander from
32258         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
32259         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32260         pattern from *ashr{di,ti}3_1 and corresponding splitters using
32261         DWI mode iterator.
32262         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
32263         from corresponding peephole2 patterns.
32264         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
32265         (ashrsi3_cvt): Rename from ashrsi3_31.
32266         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
32267         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
32268         and x86_64_shift_adj_3 using SWI48 mode iterator.
32269         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
32270         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
32271         and *ashrdi3_1_rex64 using SWI mode iterator.
32272         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
32273         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
32274         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
32275         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
32276         and *ashrdi3_cmp_rex64 using SWI mode iterator.
32277         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
32278         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
32279         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
32280         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
32281         SWI mode iterator.
32282         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
32283         * config/i386/i386.c (ix86_split_ashr): Update for renamed
32284         x86_shift<mode>_adj_3 expanders.
32285
32286 2010-04-10  Wei Guozhi  <carrot@google.com>
32287
32288         PR target/42601
32289         * config/arm/arm.c (arm_pic_static_addr): New function.
32290         (legitimize_pic_address): Call arm_pic_static_addr when it detects
32291         a static symbol.
32292         (arm_output_addr_const_extra): Output expression for new pattern.
32293         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
32294
32295 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
32296
32297         * ira-costs.c (record_reg_classes): Ignore alternatives that are
32298         not enabled.
32299
32300         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
32301         * web.c: Include "insn-config.h" and "recog.h".
32302         (union_match_dups): New function.
32303         (web_main): Call it.
32304         (union_defs): Don't try to recognize match_dups.
32305
32306         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
32307         if doing so would replace the entire pattern.
32308
32309 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
32310
32311         PR target/43707
32312         PR target/43709
32313         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
32314         and splitter pattern.  Change splitter operand 1 predicate to
32315         nonmemory_operand.
32316
32317 2010-04-09  Martin Jambor  <mjambor@suse.cz>
32318
32319         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
32320         lattices are addresses of CONST_DECLs with the same initial value.
32321         (ipcp_print_all_lattices): Print values of CONST_DECLs.
32322         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
32323
32324 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
32325             Bernd Schmidt  <bernds@codesourcery.com>
32326
32327         * loop-invariant.c (replace_uses): New static function.
32328         (move_invariant_reg): Use it to ensure we can replace the uses.
32329
32330 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
32331
32332         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
32333         function template.
32334         (picochip_override_options): Enable section anchors only above -O1.
32335         (picochip_reorg): Fixed a couple of build warnings.
32336
32337 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32338
32339         * configure.ac (plugin -rdynamic test): Log result.
32340         * configure: Regenerate.
32341         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
32342         (RDYNAMIC_SPEC): Define.
32343         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
32344
32345 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32346
32347         * configure.ac: Determine Sun ld version numbers.
32348         (comdat_group): Restrict GNU ld version checks to gld.
32349         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
32350         (enable_comdat): Support --enable-comdat.
32351         * configure: Regenerate.
32352         * doc/install.texi (Configuration): Document --enable-comdat.
32353
32354 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32355
32356         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
32357         * config/sol2-gld.h: ... here.
32358         * config.gcc (sparc*-*-solaris2*): Reflect this.
32359         (i[34567]86-*-solaris2*): Use it.
32360
32361 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
32362
32363         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
32364         setup_clocks_p.
32365         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
32366
32367 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32368
32369         PR 42965
32370         * diagnostic.c (diagnostic_initialize): Initialize
32371         some_warnings_are_errors.
32372         (diagnostic_finish): New.
32373         (diagnostic_action_after_output): Call it before exiting.
32374         (diagnostic_report_diagnostic): Do not print message here. Set
32375         some_warnings_are_errors.
32376         * diagnostic.h (diagnostic_context): Delete
32377         issue_warnings_are_errors_message. Add some_warnings_are_errors.
32378         (diagnostic_finish): Declare.
32379         * toplev.c (toplev_main): Call it before exit.
32380
32381 2010-04-09  Jason Merrill  <jason@redhat.com>
32382
32383         PR c++/42623
32384         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
32385         for incomplete type.
32386
32387         PR c++/41788
32388         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
32389         based on a warning flag.
32390
32391 2010-04-09  Richard Guenther  <rguenther@suse.de>
32392
32393         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
32394
32395 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
32396
32397         PR bootstrap/43684
32398         * varasm.c (default_assemble_visibility): Wrap vars that are
32399         set, but unused, by targets without GAS.
32400         * config/rs6000/rs6000.c (paired_emit_vector_compare):
32401         Remove set, but unused, vars.
32402         (rs6000_legitimize_tls_address): Likewise.
32403         (altivec_expand_dst_builtin): Likewise.
32404         * config/darwin.c (machopic_classify_symbol): Likewise.
32405         (machopic_indirection_name): Likewise.
32406
32407 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
32408
32409         * config/i386/i386.md (DWI): New mode iterator.
32410         (S): New mode attribute.
32411         (shift_operand): Ditto.
32412         (shift_immediate_operand): Ditto.
32413         (ashl_input_operand): Ditto.
32414         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
32415         using SDWIM mode iterator.
32416         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32417         pattern from *ashl{di,ti}3_1 and corresponding splitters using
32418         DWI mode iterator.
32419         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
32420         from corresponding peephole2 patterns.
32421         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
32422         and x86_64_shift_adj_1 using SWI48 mode iterator.
32423         (x86_shift<mode>_adj_2): Ditto.
32424         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
32425         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
32426         using SWI48 mode iterator.
32427         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
32428         *ashldi3_cmp_rex64 using SWI mode iterator.
32429         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
32430         *ashldi3_cconly_rex64 using SWI mode iterator.
32431         * config/i386/i386.c (ix86_split_ashl): Update for renamed
32432         x86_shift<mode>_adj_{1,2}.
32433         (ix86_split_ashr): Ditto.
32434         (ix86_split_lshr): Ditto.
32435
32436 2010-04-09  Richard Guenther  <rguenther@suse.de>
32437
32438         * target.h (builtin_conversion): Pass in input and output types.
32439         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
32440         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
32441         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
32442         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
32443
32444         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
32445         Handle AVX modes.
32446         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
32447
32448 2010-04-09  Richard Guenther  <rguenther@suse.de>
32449
32450         PR target/43152
32451         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
32452
32453 2010-04-09  Richard Guenther  <rguenther@suse.de>
32454
32455         * tree-vectorizer.h (struct _stmt_vec_info): Document
32456         that vectype is the type of the LHS.
32457         (supportable_widening_operation, supportable_narrowing_operation):
32458         Get both input and output vector types as arguments.
32459         (vect_is_simple_use_1): Declare.
32460         (get_same_sized_vectype): Likewise.
32461         * tree-vect-loop.c (vect_determine_vectorization_factor):
32462         Set STMT_VINFO_VECTYPE to the vector type of the def.
32463         (vectorizable_reduction): Adjust.
32464         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
32465         Adjust.  Specify the output vector type.
32466         (vect_pattern_recog_1): Adjust.
32467         * tree-vect-stmts.c (get_same_sized_vectype): New function.
32468         (vectorizable_call): Adjust.
32469         (vectorizable_conversion): Likewise.
32470         (vectorizable_operation): Likewise.
32471         (vectorizable_type_demotion): Likewise.
32472         (vectorizable_type_promotion): Likewise.
32473         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
32474         the def.
32475         (vect_is_simple_use_1): New function.
32476         (supportable_widening_operation): Get both input and output
32477         vector types.
32478         (supportable_narrowing_operation): Likewise.
32479         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
32480
32481 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
32482
32483         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
32484         __thiscall and _thiscall as predefined macros.
32485         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
32486         thiscall attribute handling.
32487         (ix86_comp_type_attributes): Likewise.
32488         (ix86_function_regparm): Likewise.
32489         (ix86_return_pops_args): Likewise.
32490         (init_cumulative_args): Likewise.
32491         (find_drap_reg): Likewise.
32492         (ix86_static_chain): Likewise.
32493         (x86_this_parameter): Likewise.
32494         (x86_output_mi_thunk): Likewise.
32495         (ix86_attribute_table): Add description for thiscall attribute.
32496         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
32497         * doc/extend.texi: Add documentation for thiscall.
32498
32499 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32500
32501         PR c++/28584
32502         * c.opt (Wint-to-pointer-cast): Available in C++.
32503         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
32504
32505 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
32506
32507         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
32508         * calls.c (expand_call): Pass the function type to aggregate_value_p.
32509         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
32510         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
32511         function type instead.  Reorder and simplify checks.
32512
32513         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
32514
32515 2010-04-08  Jing Yu  <jingyu@google.com>
32516             Zdenek Dvorak  <ook@ucw.cz>
32517
32518         PR tree-optimization/42720
32519         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
32520         loop unswitch conditions here from ...
32521         (tree_unswitch_single_loop): ... here.
32522
32523 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
32524
32525         * tree-if-conv.c: Fix comments and simplify logic.
32526
32527 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
32528
32529         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
32530         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
32531         (main_tree_if_conversion): Update call to tree_if_conversion.
32532
32533 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32534
32535         PR 42485
32536         * doc/invoke.texi (-b,-V): Delete.
32537         * doc/tm.texi: Do not mention -b.
32538         * gcc.c (display_help): Delete -b and -V.
32539         (process_command): Delete -b and -V.
32540         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
32541
32542 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
32543             Wolfgang Gellerich  <gellerich@de.ibm.com>
32544
32545         Implement target hook for loop unrolling
32546         * target.h (loop_unroll_adjust): Add a new target hook function.
32547         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
32548         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
32549         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
32550         (s390_loop_unroll_adjust): Implement the new target hook for s390.
32551         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
32552         target hook.
32553         (decide_unroll_stupid): Likewise.
32554
32555 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32556
32557         PR target/43643
32558         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
32559
32560 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32561
32562         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
32563         (Specific, *-*-solaris2*): Likewise.
32564         Don't prefer Sun as over GNU as.
32565
32566 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
32567
32568         * config/s390/s390.c (override_options): Adjust the z10 defaults
32569         for max-unroll-times, max-completely-peeled-insns
32570         and max-completely-peel-times.
32571
32572 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32573
32574         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
32575         instructions for z10.
32576         (s390_expand_setmem): Likewise.
32577         (s390_expand_cmpmem): Likewise.
32578
32579 2010-04-08  Richard Guenther  <rguenther@suse.de>
32580
32581         PR tree-optimization/43679
32582         * tree-ssa-pre.c (eliminate): Only propagate copies.
32583
32584 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
32585
32586         PR bootstrap/43681
32587         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
32588         set but not used variable warning.
32589
32590 2010-04-08  Wei Guozhi  <carrot@google.com>
32591
32592         PR target/41653
32593         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
32594         (arm_size_rtx_costs): Call the new function when optimized for size.
32595
32596 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
32597
32598         PR debug/43670
32599         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
32600         op0 is not a MEM, just return NULL instead of assertion
32601         failure.
32602         (discover_nonconstant_array_refs): Don't walk debug stmts.
32603
32604 2010-04-08  Doug Kwan  <dougkwan@google.com>
32605
32606         * configure.ac: Recognize gold and do not use its version number
32607         to test ld features.
32608         * configure: Regenerate.
32609
32610 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
32611
32612         PR middle-end/40815
32613         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
32614         (negate_value): Move code to push elements to broken_up_substracts ...
32615         (eliminate_plus_minus_pair): ... here.  Push operands that have no
32616         negative pair to plus_negates.
32617         (repropagate_negates, init_reassoc, fini_reassoc): Update.
32618
32619 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32620
32621         * doc/install.texi (Configuration): Move description of
32622         --enable-lto, --with-libelf*, --enable-gold from Java section to
32623         general section.
32624
32625         * doc/generic.texi (Working with declarations)
32626         (Function Properties, C and C++ Trees): Fix typos.
32627         * doc/sourcebuild.texi (Top Level): Likewise.
32628
32629 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
32630
32631         PR c/18624
32632         * tree.h (DECL_READ_P): Define.
32633         (struct tree_decl_common): Add decl_read_flag.
32634         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
32635         a set but not used warning.
32636         (merge_decls): Merge DECL_READ_P flag.
32637         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
32638         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
32639         * c-common.c (handle_used_attribute, handle_unused_attribute):
32640         Likewise.
32641         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
32642         New prototypes.
32643         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
32644         New functions.
32645         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
32646         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
32647         c_parser_binary_expression, c_parser_cast_expression,
32648         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
32649         Call default_function_array_read_conversion instead of
32650         default_function_array_conversion where needed.
32651         (c_parser_unary_expression, c_parser_conditional_expression,
32652         c_parser_postfix_expression_after_primary, c_parser_initelt):
32653         Likewise.  Call mark_exp_read where needed.
32654         (c_parser_statement_after_labels, c_parser_asm_operands,
32655         c_parser_typeof_specifier, c_parser_sizeof_expression,
32656         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
32657         where needed.
32658         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
32659         New.
32660         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
32661         (warn_unused_but_set_parameter): Default to warn_unused
32662         && extra_warnings.
32663         * doc/invoke.texi: Document -Wunused-but-set-variable and
32664         -Wunused-but-set-parameter.
32665
32666         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
32667         used count variable.
32668         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
32669         when operandN variables aren't used in the body of the expander
32670         or splitter.
32671         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
32672         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
32673         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
32674         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
32675         FOR_EACH_IMM_USE_ON_STMT): Likewise.
32676         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
32677         * tree.c (PROCESS_ARG): Likewise.
32678
32679 2010-04-07  Simon Baldwin  <simonb@google.com>
32680
32681         * diagnostic.h (diagnostic_override_option_index): New macro to
32682         set a diagnostic's option_index.
32683         * c-tree.h (c_cpp_error): Add warning reason argument.
32684         * opts.c (_warning_as_error_callback): New.
32685         (register_warning_as_error_callback): Store callback for
32686         warnings enabled via enable_warning_as_error.
32687         (enable_warning_as_error): Call callback, minor code tidy.
32688         * opts.h (register_warning_as_error_callback): Declare.
32689         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
32690         response to -Werror=.
32691         (c_common_init_options): Register warning_as_error_callback in opts.c.
32692         * common.opt: Add -Wno-cpp option.
32693         * c-common.c (struct reason_option_codes_t): Map cpp warning
32694         reason codes to gcc option indexes.
32695         * (c_option_controlling_cpp_error): New function, lookup the gcc
32696         option index for a cpp warning reason code.
32697         * (c_cpp_error): Add warning reason argument, call
32698         c_option_controlling_cpp_error for diagnostic_override_option_index.
32699         * doc/invoke.texi: Document -Wno-cpp.
32700
32701 2010-04-07  Richard Guenther  <rguenther@suse.de>
32702
32703         * ipa-reference.c (mark_load): Use get_base_address.
32704         (mark_store): Likewise.
32705
32706         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
32707         inserting GIMPLE_NOPs into the IL.
32708         * tree-ssa-structalias.c (get_constraint_for_component_ref):
32709         Explicitly strip handled components and indirect references.
32710
32711         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
32712         folding address expressions.
32713         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
32714         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
32715         operand_equal_p to compare decls.
32716         (ptr_deref_may_alias_decl_p): Likewise.
32717         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
32718         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
32719         Handle reversed comparison ops.
32720         * tree-sra.c (asm_visit_addr): Use get_base_address.
32721         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
32722         * ipa-reference.c (mark_address): Use get_base_address.
32723
32724 2010-04-07  Richard Guenther  <rguenther@suse.de>
32725
32726         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
32727         Propagate constants everywhere.
32728
32729 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
32730
32731         PR debug/43516
32732         * tree.c (MAX_INT_CACHED_PREC): Define.
32733         (nonstandard_integer_type_cache): New array.
32734         (build_nonstandard_integer_type): Cache results for precision
32735         <= MAX_INT_CACHED_PREC.
32736
32737 2010-04-07  Richard Guenther  <rguenther@suse.de>
32738
32739         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
32740         -fargument-noalias-global, -fargument-noalias-anything): Remove.
32741         * common.opt: Likewise.
32742         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
32743         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
32744         (nonoverlapping_memrefs_p): Likewise.
32745         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
32746         * opts.c (common_handle_option): Handle OPT_fargument_alias,
32747         OPT_fargument_noalias, OPT_fargument_noalias_anything and
32748         OPT_fargument_noalias_global for backward compatibility.
32749
32750 2010-04-07  Richard Guenther  <rguenther@suse.de>
32751
32752         PR tree-optimization/43270
32753         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
32754         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
32755         * tree-ssa-pre.c (phi_translate_1): Adjust.
32756         (fully_constant_expression): Split out vn_reference handling to ...
32757         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
32758         Fold reads from constant strings.
32759         (vn_reference_lookup): Handle fully constant references.
32760         (vn_reference_lookup_pieces): Likewise.
32761         * Makefile.in (expmed.o-warn): Add -Wno-error.
32762
32763 2010-04-07  Martin Jambor  <mjambor@suse.cz>
32764
32765         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
32766
32767 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
32768
32769         PR driver/41594
32770         * gcc.c: Add -static-libstdc++ to list of recognized options.
32771
32772 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32773
32774         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
32775
32776 2010-04-07  Richard Guenther  <rguenther@suse.de>
32777
32778         PR middle-end/42617
32779         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
32780         bases build simple mem attributes to retain points-to information.
32781
32782 2010-04-07  Richard Guenther  <rguenther@suse.de>
32783
32784         PR middle-end/42617
32785         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
32786         preserve points-to related information.
32787
32788 2010-04-07  Richard Guenther  <rguenther@suse.de>
32789
32790         PR middle-end/42617
32791         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
32792         discard plain indirect references.
32793         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
32794         * tree.c (tree_nop_conversion): Likewise.
32795
32796 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
32797
32798         PR debug/43628
32799         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
32800
32801 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
32802
32803         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
32804         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
32805
32806 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
32807
32808         * tree-if-conv.c: Fix indentation and comments.
32809
32810 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
32811
32812         * tree-if-conv.c: Sort static functions in topological order.
32813
32814 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
32815
32816         * tree-if-conv.c: Fix indentation and comments.
32817
32818 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32819
32820         PR middle-end/43519
32821         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
32822         lang_hooks.types.type_for_size instead of
32823         build_nonstandard_integer_type.
32824         When converting an unsigned type to signed, double its precision.
32825         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
32826         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
32827         (graphite_create_new_loop_guard): When ub + 1 wraps around,
32828         use lb <= ub.
32829
32830 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32831
32832         PR middle-end/43519
32833         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
32834         POINTER_PLUS_EXPR for pointer types.
32835
32836 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32837
32838         PR middle-end/43519
32839         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
32840         * graphite-clast-to-gimple.c: Include langhooks.h.
32841         (max_signed_precision_type): New.
32842         (max_precision_type): Takes two types as arguments.
32843         (precision_for_value): New.
32844         (precision_for_interval): New.
32845         (gcc_type_for_interval): New.
32846         (gcc_type_for_value): New.
32847         (gcc_type_for_clast_term): New.
32848         (gcc_type_for_clast_red): New.
32849         (gcc_type_for_clast_bin): New.
32850         (gcc_type_for_clast_expr): Split up into several functions.
32851         (gcc_type_for_clast_eq): Rewritten.
32852         (compute_bounds_for_level): New.
32853         (compute_type_for_level_1): New.
32854         (compute_type_for_level): New.
32855         (gcc_type_for_cloog_iv): Removed.
32856         (gcc_type_for_iv_of_clast_loop): Rewritten.
32857         (graphite_create_new_loop): Compute the lower and upper bound types
32858         with gcc_type_for_clast_expr.
32859         (graphite_create_new_loop_guard): Same.
32860         (find_cloog_iv_in_expr): Removed.
32861         (compute_cloog_iv_types_1): Removed.
32862         (compute_cloog_iv_types): Removed.
32863         (gloog): Do not call compute_cloog_iv_types.
32864         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
32865         GBB_CLOOG_IV_TYPES.
32866         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
32867         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
32868         (GBB_CLOOG_IV_TYPES): Removed.
32869
32870 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32871
32872         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
32873         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
32874         (detect_commutative_reduction): Same.
32875
32876 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32877
32878         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
32879         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
32880         argument.
32881         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
32882         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
32883         (rewrite_commutative_reductions_out_of_ssa): Same.
32884         * passes.c (execute_function_todo): Call verify_ssa for every pass
32885         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
32886         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
32887         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
32888         with an extra argument.
32889         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
32890         verify_ssa only when the extra argument is true.
32891         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
32892         with an extra argument.
32893         (tree_transform_and_unroll_loop): Same.
32894
32895 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
32896
32897         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
32898         for all the passes of the LNO having LOOP_CLOSED_SSA.
32899         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
32900         * tree-loop-distribution.c (pass_loop_distribution): Same.
32901         * tree-pass.h (TODO_verify_loops): Removed.
32902         * tree-ssa-loop.c (pass_tree_loop_init): Same.
32903         (pass_lim): Same.
32904         (pass_tree_unswitch): Same.
32905         (pass_predcom): Same.
32906         (pass_vectorize): Same.
32907         (pass_linear_transform): Same.
32908         (pass_graphite_transforms): Same.
32909         (pass_iv_canon): Same.
32910         (pass_complete_unroll): Same.
32911         (pass_complete_unrolli): Same.
32912         (pass_parallelize_loops): Same.
32913         (pass_loop_prefetch): Same.
32914         (pass_iv_optimize): Same.
32915
32916 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
32917
32918         PR middle-end/32824
32919         * passes.c (init_optimization_passes): Move pass_lim before
32920         pass_copy_prop and pass_dce_loop.
32921
32922 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
32923
32924         PR target/43667
32925         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
32926         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
32927         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
32928         MULTI_* defines for 4 argument vpermil2p* builtins.
32929
32930 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
32931
32932         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
32933         * config/i386/i386.c (x86_maybe_negate_const_int): New.
32934         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
32935         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
32936         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
32937         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
32938         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
32939         Use x86_maybe_negate_const_int to output insn mnemonic.
32940         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
32941         check from instruction predicate.  Update comments.
32942         * config/i386/sync.md (sync_add<mode>): Use
32943         x86_maybe_negate_const_int to output insn mnemonic.
32944
32945 2010-04-06  Jan Hubicka  <jh@suse.cz>
32946
32947         PR tree-optimization/42906
32948         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
32949         IGNORE_SELF argument.  Set visited_control_parents for fully
32950         processed BBs.
32951         (find_obviously_necessary_stmts): Update call of
32952         mark_control_dependent_edges_necessary.
32953         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
32954
32955 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
32956
32957         * config/i386/i386.md: Remove comment about 'e' and 'E'
32958         operand modifier.
32959
32960 2010-04-06  Richard Guenther  <rguenther@suse.de>
32961
32962         PR tree-optimization/43627
32963         * tree-vrp.c (extract_range_from_unary_expr): Widenings
32964         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
32965         not varying.
32966
32967 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
32968
32969         * BASE-VER: Change to 4.6.0.
32970
32971         PR target/43638
32972         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
32973         handling.
32974
32975 2010-04-06  Richard Guenther  <rguenther@suse.de>
32976
32977         PR middle-end/43661
32978         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
32979
32980 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32981
32982         * doc/invoke.texi (Optimize Options): Document that LTO
32983         won't remove object access purely due to incompatible
32984         declarations.
32985
32986 2010-04-04  Matthias Klose  <doko@ubuntu.com>
32987
32988         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
32989         Initialize variable.
32990
32991 2010-04-03  Richard Guenther  <rguenther@suse.de>
32992
32993         PR middle-end/42509
32994         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
32995         require a non-NULL MEM_OFFSET.
32996
32997 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
32998
32999         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
33000         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
33001         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
33002         config/alpha/predicates.md, config/arm/arm.md,
33003         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
33004         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
33005         config/darwin9.h, config/darwin.c, config/darwin.h,
33006         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
33007         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
33008         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
33009         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
33010         config/mips/mips.md, config/mn10300/mn10300.c,
33011         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
33012         config/rs6000/aix.h, config/rs6000/dfp.md,
33013         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
33014         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
33015         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
33016         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
33017         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
33018         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
33019         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
33020         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
33021         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
33022         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
33023         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
33024         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
33025         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
33026         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
33027         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
33028         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
33029         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
33030         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
33031         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
33032         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
33033         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
33034         opt-functions.awk, opth-gen.awk, params.def, passes.c,
33035         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
33036         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
33037         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
33038         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
33039         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
33040         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
33041         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
33042         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
33043         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
33044         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
33045         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
33046         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
33047         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
33048         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
33049
33050 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33051
33052         PR other/43620
33053         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
33054         * aclocal.m4: Regenerate.
33055
33056 2010-04-02  Richard Guenther  <rguenther@suse.de>
33057
33058         PR tree-optimization/43629
33059         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
33060         if we have seen a constant value.
33061
33062 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
33063
33064         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
33065
33066 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
33067
33068         PR target/43469
33069         * arm.c (legitimize_tls_address): Adjust call to
33070         gen_tls_load_dot_plus_four.
33071         (arm_note_pic_base): New function.
33072         (arm_cannot_copy_insn_p): Use it.
33073         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
33074         constraint.
33075
33076 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33077
33078         PR bootstrap/43531
33079
33080         Revert:
33081         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33082
33083         * Makefile.in ($(out_object_file)): Depend on
33084         gt-$(basename $(notdir $(out_file))).h.
33085
33086 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
33087
33088         * config.gcc (lm32-*-rtems*): Add t-lm32.
33089
33090 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
33091
33092         * config.gcc: Add lm32-*-rtems*.
33093         * config/lm32/rtems.h: New file.
33094
33095 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
33096
33097         PR target/42609
33098         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
33099
33100 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
33101
33102         * dwarf2out.c (output_compilation_unit_header): For
33103         -gdwarf-4 use version 4 instead of version 3.
33104         (output_line_info): For version 4 and above emit additional
33105         maximum ops per insn header field.
33106         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
33107
33108         * dwarf2out.c (is_c_family, is_java): Remove.
33109         (lower_bound_default): New function.
33110         (add_bound_info, gen_descr_array_type_die): Use it.
33111
33112 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
33113
33114         PR debug/43325
33115         * dwarf2out.c (gen_variable_die): Allow debug info for variable
33116         re-declaration when it happens in a function.
33117
33118 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
33119
33120         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
33121         (cgraph_remove_function_insertion_hook): Same.
33122         (cgraph_call_function_insertion_hooks): Same.
33123
33124 2010-04-01  Richard Guenther  <rguenther@suse.de>
33125
33126         PR middle-end/43614
33127         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
33128         and TREE_THIS_VOLATILE.
33129         (copy_ref_info): Likewise.
33130         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
33131         * tree.c (build6_stat): Ignore side-effects of all but arg5
33132         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
33133         TARGET_MEM_REF.
33134
33135 2010-04-01  Richard Guenther  <rguenther@suse.de>
33136
33137         PR tree-optimization/43607
33138         * ipa-type-escape.c (check_call): Do not access non-existing
33139         arguments.
33140
33141 2010-04-01  Richard Guenther  <rguenther@suse.de>
33142
33143         PR middle-end/43602
33144         Revert
33145         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
33146                     Jack Howarth  <howarth@bromo.med.uc.edu>
33147
33148         * tree-profile.c (tree_init_ic_make_global_vars): Make static
33149         variables TLS.
33150
33151 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33152
33153         * doc/install.texi (Prerequisites): Document libelf usability on
33154         IRIX 5/6 and Solaris 2.
33155         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
33156         Update GNU as, GNU ld requirements.
33157         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
33158         Document Sun Studio compiler download.
33159         Update and simplify as, ld recommendations.
33160         (Specific, *-*-solaris2.7): Note obsoletion, removal.
33161
33162 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33163
33164         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
33165         with_tune_32 to pentium4.
33166
33167 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
33168
33169         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
33170
33171 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33172
33173         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
33174         obsoletion, removal.
33175         Update IDO URL.
33176         Document GNU as requirement.
33177         Update configure requirements.
33178         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
33179         Recomment IRIX 6.5.18+.
33180         Document IDF/IDL requirement.
33181         Document GNU as requirement.
33182         Document GNU ld bootstrap failure.
33183         Remove freeware.sgi.com reference.
33184
33185 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33186
33187         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
33188         UNIX V4.0, V5.0 obsoletion, removal.
33189         Remove --with-gc=simple reference.
33190         Update VM requirements during bootstrap.
33191         Remove -oldas bootstrap description.
33192         Update binutils reference.
33193         Remove comparison failure note.
33194
33195 2010-03-31  Richard Guenther  <rguenther@suse.de>
33196             Zdenek Dvorak  <ook@ucw.cz>
33197             Sebastian Pop  <sebastian.pop@amd.com>
33198
33199         PR middle-end/43464
33200         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
33201         with multiple arguments.
33202         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
33203
33204 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33205
33206         * graphite-dependences.c (print_pddr): Call print_pdr with an
33207         extra argument.
33208         * graphite-poly.c (debug_pdr): Add an extra argument for the
33209         verbosity level.
33210         (print_pdr): Same.
33211         (print_pbb_domain): Same.
33212         (print_pbb): Same.
33213         (print_scop_context): Same.
33214         (print_scop): Same.
33215         (print_cloog): Same.
33216         (debug_pbb_domain): Same.
33217         (debug_pbb): Same.
33218         (print_pdrs): Same.
33219         (debug_pdrs): Same.
33220         (debug_scop_context): Same.
33221         (debug_scop): Same.
33222         (debug_cloog): Same.
33223         (print_scop_params): Same.
33224         (debug_scop_params): Same.
33225         (print_iteration_domain): Same.
33226         (print_iteration_domains): Same.
33227         (debug_iteration_domain): Same.
33228         (debug_iteration_domains): Same.
33229         (print_scattering_function): Same.
33230         (print_scattering_functions): Same.
33231         (debug_scattering_function): Same.
33232         (debug_scattering_functions): Same.
33233         * graphite-poly.h (debug_pdr): Update declaration.
33234         (print_pdr): Same.
33235         (print_pbb_domain): Same.
33236         (print_pbb): Same.
33237         (print_scop_context): Same.
33238         (print_scop): Same.
33239         (print_cloog): Same.
33240         (debug_pbb_domain): Same.
33241         (debug_pbb): Same.
33242         (print_pdrs): Same.
33243         (debug_pdrs): Same.
33244         (debug_scop_context): Same.
33245         (debug_scop): Same.
33246         (debug_cloog): Same.
33247         (print_scop_params): Same.
33248         (debug_scop_params): Same.
33249         (print_iteration_domain): Same.
33250         (print_iteration_domains): Same.
33251         (debug_iteration_domain): Same.
33252         (debug_iteration_domains): Same.
33253         (print_scattering_function): Same.
33254         (print_scattering_functions): Same.
33255         (debug_scattering_function): Same.
33256         (debug_scattering_functions): Same.
33257
33258 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33259
33260         * graphite-poly.c (print_scattering_function_1): New.
33261         (print_scattering_function): Call it.
33262         (print_scop_params): Remove spaces at the end of lines.
33263         (print_cloog): New.
33264         (debug_cloog): New.
33265         * graphite-poly.h (print_cloog): Declared.
33266         (debug_cloog): Declared.
33267
33268 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33269
33270         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
33271         in loop->header.
33272         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
33273         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
33274         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
33275         to switch between adding the IV bump in loop->latch or in loop->header.
33276
33277 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33278
33279         * graphite-poly.c (print_scattering_function): Pretty print following
33280         the scoplib format.
33281         (print_pdr): Same.
33282         (print_pbb_domain): Same.
33283         (dump_gbb_cases): Same.
33284         (dump_gbb_conditions): Same.
33285         (print_pdrs): Same.
33286         (print_pbb): Same.
33287         (print_scop_params): Same.
33288         (print_scop_context): Same.
33289         (print_scop): Same.
33290         (print_pbb_body): New.
33291         (lst_indent_to): New.
33292         (print_lst): Start new lines with a #.
33293         * graphite-poly.h (pbb_bb): New.
33294         (pbb_index): Use pbb_bb.
33295         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
33296         disjuncts.
33297         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
33298
33299 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
33300
33301         * dwarf2out.c (size_of_die): For -gdwarf-4 use
33302         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
33303         and 0 instead of 1 for dw_val_class_flag.
33304         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
33305         dw_val_class_range_list, dw_val_class_loc_list,
33306         dw_val_class_lineptr and dw_val_class_macptr, use
33307         DW_FORM_flag_present for dw_val_class_flag and
33308         DW_FORM_exprloc for dw_val_class_loc.
33309         (output_die): For -gdwarf-4 print dw_val_class_loc
33310         size as uleb128 instead of 1 or 2 bytes and don't print
33311         anything for dw_val_class_flag.
33312
33313         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
33314         instead of cselib_lookup following by tweaking locs->setting_insn.
33315
33316         PR bootstrap/43596
33317         * cselib.c (cselib_process_insn): Clear cselib_current_insn
33318         even before returning from label, setjmp call or volatile asm
33319         handling.
33320
33321 2010-03-31  Richard Guenther  <rguenther@suse.de>
33322
33323         PR middle-end/43600
33324         * cgraphunit.c (cgraph_output_in_order): Do not allocate
33325         temporary data on stack.
33326
33327 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33328
33329         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
33330         (PUSHSECTION_ASM_OP): Remove.
33331         (POPSECTION_ASM_OP): Remove.
33332         (PUSHSECTION_FORMAT): Remove.
33333         * config/sol2.h (PUSHSECTION_FORMAT): Define.
33334         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
33335         * config/sol2.c (solaris_output_init_fini): Use it.
33336
33337 2010-03-31  Jie Zhang  <jie@codesourcery.com>
33338
33339         PR 43574
33340         * opt-functions.awk (var_type_struct): Use signed char type
33341         for simple variables.
33342
33343 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33344
33345         * config/sol2.c: Include output.h.
33346         (solaris_assemble_visibility): New function.
33347         * config/t-sol2 (sol2.o): Add output.h dependency.
33348         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
33349         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
33350         Redefine.
33351
33352 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
33353
33354         PR target/43580
33355         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
33356         V2SImode or XFmode on PRE_DEC.
33357
33358         PR debug/43557
33359         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
33360         BLKmode.
33361
33362 2010-03-31  Jie Zhang  <jie@codesourcery.com>
33363
33364         PR 43562
33365         * reload.h (caller_save_initialized_p): Declare.
33366         * toplev.c (backend_init_target): Don't call
33367         init_caller_save but set caller_save_initialized_p to false.
33368         * caller-save.c (caller_save_initialized_p): Define.
33369         (init_caller_save): Check caller_save_initialized_p.
33370         * ira.c (ira): Call init_caller_save if flag_caller_saves.
33371
33372 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33373
33374         PR target/39048
33375         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
33376         and soft-fp/t-softfp to tmake_file.
33377         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
33378         (LIBGCC2_TF_CEXT): Define.
33379         (TF_SIZE): Define.
33380
33381 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
33382
33383         PR debug/42977
33384         * cselib.c (n_useless_values): Document handling of debug locs.
33385         (n_useless_debug_values, n_debug_values): New variables.
33386         (new_elt_loc_list): Don't add to debug values, keep count.
33387         (promote_debug_loc): New.
33388         (cselib_reset_table): Zero new variables.
33389         (entry_and_rtx_equal_p): Promote debug locs.
33390         (discard_useless_locs): Increment n_useless_debug_values for
33391         debug values.
33392         (remove_useless_values): Adjust n_useless_values and n_debug_values
33393         with n_useless_debug_values.
33394         (add_mem_for_addr): Promote debug locs.
33395         (cselib_lookup_mem): Likewise.
33396         (cselib_lookup_addr): Renamed to...
33397         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
33398         (cselib_log_lookup): ... this.  Turn into...
33399         (cselib_lookup_addr): ... new wrapper.
33400         (cselib_lookup_from_insn): New.
33401         (cselib_invalidate_regno): Increment n_useless_debug_values for
33402         debug values.
33403         (cselib_invalidate_mem): Likewise.
33404         (cselib_process_insn): Take n_deleted and n_debug_values into
33405         account to guard remove_useless_value call.
33406         (cselib_finish): Zero n_useless_debug_values.
33407         * cselib.h (cselib_lookup_from_insn): Declare.
33408         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
33409         (sched_analyze_2): Likewise.
33410
33411 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
33412
33413         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
33414         functions.
33415         (adjust_mems): Replace narrowing SUBREG of expression containing
33416         just PLUS, MINUS, MULT and ASHIFT of registers and constants
33417         with operations in the narrower mode.
33418
33419         PR debug/43593
33420         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
33421         regs_invalidated_by_call instead all call_used_reg_set registers.
33422
33423 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
33424
33425         PR middle-end/43430
33426         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
33427         pointer comparisons with types_compatible_p.
33428         * tree-vect-stmts.c (vectorizable_call): Same.
33429         (vectorizable_condition): Same.
33430
33431 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33432
33433         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
33434         stack check if the mask would be zero.
33435
33436 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
33437             Jack Howarth  <howarth@bromo.med.uc.edu>
33438
33439         * tree-profile.c (tree_init_ic_make_global_vars): Make static
33440         variables TLS.
33441
33442 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
33443
33444         PR other/25232
33445         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
33446         and __unordtf2.
33447         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
33448         Include ___unordxf2 and ___unordtf2.
33449         * config/i386/libgcc-glibc.ver: Do not define inheritance from
33450         GCC_4.4.0 here.
33451
33452 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
33453
33454         * config/lm32/t-lm32: New file.
33455         * config.gcc: Use the above file when targetting lm32.
33456
33457 2010-03-28  Duncan Sands  <baldrick@free.fr>
33458
33459         * Makefile.in (PLUGIN_HEADERS): Add except.h.
33460
33461 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
33462
33463         PR middle-end/43431
33464         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
33465         Improve vectorization cost model diagnostic.
33466
33467 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
33468
33469         PR middle-end/43436
33470         * tree-vect-data-refs.c (vect_analyze_data_refs): When
33471         compute_data_dependences_for_loop returns false, early exit
33472         and output an extra diagnostic for the failed data reference
33473         analysis.
33474
33475 2010-03-29  Richard Guenther  <rguenther@suse.de>
33476
33477         PR tree-optimization/43560
33478         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
33479         (can_sm_ref_p): Treat stores to readonly locations as trapping.
33480
33481 2010-03-29  Jie Zhang  <jie@codesourcery.com>
33482
33483         PR 43564
33484         * toplev.c (process_options): Set optimization_default_node
33485         and optimization_current_node.
33486         * opts.c (decode_options): Don't set optimization_default_node
33487         and optimization_current_node.
33488
33489 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
33490
33491         * config/rtems.h: Abandon -qrtems_debug.
33492
33493 2010-03-28  Jan Hubicka  <jh@suse.cz>
33494
33495         PR tree-optimization/43505
33496         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
33497         map should not be copied.
33498
33499 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
33500
33501         PR middle-end/41674
33502         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
33503         cdtors, set DECL_PRESERVE_P.
33504         * ipa.c (cgraph_externally_visible_p): Return true if declaration
33505         should be preseved.
33506
33507 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
33508
33509         PR tree-optimization/43528
33510         * stor-layout.c (place_field): Check that constant fits into
33511         unsigned HWI when skipping calculation of MS bitfield layout.
33512
33513 2010-03-27  Jan Hubicka  <jh@suse.cz>
33514
33515         PR middle-end/43391
33516         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
33517         notice_global_symbol work.
33518
33519 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
33520
33521         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
33522         instead of dwarf2out_decl.
33523         (struct var_loc_node): Remove section_label field.
33524         (dwarf2out_function_decl): New function.
33525         (dwarf2out_var_location): Don't set section_label field.
33526         (dwarf2out_begin_function): Don't empty decl_loc_table here.
33527
33528 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
33529
33530         PR tree-optimization/43544
33531         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
33532         First argument for builtin vectorized function hook is now a
33533         tree to be able to distinguish between machine specific and
33534         standard builtins.
33535         * targhooks.c (default_builtin_vectorized_function): Ditto.
33536         * targhooks.h (default_builtin_vectorized_function): Ditto.
33537         * target.h (struct gcc_target): Ditto.
33538         * tree-vect-stmts.c (vectorizable_function): Ditto.
33539         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
33540         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
33541         Ditto.
33542
33543 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
33544
33545         PR c/43381
33546         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
33547         nested binding iff it is a FUNCTION_DECL.
33548         (store_parm_decls_newstyle): Pass nested=true to bind for
33549         FUNCTION_DECLs amongst parameters.
33550
33551 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
33552
33553         * var-tracking.c (vt_expand_loc_callback): Don't run
33554         cselib_expand_value_rtx_cb in dummy mode if
33555         cselib_dummy_expand_value_rtx_cb returned false.
33556
33557         * var-tracking.c (emit_note_insn_var_location): For one part
33558         notes with offset 0, don't add EXPR_LIST around the location.
33559         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
33560         add_location_or_const_value_attribute): Adjust for that change.
33561
33562         PR debug/43540
33563         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
33564         into first operand and location into second.
33565         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
33566         dw_cfi_oprnd_loc for DW_CFA_expression.
33567         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
33568         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
33569         assume first argument is regnum and second argument is location.
33570
33571 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
33572
33573         PR target/42113
33574         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
33575         of scratch register to DImode.  Split to DImode comparison operator.
33576         Use SImode subreg of scratch register in the multiplication.
33577         (*cmp_sadd_sidi): Ditto.
33578         (*cmp_ssub_si): Ditto.
33579         (*cmp_ssub_sidi): Ditto.
33580
33581 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
33582
33583         PR target/43524
33584         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
33585         Remove invalid assert and wrong comment.
33586
33587 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
33588
33589         PR debug/43516
33590         * flags.h (final_insns_dump_p): New extern.
33591         * final.c (final_insns_dump_p): New variable.
33592         (rest_of_clean_state): Set it before -fdump-final-insns=
33593         dumping, clear afterwards.
33594         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
33595         MEM_ALIAS_SET on MEMs.
33596
33597 2010-03-26  David S. Miller  <davem@davemloft.net>
33598
33599         * configure.ac: Fix sparc GOTDATA_OP bug check.
33600         * configure: Rebuild.
33601
33602 2010-03-26  Alan Modra  <amodra@gmail.com>
33603
33604         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
33605
33606 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33607
33608         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
33609         TLS_SECTION_ASM_FLAG.
33610
33611 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
33612
33613         PR bootstrap/43511
33614         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
33615         Clear first_function_block_is_cold.
33616
33617         PR c/43385
33618         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
33619         argument if the argument is truth_value_p.
33620
33621 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
33622
33623         * config/rs6000/constraints.md: Update copyright year for my changes.
33624
33625         PR target/43484
33626         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
33627         used in reg+reg addressing, swap registers.
33628
33629 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
33630
33631         PR debug/43293
33632         * target.h (struct gcc_target): Add code_end hook.
33633         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
33634         if not yet defined.
33635         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
33636         * toplev.c (compile_file): Call targetm.asm_out.code_end
33637         hook before unwind info/debug info output.
33638         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
33639         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
33640         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
33641         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
33642         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
33643         * config/i386/i386.c (ix86_file_end): Renamed to...
33644         (ix86_code_end): ... this.  Make static.  Don't call
33645         file_end_indicate_exec_stack.  Emit unwind info using
33646         final_start_function/final_end_function.
33647         (darwin_x86_file_end): Remove.
33648         (TARGET_ASM_CODE_END): Define.
33649         * config/i386/i386.h (TARGET_ASM_FILE_END,
33650         NEED_INDICATE_EXEC_STACK): Don't define.
33651         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
33652         (TARGET_ASM_FILE_END): Define to darwin_file_end.
33653         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
33654         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
33655
33656         PR target/43498
33657         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
33658         at the beginning and final_end_function at the end.
33659         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
33660
33661 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33662
33663         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
33664         and Sun as TLS syntax.
33665         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
33666         * configure: Regenerate.
33667         * config.in: Regenerate.
33668         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
33669         (default_elf_asm_named_section): Use it.
33670         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
33671         (i386_output_dwarf_dtprel): Likewise.
33672         (output_addr_const_extra): Likewise.
33673         (output_pic_addr_const): Lowercase @GOTTPOFF.
33674         (output_addr_const_extra): Likewise.
33675         (output_pic_addr_const): Lowercase @GOTNTPOFF.
33676         (output_addr_const_extra): Likewise.
33677         (output_pic_addr_const): Lowercase @INDNTPOFF.
33678         (output_addr_const_extra): Likewise.
33679         (output_pic_addr_const): Lowercase @NTPOFF.
33680         (output_addr_const_extra): Likewise.
33681         (output_pic_addr_const): Lowercase @TPOFF.
33682         (output_addr_const_extra): Likewise.
33683         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
33684         (*tls_global_dynamic_64): Likewise.
33685         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
33686         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
33687
33688         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
33689         (ASM_OUTPUT_TLS_COMMON): Use it.
33690         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
33691
33692         PR target/38118
33693         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
33694         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
33695         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
33696         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
33697         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
33698         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
33699
33700 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33701
33702         * config/i386/i386.c (override_options): Don't accept
33703         -mtls-dialect=sun any longer.
33704         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
33705         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
33706         (*tls_local_dynamic_base_32_sun): Likewise.
33707         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
33708
33709 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
33710
33711         PR debug/43508
33712         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
33713         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
33714
33715         PR debug/43479
33716         * ira.c (adjust_cleared_regs): New function.
33717         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
33718
33719         PR debug/19192
33720         PR debug/43479
33721         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
33722         from gimple_block.
33723         * expr.c (expand_expr_real): Restore previous
33724         curr_insn_source_location and curr_insn_block after
33725         expand_expr_real_1 call.
33726         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
33727         instead of expand_expr_real_1.
33728
33729 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
33730
33731         PR rtl-optimization/43413
33732         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
33733         hard regs too.
33734
33735 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
33736
33737         PR target/43348
33738         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
33739         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
33740
33741 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
33742
33743         * config/i386/i386.c (ix86_target_string): Add -mfma.
33744         Fix a typo in comment.
33745
33746 2010-03-22  Mike Stump  <mikestump@comcast.net>
33747
33748         PR target/23071
33749         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
33750         Don't overly align based upon packed packed fields.
33751
33752 2010-03-22  Jason Merrill  <jason@redhat.com>
33753
33754         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
33755         Use () rather than [], and move before the element type.
33756
33757 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33758
33759         * doc/configfiles.texi (Configuration Files): Removed
33760         fixinc/Makefile*, intl/Makefile.*.
33761         * doc/makefile.texi: Fixed markup. Abstract from version
33762         control system used.
33763         (Makefile): Removed obsolete java/parse.y example.
33764         * doc/sourcebuild.texi: Likewise.
33765         (Top Level): Added config, gnattools, libdecnumber, libgcc,
33766         libgomp, libssp.  Removed fastjar.
33767         (Miscellaneous Docs): Clarify location.
33768         Added COPYING3, COPYING3.LIB.
33769         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
33770
33771 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33772
33773         PR target/38085
33774         * config/i386/i386.c (x86_function_profiler)
33775         [!NO_PROFILE_COUNTERS]: Fix typo.
33776         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
33777         instead of callq.
33778
33779 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
33780             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33781
33782         * doc/sourcebuild.texi (Test Directives): Split into six
33783         subsections, with most of the current text in new subsections
33784         Directives, Selectors, and Final Actions.
33785         (Directives): Split list of test directives into multiple
33786         subsubsections.
33787         (Selectors): Describe use and syntax of selectors.
33788         (Effective-Target Keywords): Describe all existing keywords.
33789         (Add Options): Describe features for dg-add-options.
33790         (Require Support): Describe variants of dg-require-support.
33791         (Final Actions): Describe commands to use in dg-final.
33792
33793 2010-03-22  Michael Matz  <matz@suse.de>
33794
33795         PR middle-end/43475
33796         * recog.c (validate_replace_rtx_group): Replace also in
33797         REG_EQUAL and REG_EQUIV notes.
33798
33799 2010-03-22  Richard Guenther  <rguenther@suse.de>
33800
33801         PR tree-optimization/43390
33802         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
33803         sure vector extracts are type correct.
33804
33805 2010-03-22  Richard Guenther  <rguenther@suse.de>
33806
33807         PR middle-end/40106
33808         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
33809         x * sqrt (x) even when optimizing for size if the target
33810         has native support for sqrt.
33811
33812 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
33813
33814         * varasm.c (make_decl_rtl_for_debug): Also clear
33815         flag_mudflap for the duration of make_decl_rtl call.
33816
33817         PR debug/43443
33818         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
33819         locs from preserved VALUEs.
33820
33821 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
33822
33823         PR middle-end/42718
33824         * pa.md (movmemsi): Set align to one if zero.
33825         (movmemdi): Likewise.
33826
33827 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
33828
33829         PR target/42321
33830         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
33831         with their corresponding prologue pushes.
33832
33833 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
33834
33835         PR target/43156
33836         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
33837         at the begining or end.
33838         (spu_expand_epilogue): Likewise.
33839
33840 2010-03-20  Richard Guenther  <rguenther@suse.de>
33841
33842         PR rtl-optimization/43438
33843         * combine.c (make_extraction): Properly zero-/sign-extend an
33844         extraction of the low part of a CONST_INT.  Also handle
33845         CONST_DOUBLE.
33846
33847 2010-03-19  Mike Stump  <mikestump@comcast.net>
33848
33849         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
33850         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
33851         (override_options): Use SUBTARGET32_DEFAULT_CPU.
33852
33853 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
33854
33855         PR c/43211
33856         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
33857         an error.
33858
33859 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
33860
33861         PR rtl-optimization/42258
33862         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
33863         use that may match DEF.
33864
33865         PR target/40697
33866         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
33867         the cost of loading the constant rather than assuming
33868         COSTS_N_INSNS (1).
33869         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
33870         outer code is AND, do the same tests as the andsi3 expander and
33871         return COSTS_N_INSNS (1) if and is cheap.
33872
33873         * optabs.c (avoid_expensive_constant): Fix formatting.
33874
33875 2010-03-19  Michael Matz  <matz@suse.de>
33876
33877         PR c++/43116
33878         * attribs.c (decl_attributes): When rebuilding a function pointer
33879         type use the same qualifiers as the original pointer type.
33880
33881 2010-03-19  Martin Jambor  <mjambor@suse.cz>
33882
33883         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
33884         and is_gimple_ip_invariant_address.
33885
33886 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33887
33888         Revert
33889         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33890
33891         * config/arm/arm.c (arm_override_options): Turn off
33892         flag_dwarf2_cfi_asm for AAPCS variants.
33893
33894 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33895
33896         PR target/43399
33897         * config/arm/arm.c (emit_multi_reg_push): Update comments.
33898         Use PRE_MODIFY instead of PRE_DEC.
33899         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
33900         (vfp_emit_fstmd): Likewise.
33901
33902 2010-03-19  Michael Matz  <matz@suse.de>
33903
33904         PR target/43305
33905         * builtins.c (expand_builtin_interclass_mathfn,
33906         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
33907         if that fails.
33908
33909 2010-03-19  Richard Guenther  <rguenther@suse.de>
33910
33911         PR tree-optimization/43415
33912         * tree-ssa-pre.c (phi_translate): Split out worker to ...
33913         (phi_translate_1): ... this.
33914         (phi_translate): Move all caching here.  Cache all NARY
33915         and REFERENCE translations.
33916
33917 2010-03-19  David S. Miller  <davem@davemloft.net>
33918
33919         With help from Eric Botcazou.
33920         * config/sparc/sparc.c: Include dwarf2out.h.
33921         (emit_pic_helper): Delete.
33922         (pic_helper_symbol_name): Delete.
33923         (pic_helper_emitted_p): Delete.
33924         (pic_helper_needed): New.
33925         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
33926         (get_pc_thunk_name): New.
33927         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
33928         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
33929         Set pic_helper_needed to true.  Don't call emit_pic_helper.
33930         (sparc_expand_prologue): Update load_pic_register call.
33931         (sparc_output_mi_thunk): Likewise.
33932         (sparc_file_end): Emit a hidden comdat symbol for the PIC
33933         thunk if possible.  Output CFI information as needed.
33934
33935 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
33936             Jack Howarth  <howarth@bromo.med.uc.edu>
33937
33938         PR target/36399
33939         * config/i386/i386.h: Fix ABI on darwin x86-32.
33940
33941 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
33942
33943         * tree.h: Declare make_decl_rtl_for_debug.
33944         * varasm.c (make_decl_rtl_for_debug): New.
33945         * dwarf2out.c (rtl_for_decl_location): Call it.
33946         * cfgexpand.c (expand_debug_expr): Call it.
33947
33948 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
33949
33950         PR bootstrap/43399
33951         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
33952         mem_mode.
33953
33954         PR bootstrap/43403
33955         * var-tracking.c (vt_init_cfa_base): Do nothing if
33956         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
33957
33958 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
33959
33960         PR debug/42873
33961         * var-tracking.c (canonicalize_vars_star): New.
33962         (dataflow_post_merge_adjust): Use it.
33963
33964 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
33965
33966         PR debug/43058
33967         * var-tracking.c (non_suitable_const): New function.
33968         (add_uses): For DEBUG_INSNs with constants, don't record any
33969         value, instead just the constant value itself.
33970         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
33971         is not VAR_LOC_UNKNOWN_P, set var to the constant.
33972         (emit_notes_in_bb): Likewise.
33973         (emit_note_insn_var_location): For onepart variables if
33974         cur_loc is a VOIDmode constant, use DECL_MODE.
33975
33976 2010-03-18  Martin Jambor  <mjambor@suse.cz>
33977
33978         PR middle-end/42450
33979         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
33980         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
33981         all non-clones.  Moved call redirection...
33982         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
33983         (cgraph_materialize_all_clones): Dispose of all
33984         combined_args_to_skip bitmaps.
33985         (verify_cgraph_node): Do not check for edges pointing to wrong
33986         nodes in inline clones.
33987         * tree-inline.c (copy_bb): Call
33988         cgraph_redirect_edge_call_stmt_to_callee.
33989         * ipa.c (cgraph_remove_unreachable_nodes): Call
33990         cgraph_node_remove_callees even when there are used clones.
33991
33992 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
33993
33994         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
33995
33996 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
33997
33998         PR target/43383
33999         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
34000         for 32bit.
34001
34002 2010-03-18  Michael Matz  <matz@suse.de>
34003
34004         PR middle-end/43419
34005         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
34006         into sqrt(x) if we need to preserve signed zeros.
34007
34008 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
34009             Eric Botcazou  <ebotcazou@adacore.com>
34010
34011         PR rtl-optimization/43360
34012         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
34013         note if we don't know its invariant status.
34014
34015 2010-03-18  Michael Matz  <matz@suse.de>
34016
34017         PR tree-optimization/43402
34018         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
34019         PHI chains of ssa names registered for update.
34020
34021 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
34022
34023         PR target/42427
34024         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
34025         non-offsettable and pre_modify update addressing.
34026         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
34027         and "2" alternatives "#".
34028         (*movdd_softfloat32): Make all alternatives "#";
34029         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
34030         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
34031         (*movdf_softfloat32): Make all alternatives "#";
34032         (movdi): Use the new DIFD mode iterator to create a common splitter
34033         for movdi, movdf and movdd patterns.
34034
34035 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
34036
34037         * common.opt (dumpdir): Remove redundant tab.
34038
34039 2010-03-17  Martin Jambor  <mjambor@suse.cz>
34040
34041         PR tree-optimization/43347
34042         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
34043         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
34044
34045 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
34046
34047         PR rtl-optimization/42216
34048         * regrename.c (create_new_chain): New function, broken out from...
34049         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
34050         appending a use to an empty chain.
34051         (build_def_use): Remove previous changes that convert OP_INOUT to
34052         OP_OUT operands; instead detect the case where an OP_INOUT operand
34053         uses a previously untracked register and create an empty chain for it.
34054
34055 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34056
34057         * doc/extend.texi (Function Attributes): Rewrite unfinished
34058         sentence in ms_abi documentation.
34059
34060 2010-03-17  Alan Modra  <amodra@gmail.com>
34061
34062         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
34063         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
34064         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
34065         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
34066
34067 2010-03-16  Richard Henderson  <rth@redhat.com>
34068
34069         PR middle-end/43365
34070         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
34071         (lower_try_finally): Save and restore eh_seq around the expansion
34072         of the try-finally.
34073
34074 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
34075
34076         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
34077         statements before splitting block.
34078
34079 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34080
34081         * doc/sourcebuild.texi (Testsuites): Fix markup.
34082         Use pathnames relative to gcc/testsuite.
34083         (Test Directives): Move description of how timeout is determined.
34084         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
34085         (C Tests): Correct gcc.misc-tests directory.
34086         Framework tests now live in gcc.test-framework.
34087
34088 2010-03-16  Richard Guenther  <rguenther@suse.de>
34089
34090         PR middle-end/43379
34091         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
34092         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
34093
34094 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
34095             Alexandre Oliva  <aoliva@redhat.com>
34096
34097         PR tree-optimization/42917
34098         * lambda-code.c (remove_iv): Skip debug statements.
34099         (lambda_loopnest_to_gcc_loopnest): Likewise.
34100         (not_interesting_stmt): Debug statements are not interesting.
34101
34102 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
34103
34104         PR debug/43051
34105         PR debug/43092
34106         * cselib.c (cselib_preserve_constants,
34107         cfa_base_preserved_val): New static variables.
34108         (preserve_only_constants): New function.
34109         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
34110         clear its REG_VALUES.  If cselib_preserve_constants, don't
34111         empty the whole hash table, but preserve there VALUEs with constants,
34112         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
34113         (cselib_preserve_cfa_base_value): New function.
34114         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
34115         (cselib_init): Change argument to int bitfield.  Set
34116         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
34117         is in it.
34118         (cselib_finish): Clear cselib_preserve_constants and
34119         cfa_base_preserved_val.
34120         * cselib.h (enum cselib_record_what): New enum.
34121         (cselib_init): Change argument to int.
34122         (cselib_preserve_cfa_base_value): New prototype.
34123         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
34124         * dse.c (dse_step1): Likewise.
34125         * cfgcleanup.c (thread_jump): Likewise.
34126         * sched-deps.c (sched_analyze): Likewise.
34127         * gcse.c (local_cprop_pass): Likewise.
34128         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
34129         If FN is non-NULL, call the callback always and whenever it returns
34130         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
34131         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
34132         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
34133         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
34134         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
34135         * var-tracking.c: Include recog.h.
34136         (bb_stack_adjust_offset): Remove.
34137         (vt_stack_adjustments): Don't call it, instead just gather the
34138         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
34139         (adjust_stack_reference): Remove.
34140         (compute_cfa_pointer): New function.
34141         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
34142         (struct adjust_mem_data): New type.
34143         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
34144         functions.
34145         (get_address_mode): New function.
34146         (replace_expr_with_values): Use it.
34147         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
34148         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
34149         (adjust_sets): Remove.
34150         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
34151         Use get_address_mode.
34152         (get_adjusted_src): Remove.
34153         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
34154         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
34155         (add_with_sets): Don't call adjust_sets.
34156         (fp_setter, vt_init_cfa_base): New functions.
34157         (vt_initialize): Change return type to bool.  Move most of pool etc.
34158         initialization to the beginning of the function from end.  Pass
34159         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
34160         If !frame_pointer_needed, call vt_stack_adjustment before mos
34161         vector is filled, call vt_init_cfa_base if argp/framep has been
34162         eliminated to sp.  If frame_pointer_needed and argp/framep has
34163         been eliminated to hard frame pointer, set
34164         hard_frame_pointer_adjustment and call vt_init_cfa_base after
34165         encountering fp setter in the prologue.  For MO_ADJUST, call
34166         log_op_type before pusing the op into mos vector, not afterwards.
34167         Call adjust_insn before cselib_process_insn/add_with_sets,
34168         call cancel_changes (0) afterwards.
34169         (variable_tracking_main_1): Adjust for vt_initialize calling
34170         vt_stack_adjustments and returning whether it succeeded or not.
34171
34172 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
34173
34174         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
34175         debug statements.
34176
34177 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
34178
34179         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
34180         has been set.
34181         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
34182         drap_reg has not been set.
34183
34184 2010-03-15  Michael Matz  <matz@suse.de>
34185
34186         PR middle-end/43300
34187         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
34188         use it to expand block copies.
34189         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
34190         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
34191         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
34192
34193 2010-03-15  Richard Guenther  <rguenther@suse.de>
34194
34195         PR tree-optimization/43367
34196         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
34197         elimination check.
34198
34199 2010-03-15  Richard Guenther  <rguenther@suse.de>
34200
34201         PR tree-optimization/43317
34202         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
34203
34204 2010-03-15  Martin Jambor  <mjambor@suse.cz>
34205
34206         PR tree-optimization/43141
34207         * tree-sra.c (create_abstract_origin): New function.
34208         (modify_function): Call create_abstract_origin.
34209
34210 2010-03-15  Chris Demetriou  <cgd@google.com>
34211
34212         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
34213         wasn't copied.
34214
34215 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34216
34217         PR middle-end/43354
34218         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
34219         call insert_out_of_ssa_copy for default definitions.
34220
34221 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34222
34223         * graphite-clast-to-gimple.c (my_long_long): Defined.
34224         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
34225         * graphite-sese-to-poly.c (my_long_long): Defined.
34226         (scop_ivs_can_be_represented): Use it.
34227
34228 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34229
34230         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
34231         graphite-max-bbs-per-function, and loop-block-tile-size.
34232         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
34233         with "maximum".
34234         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
34235
34236 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34237
34238         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
34239         forward declaration.
34240         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
34241         (add_upper_bounds_from_estimated_nit): New.
34242         (build_loop_iteration_domains): Use it.
34243
34244 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34245
34246         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
34247
34248 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34249
34250         PR middle-end/43306
34251         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
34252         should be an INTEGER_CST.  Also handle CASE_CONVERT.
34253
34254 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34255
34256         * graphite.c (graphite_initialize): To bound the number of bbs per
34257         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
34258         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
34259         * doc/invoke.texi: Document it.
34260
34261 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34262
34263         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
34264         * graphite-sese-to-poly.h (build_poly_scop): Same.
34265
34266 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34267
34268         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
34269         the number of parameters in the scop.  Use as an upper bound
34270         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
34271         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
34272         * doc/invoke.texi: Document it.
34273
34274 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
34275
34276         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
34277         * doc/c-tree.texi: Remove.
34278         * doc/generic.texi: Merge c-tree.texi here.
34279         * doc/gccint.texi (Trees): Remove menu entry.
34280         (c-tree.texi): Remove @include.
34281         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
34282         * doc/languages.texi (Reading RTL): Ditto.
34283
34284 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
34285
34286         PR target/42869
34287         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
34288
34289 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
34290
34291         PR middle-end/42431
34292         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
34293         code added to work around reload clobbering CONST insns.
34294
34295 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
34296
34297         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
34298         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
34299         (cselib_preserve_only_values): Remove retain argument, don't
34300         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
34301         * cselib.h (cselib_preserve_only_values): Remove retain argument.
34302         * var-tracking.c (micro_operation): Move insn field before union.
34303         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
34304         (struct variable_tracking_info_def): Remove n_mos field, change
34305         mos into a vector of micro_operations.
34306         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
34307         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
34308         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
34309         changing into a vector.
34310         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
34311         come before all other uops generated by add_stores.
34312         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
34313         argument removal.
34314         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
34315         a vector.  Run just one pass over the bbs instead of separate counting
34316         and computation phase.
34317         (vt_finalize): Free VTI (bb)->mos vector instead of array.
34318
34319         PR debug/43329
34320         * tree-inline.c (remap_decls): Put old_var rather than origin_var
34321         into *nonlocalized_list vector.
34322         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
34323         even if origin is non-NULL.
34324         (gen_variable_die): Likewise.
34325         (process_scope_var): Don't change origin.
34326         (gen_decl_die): Likewise.
34327         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
34328         before adding new edges instead of after it, fix moving over
34329         debug stmts.
34330
34331 2010-03-11  David S. Miller  <davem@davemloft.net>
34332
34333         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
34334         of four.
34335         * configure: Rebuild.
34336
34337 2010-03-11  Martin Jambor  <mjambor@suse.cz>
34338
34339         PR tree-optimization/43257
34340         * tree.c (assign_assembler_name_if_neeeded): New function.
34341         (free_lang_data_in_cgraph): Assembler name assignment moved to the
34342         above new function.
34343         * tree.h (assign_assembler_name_if_neeeded): Declare.
34344         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
34345         the function if needed.
34346
34347 2010-03-11  Chris Demetriou  <cgd@google.com>
34348
34349         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
34350         include/stdint-gcc.h, and include/stdint.h world-readable.
34351
34352 2010-03-11  Richard Guenther  <rguenther@suse.de>
34353
34354         PR tree-optimization/43255
34355         * tree-vrp.c (process_assert_insertions_for): Do not insert
34356         asserts for trivial conditions.
34357
34358 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34359
34360         PR tree-optimization/43280
34361         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
34362         generation.  Move calculation of size out of the if branch.
34363         (find_bswap): Modify compare number generation.
34364
34365 2010-03-11  Richard Guenther  <rguenther@suse.de>
34366
34367         PR lto/43200
34368         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
34369         (input_gimple_stmt): Fixup handled component types during
34370         operand read.  Also fix up decls in ADDR_EXPRs.
34371
34372 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
34373
34374         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
34375         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
34376
34377 2010-03-10  Jan Hubicka  <jh@suse.cz>
34378
34379         PR c/43288
34380         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
34381         * varasm.c (get_variable_section): Don't do that here...
34382         (make_decl_rtl): ... and here.
34383         (do_assemble_alias): Produce decl RTL.
34384         (assemble_alias): Likewise.
34385
34386 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
34387
34388         PR debug/43290
34389         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
34390         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
34391         of fde->vdrap_reg.
34392         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
34393         (based_loc_descr): Only express drap or vdrap regno based expressions
34394         using DW_OP_fbreg when not optimizing.
34395         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
34396         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
34397         REG_CFA_SET_VDRAP note.
34398
34399 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
34400
34401         PR tree-optimization/43236
34402         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
34403         error in calculation of base address in reverse iteration case.
34404         (generate_builtin): Take number of latch executions if the statement
34405         is in the latch.
34406
34407 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
34408
34409         PR middle-end/42859
34410         * tree-eh.c: Include pointer-set.h.
34411         (lower_eh_dispatch): Filter out duplicate case labels and
34412         remove the unneeded edge when the label is unused.  Return
34413         true when some edges are removed.
34414         (execute_lower_eh_dispatch): When any lowering resulted in
34415         removing an edge, also delete unreachable blocks.
34416
34417 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
34418
34419         PR bootstrap/43287
34420         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
34421         UNSPEC_MACHOPIC_OFFSET.
34422
34423 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
34424
34425         PR target/43294
34426         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
34427         (m68k_delegitimize_address): New function.
34428
34429 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
34430
34431         PR debug/43299
34432         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
34433
34434         PR debug/43299
34435         * var-tracking.c (adjust_sets): New function.
34436         (count_with_sets, add_with_sets): Use it.
34437         (get_adjusted_src): New inline function.
34438         (add_stores): Use it.
34439
34440         PR debug/43304
34441         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
34442         call cselib_dummy_expand_value_rtx_cb instead of
34443         cselib_expand_value_rtx_cb.
34444
34445         PR debug/43293
34446         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
34447         * config/i386/i386.c: Include debug.h and dwarf2out.h.
34448         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
34449         and .cfi_endproc around the pic thunks.
34450         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
34451         all queued unwind info register saves are saved before the call.
34452         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
34453         considered as sp-=4 for unwind info and the pop as sp+=4 which
34454         also clobbers dest, but doesn't actually restore it.
34455
34456         PR debug/43290
34457         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
34458         RTX_FRAME_RELATED_P.
34459
34460 2010-03-09  Jie Zhang  <jie@codesourcery.com>
34461
34462         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
34463         whitespaces in output template.
34464
34465 2010-03-09  Jie Zhang  <jie@codesourcery.com>
34466
34467         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
34468         out array boundary.
34469
34470 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
34471
34472         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
34473         builtins.exp in a separate job.
34474
34475 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34476
34477         * graphite-sese-to-poly.c (add_param_constraints): Use
34478         lower_bound_in_type and upper_bound_in_type.
34479
34480 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34481
34482         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
34483         instead of unsigned_type_node.
34484
34485 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34486             Reza Yazdani  <reza.yazdani@amd.com>
34487
34488         PR middle-end/43065
34489         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
34490         on pointer type parameters.
34491
34492 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
34493
34494         PR middle-end/42644
34495         PR middle-end/42130
34496         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
34497         handle conversions from pointer to integers.
34498         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
34499         induction variable, to be able to work with code generated by CLooG.
34500         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
34501         (build_poly_scop): Bail out if we cannot codegen a loop.
34502
34503 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
34504
34505         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
34506         code generation with gloog_error.
34507
34508 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34509
34510         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
34511         Call fold_convert on all the returned values.
34512         (expand_scalar_variables_expr): Pass to
34513         expand_scalar_variables_ssa_name the type of the resulting expression.
34514
34515 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34516
34517         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
34518         ppl_min_for_le_pointset.
34519         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
34520         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
34521
34522 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34523
34524         * graphite-dependences.c (map_into_dep_poly): Removed.
34525         (dependence_polyhedron_1): Use combine_context_id_scat.
34526
34527 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34528
34529         * graphite-poly.h (struct poly_scattering): Add layout documentation.
34530         (struct poly_bb): Same.
34531         (combine_context_id_scat): New.
34532
34533 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34534
34535         PR middle-end/42326
34536         * sese.c (name_defined_in_loop_p): Return false for default
34537         definitions.
34538
34539 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34540
34541         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
34542         and clean up the logic.
34543
34544 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34545
34546         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
34547         early return.
34548
34549 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
34550
34551         * var-tracking.c (remove_cselib_value_chains): Define only for
34552         ENABLE_CHECKING.
34553         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
34554         delete_slot_part, emit_notes_for_differences_1): Don't call
34555         remove_cselib_value_chains here.
34556         (set_slot_part, emit_notes_for_differences_2): Don't call
34557         add_cselib_value_chains here.
34558         (preserved_values): New vector.
34559         (preserve_value): New function.
34560         (add_uses, add_stores, vt_add_function_parameters): Use it
34561         instead of cselib_preserve_value.
34562         (changed_values_stack): New vector.
34563         (check_changed_vars_0): New function.
34564         (check_changed_vars_1, check_changed_vars_2): Use it.
34565         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
34566         changed_values_stack VALUEs.
34567         (vt_emit_notes): For all preserved_values call
34568         add_cselib_value_chains.  If ENABLE_CHECKING call
34569         remove_cselib_value_chains before verifying value_chains is empty.
34570         Initialize and free changed_values_stack.
34571         (vt_initialize): Initialize preserved_values.
34572         (vt_finalize): Free preserved_values.
34573
34574 2010-03-08  Richard Guenther  <rguenther@suse.de>
34575
34576         PR tree-optimization/43269
34577         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
34578         region detection.
34579
34580 2010-03-08  Martin Jambor  <mjambor@suse.cz>
34581
34582         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
34583         (ipa_is_param_called): Removed.
34584         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
34585         (ipa_print_node_params): Do not print the called flag.
34586         (ipa_write_node_info): Do not stream the called flag.
34587         (ipa_read_node_info): Likewise.
34588
34589 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
34590
34591         PR debug/43176
34592         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
34593         * cselib.c (struct expand_value_data): Add dummy field.
34594         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
34595         dummy to false.
34596         (cselib_dummy_expand_value_rtx_cb): New function.
34597         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
34598         any rtl.
34599         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
34600         * var-tracking.c: Include pointer-set.h.
34601         (variable): Change n_var_parts to char from int.  Add
34602         cur_loc_changed and in_changed_variables fields.
34603         (variable_canonicalize): Remove.
34604         (shared_var_p): New inline function.
34605         (unshare_variable): Maintain cur_loc_changed and
34606         in_changed_variables fields.  If var was in changed_variables,
34607         replace it there with new_var.  Just copy cur_loc instead of
34608         resetting it to something else.
34609         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
34610         (dataflow_set_union): Don't call variable_canonicalize.
34611         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
34612         of their DEBUG_EXPR_TREE_DECLs.
34613         (canonicalize_loc_order_check): Verify that cur_loc is NULL
34614         and in_changed_variables and cur_loc_changed is false.
34615         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
34616         and cur_loc_changed.  Don't update cur_loc here.
34617         (variable_merge_over_src): Don't call variable_canonicalize.
34618         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
34619         removing loc that is equal to cur_loc, clear cur_loc,
34620         set cur_loc_changed and ensure variable_was_changed is called.
34621         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
34622         compare pointers in cur_loc check, if it is equal to loc,
34623         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
34624         (variable_different_p): Remove compare_current_location argument,
34625         don't compare cur_loc.
34626         (dataflow_set_different_1): Adjust variable_different_p caller.
34627         (variable_was_changed): If dv had some var in changed_variables
34628         already, reset in_changed_variables flag for it and propagate
34629         cur_loc_changed over to the new variable.  On empty var
34630         always set cur_loc_changed.  Set in_changed_variables on whatever
34631         var is added to changed_variables.
34632         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
34633         Use shared_var_p.  When removing loc that is equal to cur_loc,
34634         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
34635         end, don't set it to something else, just call variable_was_changed.
34636         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
34637         loc being removed, clear cur_loc and set cur_loc_changed.
34638         Set cur_loc_changed if all locations have been removed.
34639         (struct expand_loc_callback_data): New type.
34640         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
34641         allocated.  Always create SUBREGs if simplify_subreg failed.
34642         Prefer to use cur_loc, when that fails and still in
34643         changed_variables (and seen first time) recompute it.  Set
34644         cur_loc_changed of variables which had to change cur_loc and
34645         compute elcd->cur_loc_changed if any of the subexpressions used
34646         had to change cur_loc.
34647         (vt_expand_loc): Adjust to pass arguments in
34648         expand_loc_callback_data structure.
34649         (vt_expand_loc_dummy): New function.
34650         (emitted_notes): New variable.
34651         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
34652         that weren't used for any other decl in current
34653         emit_notes_for_changes call call vt_expand_loc_dummy to update
34654         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
34655         first loc_chain location if NULL before.  Always use just
34656         cur_loc instead of first loc_chain location.  When cur_loc_changed
34657         is false, when not --enable-checking=rtl just don't emit any note.
34658         When rtl checking, compute the note and assert it is the same
34659         as previous note.  Clear cur_loc_changed and in_changed_variables
34660         at the end before removing from changed_variables.
34661         (check_changed_vars_3): New function.
34662         (emit_notes_for_changes): Traverse changed_vars to call
34663         check_changed_vars_3 on each changed var.
34664         (emit_notes_for_differences_1): Clear cur_loc_changed and
34665         in_changed_variables.  Recompute cur_loc of new_var.
34666         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
34667         (vt_emit_notes): Initialize and destroy emitted_notes.
34668
34669 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
34670
34671         PR rtl-optimization/42220
34672         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
34673         Use verify_reg_tracked to determine if we should use OP_OUT rather
34674         than OP_INOUT.
34675         (build_def_use): If we see an in-out operand for a register that we
34676         know nothing about, treat is an output if possible, fail the block if
34677         not.
34678
34679 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
34680
34681         PR debug/42897
34682         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
34683         permanently.
34684
34685 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
34686
34687         PR debug/42897
34688         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
34689         uses of relevant DEFs that are dead outside the loop too.
34690
34691 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
34692
34693         * var-tracking.c (dataflow_set_merge): Swap src and src2.
34694         Reverted:
34695         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
34696         PR debug/41371
34697         * var-tracking.c (values_to_unmark): New variable.
34698         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
34699         values_to_unmark vector.  Moved body to...
34700         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
34701         instead queue it into values_to_unmark vector.
34702         (vt_find_locations): Free values_to_unmark vector.
34703
34704 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
34705
34706         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
34707         (site.exp): Export them when plugins are enabled.
34708
34709 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
34710
34711         PR middle-end/42326
34712         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
34713         that contain scevs.
34714         (chrec_fold_multiply): Same.
34715
34716 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
34717
34718         PR c/43248
34719         * c-decl.c (build_compound_literal): Return early if init is
34720         an error_mark_node.
34721
34722 2010-03-04  Martin Jambor  <mjambor@suse.cz>
34723
34724         PR tree-optimization/43164
34725         PR tree-optimization/43191
34726         * tree-sra.c (type_consists_of_records_p): Reject records with
34727         zero-size bit-fields at the end.
34728
34729 2010-03-04  Mike Stump  <mikestump@comcast.net>
34730
34731         * Makefile.in (TAGS): Remove *.y.
34732
34733 2010-03-04  Richard Guenther  <rguenther@suse.de>
34734
34735         PR tree-optimization/40761
34736         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
34737         in reverse order.
34738         (my_rev_post_order_compute): New function.
34739         (init_pre): Call it.
34740
34741 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
34742
34743         PR middle-end/43209
34744         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
34745         decrease the cost of an IV candidate when the cost is infinite.
34746
34747 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34748
34749         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
34750         Use '3DNow!' for the extension of that name, ensure normal space
34751         after the string.
34752         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
34753
34754 2010-03-03  Jeff Law  <law@redhat.com>
34755
34756         * PR middle-end/32693
34757         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
34758         than gen_rtx_SUBREG.
34759         (extract_bit_field_1): Likewise.
34760
34761 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
34762
34763         * doc/sourcebuild.texi (Test directives): Document that arguments
34764         include-opts and exclude-opts are now optional for dg-skip-if,
34765         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
34766
34767 2010-03-03  Jason Merrill  <jason@redhat.com>
34768
34769         PR c++/12909
34770         * cgraph.h (varpool_node): Add extra_name field.
34771         * varpool.c (varpool_extra_name_alias): New.
34772         (varpool_assemble_decl): Emit extra name aliases.
34773         (varpool_mark_needed_node): Look past an extra name alias.
34774         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
34775         * lto-streamer-in.c (lto_input_tree): Read it.
34776         * lto-streamer-out.c (output_unreferenced_globals): Write it.
34777
34778 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
34779
34780         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
34781         (sparc*-*-solaris2*): ...this.
34782
34783 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
34784
34785         PR debug/43229
34786         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
34787         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
34788         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
34789         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
34790
34791         PR debug/43237
34792         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
34793         fallthrough to default handling, just with want_address 0 instead of 2.
34794         For single element lists, add_AT_loc directly, otherwise create an
34795         artificial variable DIE and stick location list to it.
34796
34797         PR debug/43177
34798         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
34799         (VAL_EXPR_HAS_REVERSE): Define.
34800         (reverse_op): New function.
34801         (add_stores): For reversible operations add an extra MO_VAL_USE.
34802
34803 2010-03-02  Jason Merrill  <jason@redhat.com>
34804
34805         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
34806
34807 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
34808
34809         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
34810         (sparc64-*-linux*): Likewise.
34811         (sparc64-*-solaris2*): Include assembler files before linker ones.
34812         (sparc-*-solaris2*): Simplify and reorder to match previous case.
34813         * config/sparc/gas.h: Delete.
34814         * config/sparc/sol2-64.h: Add copyright notice.
34815         * config/sparc/sol2-gas-bi.h: Likewise.
34816         * config/sparc/sol2-gld.h: Likewise.
34817         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
34818         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
34819         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
34820         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
34821         (sparc_elf_asm_named_section): Rename into...
34822         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
34823
34824 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
34825
34826         * config/alpha/alpha.c (override_options): Fix -mtune error message.
34827
34828 2010-03-02  Jeff Law  <law@redhat.com>
34829
34830         PR middle-end/42431
34831         * reload1.c (rtx_p, substitute_stack): Declare.
34832         (substitute): Record addresses of changed rtxs.
34833         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
34834         Restore the original rtx when complete.
34835         (reload): Free subsitute_stack when complete.
34836
34837 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
34838
34839         * doc/gccint.texi (menu): Add Testsuites as a chapter.
34840         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
34841         new chapter.
34842         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
34843         LTO Testing, gcov Testing, profopt Testing, compat Testing,
34844         Torture Tests): Change from subsection to section.
34845
34846 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
34847             Steven Bosscher  <steven@gcc.gnu.org>
34848
34849         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
34850         instead of bb.
34851
34852 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
34853
34854         PR middle-end/42640
34855         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
34856         the assignment from the new induction variable to the assignment
34857         of the value from the original loop PHI function.
34858
34859 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
34860             Daniel Jacobowitz  <dan@codesourcery.com>
34861
34862         * doc/sourcebuild.texi (Test directives): Clarify options to
34863         dg-skip-if.
34864
34865 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34866
34867         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
34868         Disable cfi directives unless GCC and gas agree on using read-only
34869         .eh_frame sections for 64-bit.
34870         * configure: Regenerate.
34871
34872 2010-03-01  Richard Guenther  <rguenther@suse.de>
34873
34874         PR tree-optimization/43220
34875         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
34876         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
34877
34878 2010-03-01  Richard Guenther  <rguenther@suse.de>
34879             Martin Jambor  <mjambor@suse.cz>
34880
34881         PR middle-end/41250
34882         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
34883         gimplified parameters.
34884
34885 2010-03-01  Christian Bruel  <christian.bruel@st.com>
34886
34887         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
34888
34889 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
34890
34891         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
34892
34893 2010-03-01  Richard Guenther  <rguenther@suse.de>
34894
34895         PR middle-end/43213
34896         * expr.c (expand_assignment): Use the alias-oracle to tell
34897         if the rhs aliases the result decl.
34898
34899 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34900
34901         PR pch/14940
34902         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
34903         to sol_gt_pch_get_address.
34904         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
34905         64-bit, SPARC and x86.
34906         (sol_gt_pch_get_address): New function.
34907
34908 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
34909
34910         * toplev.h (inform_n, error_n): Declare.
34911         * diagnostic.c (inform_n, error_n): New function.
34912
34913 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
34914
34915         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
34916         has no rtl yet when processing local_decls, queue it and recheck
34917         if deferred stack allocation hasn't assigned it rtl.
34918
34919 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
34920
34921         * config/sh/sh.c (unspec_bbr_uid): New.
34922         (gen_block_redirect): Use it instead of INSN_UID.
34923         (gen_far_branch): Likewise.
34924
34925 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
34926
34927         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
34928         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
34929
34930 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34931
34932         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
34933         (Warning Options): -Wno-conversion-null is valid for
34934         Objective-C++ as well.
34935         * doc/tm.texi (Named Address Spaces): Likewise.
34936         * doc/plugins.texi (Plugins): Replace TABs with spaces.
34937         * doc/tree-ssa.texi (Tree SSA): Likewise.
34938
34939 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
34940
34941         PR bootstrap/43202
34942         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
34943         by default.  Don't set the default arch for
34944         i[34567]86-*-darwin*|x86_64-*-darwin*.
34945
34946 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
34947
34948         PR bootstrap/43202
34949         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
34950         default.  Set the default 32bit/64bit archs with $with_arch
34951         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
34952
34953 2010-02-27  Richard Guenther  <rguenther@suse.de>
34954
34955         PR tree-optimization/43186
34956         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
34957         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
34958         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
34959         unroller iterations.
34960
34961 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
34962
34963         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
34964         required and i[34567]86-*-* targets don't support 64bit ISA.
34965
34966 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
34967
34968         PR ada/43096
34969         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
34970         the same alias set.
34971
34972 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
34973
34974         * config.gcc: Set the default arch at least to Prescott for
34975         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
34976         if SSE math is enabled.
34977
34978 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34979
34980         * diagnostic.c (diagnostic_initialize): Update.
34981         (diagnostic_report_diagnostic): Test inhibit_notes_p for
34982         informative notes.
34983         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
34984         (diagnostic_inhibit_notes): New.
34985         * toplev.c (process_options): inhibit notes with -fcompare-debug.
34986
34987 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34988
34989         PR c/20631
34990         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
34991         * doc/standards.texi: Likewise.
34992         * doc/extend.texi: Likewise.
34993         * doc/trouble.texi: Likewise.
34994         * doc/cppopts.texi: Likewise.
34995         * doc/install.texi: Likewise.
34996         * c.opt (std=c90,std=gnu90): New options.
34997         * c-opts.c (c_common_handle_option): Handle them.
34998
34999 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35000
35001         PR c/24577
35002         * c-decl.c (undeclared_variable): Use an informative note.
35003
35004 2010-02-26  Richard Guenther  <rguenther@suse.de>
35005
35006         PR tree-optimization/43186
35007         * gimple.h (gimple_fold): Remove.
35008         * gimple.c (gimple_fold): Remove.  Inline into single user ...
35009         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
35010         Try harder for conditions.
35011
35012 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
35013
35014         PR debug/43190
35015         * function.c (used_types_insert): Don't skip through named pointer
35016         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
35017         and it is different from the main variant's type.
35018
35019 2010-02-26  Nick Clifton  <nickc@redhat.com>
35020
35021         * config/rx/rx.md (sminsi3): Remove bogus alternative.
35022
35023 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
35024
35025         * config.gcc: Support --with-fpmath=sse for x86.
35026
35027         * config/i386/ssemath.h: New.
35028
35029         * doc/install.texi (--with-fpmath=sse): Documented.
35030
35031 2010-02-26  Richard Guenther  <rguenther@suse.de>
35032
35033         PR tree-optimization/43188
35034         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
35035         vector types of over-aligned element type.
35036
35037 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
35038
35039         PR target/43175
35040         * config/i386/i386.c (expand_vec_perm_blend): Use correct
35041         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
35042
35043 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
35044
35045         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
35046
35047 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
35048
35049         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
35050         * var-tracking.c: Include diagnostic.h.
35051         (debug_dv): New function.
35052         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
35053
35054         PR debug/43160
35055         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
35056         (add_value_chain, add_value_chains, remove_value_chain,
35057         remove_value_chains): Handle DEBUG_EXPRs.
35058         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
35059
35060         PR debug/43161
35061         * regcprop.c (struct queued_debug_insn_change): New type.
35062         (struct value_data_entry): Add debug_insn_changes field.
35063         (struct value_data): Add n_debug_insn_changes field.
35064         (debug_insn_changes_pool): New variable.
35065         (free_debug_insn_changes, apply_debug_insn_changes,
35066         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
35067         (kill_value_one_regno): Call free_debug_insn_changes if needed.
35068         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
35069         fields.
35070         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
35071         changes for them.
35072         (copyprop_hardreg_forward_1): Don't call apply_change_group for
35073         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
35074         changes, call cprop_find_used_regs via note_stores.
35075         (copyprop_hardreg_forward): When copying vd from predecessor
35076         which has any queued DEBUG_INSN changes, make sure the pointers are
35077         cleared.  At the end call df_analyze and then if there are any
35078         DEBUG_INSN changes queued at the end of some basic block for still
35079         live registers, apply them.
35080         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
35081
35082 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
35083
35084         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
35085         (arm*-*-*): Ditto.
35086
35087 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
35088
35089         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
35090         targets.  Set the default with_cpu/with_arch from arch/cpu.
35091         Allow x86-64 and native for with_cpu/with_arch.
35092
35093 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
35094
35095         * ebitmap.c: Change calls to verify_popcount with calls to
35096         sbitmap_verify_popcount.
35097         (ebitmap_clear_bit): Fixed map->cacheindex test and
35098         map>cache update when bit clearing results in an empty
35099         element.
35100
35101 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
35102
35103         PR target/43154
35104         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
35105         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
35106         and support both V2DF and V2DI modes.
35107         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
35108         support both V2DF and V2DI modes.
35109         (general): Delete trailing whitespace from a few patterns.
35110
35111         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
35112         V2DF/V2DI interleave high/low builtins.
35113
35114         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
35115         new VSX builtins.
35116
35117         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
35118         interleave high/low functions.
35119
35120 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
35121
35122         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
35123         #pragma extern_prefix.
35124
35125 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
35126
35127         PR debug/43166
35128         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
35129         BLKmode, assert op0 is a MEM and just adjust its mode.
35130
35131         PR debug/43165
35132         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
35133         if bitpos isn't multiple of mode's bitsize.
35134
35135 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35136
35137         * c.opt (-ftemplate-depth=): New.
35138         (-ftemplate-depth-): Deprecate.
35139         * optc-gen.awk: Handle -ftemplate-depth=.
35140         * opth-gen.awk: Likewise.
35141         * c-opts.c (c_common_handle_option): Likewise.
35142         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
35143
35144 2010-02-24  Jason Merrill  <jason@redhat.com>
35145
35146         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
35147
35148 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35149
35150         * cfg.c (alloc_aux_for_block): Remove inline.
35151         (alloc_aux_for_edge): Likewise.
35152
35153 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35154
35155         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
35156
35157 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35158
35159         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
35160         * config/i386/sol2-gas.h: New file.
35161         * config.gcc (i[34567]86-*-solaris2*): Use it.
35162
35163 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35164
35165         PR c/43128
35166         * c-typeck.c (ep_convert_and_check): New.
35167         (build_conditional_expr): Use it.
35168         (build_binary_op): Likewise.
35169
35170 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
35171
35172         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
35173
35174         PR debug/43150
35175         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
35176         bounds even for -O+.
35177         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
35178         expr needs to have DECL_NAME set.
35179
35180 2010-02-24  Nick Clifton  <nickc@redhat.com>
35181
35182         * config/mep/mep.c: Include gimple.h.
35183         (mep_function_uses_sp): Delete unused function.
35184         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
35185         parameters.  Use unsigned integers to count args.  Return a
35186         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
35187
35188 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
35189
35190         PR target/43107
35191         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
35192         greater or equal to nelt instead of 2 * nelt.
35193         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
35194         with nelt - 1.
35195
35196 2010-02-23  Jason Merrill  <jason@redhat.com>
35197
35198         PR debug/42800
35199         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
35200         in cfun->local_decls even if they have register types.
35201
35202         PR c++/42837
35203         * stor-layout.c (place_field): Don't warn about unnecessary
35204         DECL_PACKED if the type is packed.
35205
35206 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
35207
35208         PR target/43139
35209         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
35210         GOTOFF relocs, even when the base reg isn't pic pointer.
35211
35212 2010-02-23  Michael Matz  <matz@suse.de>
35213
35214         PR debug/43077
35215         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
35216         (expand_gimple_basic_block): Generate and use debug temps if there
35217         are debug uses left after the last real use of TERed ssa names.
35218         Unlink debug immediate uses when they are expanded.
35219
35220 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35221
35222         PR 43123
35223         * config/i386/i386.c (override_options): Reorganise to provide
35224         better error messages.
35225
35226 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35227
35228         PR middle-end/43083
35229         * graphite-scop-detection.c (create_single_exit_edge): Move
35230         the call to find_single_exit_edge to....
35231         (create_sese_edges): ...here.  Don't handle multiple edges
35232         exiting the function.
35233         (build_graphite_scops): Don't handle multiple edges
35234         exiting the function.
35235
35236 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35237
35238         PR middle-end/43097
35239         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
35240         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
35241
35242 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35243
35244         PR middle-end/43026
35245         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
35246
35247 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35248
35249         PR c++/43126
35250         * c-typeck.c (convert_arguments): Print declaration location.
35251         * c-common.c (validate_nargs): Rename as
35252         builtin_function_validate_nargs.
35253         (check_builtin_function_arguments): Update.
35254
35255 2010-02-22  Richard Guenther  <rguenther@suse.de>
35256
35257         PR lto/43045
35258         * tree-inline.c (declare_return_variable): Use the type of
35259         the call stmt lhs if available.
35260
35261 2010-02-22  Duncan Sands  <baldrick@free.fr>
35262
35263         * passes.c (register_pass): Always consider all pass lists when
35264         ref_pass_instance_number is zero.
35265
35266 2010-02-22  Richard Guenther  <rguenther@suse.de>
35267
35268         PR tree-optimization/42749
35269         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
35270         parameter.  Do arithmetic in the original type.
35271         (update_accumulator_with_ops): Likewise.
35272         (adjust_accumulator_values): Adjust.
35273
35274 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35275
35276         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
35277         (QI to BLKmode splitter): New splitter.
35278
35279 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
35280
35281         * config/i386/i386.c (initial_ix86_tune_features): Turn on
35282         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
35283
35284 2010-02-22  Richard Guenther  <rguenther@suse.de>
35285
35286         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
35287
35288 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
35289
35290         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
35291         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
35292         ($(T)crti.o, $(T)crtn.o): Remove rules.
35293
35294 2010-02-21  Tobias Burnus  <burnus@net-b.de>
35295
35296         PR fortran/35259
35297         * doc/invoke.texi (-fassociative-math): Document that this
35298         option is automatically enabled for Fortran.
35299
35300 2010-02-20  David S. Miller  <davem@davemloft.net>
35301
35302         * configure.ac: Test if linker and assembler properly support
35303         GOTDATA_OP relocations.
35304         * configure: Rebuild.
35305         * config.in: Likewise.
35306         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
35307         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
35308         (movsi_high_pic): Likewise.
35309         (movdi_lo_sum_pic): Likewise.
35310         (movdi_high_pic): Likewise.
35311         (movsi_pic_gotdata_op): New pattern.
35312         (movdi_pic_gotdata_op): Likewise.
35313         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
35314         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
35315
35316 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
35317
35318         PR target/43067
35319         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
35320         attribute to ssemul.
35321         (xop_mulv2div2di3_high): Ditto.
35322
35323 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35324
35325         PR c++/35669
35326         * c.opt (Wconversion-null): New option.
35327         * doc/invoke.texi (Wconversion-null): Document.
35328
35329 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35330
35331         * common.opt (Wlarger-than-): Add Undocumented.
35332
35333 2010-02-19  Mike Stump  <mikestump@comcast.net>
35334
35335         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
35336
35337 2010-02-19  Jason Merrill  <jason@redhat.com>
35338
35339         PR target/40332
35340         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
35341         * configure: Likewise.
35342
35343 2010-02-20  Alan Modra  <amodra@gmail.com>
35344
35345         PR middle-end/42344
35346         * cgraph.h (cgraph_make_decl_local): Declare.
35347         * cgraph.c (cgraph_make_decl_local): New function.
35348         (cgraph_make_node_local): Use it.
35349         * cgraphunit.c (cgraph_function_versioning): Likewise.
35350         * ipa.c (function_and_variable_visibility): Likewise.
35351
35352 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
35353
35354         PR bootstrap/43121
35355         * except.c (sjlj_emit_function_enter): Don't call
35356         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
35357         directly.
35358         * rtl.h (add_reg_br_prob_note): Remove prototype.
35359
35360 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35361
35362         PR 41779
35363         * c-common.c (conversion_warning): Remove widening conversions
35364         before checking the conversion of integers to reals.
35365
35366 2010-02-19  Mike Stump  <mikestump@comcast.net>
35367
35368         PR middle-end/43125
35369         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
35370
35371         PR objc/43061
35372         * cgraphunit.c (process_function_and_variable_attributes): Check
35373         DECL_PRESERVE_P instead of looking up attribute "used".
35374         * ipa-pure-const.c (check_decl): Likewise.
35375         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
35376         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
35377         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
35378         instead of attribute "used".
35379         * config/sol2-c.c (solaris_pragma_init): Likewise.
35380         (solaris_pragma_fini): Likewise.
35381
35382 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
35383
35384         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
35385         Use XCNEW instead of xcalloc.
35386         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
35387         XNEW instead of xmalloc.
35388         (get_fields): Use XNEWVEC instead of xmalloc.
35389
35390         PR debug/43084
35391         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
35392         populate vars array.
35393         (create_new_general_access): For debug stmts just reset value.
35394         (get_stmt_accesses): For accesses within debug stmts just record them
35395         using add_access_to_acc_sites instead of preventing the peeling or
35396         counting them as accesses.
35397
35398         PR middle-end/42233
35399         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
35400
35401 2010-02-19  Richard Guenther  <rguenther@suse.de>
35402
35403         PR tree-optimization/42916
35404         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
35405         instructions.
35406
35407 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
35408
35409         * configure.ac: Replace all uses of changequote in macro arguments
35410         with proper quoting.
35411
35412 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
35413
35414         PR middle-end/42233
35415         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
35416
35417 2010-02-19  Richard Guenther  <rguenther@suse.de>
35418
35419         PR tree-optimization/42944
35420         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
35421         test for aliasing with errno.
35422
35423 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
35424
35425         PR middle-end/42233
35426         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
35427         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
35428         * dojump.c: Include output.h.
35429         (inv): New inline function.
35430         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
35431         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
35432         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
35433         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
35434         argument, pass it down to other calls.
35435         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
35436         add REG_BR_PROB note to the conditional jump.
35437         * cfgexpand.c (add_reg_br_prob_note): Removed.
35438         (expand_gimple_cond): Don't call it, add the probability
35439         as last argument to jumpif_1/jumpifnot_1.
35440         * Makefile.in (dojump.o): Depend on output.h.
35441         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
35442         callers.
35443         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
35444         * stmt.c (do_jump_if_equal): Likewise.
35445         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
35446         * loop-unswitch.c (compare_and_jump_seq): Likewise.
35447         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
35448         Likewise.
35449         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
35450         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
35451         jumpifnot_1 callers.
35452         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
35453         callers.
35454         (store_expr): Adjust jumpifnot caller.
35455         (store_constructor): Adjust jumpif caller.
35456
35457         PR middle-end/42233
35458         * gimplify.c (gimple_boolify): For __builtin_expect call
35459         gimple_boolify also on its first argument.
35460
35461 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
35462
35463         * configure.ac (gnu-unique-object): Wrap regexps using [] in
35464         changequote block.
35465         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
35466         * configure: Regenerated.
35467
35468 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
35469
35470         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
35471         lang_hooks.types_compatible_p instead of comptypes.
35472
35473 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
35474
35475         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
35476         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
35477         if __prefer_thumb__ is defined.
35478
35479 2010-02-18  Martin Jambor  <mjambor@suse.cz>
35480
35481         PR tree-optimization/43066
35482         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
35483         array with zero-sized element type.
35484
35485 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
35486
35487         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
35488         rtx, allocate struct var_loc_node here and return it to the
35489         caller, and only if it is actually needed.
35490         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
35491         move it earlier and return immediately if it returns NULL.
35492
35493 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
35494
35495         * config/sparc/gas.h: New file.  Restore
35496         TARGET_ASM_NAMED_SECTION to its ELF default.
35497         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
35498         check !HAVE_GNU_AS.
35499         * config/sparc/sparc.c (sparc_elf_asm_named_section):
35500         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
35501         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
35502         after sparc/sysv4.h.
35503
35504 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
35505
35506         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
35507
35508 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
35509
35510         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
35511         patterns from predicated pattern.
35512
35513 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
35514
35515         PR target/43103
35516         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
35517         for insn mnemonic suffix.
35518
35519 2010-02-17  Richard Guenther  <rguenther@suse.de>
35520
35521         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
35522         to loop PHI nodes.
35523
35524 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
35525
35526         PR debug/42918
35527         * caller-save.c (save_call_clobbered_regs): If BB ends with
35528         a DEBUG_INSN, move any notes in between last real insn and the last
35529         DEBUG_INSN after the last DEBUG_INSN.
35530
35531 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
35532
35533         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
35534         Fix return type.  Fix argument type.  Explain meaning of return value.
35535
35536 2010-02-16  Richard Guenther  <rguenther@suse.de>
35537
35538         PR tree-optimization/41043
35539         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
35540         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
35541         statements ...
35542         (vrp_visit_phi_node): ... but only for loop PHI nodes.
35543
35544 2010-02-16  Ira Rosen  <irar@il.ibm.com>
35545
35546         PR tree-optimization/43074
35547         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
35548         * tree-vect-loop.c (vect_analyze_loop_operations): Add
35549         vectorizable cycles in hybrid SLP check.
35550         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
35551
35552 2010-02-16  Richard Guenther  <rguenther@suse.de>
35553
35554         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
35555         (true_dependence): If memrefs_conflict_p computes must-alias
35556         trust it.  Move TBAA check after offset-based disambiguation.
35557         (canon_true_dependence): Likewise.
35558
35559 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
35560
35561         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
35562         * doc/invoke.texi: Document it.
35563         * var-tracking.c: Include toplev.h and params.h.
35564         (vt_find_locations): Return bool indicating success.  Compute
35565         hash sizes unconditionally.  Check new parameter, report.
35566         (variable_tracking_main_1): Check vt_find_locations results and
35567         retry.  Renamed from...
35568         (variable_tracking_main): ... this.  New wrapper to preserve
35569         flag_var_tracking_assignments.
35570         * Makefile.in (var-tracking.o): Adjust dependencies.
35571
35572 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
35573             Jakub Jelinek  <jakub@redhat.com>
35574
35575         PR target/42854
35576         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
35577         if weak_import attribute is present.
35578         * config/darwin.c (machopic_select_section): Likewise.
35579
35580 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
35581
35582         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
35583         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
35584         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
35585         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
35586
35587         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
35588         types.
35589
35590         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
35591         Fix argument types.
35592
35593         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
35594         Rewrite text to refer to the names.
35595
35596 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
35597
35598         * config/i386/i386-builtin-types.def
35599         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
35600         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
35601         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
35602         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
35603         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
35604         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
35605         IX86_BUILTIN_VPERMIL2PS256.
35606         (MULTI_ARG_4_DF2_DI_I): Defined.
35607         (MULTI_ARG_4_DF2_DI_I1): Defined.
35608         (MULTI_ARG_4_SF2_SI_I): Defined.
35609         (MULTI_ARG_4_SF2_SI_I1): Defined.
35610         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
35611         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
35612         __builtin_ia32_vpermil2ps256.
35613         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
35614         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
35615         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
35616         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
35617         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
35618         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
35619         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
35620         CODE_FOR_xop_vpermil2v8sf3.
35621         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
35622         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
35623         * config/i386/xopintrin.h (_mm_permute2_pd): New.
35624         (_mm256_permute2_pd): New.
35625         (_mm_permute2_ps): New.
35626         (_mm256_permute2_ps): New.
35627
35628 2010-02-15  Nick Clifton  <nickc@redhat.com>
35629
35630         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
35631         boolean parameters.  Use emit_jump_insn when emitting a pop
35632         instruction containing a return insn.
35633         (push): Use 'true' rather than '1' as second parameter to F.
35634         (h8300_expand_prologue): Likewise.
35635         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
35636         (h8300_expand_epilogue): Likewise.
35637
35638 2010-02-15  Richard Guenther  <rguenther@suse.de>
35639
35640         PR middle-end/43068
35641         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
35642         if that is zero.
35643
35644 2010-02-15  Nick Clifton  <nickc@redhat.com>
35645
35646         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
35647         delta.
35648
35649 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
35650
35651         * intl.c (fake_ngettext): New function.
35652         * intl.h (fake_ngettext): Declare.
35653         (ngettext): Define macro.
35654         * collect2.c (notice_translated): New function.
35655         (main): Use notice_translated and ngettext.
35656         * collect2.h (notice_translated): Declare.
35657
35658 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
35659
35660         * reorg.c (delete_computation): Comment fixes.
35661         * caller-save.c (setup_save_areas): Idem.
35662         * sel-sched-dump.c (dump_lv_set): Idem.
35663         * rtl.def: Idem.
35664
35665 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35666
35667         * config/s390/s390.c (s390_sched_init): New function.
35668         (TARGET_SCHED_INIT): Target hook defined.
35669
35670 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
35671             Jack Howarth  <howarth@bromo.med.uc.edu>
35672             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
35673
35674         PR target/42982
35675         Partial revert of unintended change in fix for PR41605.
35676         * config/darwin.h: Fix typo.
35677         * config/darwin9.h: Same.
35678
35679 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
35680
35681         * c-pch.c (pch_init): Clear v.
35682
35683 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
35684
35685         PR middle-end/42930
35686         * graphite-scop-detection.c (graphite_can_represent_scev): Call
35687         graphite_can_represent_init for MULT_EXPR.
35688
35689 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
35690
35691         PR middle-end/42914
35692         PR middle-end/42530
35693         * graphite-sese-to-poly.c (remove_phi): New.
35694         (translate_scalar_reduction_to_array): Call remove_phi.
35695
35696 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
35697
35698         PR middle-end/42771
35699         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
35700         * graphite-clast-to-gimple.h (gloog): Update declaration.
35701         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
35702         * graphite-poly.h (struct poly_bb): Add missing comments.
35703         (struct scop): Add poly_scop_p field.
35704         (POLY_SCOP_P): New.
35705         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
35706         * graphite.c (graphite_transform_loops): Build the polyhedral
35707         representation for each scop before code generation.
35708         * sese.c (rename_variables_in_operand): Removed.
35709         (rename_variables_in_expr): Return the renamed expression.
35710         (rename_sese_parameters): New.
35711         * sese.h (rename_sese_parameters): Declared.
35712
35713 2010-02-11  Richard Guenther  <rguenther@suse.de>
35714
35715         PR tree-optimization/42998
35716         * tree-ssa-pre.c (create_expression_by_pieces): Treat
35717         POINTER_PLUS_EXPR properly.
35718
35719 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
35720             Changpeng Fang  <changpeng.fang@amd.com>
35721
35722         PR middle-end/40886
35723         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
35724         the cost of an IV candidate when the IV is used in a test against zero.
35725
35726         * gcc.dg/tree-ssa/ivopts-3.c: New.
35727
35728 2010-02-11  Richard Guenther  <rguenther@suse.de>
35729
35730         PR lto/41664
35731         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
35732         pointer-vs-decl case by swapping refs.  Handle some cases
35733         of pointer-vs-decl disambiguations more conservatively.
35734         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
35735         to false after expanding.
35736
35737 2010-02-11  Richard Guenther  <rguenther@suse.de>
35738
35739         PR driver/43021
35740         * gcc.c (process_command): Handle LTO file@offset case more
35741         appropriately.
35742
35743 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
35744
35745         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
35746         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
35747         of DEBUG_INSNs.
35748         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
35749
35750         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
35751         if MEM's mode size isn't DWARF2_ADDR_SIZE.
35752         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
35753         Optimize eq/ne comparisons when both arguments are known to be
35754         zero-extended.
35755         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
35756         Don't mask operands unnecessarily if they are known to be already
35757         zero-extended.
35758
35759 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
35760
35761         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
35762         instead of loop.
35763
35764 2010-02-10  Richard Guenther  <rguenther@suse.de>
35765
35766         PR tree-optimization/43017
35767         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
35768         for wrapping signed arithmetic.
35769
35770 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
35771
35772         PR debug/43010
35773         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
35774         if no debug info should be emitted for it.
35775
35776 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
35777
35778         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
35779         note when flag_exceptions is set.
35780
35781 2010-02-10  Duncan Sands  <baldrick@free.fr>
35782
35783         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
35784
35785 2010-02-10  Richard Guenther  <rguenther@suse.de>
35786
35787         PR c/43007
35788         * tree.c (get_unwidened): Handle constants.
35789         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
35790
35791 2010-02-10  Martin Jambor  <mjambor@suse.cz>
35792
35793         PR lto/42985
35794         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
35795         check for variable argument counts independently.
35796
35797 2010-02-10  Christian Bruel  <christian.bruel@st.com>
35798
35799         PR target/42841
35800         * config/sh/sh.c (find_barrier): Increase length for non delayed
35801         conditional branches.
35802
35803 2010-02-10  Christian Bruel  <christian.bruel@st.com>
35804
35805         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
35806
35807 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
35808
35809         * builtins.c (set_builtin_user_assembler_name): Also handle
35810         ffs if int is smaller than word.
35811
35812 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
35813
35814         PR middle-end/42973
35815         * ira-conflicts.c (get_dup): Remove.
35816         (process_reg_shuffles): Add new parameter.  Use it as an
35817         additional guard for copy generation.
35818         (add_insn_allocno_copies): Rewrite.
35819
35820 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
35821
35822         * common.opt (fsched2-use-traces): Preserved for backward
35823         compatibility.
35824         * doc/invoke.texi: Remove the documentation about option
35825         -fsched2-use-traces.
35826         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
35827         flag_sched2_use_traces.
35828         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
35829         the backward compatibility flag section.
35830
35831 2010-02-09  Richard Guenther  <rguenther@suse.de>
35832
35833         PR tree-optimization/43008
35834         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
35835         make HEAP variables initialized from global memory if they
35836         are not known builtin functions.
35837         (find_func_aliases): Adjust.
35838
35839 2010-02-09  Richard Guenther  <rguenther@suse.de>
35840
35841         PR tree-optimization/43000
35842         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
35843         arithmetic manually.
35844
35845 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
35846
35847         PR tree-optimization/42931
35848         * tree-loop-linear.c (try_interchange_loops): Don't call
35849         double_int_mul if estimated_loop_iterations failed.
35850
35851 2010-02-08  Martin Jambor  <mjambor@suse.cz>
35852
35853         PR middle-end/42898
35854         * tree-sra.c (build_accesses_from_assign): Do not mark in
35855         should_scalarize_away_bitmap if stmt has volatile ops.
35856         (sra_modify_assign): Do not process assigns piecemeal if if stmt
35857         has volatile ops.
35858
35859 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
35860
35861         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
35862
35863 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
35864
35865         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
35866         before the pattern.
35867
35868 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
35869
35870         PR middle-end/42946
35871         * df-core.c (df_finish_pass): Change type of saved_flags to int.
35872
35873 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
35874
35875         PR middle-end/42988
35876         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
35877         to unknown_dependence.
35878         (graphite_legal_transform_dr): Handle the unknown_dependence.
35879         (graphite_carried_dependence_level_k): Same.
35880
35881 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
35882
35883         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
35884
35885 2010-02-07  Richard Guenther  <rguenther@suse.de>
35886
35887         PR middle-end/42991
35888         * expr.c (get_inner_reference): Always initialize *pbitsize.
35889
35890 2010-02-07  Richard Guenther  <rguenther@suse.de>
35891
35892         PR middle-end/42956
35893         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
35894         new ARRAY_REFs on variable size element or minimal index arrays.
35895         Complete.
35896         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
35897         gimple_fold_indirect_ref.
35898
35899 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
35900
35901         PR target/42957
35902         * arm.c (arm_override_options): Just return if the user has specified
35903         an invalid fpu name.
35904
35905 2010-02-03  Jason Merrill  <jason@redhat.com>
35906
35907         PR c++/42870
35908         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
35909         i386_pe_maybe_record_exported_symbol.
35910
35911 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
35912
35913         PR target/42924
35914         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
35915         (pa_delegitimize_address): New function.
35916
35917 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
35918
35919         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
35920         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
35921
35922 2010-02-05  Richard Guenther  <rguenther@suse.de>
35923
35924         PR lto/42762
35925         * lto-streamer-in.c (get_resolution): Deal with references
35926         to undefined functions.
35927
35928 2010-02-05  Richard Guenther  <rguenther@suse.de>
35929
35930         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
35931         (fold_const_aggregate_ref): Likewise.
35932         (ccp_fold_stmt): Substitute loads.
35933         (maybe_fold_reference): Verify types before substituting.
35934         Unshare properly.
35935         (fold_gimple_assign): Unshare properly.
35936         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
35937
35938 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
35939
35940         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
35941         for rs6000_gen_cell_microcode.
35942
35943 2010-02-04  Richard Guenther  <rguenther@suse.de>
35944
35945         PR rtl-optimization/42952
35946         * dse.c (const_or_frame_p): Remove MEM handling.
35947
35948 2010-02-04  Nick Clifton  <nickc@redhat.com>
35949
35950         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
35951         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
35952         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
35953         (mn10300_asm_output_mi_thunk): New function.
35954         (mn10300_can_output_mu_thunk): New function.
35955         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
35956         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
35957         (FUNCTION_ARG): Delete incorrect comment.
35958
35959 2010-02-03  Jason Merrill  <jason@redhat.com>
35960
35961         PR c++/40138
35962         * fold-const.c (operand_equal_p): Handle erroneous types.
35963
35964 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
35965
35966         * config/h8300/h8300.md (can_delay): Fix attibute condition.
35967
35968 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
35969
35970         PR rtl-optimization/42941
35971         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
35972         of xmalloc.
35973
35974 2010-02-03  Jason Merrill  <jason@redhat.com>
35975
35976         PR c++/35652
35977         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
35978
35979 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
35980
35981         PR debug/42896
35982         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
35983         (cselib_reset_table): Renamed from...
35984         (cselib_reset_table_with_next_value): ... this.
35985         (cselib_get_next_uid): Renamed from...
35986         (cselib_get_next_unknown_value): ... this.
35987         * cselib.c (next_uid): Renamed from...
35988         (next_unknown_value): ... this.
35989         (cselib_clear_table): Adjust.
35990         (cselib_reset_table): Adjust.  Renamed from...
35991         (cselib_reset_table_with_next_value): ... this.
35992         (cselib_get_next_uid): Adjust.  Renamed from...
35993         (cselib_get_next_unknown_value): ... this.
35994         (get_value_hash): Use hash.
35995         (cselib_hash_rtx): Likewise.
35996         (new_cselib_val): Adjust.  Set and dump uid.
35997         (cselib_lookup_mem): Pass next_uid as hash.
35998         (cselib_subst_to_values): Likewise.
35999         (cselib_log_lookup): Dump uid.
36000         (cselib_lookup): Pass next_uid as hash.  Adjust.
36001         (cselib_process_insn): Adjust.
36002         (cselib_init): Initialize next_uid.
36003         (cselib_finish): Adjust.
36004         (dump_cselib_table): Likewise.
36005         * dse.c (canon_address): Dump value uid.
36006         * print-rtl.c (print_rtx): Print value uid.
36007         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
36008         (dvuid): New type.
36009         (dv_uid): New function, sort of renamed from...
36010         (dv_htab_hash): ... this, reimplemented in terms of it and...
36011         (dv_uid2hash): ... this.  New.
36012         (variable_htab_eq): Drop excess assertions.
36013         (tie_break_pointers): Removed.
36014         (canon_value_cmp): Compare uids.
36015         (variable_post_merge_New_vals): Print uids.
36016         (vt_add_function_parameters): Adjust.
36017         (vt_initialize): Reset table.  Adjust.
36018
36019 2010-02-03  Richard Guenther  <rguenther@suse.de>
36020
36021         PR tree-optimization/42944
36022         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
36023         (call_may_clobber_ref_p_1): Likewise.  Properly handle
36024         malloc and calloc clobbering errno.
36025
36026 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
36027
36028         * doc/invoke.texi: Fix name of sched1 dump.
36029
36030         * opts.c (decode_options): Set flag_tree_switch_conversion
36031         only conditionally on optimize >= 2.
36032
36033         * gcse.c: Assorted comment fixes in pass description.
36034
36035 2010-02-03  Anthony Green  <green@moxielogic.com>
36036
36037         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
36038         nop padding in order to maintain alignment of storage location of
36039         target function address.
36040         (moxie_trampoline_init): Store target function address at newly
36041         aligned location.
36042         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
36043         to 32.
36044         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
36045
36046 2010-02-03  Richard Guenther  <rguenther@suse.de>
36047
36048         PR middle-end/42927
36049         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
36050
36051 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36052
36053         * config.gcc: Reenable check for obsolete targets.
36054         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
36055         mips-sgi-irix6.[0-4]*.
36056
36057 2010-02-02  Nick Clifton  <nickc@redhat.com>
36058
36059         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
36060         constant size of 4 as being the same as 0.
36061         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
36062         can take values in the range 0..4.
36063
36064 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
36065
36066         PR java/41991
36067         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
36068         as _darwin10_Unwind_FindEnclosingFunction().
36069         * libgcc-libsystem.ver: New.
36070
36071 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
36072
36073         PR target/41399
36074         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
36075         implicitly set registers.
36076
36077 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
36078
36079         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
36080         (arm_override_options): Allow automatic selection of the thread
36081         pointer register if thumb2.
36082         (legitimize_pic_address): Improve code sequences for Thumb2.
36083         (arm_call_tls_get_addr): Likewise.
36084         (legitimize_tls_address): Likewise.
36085         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
36086         (pic_load_addr_32bit): ... this.  New named pattern.
36087         * thumb2.md (pic_load_addr_thumb2): Delete.
36088         (pic_load_dot_plus_four): Delete.
36089         (tls_load_dot_plus_four): New named pattern.
36090
36091 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36092
36093         PR libgomp/29986
36094         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
36095         Document fix for TLS bug.
36096
36097 2010-01-31  Richard Guenther  <rguenther@suse.de>
36098
36099         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
36100         conservatively correct.
36101
36102 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36103
36104         PR target/42850
36105         Revert:
36106         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36107
36108         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
36109
36110 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
36111
36112         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
36113
36114 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
36115
36116         * config.gcc: Adjust order of makefile fragments for mingw targets.
36117
36118 2010-01-31  Richard Guenther  <rguenther@suse.de>
36119
36120         PR middle-end/42898
36121         * gimplify.c (gimplify_init_constructor): For volatile LHS
36122         initialize a temporary.
36123
36124 2010-01-31  Matthias Klose  <doko@ubuntu.com>
36125
36126         * configure.ac: Fix __stack_chk_fail check for cross builds configured
36127         --with-headers
36128         * configure: Regenerate.
36129
36130 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
36131
36132         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
36133         the same alias set and their sizes different constantness.
36134         (aliasing_component_refs_p): Revert 2009-10-24 change.
36135
36136 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36137
36138         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
36139         unused.
36140
36141 2010-01-29  Richard Guenther  <rguenther@suse.de>
36142
36143         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
36144         Assert we successfully updated the call.
36145
36146 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
36147
36148         PR rtl-optimization/42889
36149         * df.h (df_set_bb_dirty_nonlr): New prototype.
36150         * df-core.c (df_set_bb_dirty_nonlr): New function.
36151         * df-scan.c (df_insn_rescan): Call it instead of
36152         df_set_bb_dirty for DEBUG_INSNs.
36153
36154 2010-01-29  Richard Guenther  <rguenther@suse.de>
36155
36156         PR middle-end/37448
36157         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
36158         quadratic behavior in most cases.
36159
36160 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
36161
36162         PR target/42891
36163         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
36164         in the call to gen_x86_movsicc_0_m1.
36165
36166 2010-01-28  Richard Guenther  <rguenther@suse.de>
36167
36168         PR tree-optimization/42871
36169         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
36170
36171 2010-01-28  Richard Guenther  <rguenther@suse.de>
36172
36173         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
36174         into call arguments.
36175
36176 2010-01-28  Richard Guenther  <rguenther@suse.de>
36177
36178         PR middle-end/42883
36179         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
36180         the forwarder if the destination is an EH landing pad.
36181
36182 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
36183
36184         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
36185         block list passed to gimple_duplicate_sese_tail.
36186         (parallelize_loops): Avoid parallelization when the function
36187         has_nonlocal_label.
36188         Avoid parallelization when the preheader is IRREDUCIBLE.
36189         Try to optimize when estimated_loop_iterations_int is unresolved.
36190         Add the loop's location to the dump file.
36191         * tree-cfg.c (add_phi_args_after_redirect): Remove.
36192         (gimple_duplicate_sese_tail): Remove the check for the latch.
36193         Redirect nexits to the exit block.
36194         Remove handling of the incoming edges to the latch.
36195         Redirect the backedge from the copied latch to the exit bb.
36196
36197 2010-01-28  Michael Matz  <matz@suse.de>
36198
36199         PR target/42881
36200         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
36201         Wrap force_reg into a sequence, emit it before user.
36202
36203 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
36204
36205         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
36206         (arm_rev): New.
36207         (arm_legacy_rev): Likewise.
36208         (thumb_legacy_rev): Likewise.
36209
36210 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
36211
36212         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
36213         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
36214         on MEM's address failed, try avoid_constant_pool_reference and
36215         recurse if it returned something different.
36216         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
36217         address, try avoid_constant_pool_reference and recurse if it
36218         returned something different.
36219         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
36220         address and avoid_constant_pool_reference returned something
36221         different, don't set have_address.
36222
36223 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
36224
36225         PR debug/42861
36226         * var-tracking.c (val_store): Add modified argument, obey it.
36227         Adjust callers.
36228         (count_uses): Move down logging of main.
36229         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
36230         don't need resolution.
36231         (emit_notes_in_bb): Likewise.
36232
36233 2010-01-27  Richard Guenther  <rguenther@suse.de>
36234
36235         PR middle-end/42878
36236         * tree-inline.c (remap_decl): Delay remapping of SSA name
36237         default definitions until we need them.
36238
36239 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
36240
36241         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
36242         (rs6000_delegitimize_address): New function.
36243
36244         * config/s390/s390.c (s390_delegitimize_address): Call
36245         delegitimize_mem_from_attrs.
36246
36247         PR middle-end/42874
36248         * tree-inline.c (cannot_copy_type_1): Removed.
36249         (copy_forbidden): Don't forbid copying of functions containing
36250         records/unions with variable length fields.
36251
36252 2010-01-27  Christian Bruel  <christian.bruel@st.com>
36253
36254         Revert:
36255         PR target/42841
36256         * config/sh/sh.c (find_barrier): Increase length for non delayed
36257         conditional branches.
36258
36259 2010-01-27  Matthias Klose  <doko@ubuntu.com>
36260
36261         * configure.ac (gnu-unique-object): Fix ldd version check.
36262         * configure: Regenerate.
36263
36264 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36265
36266         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
36267         HAVE_GNU_AS value.
36268         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
36269         Test for HAVE_GNU_AS value.
36270
36271 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36272
36273         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
36274         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
36275         INT64_TYPE): Define.
36276         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
36277         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
36278         INT_LEAST64_TYPE): Define.
36279         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
36280         UINT_LEAST64_TYPE): Define.
36281         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
36282         INT_FAST64_TYPE): Define.
36283         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
36284         UINT_FAST64_TYPE): Define.
36285         (INTMAX_TYPE, UINTMAX_TYPE): Define.
36286         (INTPTR_TYPE, UINTPTR_TYPE): Define.
36287         (SIG_ATOMIC_TYPE): Define.
36288
36289 2010-01-26  Richard Guenther  <rguenther@suse.de>
36290
36291         * df-scan.c (df_scan_set_bb_info): Remove assert.
36292         (df_insn_rescan_debug_internal): Merge asserts.
36293         (df_install_ref): Likewise.
36294         (df_mark_reg): Use bitmap_set_range.
36295         (df_hard_reg_used_p): Remove assert.
36296         (df_hard_reg_used_count): Likewise.
36297
36298 2010-01-26  Richard Guenther  <rguenther@suse.de>
36299
36300         PR rtl-optimization/42685
36301         * web.c (web_main): Ignore DEBUG_INSNs.
36302
36303 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
36304
36305         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
36306
36307         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
36308         Fix types of fndecl and arglist parameters.
36309
36310 2010-01-26  Richard Guenther  <rguenther@suse.de>
36311
36312         PR middle-end/42806
36313         * tree-eh.c (unsplit_eh): Skip debug insns.
36314
36315 2010-01-26  Richard Guenther  <rguenther@suse.de>
36316
36317         PR tree-optimization/42250
36318         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
36319
36320 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
36321
36322         PR fortran/42866
36323         * omp-low.c (expand_omp_sections): Only use single_pred if
36324         l2_bb is single_pred_p.
36325
36326 2010-01-25  Christian Bruel  <christian.bruel@st.com>
36327
36328         PR target/42841
36329         * config/sh/sh.c (find_barrier): Increase length for non delayed
36330         conditional branches.
36331         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
36332
36333 2010-01-24  David S. Miller  <davem@davemloft.net>
36334
36335         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
36336         define if not using GAS.
36337         * config/sparc/sparc.c (sparc_elf_asm_named_section):
36338         Likewise.  Delete SECTION_MERGE code, which is only applicable
36339         when using GAS.
36340
36341 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
36342
36343         PR c++/42748
36344         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
36345         mangling of va_list in system headers.
36346
36347 2010-01-23  Toon Moene  <toon@moene.org>
36348
36349         * tree-predcom.c (combine_chains): Return NULL, not false.
36350
36351 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
36352
36353         * tree-loop-distribution.c (distribute_loop): Fix declaration and
36354         initialization of variable res to agree with return type.
36355
36356 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
36357
36358         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
36359         * tree-sra.c: Add include of expr.h.
36360
36361 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
36362
36363         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
36364         insert the debug stmt on the single non-EH edge from the stmt.
36365
36366 2010-01-22  Richard Henderson  <rth@redhat.com>
36367
36368         PR tree-opt/42833
36369         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
36370         the RHS until after generate_subtree_copies has insertted its
36371         code before the current statement.
36372
36373 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
36374
36375         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
36376
36377         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
36378
36379 2010-01-21  Martin Jambor  <mjambor@suse.cz>
36380
36381         PR tree-optimization/42585
36382         * tree-sra.c (struct access): New field grp_total_scalarization.
36383         (dump_access): Dump the new field.
36384         (should_scalarize_away_bitmap): New variable.
36385         (cannot_scalarize_away_bitmap): Likewise.
36386         (sra_initialize): Allocate new bitmaps.
36387         (sra_deinitialize): Free new bitmaps.
36388         (create_access_1): New function.
36389         (create_access): Parts moved to create_access_1.
36390         (type_consists_of_records_p): New function.
36391         (completely_scalarize_record): Likewise.
36392         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
36393         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
36394         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
36395         access.
36396         (analyze_all_variable_accesses): Completely scalarize small eligible
36397         records.
36398
36399 2010-01-21  Martin Jambor  <mjambor@suse.cz>
36400
36401         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
36402
36403 2010-01-21  Andrew Haley  <aph@redhat.com>
36404
36405         * gcc.c (process_command): Move lang_specific_driver before
36406         setting cc_libexec_prefix.
36407
36408 2010-01-21  Richard Guenther  <rguenther@suse.de>
36409
36410         PR middle-end/19988
36411         * fold-const.c (negate_expr_p): Pretend only negative
36412         real constants are easily negatable.
36413
36414 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
36415             Jason Merrill  <jason@redhat.com>
36416
36417         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
36418         (TYPE_TRANSPARENT_AGGR): this, for union and record.
36419         * calls.c (initialize argument_information): Handle it.
36420         * c-common.c (handle_transparent_union_attribute): Use new name.
36421         * c-decl.c (finish_struct): Ditto.
36422         * c-typeck.c (type_lists_compatible_p): Ditto.
36423         (convert_for_assignment): Use new name and also handle record.
36424         * function.c (aggregate_value_p): Handle it.
36425         (pass_by_reference): Ditto.
36426         (assign_parm_data_types): Ditto.
36427         * print-tree.c (print_node): Ditto.
36428         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
36429         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
36430         * tree.c (first_field): New fn.
36431
36432 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
36433
36434         PR target/42818
36435         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
36436         even when linking statically, for now.
36437
36438 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
36439
36440         PR debug/42715
36441         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
36442         without a cselib val.
36443         (count_uses): Accept MO_VAL_SET with no val on stores.
36444         (add_stores): Likewise.
36445
36446 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
36447
36448         * var-tracking.c (check_value_val): Add a compile time assertion.
36449         (dv_is_decl_p): Simplify.
36450         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
36451         gcc_assert if ENABLE_CHECKING.
36452
36453 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
36454
36455         PR debug/42782
36456         * var-tracking.c: Include tree-flow.h.
36457         (mem_dies_at_call): New.
36458         (dataflow_set_preserve_mem_locs): Use it.
36459         (dataflow_set_remove_mem_locs): Likewise.
36460         (dump_var): Renamed from dump_variable.  Adjust all callers.
36461         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
36462         * Makefile.in (var-tracking.o): Adjust deps.
36463
36464 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
36465
36466         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
36467
36468 2010-01-20  Richard Guenther  <rguenther@suse.de>
36469
36470         PR tree-optimization/42717
36471         * tree-ssa-dce.c (get_live_post_dom): Remove.
36472         (forward_edge_to_pdom): Take an arbitrary edge to copy
36473         degenerate PHI args from.
36474         (remove_dead_stmt): Use the first post-dominator even if it
36475         does not contain live statements as redirection destination.
36476
36477 2010-01-20  Richard Guenther  <rguenther@suse.de>
36478
36479         * tree-inline.c (estimate_num_insns): Handle EH builtins.
36480
36481 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
36482
36483         * sel-sched.c (create_speculation_check): Remove set but not used
36484         variable twin.
36485         (try_transformation_cache): Remove set but not used variable ds.
36486         (calculate_privileged_insns): Remove set but not used variables
36487         cur_insn and min_spec_insn.
36488         (find_best_expr): Remove set but not used variable avail_n.
36489         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
36490         variable e.
36491         * cgraphunit.c (assemble_thunk): Remove set but not used variable
36492         false_label.
36493         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
36494         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
36495         new_scop_exit_edge.
36496
36497 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
36498
36499         PR bootstrap/42786
36500         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
36501         cpu types.  Add support for *-sse3 cpu types.
36502         (x86_64-*-*): Ditto.
36503
36504 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
36505
36506         PR middle-end/42803
36507         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
36508         argument, call initializer_constant_valid_p_1 instead of
36509         initializer_constant_valid_p, pass CACHE to it, return NULL
36510         immediately if first call returns NULL.
36511         (initializer_constant_valid_p_1): New function.
36512         (initializer_constant_valid_p): Use it.
36513
36514 2010-01-20  Thomas Quinot  <quinot@adacore.com>
36515
36516         * tree.def (PLACEHOLDER_EXPR): Fix comment.
36517
36518 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
36519
36520         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
36521         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
36522         (loc_list_from_tree): Don't handle unsigned division.  Handle
36523         signed modulo using DW_OP_{over,over,div,mul,minus}.
36524         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
36525         modulo instead of signed.
36526
36527 2010-01-20  DJ Delorie  <dj@redhat.com>
36528
36529         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
36530         (Fpa): Pass it
36531         (h8300_emit_stack_adjustment): Propogate it.
36532         (push): Pass it.
36533         (h8300_expand_prologue): Likewise.
36534         (h8300_expand_epilogue): Likewise.
36535
36536 2010-01-19  Michael Matz  <matz@suse.de>
36537
36538         PR tree-optimization/41783
36539         * tree-data-ref.c (toplevel): Include flags.h.
36540         (dump_data_dependence_relation):  Also dump the inputs if the
36541         result will be unknown.
36542         (split_constant_offset_1): Look through some conversions.
36543         * tree-predcom.c (determine_roots_comp): Restart a new chain if
36544         the offset from last element is too large.
36545         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
36546         (reassociate_to_the_same_stmt): Handle vector registers.
36547         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
36548         (e.g. conversions).
36549         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
36550         wide_prolog_niters argument, emit widening instructions.
36551         (vect_do_peeling_for_alignment): Adjust caller, use widened
36552         variant of the iteration cound.
36553         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
36554
36555 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36556
36557         PR target/38697
36558         * config/arm/neon-testgen.m (emit_automatics): New parameter
36559         features. Adjust for Fixed_return_reg feature.
36560         (test_intrinsic): Call emit_automatics with new feature.
36561         * config/arm/neon.ml: Update copyright years.
36562         (features): New Fixed_return_reg feature.
36563         (ops): Update feature for Vget_low.
36564
36565 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
36566
36567         PR tree-optimization/42719
36568         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
36569         stmt uses.
36570
36571         PR debug/42728
36572         * fwprop.c (all_uses_available_at): Return false if def_set dest
36573         is a REG that is used in def_insn.
36574
36575 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
36576
36577         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
36578
36579         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
36580         Add argument names.
36581
36582         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
36583
36584         * target.h (struct gcc_target) <secondary_reload>: Change type
36585         of last argument to secondary_reload_info *.
36586
36587 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
36588
36589         PR target/42774
36590         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
36591         memory references with unaligned offsets.  Remove CQImode handling.
36592         (unaligned_memory_operand): Return 1 for memory references with
36593         unaligned offsets.  Remove CQImode handling.
36594
36595 2010-01-18  Richard Guenther  <rguenther@suse.de>
36596
36597         PR middle-end/39954
36598         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
36599         builtin calls.
36600
36601 2010-01-18  Richard Guenther  <rguenther@suse.de>
36602
36603         PR tree-optimization/42781
36604         * tree-ssa-structalias.c (find_what_var_points_to): Skip
36605         restrict processing only if the original variable was artificial.
36606
36607 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
36608
36609         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
36610         find number of popped argument bytes.
36611
36612         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
36613         Fix the text that describes the return value for invalid insns.
36614
36615         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
36616
36617         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
36618         Clarify what 'cost of the -dependence' is.  Fix quoting.
36619
36620         * toplev.c (default_get_pch_validity): Rename argument to "sz".
36621         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
36622
36623 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
36624
36625         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
36626         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
36627
36628 2010-01-17  Richard Guenther  <rguenther@suse.de>
36629
36630         PR middle-end/42248
36631         * function.c (split_complex_args): Take a VEC to modify.
36632         (assign_parms_augmented_arg_list): Build a VEC instead of
36633         a chain of PARM_DECLs.
36634         (assign_parms_unsplit_complex): Take a VEC of arguments.
36635         Do not fixup unmodified parms.
36636         (assign_parms): Deal with the VEC.
36637         (gimplify_parameters): Likewise.
36638
36639 2010-01-17  Richard Guenther  <rguenther@suse.de>
36640
36641         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
36642         node existence check.
36643         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
36644         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
36645         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
36646         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
36647         (gimple_execute_on_growing_pred): Likewise.
36648
36649 2010-01-17  Richard Guenther  <rguenther@suse.de>
36650
36651         PR tree-optimization/42773
36652         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
36653         (compute_antic_aux): Likewise.
36654         (compute_partial_antic_aux): Likewise.
36655
36656 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
36657
36658         PR debug/42767
36659         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
36660         and US_TRUNCATE.
36661
36662 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
36663
36664         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
36665         appearance.
36666
36667         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
36668         Fix markup for strict argument.
36669
36670         (TARGET_SCHED_REORDER2): Fix argument types.
36671
36672         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
36673         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
36674
36675         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
36676         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
36677
36678         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
36679         Add argument name.
36680
36681         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
36682         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
36683         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
36684         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
36685         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
36686
36687         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
36688
36689         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
36690
36691         (TARGET_ASM_RELOC_RW_MASK): Add return type.
36692         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
36693
36694         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
36695
36696         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
36697         Use prototype.
36698
36699         (TARGET_ASM_NAMED_SECTION): Fix argument list.
36700
36701         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
36702         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
36703
36704         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
36705
36706         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
36707
36708         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
36709         referring to it.  Fix language.
36710
36711         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
36712
36713         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
36714
36715         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
36716
36717         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
36718
36719         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
36720         '@var{stream}.  Remove stray 'and'.
36721
36722         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
36723
36724         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
36725
36726         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
36727
36728         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
36729         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
36730
36731         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
36732         Fix description of return value.
36733         Rename argument "sz" to "len."
36734
36735         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
36736         Clarify meaning of 'true' return value.
36737
36738         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
36739
36740         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
36741         rep_mode versus mode_rep.
36742
36743         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
36744
36745         (TARGET_BUILTIN_DECL): Fix name.
36746
36747         (TARGET_COMMUTATIVE_P): Fix type of first argument.
36748
36749         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
36750
36751         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
36752
36753         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
36754
36755         (TARGET_RELAXED_ORDERING): Use @deftypevr.
36756
36757         (TARGET_GET_DRAP_RTX): Note that this is a hook.
36758         Clarify language.
36759
36760         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
36761         Rename argument tm_fn to md_fn.
36762
36763         (TARGET_OPTION_PRINT): Fix argument list.
36764
36765 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
36766
36767         PR target/42664
36768         * config/i386/i386.c (ix86_fixup_binary_operands):
36769         Revert FMA4 fixup of operands.
36770
36771 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36772
36773         PR other/42525
36774         * Makefile.in (write_entries_to_file, install-plugin):
36775         Use \012 instead of \n with tr.
36776
36777 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
36778
36779         * configure.ac (HAVE_AS_REF): New C macro.
36780         * configure: Regenerate.
36781         * config.in: Likewise.
36782         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
36783         if HAVE_AS_REF.
36784         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
36785         if HAVE_AS_REF.
36786
36787 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
36788
36789         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
36790
36791         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
36792
36793         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
36794
36795         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
36796
36797         (TARGET_IN_SMALL_DATA_P): Fix argument type.
36798
36799         (TARGET_BINDS_LOCAL_P): Fix argument type.
36800
36801         (TARGET_ASM_FILE_END): Use prototype.
36802
36803         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
36804
36805         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
36806
36807         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
36808
36809         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
36810
36811         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
36812         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
36813
36814         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
36815         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
36816
36817         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
36818         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
36819         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
36820         (TARGET_ADDR_SPACE_CONVERT): Likewise.
36821
36822         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
36823
36824         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
36825
36826         (TARGET_INIT_BUILTINS): Use prototype.
36827
36828         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
36829         Put 'const char *' in braces.  Fix parameter types.
36830         (TARGET_INVALID_CONVERSION): Fix parameter types.
36831         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
36832         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
36833
36834         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
36835         Fix argument type.
36836
36837         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
36838
36839         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
36840
36841 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
36842
36843         * doc/tm.texi (TARGET_HELP): Fix return type.
36844
36845         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
36846         in braces.  Fix argument types.
36847
36848         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
36849
36850         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
36851
36852         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
36853
36854         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
36855         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
36856
36857         (TARGET_MANGLE_TYPE): Fix argument types.
36858
36859         (TARGET_IRA_COVER_CLASSES): Use prototype.
36860
36861         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
36862
36863         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
36864
36865         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
36866
36867         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
36868
36869         (TARGET_CALLEE_COPIES): Fix argument types.
36870
36871         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
36872
36873         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
36874
36875         (TARGET_FUNCTION_VALUE): Fix argument types.
36876
36877         (TARGET_RETURN_IN_MSB): Fix argument type.
36878
36879         (TARGET_RETURN_IN_MEMORY): Fix argument types.
36880
36881         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
36882
36883         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
36884
36885         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
36886         agree with return type.
36887
36888         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
36889
36890 2010-01-15  Jing Yu  <jingyu@google.com>
36891
36892         PR rtl-optimization/42691
36893         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
36894         a pseudo to a constant and are merged, and adjust comments.
36895
36896 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
36897
36898         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
36899
36900 2010-01-15  Richard Guenther  <rguenther@suse.de>
36901
36902         PR middle-end/42739
36903         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
36904         labels of computed or non-local gotos to the destination.
36905         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
36906         landing pad label is the first label.
36907
36908 2010-01-15  Richard Guenther  <rguenther@suse.de>
36909
36910         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
36911
36912 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
36913
36914         PR target/42747
36915         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
36916         to allow generation of the xssqrtdp instruction on power7.
36917         (sqrtdf2_fpr): Ditto.
36918
36919 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
36920
36921         PR middle-end/42674
36922         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
36923         functions with noreturn attribute.
36924
36925         PR c++/42608
36926         * varasm.c (declare_weak): Add weak attribute to decl if it
36927         doesn't have one already.
36928         (assemble_external): Only add decls to weak_decls if they also
36929         have weak attribute.
36930
36931 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
36932
36933         * var-tracking.c (var_reg_delete): Don't delete the association
36934         between REGs and values or one-part variables if the register
36935         isn't clobbered.
36936
36937 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
36938
36939         PR debug/42657
36940         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
36941         because its first operand is a non-localized variable.
36942
36943 2010-01-14  Martin Jambor  <mjambor@suse.cz>
36944
36945         PR tree-optimization/42706
36946         * tree-sra.c (encountered_recursive_call): New variable.
36947         (encountered_unchangable_recursive_call): Likewise.
36948         (sra_initialize): Initialize both new variables.
36949         (callsite_has_enough_arguments_p): New function.
36950         (scan_function): Call decl and flags check only for IPA-SRA, check
36951         whether there is a recursive call and whether it has enough arguments.
36952         (all_callers_have_enough_arguments_p): New function.
36953         (convert_callers): Look for recursive calls only when
36954         encountered_recursive_call is set.
36955         (ipa_early_sra): Bail out either if
36956         !all_callers_have_enough_arguments_p or
36957         encountered_unchangable_recursive_call.
36958
36959 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36960
36961         * sel-sched.c: Add 2010 to copyright years.
36962         * sel-sched-ir.c: Likewise.
36963         * sel-sched-ir.h: Likewise.
36964
36965 2010-01-14  Martin Jambor  <mjambor@suse.cz>
36966
36967         PR tree-optimization/42714
36968         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
36969         constructors specially.
36970
36971 2010-01-14  Andi Kleen  <ak@linux.intel.com>
36972
36973         * config/i386/drivers-i386.c (detect_caches_intel):
36974         Add l2sizekb parameter and fill in.
36975         (host_detect_local_cpu): Add l2sizekb, fill in.
36976         Add Atom small cache heuristic.
36977
36978 2010-01-14  Andi Kleen  <ak@linux.intel.com>
36979
36980         * config/i386/drivers-i386.c (detect_caches_cpuid4):
36981         Add level3 parameter and fill in.
36982         (detect_caches_intel): Handle level3 cache.
36983
36984 2010-01-14  Andi Kleen  <ak@linux.intel.com>
36985
36986         * config/i386/drivers-i386.c (host_detect_local_cpu):
36987         Fix core duo detection.
36988
36989 2010-01-14  Andi Kleen  <ak@linux.intel.com>
36990
36991         * config/i386/drivers-i386.c (host_detect_local_cpu):
36992         Fix Atom detection.
36993
36994 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
36995
36996         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
36997         (rs6000_variable_issue_1): this.  Use...
36998         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
36999
37000 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37001
37002         * sel-sched-ir.c (sel_restore_other_notes): Rename to
37003         sel_restore_notes.  Update all callers.  Call reemit_notes
37004         for all insns.
37005
37006 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37007
37008         PR rtl-optimization/42246
37009         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
37010         loops.
37011
37012 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37013
37014         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
37015         all successors is the same as number of successors in current region.
37016
37017 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37018
37019         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
37020         to rename is not separable.  Otherwise check that its LHS is not NULL.
37021
37022 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37023
37024         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
37025
37026 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37027
37028         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
37029         available registers when failed to discover LHS register class.
37030         Fix indentation.  Update comment.
37031
37032 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37033             Alexander Monakov  <amonakov@ispras.ru>
37034
37035         PR rtl-optimization/42389
37036         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
37037         to can_issue_more.
37038         (advance_state_on_fence): Likewise.
37039         (sel_target_adjust_priority): Print debug output only when
37040         sched_verbose >= 4, not 2.
37041         (get_expr_cost): Do not issue all unique insns on the next cycle.
37042         (fill_insns): Initialize can_issue_more from the value saved
37043         with the fence.
37044         * sel-sched-ir.c (flist_add): New parameter issue_more.
37045         Init FENCE_ISSUE_MORE with it.
37046         (merge_fences): Likewise.
37047         (init_fences): Update call to flist_add.
37048         (add_to_fences, add_clean_fence_to_fences)
37049         (add_dirty_fence_to_fences): Likewise.
37050         (move_fence_to_fences): Update call to merge_fences.
37051         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
37052         sched groups.
37053         * sel-sched-ir.h (struct _fence): New field issue_more.
37054         (FENCE_ISSUE_MORE): New accessor macro.
37055
37056 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37057
37058         PR rtl-optimization/42388
37059         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
37060         that have no predecessors nor successors.  Do not call move_bb_info
37061         for empty blocks outside of current region.
37062
37063 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37064
37065         PR rtl-optimization/42294
37066         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
37067         * sel-sched.c (move_exprs_to_boundary): Transitively add all
37068         originators' originators.
37069
37070 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37071
37072         PR rtl-optimization/39453
37073         PR rtl-optimization/42246
37074         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
37075         for pipelining_p.
37076         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
37077
37078 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37079             Alexander Monakov  <amonakov@ispras.ru>
37080
37081         PR middle-end/42245
37082         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
37083         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
37084         argument.  Update all callers.
37085         (tidy_control_flow): ... and here.  Recompute topological order
37086         of basic blocks in region if necessary.
37087         (sel_redirect_edge_and_branch): Change return type.  Return true
37088         if topological order might have been invalidated.
37089         (purge_empty_blocks): Export and move from...
37090         * sel-sched.c (purge_empty_blocks): ... here.
37091         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
37092         (maybe_tidy_empty_bb): Delete prototype.
37093         (purge_empty_blocks): Declare.
37094
37095 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37096
37097         PR rtl-optimization/42249
37098         * sel-sched.c (try_replace_dest_reg): When chosen register
37099         and original register is the same, do not bail out early, but
37100         still check all original insns for validity of replacing destination
37101         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
37102         in this case.
37103
37104 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37105
37106         PR c/42721
37107         Port from no-undefined-overflow branch:
37108         2009-03-09  Richard Guenther  <rguenther@suse.de>
37109
37110         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
37111
37112 2010-01-14  Richard Guenther  <rguenther@suse.de>
37113
37114         PR lto/42665
37115         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
37116
37117 2010-01-14  Ira Rosen  <irar@il.ibm.com>
37118
37119         PR tree-optimization/42709
37120         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
37121         as scalar type in creation of constant vector operand.
37122
37123 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37124
37125         PR testsuite/42414
37126         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
37127         (check-parallel-%): Match `testsuite' directory component only
37128         at the end.
37129
37130 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
37131
37132         PR translation/39521
37133         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
37134         strings with _().
37135
37136 2010-01-13  Richard Guenther  <rguenther@suse.de>
37137
37138         PR tree-optimization/42730
37139         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
37140         offset zero.
37141
37142 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
37143
37144         PR target/pr42542
37145         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
37146         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
37147         them signed.
37148
37149 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
37150
37151         * config/bfin/libgcc-bfin.ver: Regenerate based on current
37152         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
37153         ___umulsi3_highpart.
37154
37155         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
37156         rather than schedule_insns if the pass is enabled.
37157
37158 2010-01-13  Martin Jambor  <mjambor@suse.cz>
37159
37160         PR tree-optimization/42704
37161         * tree-sra.c (sra_modify_assign): Do not delete assignments to
37162         SSA_NAMEs.
37163
37164 2010-01-13  Martin Jambor  <mjambor@suse.cz>
37165
37166         PR tree-optimization/42703
37167         * tree-sra.c (analyze_access_subtree): Check that we can build a
37168         reference to the original data within the aggregate.
37169
37170 2010-01-13  Richard Guenther  <rguenther@suse.de>
37171
37172         PR tree-optimization/42705
37173         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
37174
37175 2010-01-13  Richard Guenther  <rguenther@suse.de>
37176
37177         PR middle-end/42716
37178         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
37179
37180 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
37181
37182         PR debug/41371
37183         * var-tracking.c (values_to_unmark): New variable.
37184         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
37185         values_to_unmark vector.  Moved body to...
37186         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
37187         instead queue it into values_to_unmark vector.
37188         (vt_find_locations): Free values_to_unmark vector.
37189
37190 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
37191
37192         * config/s390/s390.c (override_options): Set
37193         default of max-pending-list-length to 256
37194
37195 2010-01-13  Richard Guenther  <rguenther@suse.de>
37196
37197         PR lto/42678
37198         * tree-pass.h (PROP_gimple_lcx): New.
37199         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
37200         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
37201         before the final cleanup_eh.
37202         (dump_properties): Dump PROP_gimple_lcx.
37203         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
37204         (tree_lower_complex_O0): Remove.
37205         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
37206         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
37207         tree_lower_complex, schedule TODO_update_ssa.
37208         * lto-streamer-out.c (output_function): Stream the functions
37209         properties.
37210         * lto-streamer-in.c (input_function): Likewise.
37211         (lto_read_body): Do not override them here.
37212
37213 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
37214
37215         PR c/42708
37216         * c-typeck.c (build_c_cast): Fold value cast to union type before
37217         wrapping it in a CONSTRUCTOR.
37218
37219 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
37220
37221         PR rtl-optimization/42699
37222         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
37223         involved.
37224
37225 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37226
37227         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
37228         SUBTARGET_WARN_UNUSED_SPEC): Move ...
37229         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
37230         SUBTARGET_WARN_UNUSED_SPEC): ... here
37231         * config/mips/iris5.h (LIBGCC_SPEC): Define.
37232
37233 2010-01-12  Julian Brown  <julian@codesourcery.com>
37234
37235         * config/arm/neon-schedgen.ml (Utils): Don't try to
37236         open missing module.
37237         (find_with_result): New.
37238
37239 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
37240
37241         PR debug/42662
37242         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
37243         sharing when canonicalizing ({lt,ge}u (plus a b) b).
37244
37245         PR tree-optimization/42645
37246         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
37247         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
37248         decl_map, set processing_debug_stmt to -1 and return name without
37249         any remapping.
37250
37251 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
37252
37253         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
37254         binutils version, and reword target configuration description.
37255
37256 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
37257
37258         * config/avr/avr.h (LINKER_NAME): Remove.
37259
37260 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
37261
37262         PR target/42416
37263         * config/rs6000/rs6000.c (rs6000_override_options): On targets
37264         that support VSX, warn for -mno-altivec if vsx is not disabled,
37265         and disable vsx.
37266
37267 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
37268             Shujing Zhao  <pearly.zhao@oracle.com>
37269
37270         PR translation/42469
37271         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
37272         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
37273         character between option name and help text.
37274         * c.opt (imultilib): Likewise.
37275
37276 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
37277
37278         * lto-streamer-out.c (output_unreferenced_globals): Output static
37279         variables.
37280
37281 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
37282
37283         PR rtl-optimization/42621
37284         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
37285         optimizing for size.
37286         (duplicate_computed_gotos): Remove now-redundant check.
37287
37288 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
37289
37290         PR target/37454
37291         * configure.ac: Save and restore LDFLAGS and LIBS
37292         * configure: Regenerate.
37293
37294 2010-01-10  Richard Guenther  <rguenther@suse.de>
37295
37296         PR middle-end/42667
37297         * builtins.c (fold_builtin_strlen): Add type argument and
37298         convert the resulting length to it.
37299         (fold_builtin_1): Adjust.
37300
37301 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
37302
37303         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
37304         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
37305         1 insn.
37306         (num_insns_constant_wide): Adjust for that change.
37307
37308 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37309
37310         PR debug/42631
37311         * web.c (union_defs): Add used argument, to combine uses of
37312         uninitialized regs.
37313         (entry_register): Adjust type and tests of used argument.
37314         (web_main): Widen used for new use.  Pass it to union_defs.
37315         * df.h (union_defs): Adjust prototype.
37316
37317 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37318
37319         PR debug/42630
37320         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
37321         uses in new incoming argument.  Free body.
37322         (reset_debug_uses_in_loop): New.
37323         (analyze_insn_to_expand_var): Call the latter if the former found
37324         anything.  Fix whitespace.  Reject invalid dest overlaps before
37325         going through all insns in the loop.
37326
37327 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37328
37329         PR debug/42629
37330         * haifa-sched.c (dying_use_p): Debug insns don't count.
37331
37332 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37333
37334         PR middle-end/42363
37335         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
37336         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
37337         (verify_gimple_call): Reject LHS in noreturn calls.
37338
37339 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37340
37341         PR debug/42604
37342         PR debug/42395
37343         * tree-vect-loop-manip.c (adjust_info): New type.
37344         (adjust_vec): New pointer to vector.
37345         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
37346         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
37347         (slpeel_update_phis_for_duplicate_loop): Use them.
37348         (slpeel_update_phi_nodes_for_guard1): Likewise.
37349         (slpeel_update_phi_nodes_for_guard2): Likewise.
37350         (slpeel_tree_peel_loop_to_edge): Likewise.
37351         (vect_update_ivs_after_vectorizer): Likewise.
37352
37353 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37354
37355         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
37356         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
37357
37358 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37359
37360         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
37361         bogus uninitialized warning.
37362
37363 2010-01-09  Richard Guenther  <rguenther@suse.de>
37364
37365         PR middle-end/42512
37366         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
37367         the evolution is compatible with the initial condition.
37368
37369 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
37370
37371         * gcc.c (process_command): Update copyright notice dates.
37372         * gcov.c (print_version): Likewise.
37373         * gcov-dump.c (print_version): Likewise.
37374         * mips-tfile.c (main): Likewise.
37375         * mips-tdump.c (main): Likewise.
37376
37377 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
37378
37379         PR target/41885
37380         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
37381         (rotlhi3): Delete.
37382         (rotlhi3_8): Delete.
37383         (rotlsi3): Delete.
37384         (rotlsi3_8): Delete.
37385         (rotlsi3_16): Delete.
37386         (rotlsi3_24): Delete.
37387         (rotl<mode>3): New.
37388         (*rotw<mode>3): New.
37389         (*rotb<mode>3): New.
37390         * config/avr/avr.c (avr_rotate_bytes): New function.
37391         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
37392
37393 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
37394
37395         PR target/37454
37396         * configure.ac: Modify -rdynamic check.
37397         * configure: Regenerate.
37398
37399 2010-01-08  DJ Delorie  <dj@redhat.com>
37400
37401         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
37402         register popping order.
37403
37404 2010-01-08  Richard Guenther  <rguenther@suse.de>
37405
37406         PR lto/42528
37407         * c.opt (fsigned-char): Also let LTO handle this option.
37408         (funsigned-char): Likewise.
37409
37410 2010-01-07  Richard Guenther  <rguenther@suse.de>
37411
37412         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
37413         (gimple_op): Likewise.
37414         (gimple_op_ptr): Likewise.
37415         (gimple_assign_set_lhs): Remove gcc_assert.
37416         (gimple_assign_set_rhs1): Likewise.
37417         (gimple_assign_set_rhs2): Likewise.
37418         (gimple_call_set_lhs): Likewise.
37419         (gimple_call_set_fn): Likewise.
37420         (gimple_call_set_fndecl): Likewise.
37421         (gimple_call_fndecl): Likewise.
37422         (gimple_call_return_type): Likewise.
37423         (gimple_call_set_chain): Likewise.
37424         (gimple_call_num_args): Likewise.
37425         (gimple_call_set_arg): Likewise.
37426         (gimple_cond_set_code): Likewise.
37427         (gimple_cond_set_lhs): Likewise.
37428         (gimple_cond_set_rhs): Likewise.
37429         (gimple_cond_set_true_label): Likewise.
37430         (gimple_cond_set_false_label): Likewise.
37431         (gimple_label_set_label): Likewise.
37432         (gimple_goto_set_dest): Likewise.
37433         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
37434         (gimple_debug_bind_get_value): Likewise.
37435         (gimple_debug_bind_get_value_ptr): Likewise.
37436         (gimple_debug_bind_set_var): Likewise.
37437         (gimple_debug_bind_set_value): Likewise.
37438         (gimple_debug_bind_reset_value): Likewise.
37439         (gimple_debug_bind_has_value_p): Likewise.
37440         (gimple_return_retval_ptr): Remove gcc_assert.
37441         (gimple_return_retval): Likewise.
37442         (gimple_return_set_retval): Likewise.
37443         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
37444         (safe_referenced_var_iterator): Remove.
37445         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
37446         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
37447         (fill_referenced_var_vec): Remove.
37448         (first_readonly_imm_use): Remove redundant gcc_assert.
37449         (phi_arg_index_from_use): Combine gcc_asserts.
37450         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
37451         (first_imm_use_stmt): Remove redundant gcc_assert.
37452         * tree-cfg.c (verify_gimple_call): Verify function and chain
37453         operands.  Verify arguments.
37454         (verify_types_in_gimple_stmt): Verify condition code and labels.
37455
37456 2010-01-07  Richard Guenther  <rguenther@suse.de>
37457
37458         PR tree-optimization/42641
37459         * sese.c (rename_map_elt_info): Use the SSA name version, do
37460         not hash pointers.
37461
37462 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
37463
37464         PR tree-optimization/42625
37465         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
37466         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
37467
37468 2010-01-07  Duncan Sands  <baldrick@free.fr>
37469
37470         * Makefile.in (PLUGIN_HEADERS): Add version.h.
37471
37472 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
37473
37474         PR target/42511
37475         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
37476         note itself is not function_invariant_p.
37477
37478 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
37479
37480         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
37481         Do not add the DF_NOTE problem.
37482         * store-motion.c (execute_rtl_store_motion): Likewise.
37483
37484 2010-01-07  Martin Jambor  <mjambor@suse.cz>
37485
37486         PR tree-optimization/42157
37487         * tree-sra.c (compare_access_positions): Stabilize sort if both
37488         accesses have integer types, return zero immediately if they are the
37489         same.
37490
37491 2010-01-06  Richard Henderson  <rth@redhat.com>
37492
37493         PR middle-end/41883
37494         * haifa-sched.c (add_to_note_list): Merge into ...
37495         (concat_note_lists): ... here, and ...
37496         (unlink_other_notes, rm_other_notes): Merge into...
37497         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
37498         NOTE_INSN_EPILOGUE_BEG.
37499
37500 2010-01-06  Richard Guenther  <rguenther@suse.de>
37501
37502         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
37503         not inline regular functions into always-inline functions.
37504
37505 2010-01-06  Nick Clifton  <nickc@redhat.com>
37506
37507         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
37508         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
37509         used together.
37510         (OVERRIDE_OPTIONS): Delete.
37511         (OPTIMIZATION_OPTIONS): Define.
37512         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
37513         * config/rx/rx.c (rx_handle_option): Issue an error message if
37514         -mcpu=rx200 and -fpu are used together.
37515         (rx_set_optimization_options): New function.  Issue an error
37516         message if an optimization attribute attempts to reset the FPU/
37517         math optimization pairing.
37518         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
37519         * config/rx/rx.opt: Set the default to 32-bit doubles.
37520         * config/rx/t-rx: Add multilibs for -nofpu option.
37521         * doc/invoke.texi: Update documentation of RX options.
37522
37523 2010-01-06  Richard Guenther  <rguenther@suse.de>
37524
37525         * tree-ssa-pre.c (name_to_id): New global.
37526         (alloc_expression_id): Simplify SSA name handling.
37527         (lookup_expression_id): Likewise.
37528         (init_pre): Zero name_to_id.
37529         (fini_pre): Free it.
37530
37531 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
37532
37533         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
37534
37535 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
37536
37537         PR target/42542
37538         * config/i386/sse.md (smaxv2di3): New.
37539         (umaxv2di3): Likewise.
37540         (sminv2di3): Likewise.
37541         (uminv2di3): Likewise.
37542
37543 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
37544
37545         PR target/42564
37546         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
37547         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
37548         (legitimize_tls_address): Likewise.
37549         (sparc_tls_referenced_p): Likewise.
37550         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
37551         and adjust calls to legitimize_pic_address.
37552         (legitimate_constant_p) Use sparc_tls_referenced_p.
37553         (legitimate_pic_operand_p): Likewise.
37554         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
37555         (sparc_tls_symbol_ref_1): Delete.
37556         (sparc_tls_referenced_p): Make static, recognize specific patterns.
37557         (legitimize_tls_address): Make static, handle CONST patterns.
37558         (legitimize_pic_address): Make static, remove unused parameter and
37559         adjust recursive calls.
37560         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
37561         and adjust call to legitimize_pic_address.
37562         (sparc_output_mi_thunk): Likewise.
37563
37564 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
37565             H.J. Lu  <hongjiu.lu@intel.com>
37566
37567         PR target/42542
37568         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
37569         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
37570         operands to make them signed.
37571
37572         Revert:
37573         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
37574
37575         PR target/42542
37576         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
37577         GTU to GT for V4SI and V2DI.
37578
37579         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
37580         (umin<mode>3): Removed.
37581         (uminv8hi3): New.
37582         (uminv4si3): Likewise.
37583
37584 2010-01-05  Martin Jambor  <mjambor@suse.cz>
37585
37586         PR tree-optimization/42462
37587         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
37588         current_function_decl to helper functions and macros.
37589
37590 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37591
37592         PR bootstrap/41771
37593         * flags.h: Don't include real.h.
37594         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
37595         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
37596         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
37597         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
37598         * dominance.c: Update copyright.
37599         * gimple.c (walk_gimple_op): Remove inline.
37600         * tree-ssa-reassoc.c: Include real.h.
37601         * Makefile.in (FLAGS_H): Remove $(REAL_H).
37602         (tree-ssa-reassoc.o): Depend on $(REAL_H).
37603
37604 2010-01-05  Nick Clifton  <nickc@redhat.com>
37605
37606         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
37607         register to push into the stack frame when the accumulator has to
37608         be saved during interrupts.
37609
37610 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
37611
37612         * doc/invoke.texi: Remove the documentation about option
37613         -Wunreachable-code.
37614         * common.opt (Wunreachable-code):  Preserved for backward
37615         compatibility.
37616         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
37617         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
37618         the backward compatibility flag section.
37619
37620 2010-01-05  Richard Guenther  <rguenther@suse.de>
37621
37622         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
37623
37624 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
37625
37626         PR other/42611
37627         * cfgexpand.c (expand_one_var): Diagnose too large variables.
37628
37629         PR tree-optimization/42508
37630         * tree-sra.c (convert_callers): Check for recursive call
37631         by comparing cgraph nodes instead of decls.
37632         (modify_function): Call ipa_modify_formal_parameters also
37633         on all same_body aliases.
37634
37635         * cgraphunit.c (cgraph_materialize_all_clones): Compare
37636         cgraph nodes when checking for same_body aliases.
37637
37638 2010-01-05  Richard Guenther  <rguenther@suse.de>
37639
37640         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
37641         allocation and lookup.
37642         (get_or_alloc_expr_for_constant): Likewise.
37643         (phi_translate): Sink allocation.
37644
37645 2010-01-04  Richard Guenther  <rguenther@suse.de>
37646
37647         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
37648         a new entry only if needed.
37649         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
37650         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
37651         hashtable lookup.
37652         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
37653         the result array.
37654         (phi_translate): Handle CONSTANTs early.
37655
37656 2010-01-04  Martin Jambor  <mjambor@suse.cz>
37657
37658         PR tree-optimization/42398
37659         * tree-sra.c (struct access): Removed flag grp_different_types.
37660         (dump_access): Do not dump the removed flag.
37661         (sort_and_splice_var_accesses): Do not set the removed flag.
37662         (sra_modify_expr): Check for type compatibility directly.
37663
37664 2010-01-04  Martin Jambor  <mjambor@suse.cz>
37665
37666         PR tree-optimization/42366
37667         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
37668         edges with variable number of parameters.
37669         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
37670         flag instead of asserting it.
37671         (ipa_read_node_info): Read uses_analysis_done flag.
37672
37673 2010-01-04  Richard Guenther  <rguenther@suse.de>
37674
37675         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
37676         iterative_hash_* as intended.
37677         (vn_reference_compute_hash): Likewise.  Simplify hashing
37678         SSA names.
37679         (vn_reference_lookup_2): Likewise.
37680         (vn_nary_op_compute_hash): Likewise.
37681         (vn_phi_compute_hash): Likewise.
37682         (expressions_equal_p): Remove strange code.
37683         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
37684         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
37685         (bitmap_insert_into_set_1): Take value-id as parameter.
37686         (add_to_value): Pass it.
37687         (bitmap_insert_into_set): Likewise.
37688         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
37689
37690 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
37691
37692         PR driver/42442
37693         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
37694         (do_self_spec): For switches with SWITCH_IGNORE set set also
37695         SWITCH_IGNORE_PERMANENTLY.
37696         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
37697         of SWITCH_IGNORE.
37698
37699 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
37700
37701         * lto-streamer-out.c (output_unreferenced_globals): Output the full
37702         tree of an unreferenced global var.
37703
37704 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
37705
37706         PR target/42542
37707         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
37708         GTU to GT for V4SI and V2DI.
37709
37710         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
37711         (umin<mode>3): Removed.
37712         (uminv8hi3): New.
37713         (uminv4si3): Likewise.
37714
37715 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
37716
37717         PR lto/42581
37718         * collect2.c (main): Turn on trace in collect2 if -v is passed
37719         to gcc with LTO.
37720
37721 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
37722
37723         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
37724         description of expression operand.
37725
37726 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
37727
37728         * configure.ac: Add install-html to target_list for Make-hooks.
37729         * configure: Regenerate.
37730         * fortran/Make-lang.in (F95_HTMLFILES): New.
37731         (fortran.html): Use it.
37732         (fortran.install-html): New.
37733         * Makefile.in (install-html): Add lang.install-html.
37734         * java/Make-lang.in (JAVA_HTMLFILES): New.
37735         (java.html): Use it.
37736         (java.install-html): New.
37737         * objc/Make-lang.in (objc.install-html): New.
37738         * objcp/Make-lang.in (obj-c++.install-html): New.
37739         * cp/Make-lang.in (c++.install-html): New.
37740         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
37741         * lto/Make-lang.in (lto.install-html): New.
37742
37743 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
37744
37745         PR lto/42520
37746         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
37747
37748 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
37749
37750         PR rtl-optimization/41862
37751         * store-motion.c (store_killed_in_insn, compute_store_table,
37752         remove_reachable_equiv_notes, replace_store_insn,
37753         build_store_vectors): Ignore all DEBUG_INSNs.
37754
37755 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
37756
37757         PR lto/41564
37758         * common.opt: Add dumpdir.
37759
37760         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
37761         isn't specified.
37762         (option_map): Add --dumpdir.
37763
37764         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
37765
37766         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
37767
37768         * opts.c (decode_options): Try dump_dir_name first if
37769         dump_base_name isn't an absolute path.
37770         (common_handle_option): Handle OPT_dumpdir.
37771
37772         * toplev.c (dump_dir_name): New.
37773         (print_switch_values): Also ignore -dumpdir.
37774
37775         * toplev.h (dump_dir_name): New.
37776
37777 2010-01-03  Richard Guenther  <rguenther@suse.de>
37778
37779         PR tree-optimization/42589
37780         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
37781         double-word expansion of bswap32.
37782
37783 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
37784
37785         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
37786         with BLOCK_FOR_INSN.
37787         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
37788         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
37789         noce_process_if_block): Likewise.
37790         * gcse.c (compute_local_properties, insert_expr_in_table,
37791         insert_set_in_table, canon_list_insert, find_avail_set,
37792         pre_insert_copy_insn): Likewise.
37793
37794         * basic-block.h (BLOCK_NUM): Move from here...
37795         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
37796
37797 2010-01-03  Richard Guenther  <rguenther@suse.de>
37798
37799         PR tree-optimization/42438
37800         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
37801         contains_may_not_return_call flag.
37802         (BB_MAY_NOTRETURN): New.
37803         (valid_in_sets): Trapping nary operations are not valid
37804         in blocks that may not return.
37805         (insert_into_preds_of_block): Remove check for trapping expressions.
37806         (compute_avail): Compute also BB_MAY_NOTRETURN.
37807
37808 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
37809
37810         * doc/invoke.texi: Add 2010 to copyright years.
37811
37812 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
37813
37814         * config/sparc/sparc.c: Fix formatting nits.
37815
37816 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
37817             Alexander Monakov  <amonakov@ispras.ru>
37818
37819         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
37820
37821 2010-01-02  Richard Guenther  <rguenther@suse.de>
37822
37823         PR middle-end/42577
37824         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
37825         (simplify_switch_using_ranges): Mark to be removed edges
37826         as non-executable.
37827
37828 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
37829
37830         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
37831
37832         * collect2.c (scan_libraries): Add missing argument in call to
37833         scan_prog_file.
37834
37835 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
37836
37837         PR target/42448
37838         * config/alpha/predicates.md (aligned_memory_operand): Return false
37839         for CQImode.
37840         (unaligned_memory_operand): Return true for CQImode.
37841         * config/alpha/alpha.c (get_aligned_mem): Assert that location
37842         doesn not cross aligned SImode word boundary.
37843
37844 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
37845
37846         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
37847         Remove.
37848         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
37849         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
37850
37851 2010-01-02  Richard Guenther  <rguenther@suse.de>
37852
37853         PR lto/41597
37854         * toplev.c (compile_file): Emit LTO marker properly.  Change
37855         it to __gnu_lto_v1.
37856         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
37857
37858 2010-01-01  Richard Guenther  <rguenther@suse.de>
37859
37860         PR debug/42455
37861         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
37862
37863 2010-01-01  Richard Guenther  <rguenther@suse.de>
37864
37865         PR c/42570
37866         * c-decl.c (grokdeclarator): For zero-size arrays force
37867         structural equality checks as layout_type does.
37868
37869 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
37870
37871         * builtins.c: Update copyright to 2010.
37872
37873 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
37874
37875         PR lto/42531
37876         * lto-streamer-out.c (produce_asm): Revert the last change.
37877         (copy_function): Likewise.
37878
37879         * lto-streamer.c (lto_get_section_name): Skip any leading
37880         asterisk in name.
37881
37882 2010-01-01  Richard Guenther  <rguenther@suse.de>
37883
37884         PR middle-end/42559
37885         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
37886         for LABEL_DECLs.
37887
37888 \f
37889 Copyright (C) 2010 Free Software Foundation, Inc.
37890
37891 Copying and distribution of this file, with or without modification,
37892 are permitted in any medium without royalty provided the copyright
37893 notice and this notice are preserved.