OSDN Git Service

2010-11-30 Laurynas Biveinis <laurynas.biveinis@gmail.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2
3         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
4         * ggc-none.c (ggc_internal_alloc_zone_stat)
5         (ggc_internal_cleared_alloc_zone_stat): New.
6
7 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
8
9         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
10         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
11         (rs6000_emit_prologue): Don't set PIC register if
12         TARGET_SINGLE_PIC_BASE.
13         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
14         * doc/invoke.texi (msingle-pic-base): Document.
15
16 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
17
18         PR driver/46712
19         * exec-tool.in (id): New.
20         Check and export LT_RCU_$id instead of LT_RCU.
21
22 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
23
24         PR tree-optimization/46675
25         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
26         in offset calculation.
27
28 2010-11-29  Jan Hubicka  <jh@suse.cz>
29
30         * collect2.c (main): Do not imply verbose output with
31         LTO and linker plugin.
32
33 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
34
35         * dwarf2out.c (print_die): Print the address of the current DIE or
36         of any DIE referenced by the current one.
37
38 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
39
40         PR debug/46101
41         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New
42         function.
43         (scope_die_for, gen_type_die_for_member): Replace uses of
44         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
45
46 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
47
48         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
49         (darwin_asm_declare_object_name): Correct spelling.
50         (darwin_output_aligned_bss): Likewise.
51
52 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
53             Mike Stump  <mrs@gcc.gnu.org>
54
55         PR target/26427
56         PR target/33120
57         PR testsuite/35710
58         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
59         (ASM_OUTPUT_LOCAL): Likewise.
60         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
61         (darwin_output_aligned_bss): Likewise.
62         (darwin_asm_output_aligned_decl_local): Likewise.
63         (darwin_asm_output_aligned_decl_common): Likewise.
64         (darwin_use_anchors_for_symbol_p): Likewise.
65         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
66         (TARGET_ASM_OUTPUT_ANCHOR): Define.
67         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
68         (DARWIN_SECTION_ANCHORS): Set to 1.
69         * config/darwin.c (emit_aligned_common): New var.
70         (darwin_init_sections): Check that the Darwin private zero-size section
71         marker is in range.
72         (darwin_text_section): Check for zero-sized objects.
73         (darwin_mergeable_string_section): Likewise.
74         (darwin_mergeable_constant_section): Likewise.
75         (machopic_select_section): Adjust to check for zero-sized objects.
76         Assert that OBJC meta data are non-zero sized.
77         (darwin_asm_declare_object_name): New.
78         (darwin_asm_declare_constant_name): Adjust for zero-sized
79         object sections.
80         (BYTES_ZFILL): Define.
81         (darwin_emit_weak_or_comdat): New.
82         (darwin_emit_local_bss): New.
83         (darwin_emit_common): New.
84         (darwin_output_aligned_bss): New.
85         (darwin_asm_output_aligned_decl_common): New.
86         (darwin_asm_output_aligned_decl_local): New.
87         (darwin_file_end): Disable subsections_via_symbols when section
88         anchoring is active.
89         (darwin_asm_output_anchor): Re-enable.
90         (darwin_use_anchors_for_symbol_p): New.
91         (darwin_override_options): Check for versions that can emit
92         aligned common.  Update usage of flags to current.
93         * config/darwin-sections.def: Update comments and flags for
94         non-anchor sections.  zobj_const_section, zobj_data_section,
95         zobj_bss_section, zobj_const_data_section: New.
96         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
97         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
98         (L2_MAX_OFILE_ALIGNMENT): Define.
99         (ASM_OUTPUT_ALIGNED_BSS): Define.
100         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
101         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
102         (SECTION_NO_ANCHOR): Define.
103         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
104         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
105
106 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
107
108         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
109         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
110         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
111         Conditionally define.
112         (GET_ENVIRONMENT): Poison.
113         * configure.ac: Don't test for mincore.
114         * configure: Regenerate.
115         * config.in: Regenerate.
116         * collect2-aix.c: Don't include <sys/mman.h>.
117         * collect2.c: Don't include <signal.h>.
118         (SIGCHLD): Don't define.
119         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
120         * config/alpha/alpha.c: Include "splay-tree.h" instead of
121         <splay-tree.h>.
122         * config/arm/arm.c (arm_target_help): Use getenv instead of
123         GET_ENVIRONMENT.
124         * config/avr/driver-avr.c: Don't include <stdlib.h>.
125         * config/frv/frv.c: Don't include <ctype.h>.
126         * config/host-darwin.c: Don't include <sys/mman.h>.
127         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
128         (MAP_FAILED): Don't define.
129         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
130         * config/host-solaris.c: Don't include <sys/mman.h>.
131         * config/i386/cygming.h: Don't include <stdio.h>.
132         * config/i386/driver-i386.c: Don't include <stdlib.h>.
133         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
134         * config/iq2000/iq2000.c: Don't include <signal.h>.
135         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
136         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
137         * config/mep/mep-pragma.c: Don't include <stdio.h>.
138         * config/microblaze/microblaze.c: Don't include <signal.h>.
139         * config/mips/mips.c: Don't include <signal.h>.
140         * config/rs6000/host-darwin.c: Don't include <signal.h>.
141         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
142         * defaults.h (GET_ENVIRONMENT): Don't define.
143         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
144         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
145         (SIGCHLD, MAP_FAILED, kill): Don't define.
146         (process_command): Use getenv instead of GET_ENVIRONMENT.
147         * genhooks.c: Don't include <string.h>.
148         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
149         <sys/types.h>.
150         (MAP_FAILED): Don't define.
151         * ggc-page.c Don't include <sys/mman.h>.
152         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
153         * ggc-zone.c: Don't include <sys/mman.h>.
154         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
155         * graph.c: Include "config.h" instead of <config.h>.
156         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
157         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
158         (SIGCHLD, kill): Don't define.
159         * mips-tfile.c: Don't include <signal.h>.
160         * opts.c: Don't include <signal.h> or <sys/resource.h>.
161         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
162         * passes.c: Don't include <signal.h>, <sys/resource.h> or
163         <sys/times.h>.
164         * sparseset.h: Don't include <assert.h>.
165         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
166         * tlink.c: Don't include "libiberty.h".
167         * toplev.c: Don't include <signal.h> or <sys/times.h>.
168         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
169         * tree-switch-conversion.c: Don't include <signal.h>.
170         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
171
172 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
173
174         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
175         c_parser_objc_try_catch_finally_statement for consistency with the
176         C++ parser.  Parse @catch(...) and pass NULL_TREE to
177         objc_begin_catch_clause() in that case.  Improved error recovery.
178         Reorganized code to be almost identical to
179         cp_parser_objc_try_catch_finally_statement.
180
181 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
182
183         PR tree-optimization/46621
184         * gimple.h: Don't include tm.h or hard-reg-set.h .
185         * Makefile.in (GIMPLE_H): Remove $(TM_H).
186
187         PR bootstrap/44756
188         * cppbuiltin.c: Include target.h .
189         (define_builtin_macros_for_type_sizes):
190         Use targetm.float_words_big_endian.
191
192 2010-11-27  Jan Hubicka  <jh@suse.cz>
193
194         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
195         and output cold_text_section_label.
196         (dwarf2out_init): Don't do that there.
197         (dwarf2out_finish): Handle cold section end label only if cold
198         section was used.
199
200 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
201
202         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
203         VLA variables.
204
205 2010-11-27  Richard Guenther  <rguenther@suse.de>
206
207         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
208         (gimple_assign_ssa_name_copy_p): Likewise.
209         (gimple_assign_unary_nop_p): Use is_gimple_assign.
210         (is_gimple_cast): Remove.
211         (gimple_assign_single_p): Move ...
212         * gimple.h (gimple_assign_single_p): ... here.
213         (is_gimple_cast): Remove.
214         (gimple_assign_rhs_code): Simplify.
215         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
216         instead of is_gimple_cast.
217         * ipa-type-escape.c (look_for_casts): Likewise.
218
219 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
220
221         * doc/options.texi (Enum, EnumValue): Document new record types.
222         (Enum): Document new option flag.
223         * opt-functions.awk
224         * optc-gen.awk: Handle enumerated option arguments.
225         * opth-gen.awk: Handle enumerated option arguments.
226         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
227         enum_value_to_arg): New.
228         (decode_cmdline_option): Handle enumerated arguments.
229         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
230         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
231         * opts.c (print_filtered_help, print_specific_help): Take
232         lang_mask arguments.
233         (print_filtered_help): Handle printing values of enumerated
234         options.  Print possible arguments for enumerated options.
235         (print_specific_help): Update call to print_filtered_help.
236         (common_handle_option): Update calls to print_specific_help.  Use
237         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
238         handle OPT_ffp_contract_, OPT_fexcess_precision_,
239         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
240         OPT_fira_region_ here.
241         * opts.h (enum cl_var_type): Add CLVC_ENUM.
242         (struct cl_option): Add var_enum.
243         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
244         struct cl_enum, cl_enums, cl_enums_count): New.
245         (CL_ERR_ENUM_ARG): Define.
246         (CL_ERR_NEGATIVE): Update value.
247         (enum_value_to_arg): Declare.
248         * common.opt (flag_ira_algorithm, flag_ira_region,
249         flag_fp_contract_mode, flag_excess_precision_cmdline,
250         default_visibility, flag_tls_default): Remove Variable entries.
251         (help_enum_printed): New Variable.
252         (fdiagnostics-show-location=): Use Enum.  Add associated
253         SourceInclude, Enum and EnumValue entries.
254         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
255         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
256         associated Enum and EnumValue entries.
257
258 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
259
260         PR target/46623
261         * config/microblaze/microblaze.c (microblaze_block_move_straight):
262         Use XALLOCAVEC.
263         (microblaze_option_override): Don't use C++ style comments.
264         (save_restore_insns): Remove unused variable base_offset.
265         (microblaze_expand_prologue): Remove unused variable insn.
266         (microblaze_secondary_reload): Adjust type to match target.h .
267         (microblaze_elf_in_small_data_p): Move declarations to start of block.
268         (microblaze_expand_move): Likewise.
269         * config/microblaze/microblaze.h (LARGE_INT):
270         Avoid signed / unsigned comparisons.
271         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
272         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
273         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
274
275 2010-11-26  Michael Matz  <matz@suse.de>
276
277         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
278
279         * passes.c (init_optimization_passes): Remove superfluous
280         copy-prop pass.
281
282 2010-11-26  Richard Guenther  <rguenther@suse.de>
283
284         PR lto/46648
285         * gimple.c (gtc_visit): Do not return true for members of an
286         SCC still being processed but the current lattice value of
287         the member.  Treat SCC members comparison state as lattice,
288         starting at equal, eventually dropping to unequal.
289         (gimple_types_compatible_p_1): Likewise.
290
291 2010-11-26  Richard Guenther  <rguenther@suse.de>
292
293         PR middle-end/46559
294         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
295         for location list processing.
296
297 2010-11-26  Richard Guenther  <rguenther@suse.de>
298
299         PR lto/46560
300         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
301         flags manually.
302
303 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
304
305         * config/s390/s390.c (print_operand_address): Replace assert with
306         error message.
307         (print_operand): Replace assertions, gcc_unreachable and
308         fatal_insn with error messages.
309
310 2010-11-26  Richard Guenther  <rguenther@suse.de>
311
312         PR tree-optimization/46665
313         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
314
315 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
316
317         * config/arm/arm.c (arm_option_override): enable loop array
318         prefetching at -O3 for suitable targets, and configure params.
319         * config/arm/arm-protos.h (struct tune_params): Add fields for
320         configuring loop array prefetching.
321
322 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
323
324         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
325
326 2010-11-26  Richard Guenther  <rguenther@suse.de>
327
328         PR tree-optimization/46664
329         * tree-affine.c (aff_combination_to_tree): Add rest last.
330
331 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
332
333         PR target/33637
334         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
335         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
336         * configure: Regenerated.
337         * exec-tool.in: Not quoting command, may have extra arguments.
338
339 2010-11-26  Richard Guenther  <rguenther@suse.de>
340
341         PR tree-optimization/46528
342         PR debug/46338
343         * profile.c (branch_prob): Do not split blocks based on locations
344         from debug statements.
345
346 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
347
348         PR middle-end/46647
349         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
350         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
351
352         PR bootstrap/45700
353         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
354         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
355         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
356         build6_loc): Define.
357         * fold-const.c (protected_set_expr_location_unshare): New inline.
358         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
359         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
360         pedantic_omit_one_operand_loc, omit_two_operands_loc,
361         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
362         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
363         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
364         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
365         instead of buildN followed by SET_EXPR_LOCATION or
366         protected_set_expr_location.
367         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
368         Use buildN_stat_loc instead of buildN_stat followed by
369         SET_EXPR_LOCATION.
370
371 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
372
373         * Makefile.in (s-tm-texi): Remove spurous tab.
374
375 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
376
377         PR debug/46258
378         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
379         debug stmts.
380
381 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
382
383         * toplev.c (finalize): Add no_backend parameter.  Don't finish
384         passes when preprocessing only.  Adjust...
385         (do_compile): ... caller.
386
387 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
388
389         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
390         flag_unsafe_math_optimizations.
391         (negsf2): Likewise.
392         Move fnegabs related patterns together.  Only use fmpynfadd instruction
393         to negate a multiply if !flag_signed_zeros is true.
394
395 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
396
397         * gengtype-state.c (read_state_structures): Initialize "previous".
398
399 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
400             Jeremie Salvucci  <jeremie.salvucci@free.fr>
401
402         * gengtype-state.c: Add new file.
403
404         * gengtype.c (type count): New variable.
405         (new_structure, find_param_structure, create_pointer)
406         (create_array): Use it to set state_number in types.
407         (dump_everything): Improve comment.
408         (main): Call read_state and write_state. Print type_count.
409
410         * gengtype.h (type_lineloc): New function.
411         (read_state, write_state): New declarations.
412
413         * Makefile.in (GENGTYPE_FLAGS): New variable.
414         (s-gtype): Run gengtype twice and generate gtype.state.
415         (build/gengtype-state.o): New rule.
416         (build/gengtype$(build_exeext)): Link gengtype-state.o.
417         (mostlyclean): Update comment.  Remove gtype.state.
418
419 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
420
421         PR middle-end/46637
422         * combine.c (try_combine): When substing i2dest for i2src, pass
423         1 as last argument even if
424         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
425
426 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
427
428         PR middle-end/46647
429         * builtins.c (target_char_cast): Check INTEGER_CST instead of
430         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
431
432 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
433
434         * target.def (supports_split_stack, except_unwind_info): Take
435         gcc_options parameters.
436         * targhooks.c (default_except_unwind_info,
437         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
438         gcc_options parameters.
439         * targhooks.h (default_except_unwind_info,
440         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
441         prototypes.
442         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
443         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
444         Document that hooks must not be modified.
445         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
446         * doc/tm.texi: Regenerate.
447         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
448         &global_options to targetm.except_unwind_info.
449         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
450         dwarf2out_begin_prologue, dwarf2out_frame_init,
451         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
452         &global_options to targetm.except_unwind_info.
453         * except.c (init_eh, finish_eh_generation,
454         gate_convert_to_eh_region_ranges,
455         output_one_function_exception_table): Pass &global_options to
456         targetm.except_unwind_info.
457         * expr.c (build_personality_function): Pass &global_options to
458         targetm.except_unwind_info.
459         * function.c (expand_function_end): Pass &global_options to
460         targetm.except_unwind_info.
461         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
462         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
463         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
464         and targetm.supports_split_stack.  Remove assertions about opts
465         and opts_set.
466         (common_handle_option): Remove assertions about opts, opts_set and dc.
467         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
468         &global_options to targetm.except_unwind_info.
469         * tree.c (build_common_builtin_nodes: Pass &global_options to
470         targetm.except_unwind_info.
471         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
472         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
473         thumb1_expand_prologue, thumb1_output_function_prologue,
474         arm_unwind_emit, arm_output_fn_unwind): Update calls to
475         arm_except_unwind_info.
476         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
477         parameter.
478         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
479         parameter.
480         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
481         ia64_reorg, ia64_asm_unwind_emit): Update calls to
482         ia64_except_unwind_info.
483         * config/pa/pa.c (pa_option_override): Pass &global_options to
484         targetm.except_unwind_info.
485         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
486         Remove prototype.
487
488 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
489
490         * cgraphunit.c (process_function_and_variable_attributes):
491         Mark dllexport-ed function/variables as needed.
492         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
493         as externally visible.
494
495 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
496
497         PR rtl-optimization/46585
498         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
499         (vinsn_init): Skip computation of dependencies for local NOPs.
500         (vinsn_delete): Don't try to free regsets for local NOPs.
501         (setup_nop_and_exit_insns): Change definition of nop_pattern.
502
503 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
504
505         PR rtl-optimization/46602
506         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
507         (tidy_control_flow): Here.
508
509 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
510             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
511
512         PR bootstrap/45888
513         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
514         Fix target.def pathname in timestamp comparison.
515
516 2010-11-24  Richard Henderson  <rth@redhat.com>
517
518         * config/ia64/predicates.md (pmpyshr_operand): New.
519         * config/ia64/ia64.c (ia64_expand_unpack): New.
520         (ia64_expand_widen_mul_v4hi): New.
521         (ia64_expand_widen_sum): Update for pattern renames.
522         (ia64_expand_dot_prod_v8qi): Likewise.
523         * config/ia64/ia64-protos.h: Update.
524         * config/ia64/vect.md (vecwider): New mode attribute.
525         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
526         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
527         (pmpyshr2, pmpyshr2_u): New.
528         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
529         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
530         (mulv2si3): New.
531         (vec_pack_ssat_v4hi): Rename from pack2_sss.
532         (vec_pack_usat_v4hi): Rename from *pack2_uss.
533         (vec_pack_ssat_v2si): Rename from pack4_sss.
534         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
535         vec_select operation.
536         (vec_interleave_highv8qi): Similarly.
537         (mux1_alt): Rename from *mux1_alt.
538         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
539         (vec_interleave_lowv4hi): Rename from unpack2_l.
540         (vec_interleave_highv4hi): Rename from unpack2_h.
541         (mix2_r): Rename from *mix2_r.
542         (mix2_l): Similarly.
543         (vec_extract_evenodd_helper): New.
544         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
545         (vec_interleave_lowv2si): Rename from *unpack4_l.
546         (vec_interleave_highv2si): Rename from *unpack4_h.
547         (vec_extract_evenv2si, vec_extract_oddv2si): New.
548         (vec_interleave_lowv2sf): Rename from fmix_r.
549         (vec_interleave_highv2sf): Rename from *fmix_l.
550         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
551         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
552         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
553         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
554
555 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
556
557         * targhooks.c (default_except_unwind_info): Remove
558         MUST_USE_SJLJ_EXCEPTIONS case.
559         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
560         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
561         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
562         * doc/tm.texi: Regenerate.
563         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
564
565 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
566
567         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
568         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
569         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
570         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
571         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
572
573 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
574
575         PR target/46519
576         * config/i386/i386.c (ix86_expand_call): Don't check
577         TREE_THIS_VOLATILE.
578
579 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
580
581         PR target/46519
582         * config/i386/i386.c (upper_128bits_state): New.
583         (block_info_def): Remove upper_128bits_set and done.  Add state,
584         referenced, count, processed and rescanned.
585         (check_avx256_stores): Updated.
586         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
587         Call note_stores only if needed.  Set referenced and count.
588         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
589         (rescan_move_or_delete_vzeroupper): New.
590         (move_or_delete_vzeroupper):  Process and rescan all all basic
591         blocks instead of predecessor blocks of all exit points.
592         (ix86_option_override_internal): Enable vzeroupper optimization
593         only for -fexpensive-optimizations and not optimizing for size.
594         (use_avx256_p): Removed.
595         (init_cumulative_args): Don't set use_avx256_p.
596         (ix86_function_arg): Likewise.
597         (ix86_expand_move): Likewise.
598         (ix86_expand_vector_move_misalign): Likewise.
599         (ix86_local_alignment): Likewise.
600         (ix86_minimum_alignment): Likewise.
601         (ix86_expand_epilogue): Don't check use_avx256_p when generating
602         vzeroupper.
603         (ix86_expand_call): Likewise.
604
605         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
606         and use_avx256_p.  Add rescan_vzeroupper_p.
607
608 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
609
610         * toplev.c: Include <signal.h>.
611
612 2010-11-24  Richard Guenther  <rguenther@suse.de>
613
614         PR lto/43218
615         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
616         conflicting function signatures as non-inlineable.
617
618 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
619
620         PR rtl-optimization/46614
621         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
622          (deps_analyze_insn): Mark JUMP_INSNs in
623         last_pending_memory_flush that weren't added through
624         flush_pending_lists with NON_FLUSH_JUMP_KIND.
625         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
626         on INSN_LIST instead of JUMP_P check on its operand.
627         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
628
629 2010-11-24  Richard Guenther  <rguenther@suse.de>
630
631         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
632
633 2010-11-24  Richard Guenther  <rguenther@suse.de>
634
635         PR lto/46606
636         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
637         a FIELD_DECL that is type correct issue a warning and fixup
638         with a VIEW_CONVERT_EXPR.
639
640 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
641
642         * doc/invoke.texi (Options for Debugging Your Program or GCC):
643         Explain static numbering of dump files.
644
645 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
646
647         * common.opt (user_vect_verbosity_level): New Variable entry.
648         (ftree-vectorizer-verbose=): Mark as UInteger.
649         * flag-types.h (enum vect_verbosity_levels): Move from enum
650         verbosity_levels in tree-vectorizer.h.
651         * opts.c: Don't include tree.h.
652         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
653         gcc_options parameter; take integer option argument.
654         (common_handle_option): Update call to vect_set_verbosity_level.
655         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
656         (vect_set_verbosity_level): Move to opts.c.
657         (vect_verbosity_level, vect_print_dump_info): Update for change of
658         enum name.
659         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
660         (vect_print_dump_info): Update for change of enum name.
661         * tree.h (vect_set_verbosity_level): Remove.
662         * Makefile.in (opts.o): Update dependencies.
663
664 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
665
666         PR middle-end/46629
667         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
668         instead of insn with any_condjump_p.
669
670 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
671
672         * config/mips/loongson.md: Change the description comment of the file
673         and update the copyright years.
674         (define_insn "<u>div<mode>3): Add loongson3a support.
675         (define_insn "<u>mod<mode>3"): Likewise.
676         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
677         mul<mode>3_mul3_loongson.
678         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
679         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
680
681 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
682
683         * common.opt (initial_max_fld_align, flag_debug_asm,
684         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
685         flag_print_asm_name, graph_dump_format, help_printed,
686         help_columns, flag_opts_finished): New Variable entries.
687         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
688         frandom-seed=): Mark deferred.
689         (fsched-verbose=): Use UInteger and Var.
690         * flags.h (set_struct_debug_option, flag_print_asm_name,
691         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
692         graph_dump_format): Don't declare here.
693         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
694         * opts-global.c: Include dbgcnt.h and debug.h.
695         (decode_options): Pass location to finish_options.
696         (handle_common_deferred_options): Check flag_dump_all_passed.
697         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
698         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
699         OPT_fstack_limit.
700         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
701         (set_struct_debug_option): Add location_t parameter.  Update
702         recursive call.  Use error_at.
703         (default_options_optimization): Use error_at.
704         (finish_options): Add location_t parameter.  Use
705         opts->x_flag_opts_finished instead of first_time_p.  Use
706         opts->x_optimize instead of optimize.  Use error_at.  Pass
707         location to inform.
708         (print_filtered_help): Use opts->x_help_printed to track what
709         options have been printed.
710         (print_specific_help): Use opts->x_help_columns to track number of
711         columns.
712         (common_handle_option): Pass locations and gcc_options pointers to
713         more functions.  Use warning_at instead of fnotice and warning.
714         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
715         OPT_fdebug_prefix_map_.  Use error_at.  Set
716         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
717         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
718         OPT_fsched_verbose_.
719         (handle_param): Add location_r parameter.  Use error_at.
720         (set_debug_level): Add location_r parameter.  Use error_at and
721         warning_at.
722         (setup_core_dumping): Add diagnostic_context parameter.
723         (decode_d_option): Add gcc_options, location_t and
724         diagnostic_context parameters and use them instead of global
725         state.  Use warning_at.
726         (enable_warning_as_error): Use error_at.
727         * opts.h (finish_options): Update prototype.
728         (set_struct_debug_option): Declare here.
729         * rtl.h (fix_sched_param): Remove.
730         * stor-layout.c (initial_max_fld_align): Remove.
731         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
732         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
733         (process_options): Set maximum_field_alignment.
734         * tree.h (initial_max_fld_align) Don't declare here.
735         * Makefile.in (opts.o, opts-global.o): Update dependencies.
736
737 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
738
739         * flag-types.h (struct visibility_flags): Don't declare here.
740         * flags.h (strip_off_ending, fast_math_flags_set_p,
741         fast_math_flags_struct_set_p): Declare here.
742         (visibility_options): Don't declare here.
743         * opts-common.c (option_enabled, get_option_state): Move from
744         opts.c.
745         * opts-global.c: Include diagnostic.h instead of
746         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
747         and toplev.h.
748         (const_char_p, ignored_options, in_fnames, num_in_fnames,
749         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
750         print_ignored_options, unknown_option_callback,
751         post_handling_callback, lang_handle_option, add_input_filename,
752         read_cmdline_options, initial_lang_mask, init_options_once,
753         decode_cmdline_options_to_array_default_mask,
754         set_default_handlers, decode_options): Move from opts.c.
755         (print_ignored_options): Use warning_at instead of saving and
756         restoring input_location.
757         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
758         instead of expr.h.  Don't include langhooks.h, except.h or
759         lto-streamer.h.  Add more comments on includes.
760         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
761         toplev.c.
762         (visibility_options): Move to c-family/c-common.c.
763         (const_char_p, ignored_options, in_fnames, num_in_fnames,
764         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
765         print_ignored_options, unknown_option_callback,
766         post_handling_callback, lang_handle_option, add_input_filename,
767         read_cmdline_options, initial_lang_mask, init_options_once,
768         decode_cmdline_options_to_array_default_mask,
769         set_default_handlers, decode_options): Move to opts-global.c.
770         (target_handle_option, default_options_optimization,
771         finish_options, common_handle_option): Remove static.
772         (option_enabled, get_option_state): Move to opts-common.c.
773         * opts.h (common_handle_option, target_handle_option,
774         finish_options, default_options_optimization): Declare.
775         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
776         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
777         opts.c.
778         * toplev.h (strip_off_ending, decode_d_option,
779         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
780         declare here.
781         * Makefile.in (opts.o, opts-global.o): Update dependencies.
782
783 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
784
785         PR driver/42690
786         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
787         options, replace by call of pass-through-libs spec function to process
788         link_gcc_c_sequence spec.
789         (lto_libgcc_spec): Delete variable.
790         (static_specs[]): Remove related entry.
791         (static_spec_functions[]): Add new entry for pass-through-libs.
792         (main): Don't generate deleted lto_libgcc_spec.
793         (pass_through_libs_spec_func): New function to implement the new
794         pass-through-libs spec function.
795         * doc/invoke.texi (pass-through-libs): Document new spec function.
796
797 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
798
799         * doc/options.texi (Warning, Optimization): Document.
800
801 2010-11-23  Jan Hubicka  <jh@suse.cz>
802
803         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
804         (tree_decl_with_vis): Add implicit_section_name_p.
805         * targhooks.h (default_function_section): Declare.
806         * target.def (function_section): New hook.
807         * defaults.h (HOT_TEXT_SECTION_NAME,
808         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
809         * predict.c (choose_function_section): Remove.
810         (estimate_bb_frequencies): Do not use choose_function_section.
811         * coretypes.h (enum node_frequency): Move here from cgraph.h
812         * cgraph.h (enum node_frequency): Remove.
813         * varasm.c (initialize_cold_section_name, unlikely_text_section,
814         unlikely_text_section_p): Remove.
815         (named_subsection_entry): New structure.
816         (get_text_section): New function.
817         (default_function_section): New function.
818         (function_section_1): Break out from ...; handle profile info.
819         (function_section): ... here.
820         (unlikely_text_section): Remove.
821         (unlikely_text_section_p): Use function_section_1.
822         (assemble_start_function): Do not initialize cold section.
823         (default_section_type_flags): Do not special case cold subsection.
824         (switch_to_section): Likewise.
825         * output.h (get_text_section): Define.
826         * config/i386/winnt.c: Do not special case cold section.
827         * config/darwin-protos.h (darwin_function_section): Declare.
828         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
829         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
830         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
831         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
832         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
833         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
834         * config/darwin.c (machopic_select_section): Use
835         darwin_function_section.
836         (darwin_function_section): New function.
837         * config/darwin.h (HOT_TEXT_SECTION_NAME,
838         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
839         (TARGET_ASM_FUNCTION_SECTION): Define.
840         * system.h (HOT_TEXT_SECTION_NAME,
841         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
842
843 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
844
845         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
846         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
847
848 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
849
850         PR middle-end/46499
851         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
852         following unconditional jumps.
853
854 2010-11-23  Richard Guenther  <rguenther@suse.de>
855
856         * doc/md.texi (386 constraints): Clarify A constraint documentation.
857
858 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
859             Jeremie Salvucci  <jeremie.salvucci@free.fr>
860
861         * gengtype.c (enum typekind, struct options)
862         (struct nested_ptr_data, struct pair, NUM_PARAM)
863         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
864         Move to gengtype.h.
865         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
866         Remove static, add zero state_number.
867         (typedefs, structures, param_structs, variables): Remove static.
868         (create_option): Remove.
869         (create_string_option, create_type_option, create_nested_option):
870         New functions.
871         (create_nested_ptr_option): Use create_nested_option.
872         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
873         new create*option functions.
874         (process_gc_options): Adjust for discriminated option.
875         (output_mangled_typename): Handle TYPE_NONE.
876         (walk_type): Test option kinds.
877         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
878         (write_func_for_structure, write_type, write_local, write_root)
879         (write_roots, note_def_vec, dump_options): Adjust for
880         discriminated option.
881
882         * gengtype.h (typedefs, structures, param_structs, variables
883         enum typekind): Move from gengtype.c
884         (enum option_kind): New discriminating enumeration.
885         (struct options): Becomes discriminated.
886         (struct nested_ptr_data): Nove from gengtype.c
887         (create_string_option, create_type_option, create_nested_option)
888         (create_nested_ptr_option): New functions
889         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
890         (UNION_OR_STRUCT_P): Move from gengtype.c
891
892         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
893         discriminated options.
894
895 2010-11-23  Richard Guenther  <rguenther@suse.de>
896
897         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
898         twice.  Avoid re-allocating the ops vector all the time.
899
900 2010-11-23  Richard Guenther  <rguenther@suse.de>
901
902         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
903         is_gimple_min_invariant, group tree code checks to allow
904         combining them.
905         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
906         of is_gimple_reg.
907
908 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
909
910         * config.gcc (sparc*-*-*): Reorder.
911
912 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
913
914         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
915         Remove ENABLE_CHECKING around DBGPRINTF.
916
917 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
918
919         * common.opt (exit_after_options, write_symbols, debug_info_level,
920         use_gnu_debug_info_extensions): New Variable entries.
921         (fprofile-dir=): Use Var.
922         * flag-types.h (enum debug_info_level): Rename to enum
923         debug_info_levels.
924         * flags.h (write_symbols, debug_info_level,
925         use_gnu_debug_info_extensions): Remove declarations.
926         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
927         (set_struct_debug_option): Make static variables const.
928         (use_gnu_debug_info_extensions): Remove.
929         (set_debug_level, print_filtered_help, print_specific_help,
930         fast_math_flags_set_p): Take gcc_options parameters and use them
931         in place of global variables.
932         (print_filtered_help): Make new_help non-static.
933         (print_specific_help): Update call to print_filtered_help.
934         (common_handle_option): Update calls to print_specific_help.  Use
935         gcc_options structure for more settings.  Make --help table
936         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
937         set_debug_level.
938         * toplev.c (profile_data_prefix): Remove.
939         * toplev.h (profile_data_prefix, exit_after_options): Remove
940         declarations.
941         (fast_math_flags_set_p): Update prototype.
942         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
943         Update call to fast_math_flags_set_p.
944
945 2010-11-22  Richard Henderson  <rth@redhat.com>
946
947         PR target/46434
948         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
949         return the address register extracted.
950         (crx_decompose_address): Update the extracted address register.
951
952 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
953
954         PR driver/43335
955         * gcc.c (main): Don't crash when lto-wrapper program is not found.
956
957 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
958
959         PR target/46608
960         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
961         * config/picochip/picochip-protos.h: Don't include "target.h" .
962         (picochip_secondary_reload): Don't declare.
963
964         PR target/46613
965         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
966         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
967         static.
968
969 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
970
971         PR bootstrap/46609
972         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
973         (source_dot_c_frul): Likewise.
974
975 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
976
977         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
978
979 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
980
981         PR bootstrap/44970
982         * Makefile.in (fwprop.o) Add sparseset.h.
983         * fwprop.c: Include sparseset.h
984         (struct find_occurrence_data, find_occurrence_callback,
985         find_occurrence): Remove.
986         (active_defs, active_defs_check, register_active_defs,
987         update_df_init, update_uses): New.
988         (update_df): Rewrite.
989         (try_fwprop_subst, forward_propagate_asm): Add calls to
990         update_df_init and update_df.
991         (fwprop_init): Allocate active_defs and active_defs_check.
992         (fwprop_done): Free them.
993         (fwprop, fwprop_addr): Adjust comments.
994         * df.h (df_uses_create): Declare.
995         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
996         (df_ref_create): Return result of df_ref_create_structure directly.
997         (df_ref_create_structure): Call df_install_ref_incremental when
998         no collection_rec is passed.
999         (df_ref_record): Do not create multiword hard reg info when no
1000         collection_rec is passed.
1001         (df_uses_create): New.
1002
1003 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1004
1005         PR middle-end/43057
1006         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
1007         setting location.
1008
1009 2010-11-22  Richard Guenther  <rguenther@suse.de>
1010
1011         * gimple-fold.c (maybe_fold_reference): When canonicalizing
1012         MEM_REFs, preserve volatileness.
1013         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
1014         addresses.
1015
1016 2010-11-22  Richard Guenther  <rguenther@suse.de>
1017
1018         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
1019
1020 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
1021
1022         PR rtl-optimization/45652
1023         * alias.c (get_reg_base_value): New.
1024         * rtl.h (get_reg_base_value): Add prototype.
1025         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
1026         non-null REG_BASE_VALUE for renaming.
1027
1028 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
1029             Basile Starynkevitch  <basile@starynkevitch.net>
1030
1031         * gengtype.c: Include xregex.h and obstack.h
1032         Added comments about role of get_output_file_with_visibility and
1033         our regexpr machinery.
1034         (frul_actionrout_t, struct file_rule_st): New.
1035         (hader_dot_h_frul, source_dot_c_frul): New functions.
1036         (NULL_REGEX,  NULL_FRULACT): New.
1037         (files_rules): New.
1038         (matching_file_name_substitute): New function.
1039         (get_output_file_with_visibility): Updated comments and rewritten
1040         to use the new files_rules machinery.
1041
1042         * Makefile.in (XREGEX_H): Added variable.
1043         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
1044
1045 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1046
1047         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
1048
1049 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1050
1051         * target.def (conditional_register_usage): Define.
1052         * reginfo.c (init_reg_sets_1): Call
1053         targetm.conditional_register_usage.
1054         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
1055         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
1056         for making it a hook.
1057         * doc/tm.texi: Regenerate.
1058         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1059         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
1060         New function.
1061         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1062         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1063         * config/arc/arc.c (arc_conditional_register_usage): ...here.
1064         New function.
1065         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1066         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1067         * config/arm/arm.c (arm_conditional_register_usage): ...here.
1068         New function.
1069         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1070         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
1071         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
1072         * config/bfin/bfin.c (conditional_register_usage): Move code into...
1073         (bfin_conditional_register_usage): ...here.  New function.
1074         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1075         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
1076         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
1077         * config/cris/cris.c (cris_conditional_register_usage): Make static.
1078         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1079         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
1080         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
1081         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
1082         * config/frv/frv.c (frv_conditional_register_usage): Make static.
1083         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1084         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1085         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
1086         New function.
1087         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1088         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
1089         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
1090         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
1091         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1092         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
1093         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
1094         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
1095         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1096         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1097         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
1098         New function.
1099         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1100         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
1101         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
1102         Delete.
1103         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
1104         static.
1105         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1106         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
1107         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
1108         * config/mep/mep.c (mep_conditional_register_usage): Make static.
1109         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1110         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
1111         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
1112         * config/mips/mips.c (mips_conditional_register_usage): Make static.
1113         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1114         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
1115         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
1116         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
1117         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1118         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1119         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
1120         ...here.  New function.
1121         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1122         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1123         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
1124         * config/pa/pa.c (pa_conditional_register_usage): ...here.
1125         New function.
1126         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1127         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1128         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
1129         New function.
1130         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1131         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
1132         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
1133         Delete.
1134         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
1135         static.
1136         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1137         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
1138         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
1139         * config/rx/rx.c (rx_conditional_register_usage): Make static.
1140         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1141         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
1142         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
1143         * config/s390/s390.c (s390_conditional_register_usage): Make static.
1144         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1145         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1146         * config/score/score.c (score_conditional_register_usage): ...here.
1147         New function.
1148         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1149         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1150         * config/sh/sh.c (sh_conditional_register_usage): ...here.
1151         New function.
1152         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1153         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1154         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
1155         New function.
1156         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1157         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
1158         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
1159         * config/spu/spu.c (spu_conditional_register_usage): Make static.
1160         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1161         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1162         * config/v850/v850.c (v850_conditional_register_usage): ...here.
1163         New function.
1164         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1165
1166 2010-11-21  Jan Hubicka  <jh@suse.cz>
1167             Dominique d'Humieres <dominiq@lps.ens.ft>
1168
1169         PR target/46510
1170         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
1171         finalize external decls.
1172
1173 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
1174
1175         * system.h (strerror): Poison.
1176
1177 2010-11-21  Richard Henderson  <rth@redhat.com>
1178
1179         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
1180         for infq/huge_valq.
1181
1182 2010-11-21  Richard Henderson  <rth@redhat.com>
1183
1184         PR rtl-optimization/46571
1185         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
1186         (compute_hash_table_work): Use NONDEBUG_INSN_P.
1187
1188 2010-11-21  Paul Koning  <ni1d@arrl.net>
1189
1190         * config/mips/pdp11.md (negsi2): Fix wrong code.
1191
1192 2010-11-21  Paul Koning  <ni1d@arrl.net>
1193
1194         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
1195         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1196
1197 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
1198
1199         * config/mips/mips.c (machine_function): Rename load_label_length to
1200         load_label_num_insns.
1201         (mips_load_label_length): Rename to...
1202         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
1203         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
1204
1205 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1206
1207         PR target/46533
1208         * config/alpha/predicates.md (direct_call_operand): Return false
1209         for !TARGET_SMALL_TEXT targets.
1210
1211 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
1212
1213         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
1214         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
1215         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
1216         * doc/tm.texi: Regenerate.
1217         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
1218         HANDLE_PRAGMA_WEAK): Poison.
1219         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1220         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1221         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
1222         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
1223         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1224         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1225         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1226         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
1227         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1228         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
1229         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1230         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
1231         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1232         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1233         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1234         (HANDLE_PRAGMA_WEAK): Don't undefine.
1235         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1236         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
1237         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1238         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
1239         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1240         (HANDLE_PRAGMA_WEAK): Don't undefine.
1241         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1242         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
1243         (HANDLE_PRAGMA_PACK): Don't undefine.
1244         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
1245         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1246         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1247         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1248         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
1249         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1250         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1251         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1252         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
1253         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1254         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
1255         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1256         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1257         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1258         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1259         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
1260         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1261
1262 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
1263
1264         PR target/31100
1265         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
1266         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
1267         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
1268
1269 2010-11-20  Jan Hubicka  <jh@suse.cz>
1270
1271         * cgraph.c (ld_plugin_symbol_resolution_names): New.
1272         (dump_cgraph_node): Dump resolution.
1273         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
1274         (cgraph_comdat_can_be_unshared_p): Dclare.
1275         * lto-streamer-out.c (produce_symtab): Use
1276         cgraph_comdat_can_be_unshared_p.
1277         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
1278         (cgraph_comdat_can_be_unshared_p): New function based on logic
1279         in cgraph_externally_visible_p.
1280         (cgraph_externally_visible_p): Use it.
1281         (varpool_externally_visible_p): Virtual tables can be unshared.
1282         * varpool.c (dump_varpool_node): Dump resolution.
1283
1284 2010-11-20  Jan Hubicka  <jh@suse.cz>
1285
1286         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
1287
1288 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1289
1290         PR other/46202
1291         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
1292         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
1293         shell quoting.
1294         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
1295         (install-strip): New target.
1296         (STRIPPROG): New variable, exported if STRIP is set.
1297         * doc/install.texi (Final install): Minor markup and code style
1298         fixes.  Document install-strip target.
1299
1300 2010-11-20  Paul Koning  <ni1d@arrl.net>
1301
1302         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
1303         pdp11_regno_reg_class): New functions.
1304         * config/pdp11/pdp11.md (define_constants): Add register numbers.
1305         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
1306         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
1307         functions.
1308         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
1309         frame pointer and argument pointer pseudo-registers.
1310         (ARG_POINTER_REGNUM): Define.
1311         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
1312         argument pointer.
1313         (FIRST_PARM_OFFSET): Update for argument pointer.
1314         (INITIAL_FRAME_POINTER_OFFSET): Delete.
1315         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
1316         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
1317         frame pointer and argument pointer.
1318
1319 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
1320
1321         PR debug/46561
1322         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
1323         when looking for immediate uses.
1324
1325         PR tree-optimization/45830
1326         * stmt.c (expand_switch_using_bit_tests_p): New function.
1327         (expand_case): Use it.
1328         * tree.h (expand_switch_using_bit_tests_p): New prototype.
1329         * tree-switch-conversion.c (struct switch_conv_info): Add
1330         bit_test_uniq, bit_test_count and bit_test_bb fields.
1331         (check_range): Fix a comment.
1332         (check_process_case): Compute bit_test_uniq and bit_test_count.
1333         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
1334         allocation.
1335         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
1336         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
1337         (array_value_type): New function.
1338         (build_one_array): Use it, if it returned different type,
1339         fold_convert all constructor fields and convert back to the
1340         wider type in the generated code.
1341         (process_switch): Initialize bit_test_uniq, bit_test_count and
1342         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
1343         returned true.
1344
1345 2010-11-19  Michael Matz  <matz@suse.de>
1346
1347         PR tree-optimization/46077
1348         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
1349
1350 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
1351
1352         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1353         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
1354         function.
1355         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1356
1357 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
1358
1359         * mode-switching.c (optimize_mode_switching): Use
1360         FOR_BB_INSNS instead of open-coded loop.
1361         * cfgrtl.c (redirect_branch_edge): Ditto.
1362
1363 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
1364
1365         PR target/46436
1366         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
1367         to accomodate 32 bit HOST_WIDE_INT.
1368         (m68hc11_emit_logical): Remove unused variable insn.
1369         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
1370         this_insn_uses_iy before use.
1371
1372         PR target/46434
1373         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
1374
1375 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
1376
1377         PR c/46547
1378         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
1379         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
1380
1381 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
1382
1383         * doc/extend.texi (Function attributes): Document PowerPC target
1384         attributes that are supported.
1385         (Pragmas): Document that PowerPC now supports target pragmas.
1386
1387         * doc/options.texi (TargetVariable): Document TargetVariable,
1388         HeaderInclude, and SourceInclude.
1389
1390         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
1391         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
1392         -ffp-contract=off.
1393
1394         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
1395         SourceInclude directives.  Fix a cut+paste error with target save
1396         enum variables.  Sort enums in the structures after ints and
1397         before shorts.
1398         * opth-gen.awk: Ditto.
1399
1400         * configure.ac: Add support for HeaderInclude and SourceInclude option
1401         directives to add the appropriate files to the dependency lists.
1402         * configure: Regenerate.
1403         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
1404         (OPTIONS_C_EXTRA): New variable for SourceInclude.
1405         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
1406         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
1407         (gcc-options.o): Ditto.
1408         * opt-include.awk: New awk script to handle HeaderInclude and
1409         TargetInclude.
1410
1411         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
1412         gets saved in the target options.
1413         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
1414         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
1415         (-mprototype): Ditto.
1416         (-mbit-word): ditto.
1417         (-mregnames): Ditto.
1418         (-msecure-plt): Ditto.
1419         (-mbss-plt): Ditto.
1420         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
1421         (-mpowerpc-gfxopt): Ditto.
1422         (-mmfcrf): Ditto.
1423         (-mpopcntb): Ditto.
1424         (-mfprnd): Ditto.
1425         (-mcmpb): Ditto.
1426         (-mmmfpgpr): Ditto.
1427         (-maltivec): Ditto.
1428         (-mhard-dfp): Ditto.
1429         (-mmulhw): Ditto.
1430         (-mdlmzb): Ditto.
1431         (-mmultiple): Ditto.
1432         (-mstring): Ditto.
1433         (-mpopcntd): Ditto.
1434         (-mfriz): Ditto.
1435         (-mvsx): Ditto.
1436         (-mno-update): Ditto.
1437         (-mavoid-indexed-addresses): Ditto.
1438         (-mtls-markers): Ditto.
1439         (-msched-epilog): Ditto.
1440         (-msched-prolog): Ditto.
1441         (-maix-struct-return): Ditto.
1442         (-msvr4-struct-return): Ditto.
1443         (-mxl-compat): Ditto.
1444         (-mrecip-precision): Ditto.
1445         (-mfp-in-toc): Ditto.
1446         (-msum-in-toc): Ditto.
1447         (-mvrsave): Ditto.
1448         (-mblock-move-inline-limit=): Ditto.
1449         (-misel): Ditto.
1450         (-mpaired): Ditto.
1451         (-mlongcall): Ditto.
1452         (-mgen-cell-microcode): Ditto.
1453         (-mwarn-cell-microcode): Ditto.
1454         (-mwarn-altivec-long): Ditto.
1455         (-mprioritize-restricted-insns=): Ditto.
1456         (-msingle-float): Ditto.
1457         (-mdouble-float): Ditto.
1458         (-msimple-fpu): Ditto.
1459         (-mxilinx-fpu): Ditto.
1460         * config/rs6000/aix64.opt (-mpe): Ditto.
1461
1462         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
1463         (rs6000_cpu): Move variable to be a target variable.  Rename
1464         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
1465         -mdebug=<xxx> variables into a single int.
1466         (rs6000_always_hint): Ditto.
1467         (rs6000_sched_groups): Ditto.
1468         (rs6000_align_branch_targets): Ditto.
1469         (rs6000_sched_costly_dep): Ditto.
1470         (rs6000_sched_insert_nops): Ditto.
1471         (rs6000_long_double_type_size): Ditto.
1472         (rs6000_ieeequad): Ditto.
1473         (rs6000_altivec_abi): Ditto.
1474         (rs6000_spe): Ditto.
1475         (rs6000_spe_abi): Ditto.
1476         (rs6000_float_gprs): Ditto.
1477         (rs6000_darwin64_abi): Ditto.
1478         (can_override_loop_align): Ditto.
1479         (rs6000_sdata): Ditto.
1480         (rs6000_tls_size): Ditto.
1481         (rs6000_current_abi): Ditto.
1482         (rs6000_traceback): Ditto.
1483         (rs6000_alignment_flags): Ditto.
1484         (rs6000_current_cmodel): Ditto.
1485         (rs6000_recip_control): Ditto.
1486         (rs6000_cpu_index): Ditto.
1487         (rs6000_tune_index): Ditto.
1488         (rs6000_debug): Ditto.
1489         (rs6000_target_flags_explict): Ditto.
1490
1491         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
1492         declaration.
1493
1494         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
1495         cmodel.  Change all uses.
1496
1497         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
1498         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
1499         Rename cmodel to rs6000_current_cmodel.
1500         (rs6000_sched_groups): Ditto.
1501         (rs6000_align_branch_targets): Ditto.
1502         (rs6000_sched_costly_dep): Ditto.
1503         (rs6000_sched_insert_nops): Ditto.
1504         (rs6000_long_double_type_size): Ditto.
1505         (rs6000_ieeequad): Ditto.
1506         (rs6000_altivec_abi): Ditto.
1507         (rs6000_spe): Ditto.
1508         (rs6000_spe_abi): Ditto.
1509         (rs6000_float_gprs): Ditto.
1510         (rs6000_darwin64_abi): Ditto.
1511         (can_override_loop_align): Ditto.
1512         (rs6000_sdata): Ditto.
1513         (rs6000_tls_size): Ditto.
1514         (rs6000_current_abi): Ditto.
1515         (rs6000_traceback): Ditto.
1516         (rs6000_alignment_flags): Ditto.
1517         (rs6000_current_cmodel): Ditto.
1518         (rs6000_recip_control): Ditto.
1519         (rs6000_cpu_index): Ditto.
1520         (rs6000_tune_index): Ditto.
1521         (rs6000_debug): Ditto.
1522         (rs6000_target_flags_explict): Ditto.
1523         (rs6000_sched_insert_nops_str): Make static.
1524         (rs6000_sched_costly_dep_str): Ditto.
1525         (rs6000_recip_name): Ditto.
1526         (rs6000_abi_name): Ditto.
1527         (rs6000_sdata_name): Ditto.
1528         (enum rs6000_traceback_name): Move to rs6000-opts.h.
1529         (rs6000_parse_tls_size_option): Delete.
1530         (rs6000_valid_attribute_p): New function for target attributes and
1531         pragmas.
1532         (rs6000_function_specific_save): Ditto.
1533         (rs6000_function_specific_restore): Ditto.
1534         (rs6000_function_specific_print): Ditto.
1535         (rs6000_can_inline_p): Ditto.
1536         (rs6000_set_current_function): Ditto.
1537         (rs6000_inner_target_options): Ditto.
1538         (rs6000_debug_target_options): Ditto.
1539         (rs6000_pragma_target_parse): Ditto.
1540         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
1541         attributes and pragmas.
1542         (TARGET_OPTION_SAVE): Ditto.
1543         (TARGET_OPTION_RESTORE): Ditto.
1544         (TARGET_OPTION_PRINT): Ditto.
1545         (TARGET_CAN_INLINE_P): Ditto.
1546         (TARGET_SET_CURRENT_FUNCTION): Ditto.
1547         (POWER_MASKS): Move to file level scope from the
1548         rs6000_option_override_internal function.
1549         (POWERPC_MASKS): Ditto.
1550         (ISA_*_MASKS): Ditto.
1551         (struct rs6000_ptt): Ditto.
1552         (processor_target_table): Ditto.
1553         (rs6000_cpu_name_lookup): Map cpu name to an index in
1554         processor_target_table.
1555         (rs6000_debug_reg_global): Print more information on processor
1556         options for -mdebug=reg.
1557         (rs6000_init_hard_regno_mode_ok): Add support for target
1558         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
1559         Allow -mdebug=val1,val2.  Rename cmodel variable.
1560         (rs6000_option_override_internal): Ditto.
1561         (rs6000_option_override): Ditto.
1562         (rs6000_handle_option): Ditto.
1563         (rs6000_conditional_register_usage): Add debug trace message.
1564         (struct rs6000_opt_mask): New for target attribute/pragma support.
1565         (rs6000_opt_masks): Ditto.
1566         (struct rs6000_opt_var): Ditto.
1567         (rs6000_opt_vars): Ditto.
1568         (rs6000_previous_function): Ditto.
1569
1570         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
1571         wasn't already included.
1572         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
1573         (enum processor_type): Ditto.
1574         (rs6000_cpu): Ditto.
1575         (enum fpu_type_t): Ditto.
1576         (fpu_type): Ditto.
1577         (enum rs6000_dependence_cost): Ditto.
1578         (enum rs6000_nop_insertion): Ditto.
1579         (enum group_termination): Ditto.
1580         (rs6000_long_double_type_size): Ditto.
1581         (rs6000_ieeequad): Ditto.
1582         (rs6000_altivec_abi): Ditto.
1583         (rs6000_spe_abi): Ditto.
1584         (rs6000_spe): Ditto.
1585         (rs6000_float_gprs): Ditto.
1586         (rs6000_alignment_flags): Ditto.
1587         (rs6000_sched_insert_nops): Ditto.
1588         (enum rs6000_vector): Ditto.
1589         (enum rs6000_abi): Ditto.
1590         (rs6000_current_opt): Ditto.
1591         (rs6000_debug_*): Delete.
1592         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
1593         (TARGET_DEBUG*): Ditto.
1594
1595         * config/rs6000/rs6000-opts.h: New header file to define the enums
1596         that are used in target variables that are now defined in rs6000.opt.
1597
1598         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
1599         rs6000-opts.h.
1600         (rs6000_sdata): Ditto.
1601         (rs6000_abi_name): Delete.
1602         (rs6000_sdata_name): Ditto.
1603         (rs6000_tls_size_string): Ditto.
1604
1605 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
1606
1607         * common.opt (debug_struct_ordinary, debug_struct_generic): New
1608         Variable entries.
1609         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
1610         should_emit_struct_debug): Move from opts.c.
1611         * flag-types.h (enum debug_struct_file): Move from opts.c.
1612         * flags.h (should_emit_struct_debug): Remove.
1613         (base_of_path): Declare.
1614         (set_struct_debug_option): Add gcc_options parameter.
1615         * optc-gen.awk, opth-gen.awk: Handle array variables.
1616         * opts.c (enum debug_struct_file, debug_struct_ordinary,
1617         debug_struct_generic): Remove.
1618         (set_struct_debug_option): Add gcc_options parameter.
1619         (base_of_path): Remove static.
1620         (main_input_basename, main_input_baselength, matches_main_base,
1621         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
1622         Remove.
1623         * toplev.c (main_input_basename, main_input_baselength): Define
1624         here.
1625         * toplev.h (main_input_basename, main_input_baselength): Declare
1626         here.
1627
1628 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
1629
1630         * common.opt (flag_instrument_functions_exclude_functions,
1631         flag_instrument_functions_exclude_files): New Variable definitions.
1632         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
1633         * gimplify.c (char_p): Declare type and vectors.
1634         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
1635         * opts.c (flag_instrument_functions_exclude_functions,
1636         flag_instrument_functions_exclude_files): Remove.
1637         (add_comma_separated_to_vector): Take void **.
1638         (flag_instrument_functions_exclude_p): Move to gimplify.c.
1639         (common_handle_option): Use options structure for
1640         -finstrument-functions-exclude- options.
1641
1642 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
1643
1644         * doc/options.texi (Var): Document effects of Defer.
1645         (Defer): Document.
1646         * opt-functions.awk (var_type, var_set): Handle deferred options.
1647         * opts-common.c (set_option): Handle CLVC_DEFER.
1648         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
1649         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
1650         fstack-limit-symbol=): Mark as deferred.
1651         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
1652         plugin.h.
1653         (print_filtered_help): Don't report state of CLVC_DEFER options.
1654         (common_handle_option): Move code for OPT_fcall_used_,
1655         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
1656         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
1657         OPT_fstack_limit_symbol_ to opts-global.c.
1658         (option_enabled, get_option_state): Handle CLVC_DEFER.
1659         * opts.h: Include vec.h.
1660         (enum cl_var_type): Add CLVC_DEFER.
1661         (cl_deferred_option): Define type and vectors.
1662         (handle_common_deferred_options): Declare.
1663         * opts-global.c: New.
1664         * toplev.c (toplev_main): Call handle_common_deferred_options
1665         * Makefile.in (OPTS_H): Include $(VEC_H).
1666         (OBJS-common): Include opts-global.o.
1667         (opts.o): Update dependencies.
1668         (opts-global.o): Add dependencies.
1669
1670 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
1671
1672         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
1673         to objc_declare_protocols.
1674
1675 2010-11-19  Richard Guenther  <rguenther@suse.de>
1676
1677         PR lto/45789
1678         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
1679         IDENTIFIERs do not stream TREE_TYPE.
1680         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
1681
1682 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
1683
1684         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
1685
1686 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
1687
1688         PR target/45870
1689         * dwarf2out.c (const_ok_for_output_1): Don't complain about
1690         non-delegitimized TLS UNSPECs.
1691
1692 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
1693             Ian Lance Taylor  <iant@google.com>
1694
1695         * config/darwin-c.c (darwin_additional_format_types): Export.
1696
1697 2010-11-18  Paul Koning  <ni1d@arrl.net>
1698
1699         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
1700         pointer.
1701
1702 2010-11-18  Paul Koning  <ni1d@arrl.net>
1703
1704         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
1705         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
1706         * config/pdp11/pdp11.opt (-mabshi): Delete.
1707
1708 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
1709
1710         * resource.h (struct resources): Fix typo in the comment.
1711
1712 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
1713
1714         PR target/46546
1715         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
1716
1717 2010-11-18  Richard Henderson  <rth@redhat.com>
1718
1719         PR middle-end/46515
1720         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
1721         maybe_copy_epilogue_insn; handle prologue insns as well.
1722         * rtl.h, cfglayout.c: Update for rename.
1723         * recog.c (peep2_attempt): Copy prologue/epilogue data for
1724         RTX_FRAME_RELATED_P insns.
1725
1726 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
1727
1728         PR middle-end/46534
1729         * builtins.c (fold_builtin_printf): Don't copy and modify string
1730         before build_string_literal, instead modify what
1731         build_string_literal returned.
1732
1733 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
1734
1735         PR c/33193
1736         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
1737         REALPART_EXPR and IMAGPART_EXPR.
1738
1739 2010-11-18  Richard Guenther  <rguenther@suse.de>
1740
1741         PR tree-optimization/46172
1742         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
1743         function.
1744         (slpeel_tree_peel_loop_to_edge): Call it.
1745
1746 2010-11-18  Jeff Law  <law@redhat.com>
1747
1748         PR middle-end-optimization/46297
1749         * postreload.c (reload_combine_note_store): Deal with embedded
1750         side effects in MEM expressions.
1751
1752 2010-11-18  Richard Guenther  <rguenther@suse.de>
1753
1754         PR lto/45089
1755         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
1756         when checking is not enabled.
1757
1758 2010-11-18  Richard Guenther  <rguenther@suse.de>
1759
1760         PR lto/46525
1761         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
1762         type leaders.
1763         (gimple_register_canonical_type): Also cache the canoncial type
1764         for non type leaders.
1765
1766 2010-11-18  Richard Guenther  <rguenther@suse.de>
1767
1768         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
1769
1770 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
1771
1772         PR middle-end/46518
1773         * sel-sched-ir.c (init_expr): Use the correct type for
1774         target_available.
1775         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
1776
1777 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
1778
1779         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
1780         as well as -mrelocatable at the same time.
1781
1782 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
1783
1784         PR target/46422
1785         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
1786         Call the clz builtin.
1787
1788 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
1789             Steve Ellcey  <sje@cup.hp.com>
1790
1791         PR middle-end/31490
1792         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
1793         if section attribute used.
1794
1795 2010-11-17  Jan Hubicka  <jh@suse.cz>
1796
1797         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
1798         expand errno setting variant when optimizing for size.
1799
1800 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
1801
1802         * postreload.c (reload_combine): Call control_flow_insn_p only once.
1803         Reverse backward loop.  Fix formatting issues.
1804
1805 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
1806
1807         * c-parser.c (c_token_is_qualifier,
1808         c_parser_next_token_is_qualifier): New.
1809         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
1810         Improve error message on specs->tagdef_seen_p.
1811         (c_parser_struct_or_union_specifier): Improve error recovery.
1812         (c_parser_declspecs): Move exit condition on C_ID_ID early.
1813         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
1814         using c_parser_next_token_is_qualifier; extend it to cover
1815         a ctsk_tagdef typespec and !typespec_ok in general.
1816
1817 2010-11-17  Richard Guenther  <rguenther@suse.de>
1818
1819         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
1820         (gimple_mod_pow2_value_transform): Likewise.
1821         (gimple_mod_subtract_transform): Likewise.
1822
1823 2010-11-17  Richard Guenther  <rguenther@suse.de>
1824
1825         PR lto/46504
1826         * gimple.c (gimple_register_canonical_type): Make sure to only
1827         make type leaders canonical types.
1828
1829 2010-11-17  Michael Matz  <matz@suse.de>
1830
1831         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
1832         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
1833         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
1834         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
1835         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
1836         (pass_build_ssa): ... but here.
1837         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
1838         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
1839         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
1840         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
1841         * predict.c (rebuild_frequencies): Ditto.
1842         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
1843         * emit-rtl.c (verify_rtl_sharing): Ditto.
1844         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
1845         * tree-ssa-live.c (remove_unused_locals): Ditto.
1846         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
1847         * tree-ssa.c (pass_early_warn_uninitialized,
1848         execute_update_addresses_taken, pass_update_address_taken): Ditto.
1849         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
1850         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
1851         * passes.c (pass_postreload, execute_todo): Ditto.
1852         * tree-ssanames.c (pass_release_ssa_names): Ditto.
1853
1854 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
1855
1856         * doc/invoke.texi (-dy): Remove.
1857         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
1858         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
1859         * langhooks.c (lhd_do_nothing_i): Remove.
1860         * langhooks.h (lang_hooks.parse_file): Take no arguments.
1861         * toplev.c (set_yydebug): Remove.
1862         (compile_file): Update call to lang_hooks.parse_file.
1863         (decode_d_option): Don't handle -dy.
1864
1865 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
1866
1867         PR rtl-optimization/46440
1868         * combine.c (update_cfg_for_uncondjump): When changing
1869         an indirect jump into unconditional jump, remove BARRIERs
1870         from bb's footer.
1871
1872 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
1873
1874         * opts.c (target_handle_option): Do not assert that loc ==
1875         UNKNOWN_LOCATION.
1876
1877 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
1878             Richard Guenther  <rguenther@suse.de>
1879
1880         PR middle-end/45838
1881         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
1882         call_may_clobber_ref_p_1): Return true for __sync_* and some
1883         OpenMP builtins that act as threading barriers.
1884
1885 2010-11-17  Richard Guenther  <rguenther@suse.de>
1886
1887         PR tree-optimization/46498
1888         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
1889
1890 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1891
1892         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
1893         (xtensa_function_arg_boundary): ...this.
1894         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
1895         thinko in declaration.
1896         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
1897         number of parameters to picochip_function_arg_boundary.
1898         (picochip_arg_advance): Likewise.
1899
1900 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1901
1902         PR target/46512
1903         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
1904         under check for type.
1905
1906 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1907
1908         * ifcvt.c (dead_or_predicable): Fix typo.
1909
1910 2010-11-16  Richard Henderson  <rth@redhat.com>
1911
1912         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
1913         * config/s390/s390.opt (mfused-madd): Remove.
1914         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
1915         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
1916         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
1917         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
1918
1919 2010-11-16  Richard Henderson  <rth@redhat.com>
1920
1921         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
1922         * config/rs6000/rs6000.opt (mfused-madd): Remove.
1923         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
1924         (*altivec_vmaddfp_1): Remove.
1925         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
1926         (altivec_mulv4sf3): Expand to FMA directly.
1927         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
1928         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
1929         * config/rs6000/paired.md (paired_madds0): Use FMA.
1930         (paired_madds1): Likewise.
1931         (*paired_madd): Rename from paired_madd; use FMA.
1932         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
1933         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
1934         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
1935         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
1936         (rs6000_emit_madd): Use fma_optab.
1937         (rs6000_emit_msub): Use fms_optab.
1938         (rs6000_emit_nmsub): Expand the FMA pattern directly.
1939         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
1940         (*fmasf4_fpr): Rename from fmasf4_fpr.
1941         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
1942         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
1943         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
1944         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
1945         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
1946         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
1947         (*fmadf4_fpr): Rename from fmadf4_fpr.
1948         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
1949         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
1950         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
1951         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
1952         (fmasf4, fmadf4): Macroize into...
1953         (fma<FMA_F>4): ... here.
1954         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
1955         (nfma<FMA_F>4, nfms<FMA_F>4): New.
1956         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
1957         TARGET_FUSED_MADD.
1958         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
1959         (*vsx_fmadd<mode>4_1): Remove.
1960         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
1961         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
1962         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
1963         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
1964         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
1965         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
1966         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
1967
1968 2010-11-16  Richard Henderson  <rth@redhat.com>
1969
1970         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
1971         (fmasf4, fnmadf4, fnmasf4): Likewise.
1972         (unnamed plus+mult insns and splitters): Delete.
1973
1974 2010-11-16  Richard Henderson  <rth@redhat.com>
1975
1976         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
1977         (fnma<VSF>4): Rename from fnms_<VSF>.
1978         (fms<VSF>4): Rename from fms_<VSF>.
1979         (fma<VDF>4): Rename from fma_<VDF>.
1980         (fms<VDF>4): Rename from fms_<VDF>.
1981         (nfma<VDF>4): Rename from fnma_<VDF>.
1982         (nfms<VDF>4): Rename from fnms_<VDF>.
1983         (fnma<VDF>4, fnms<VDF>4): New expanders.
1984         (floatunsdisf2): Update for the renames.
1985         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
1986         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
1987
1988 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1989
1990         PR rtl-optimization/46490
1991         * combine.c (expand_compound_operation): Fix thinko.
1992
1993 2010-11-16  Richard Henderson  <rth@redhat.com>
1994
1995         PR target/46470
1996         * recog.c (peep2_attempt): Convert frame-related info when possible.
1997         (peep2_fill_buffer): Allow frame-related insns into the buffer.
1998         (peephole2_optimize): Allow peep2_attempt to fail.
1999
2000 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2001
2002         PR rtl-optimization/46315
2003         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
2004         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
2005         extracted from...
2006         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
2007         (remove_reg_equal_equiv_notes_for_defs): ...this.
2008         (delete_unmarked_insns): Adjust to above renaming.
2009         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
2010         referring to registers set in the insns being moved, if any.
2011
2012         * df-core.c (df_ref_dump): New function extracted from...
2013         (df_refs_chain_dump): ...here.  Call it.
2014         (df_regs_chain_dump): Likewise.
2015         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
2016         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
2017
2018 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
2019
2020         PR rtl-optimization/46395
2021         * postreload.c (reload_combine): Invalidate register use
2022         information on all control flow insns.
2023
2024         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
2025         LABEL_REF in UNSPEC operand.
2026
2027 2010-11-16  Jan Hubicka  <jh@suse.cz>
2028
2029         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
2030         when !flag_toplevel_reorder do not remove unless variable is
2031         COMDAT or ARTIFICIAL.
2032         * ipa.c (varpool_can_remove_if_no_refs): ... here.
2033         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
2034         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
2035         * varpool.c (decide_is_variable_needed): Do not handle visibility
2036         issues.
2037         (varpool_finalize_decl): Likewise.
2038         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
2039         update outdated comment on DECL_RTL_SET_P check.
2040
2041 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2042
2043         * config/sol2.h (NM_FLAGS): Define.
2044         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
2045         * doc/tm.texi: Update.
2046
2047 2010-11-16  Nick Clifton  <nickc@redhat.com>
2048
2049         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
2050         (msubsf4): Rename to fmssf4, and use fma.
2051         (nmaddsf4): Rename to fnmasf4 and use fma.
2052         (nmsubsf4): Rename to fnmssf4 and use fma.
2053
2054 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
2055
2056         PR target/44762
2057         * config/score/score3.c (score3_return_in_memory): Constify arguments.
2058         (score3_in_small_data_p, score3_function_value): Likewise.
2059         (score3_trampoline_init): Use LCT_NORMAL.
2060         (score3_print_operand): Initialize code as UNKNOWN.
2061         * config/score/predicates.md (score_load_multiple_operation):
2062         Remove unused variable.
2063         (score_store_multiple_operation): Likewise.
2064         * config/score/score7.c (score7_return_in_memory): Constify arguments.
2065         (score7_in_small_data_p, score7_function_value): Likewise.
2066         (score7_trampoline_init): Use LCT_NORMAL.
2067         (score7_print_operand): Initialize code as UNKNOWN.
2068         * config/score/score3.h (score3_return_in_memory): Update prototype.
2069         (score3_in_small_data_p, score3_function_value): Likewise.
2070         * config/score/score-protos.h (score_function_value): Likewise.
2071         * config/score/score7.h (score7_return_in_memory): Update prototype.
2072         (score7_in_small_data_p, score7_function_value): Likewise.
2073         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
2074         (score_return_in_memory, score_pass_by_reference): Constify arguments.
2075         (score_output_mi_thunk, score_function_prologue): Don't return a value.
2076         (score_function_epilogue, score_in_small_data_p): Likewise.
2077         (score_option_override, score_asm_trampoline_template): Likewise.
2078         (score_trampoline_init, score_print_operand): Likewise.
2079         (score_print_operand_address, score_prologue): Likewise.
2080         (score_epilogue, score_call, score_call_value): Likewise.
2081         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
2082         (score_function_arg_advance): Likewise. Make static.
2083         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
2084         (score_function_arg, score_legitimate_address_p): Make static.
2085         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
2086         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
2087         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
2088         Allow (W) == HOST_BITS_PER_WIDE_INT.
2089
2090         PR java/46386
2091         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
2092         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
2093
2094 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2095
2096         * config/arc/arc.c: Delete pasto.
2097         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
2098
2099 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
2100
2101         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
2102         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
2103         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
2104         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2105         (mn10300_preferred_reload_class,
2106         mn10300_preferred_output_reload_class): New functions.
2107
2108 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2109
2110         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
2111         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
2112         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
2113         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
2114
2115 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2116
2117         * builtins.c (std_gimplify_va_arg_expr): Use
2118         targetm.calls.function_arg_boundary.
2119         * function.c (assign_parms, locate_and_pad_parm): Likewise.
2120         * calls.c (struct arg_data): Update comment.
2121         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
2122         * target.def (function_arg_boundary): Define.
2123         * targhooks.h (default_function_arg_boundary): Declare.
2124         * targhooks.c (default_function_arg_boundary): Define.
2125         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
2126         TARGET_FUNCTION_ARG_BOUNDARY.
2127         (FUNCTION_ARG_BOUNDARY): Delete.
2128         (TARGET_FUNCTION_ARG_BOUNDARY): New.
2129         * doc/tm.texi: Regenerate.
2130         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
2131         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
2132         * config/arc/arc.c (arc_function_arg_boundary): Define.
2133         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2134         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
2135         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
2136         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
2137         (arm_function_arg_boundary): Define.
2138         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2139         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
2140         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
2141         * config/frv/frv.c (frv_function_arg_boundary): Make static.
2142         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2143         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
2144         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
2145         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
2146         (ix86_compat_function_arg_boundary): Take and return unsigned int.
2147         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2148         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
2149         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
2150         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
2151         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2152         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
2153         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
2154         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2155         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
2156         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
2157         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
2158         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2159         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
2160         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
2161         * config/mips/mips.c (mips_function_arg_boundary): Make static.
2162         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2163         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
2164         * config/pa/pa.c (pa_function_arg_boundary): Define.
2165         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2166         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
2167         * config/picochip/picochip-protos.h
2168         (picochip_get_function_arg_boundary): Delete.
2169         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
2170         Rename to...
2171         (picochip_function_arg_boundary): ...this.  Make static.
2172         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
2173         (picochip_arg_advance): Adjust.
2174         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2175         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
2176         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
2177         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
2178         (rs6000_function_arg_boundary): ...this.  Make static.
2179         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
2180         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2181         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
2182         * config/rx/rx.c (rx_function_arg_boundary): Define.
2183         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2184         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
2185         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
2186         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2187         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
2188         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
2189         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
2190         (xtensa_function_arg_boundary): ...this.  Make static.
2191         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2192
2193 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2194
2195         * expr.c (alignment_for_piecewise_move): New function.
2196         (widest_int_mode_for_size): New function.
2197         (move_by_pieces, move_by_pieces_ninsns): Call them.
2198         (can_store_by_pieces, store_by_pieces_1): Likewise.
2199
2200 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2201
2202         * gcc.c (char_p): Define.  Define a VEC of it.
2203         (n_linker_options, n_assembler_options, n_preprocessor_options):
2204         Delete.
2205         (linker_options, assembler_options, preprocessor_options): Convert
2206         to a VEC.
2207         (add_preprocessor_option): Adjust.
2208         (add_assembler_option): Adjust.
2209         (add_linker_option): Adjust.
2210         (do_specs_vec): New function.
2211         (do_spec_1): Call it.  Adjust for new types.
2212
2213 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2214
2215         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
2216         (sreal.o, statistics.o, stringpool.o): Likewise.
2217
2218 2010-11-16  Richard Guenther  <rguenther@suse.de>
2219
2220         PR tree-optimization/44545
2221         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
2222         statements are not reassociatable.
2223         (reassociate_bb): Likewise.
2224
2225 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2226
2227         * bitmap.c: Delete unnecessary includes.
2228         * ebitmap.c: Likewise.
2229         * et-forest.c: Likewise.
2230         * sreal.c: Likewise.
2231         * statistics.c: Likewise.
2232         * stringpool.c: Likewise.
2233         * double-int.c: Add comment for inclusion of tm.h.
2234
2235 2010-11-16  Richard Guenther  <rguenther@suse.de>
2236
2237         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
2238         (visit_nary_op): ... this.
2239         (visit_binary_op): Remove.
2240         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
2241
2242 2010-11-16  Richard Guenther  <rguenther@suse.de>
2243
2244         PR middle-end/45172
2245         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
2246
2247 2010-11-16  Nick Clifton  <nickc@redhat.com>
2248
2249         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
2250         record is packed.
2251
2252 2010-11-15  Richard Henderson  <rth@redhat.com>
2253
2254         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
2255         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
2256         DOT_PROD_EXPR.
2257
2258 2010-11-15  Richard Henderson  <rth@redhat.com>
2259
2260         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
2261         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
2262         fma rtx_code.
2263
2264 2010-11-15  Richard Henderson  <rth@redhat.com>
2265
2266         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
2267         and *mulsubsf4 respectively.  Use fma rtx_code.
2268
2269 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
2270
2271         * gcc.c: Include "vec.h".
2272         (argbuf): Make into a VEC.
2273         (argbuf_length, argbuf_index): Remove.
2274         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
2275         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
2276         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
2277         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
2278         (gcc.o): Depend on $(VEC_H).
2279
2280 2010-11-15  Richard Henderson  <rth@redhat.com>
2281
2282         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
2283         via FMA if unsafe math.
2284         (insert_var_expansion_initialization): Handle FMA.
2285         (combine_var_copies_in_loop_exit): Likewise.
2286
2287 2010-11-15  Richard Henderson  <rth@redhat.com>
2288
2289         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
2290         * config/ia64/ia64.opt: Remove mfused-madd.
2291         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
2292         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
2293         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
2294         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
2295         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
2296         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
2297         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
2298         (fmav2sf4): Rename from fpma; use FMA code.
2299         (fmsv2sf4): Rename from fpms; use FMA code.
2300         (fnmav2sf4): Rename from *fpnma; use FMA code.
2301         * config/ia64/ia64.md (MODE_SDF): New iterator.
2302         (suffix): New mode attribute.
2303         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
2304         (fmssf4): Rename from *fmssf4.
2305         (fnmasf4): Rename from *nfmasf4.
2306         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
2307         (*nmadddf4, *nmadddf4_truncsf): Remove.
2308         (fmsdf4): Rename from *fmsdf4.
2309         (fnmadf4): Rename from *nfmadf4.
2310         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
2311         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
2312         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
2313         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
2314         (fmsxf4): Rename from *fmsxf4.
2315         (fnmaxf4): Rename from *nfmaxf4.
2316         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
2317         (*fnmaxf_trunc_<MODE_SDF>): New.
2318
2319 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2320
2321         PR tree-optimization/46461
2322         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
2323         a gimple val.
2324
2325 2010-11-15  Ian Lance Taylor  <iant@google.com>
2326
2327         * godump.c: New file.
2328         * common.opt (fdump-go-spec=): New option.
2329         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
2330         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
2331         (TYPE_SYMTAB_IS_DIE): Define.
2332         (struct tree_type): Change GTY for symtab field to use
2333         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
2334         to pick the union field.
2335         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
2336         (dump_go_spec_init): Declare.
2337         * toplev.c (process_options): Handle flag_dump_go_spec.
2338         * debug.c: Include "tree.h".
2339         (do_nothing_debug_hooks): Set tree_type_symtab_field.
2340         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
2341         * dbxout.c (dbx_debug_hooks): Likewise.
2342         (xcoff_debug_hooks): Likewise.
2343         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
2344         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
2345         SDB_DEBUGGING_INFO is not defined.
2346         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
2347         (Overall Options): Document -fdump-go-spec.
2348         * Makefile.in (OBJS-common): Add godump.o.
2349         (debug.o): Add dependency on $(TREE_H).
2350         (godump.o): New target.
2351         (GTFILES): Add $(srcdir)/godump.c.
2352
2353 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2354
2355         PR debug/46095
2356         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
2357         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
2358         style < 0, add REG_FRAME_RELATED_EXPR.
2359
2360         PR debug/46387
2361         * rtl.h (vt_equate_reg_base_value): New prototype.
2362         * alias.c (vt_equate_reg_base_value): New function.
2363         * var-tracking.c (vt_init_cfa_base): Use it.
2364
2365 2010-11-15  Jan Hubicka  <jh@suse.cz>
2366             Diego Novillo  <dnovillo@google.com>
2367
2368         PR lto/41528
2369         * doc/lto.texi: Add.
2370         * doc/gccint.texi: Add reference to lto.texi.
2371         * doc/invoke.texi: Update user documentation for LTO.
2372         Move internal flags to lto.texi
2373
2374 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
2375
2376         * c-typeck.c (build_unary_op): Use
2377         objc_build_incr_expr_for_property_ref to build the pre/post
2378         increment/decrement of an Objective-C property ref, and skip the
2379         lvalue_or_else check in that case.
2380
2381 2010-11-15  Martin Jambor  <mjambor@suse.cz>
2382
2383         PR tree-optimization/46349
2384         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
2385         (contains_vce_or_bfcref_p): Likewise.
2386         (sra_modify_assign): Use them.
2387
2388 2010-11-15  Richard Guenther  <rguenther@suse.de>
2389
2390         PR tree-optimization/46467
2391         * tree-ssa-structalias.c (do_structure_copy): Properly treat
2392         variables without subvars.
2393
2394 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
2395
2396         * config/picochip/picochip.c (file header): Picochip name change.
2397         * config/picochip/picochip.md (file header): Likewise.
2398         * config/picochip/predicates.md (file header): Likewise.
2399         * config/picochip/dfa_space.md (file header): Likewise.
2400         * config/picochip/dfa_speed.md (file header): Likewise.
2401         * config/picochip/picochip.h(file header): Likewise.
2402         * config/picochip/constraints.md (file header): Likewise.
2403         * config/picochip/picochip-protos.h (file header): Likewise.
2404         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
2405         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
2406         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
2407         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
2408         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
2409         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
2410         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
2411         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
2412         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
2413         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
2414         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
2415         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
2416         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
2417         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
2418
2419 2010-11-15  Richard Guenther  <rguenther@suse.de>
2420
2421         PR bootstrap/46474
2422         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
2423
2424 2010-11-15  Nick Clifton  <nickc@redhat.com>
2425
2426         * config/stormy16/stormy16.c (direct_return): Do not generate a
2427         direct return for interrupt handlers.
2428
2429 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
2430
2431         * Makefile.in (tm.texi): Replace with rule for:
2432         ($(srcdir)/doc/tm.texi).
2433         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
2434         $(srcdir)/doc/tm.texi .
2435         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
2436         tm.texi .
2437
2438         PR target/46427
2439         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
2440
2441         PR bootstrap/45444
2442         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
2443         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
2444
2445         PR target/46432
2446         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
2447
2448 2010-11-15  Richard Guenther  <rguenther@suse.de>
2449
2450         PR lto/44150
2451         * lto-opts.c (lto_write_options): Write -fexceptions even if
2452         not set by the user.
2453
2454 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2455
2456         PR c/46462
2457         * c-decl.c (declspecs_add_type): Make variables with error types
2458         integers.
2459         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
2460         do not start a declaration before an Objective-C foreach.
2461         (c_parser_declaration_or_fndef): Improve recovery after unknown
2462         type name.
2463         (c_parser_for_statement): Hoist entrance of "foreach context"
2464         before ifs, add corresponding reset where it was missing.  Do
2465         not set objc_could_be_foreach_context for C.
2466
2467 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
2468
2469         PR tree-optimization/45722
2470         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
2471         this is a reference to a component.
2472         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
2473         (ipa_note_param_call): Adjust comment.
2474
2475 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
2476
2477         * config/mips/mips.c (machine_function): Remove
2478         initialized_mips16_gp_pseudo_p.
2479         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
2480         detect whether a pseudo has already been created.  Unconditionally
2481         create a new one if not.
2482         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
2483         expanding to rtl.  Create a new pseudo otherwise, if allowed.
2484
2485 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
2486
2487         PR target/43440
2488         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
2489         * tm.texi: Regenerated.
2490         * output.h (decode_reg_name_and_count): Declare.
2491         * varasm.c (decode_reg_name_and_count): New function.
2492         (decode_reg_name): Reimplement using decode_reg_name_and_count.
2493         * reginfo.c (fix_register): Use decode_reg_name_and_count and
2494         iterate over all regs used.
2495         * stmt.c (expand_asm_operands): Likewise.
2496         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
2497         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
2498         multiple machine registers.
2499
2500 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
2501
2502         * stor-layout.c (place_union_field): Do not put location information
2503         on offset expressions.
2504         (place_field): Likewise.
2505         (finalize_record_size): Likewise on size expressions.
2506         (finalize_type_size): Likewise.
2507         (layout_type): Likewise.
2508
2509 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
2510
2511         PR debug/42889
2512         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
2513         * df-core.c (df_set_bb_dirty_nonrl): Remove.
2514         * df.h (df_set_bb_dirty_nonlr): Likewise.
2515
2516 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
2517
2518         * config/mips/mips.md (call_internal): Pass curr_insn to
2519         mips_split_call.
2520         (call_internal_direct): Ditto.
2521         (call_value_internal): Ditto.
2522         (call_value_internal_direct): Ditto.
2523         (call_value_multiple_internal): Ditto.
2524         * config/mips/mips.c (mips_split_call): Do not copy
2525         CALL_INSN_FUNCTION_USAGE here.
2526
2527 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
2528
2529         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
2530         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
2531         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
2532         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
2533         (TUNE_LOONGSON_3A): Define.
2534         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
2535         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
2536         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
2537         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
2538         (mips_rtx_cost_data): Add Loongson-3A.
2539
2540 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
2541
2542         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
2543         switches.
2544
2545 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
2546
2547         * dwarf2out.c (macinfo_entry): New struct.
2548         (output_comp_unit): Emit the section start label here and flag that we
2549         will emit an info section.
2550         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
2551         emitting directly.
2552         (dwarf2out_end_source_file): Likewise.
2553         (dwarf2out_define): Likewise.
2554         (dwarf2out_undef): Likewise.
2555         (output_macinfo): New.
2556         (dwarf2out_init): Do not emit debug section switches here, allocate a
2557         vec for macinfo, when required.
2558         (dwarf2out_finish): First switch to debug_abbrev_section here.
2559         debug_line_section,  debug_macinfo_section, Likewise.
2560         Check that the pubtypes table has at least one unpruned entry before
2561         trying to emit it.
2562
2563 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2564
2565         PR c/20385
2566         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
2567         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
2568         token lookahead.
2569         (c_parser_compound_statement_nostart, c_parser_label,
2570         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
2571         (c_parser_declaration_or_fndef): Detect the case now matched by
2572         c_parser_next_tokens_start_declaration, give error and correct it.
2573
2574 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2575
2576         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
2577         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
2578         with typespec_kind.
2579         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
2580         (shadow_tag_warned, check_compound_literal_type): Adjust
2581         uses of tag_defined_p.
2582         (declspecs_add_type): Set typespec_kind.
2583         * c-parser.c (c_parser_declaration_or_fndef,
2584         c_parser_declspecs, c_parser_struct_declaration,
2585         c_parser_parameter_declaration, c_parser_type_name,
2586         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
2587         of type_seen_p.
2588         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
2589         tag_defined_p, pass ctsk_firstref through.
2590
2591 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2592
2593         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
2594         (struct format_wanted_type): Replace field "name" with "kind", add
2595         "format_start" and "format_length".
2596         (check_format_info_main): Fill in new fields.  Fill in
2597         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
2598         after the final NUL outside the while loop.  Do not include
2599         width and precision modifiers in the format_start/format_length
2600         of the main format.
2601         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
2602         arguments.  Compute WANTED_TYPE first so that format_type_warning
2603         can be called for missing arguments.  Adjust calls to
2604         format_type_warning.
2605         (format_type_warning): Fetch as much information as possible
2606         from format_wanted_type.  Adjust printing now that every
2607         warning has a "descr", as well as for missing argument warnings
2608         and to include % sign for format specifiers.
2609
2610 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
2611
2612         PR rtl-optimization/46204
2613         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
2614         Update all callers.  Do not recompute topological order.  Adjust
2615         fallthrough edges following a degenerate conditional jump.
2616
2617 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
2618
2619         * opts-common.c (control_warning_option): New.
2620         * opts.c (set_default_handlers): New.
2621         (decode_options): Use set_default_handlers and
2622         control_warning_option.
2623         (common_handle_option): Update call to enable_warning_as_error.
2624         (enable_warning_as_error): Take gcc_options parameters.  Use
2625         control_warning_option.
2626         * opts.h (set_default_handlers, control_warning_option): Declare.
2627
2628 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
2629
2630         * Makefile.in (OPTS_H): Define.
2631         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
2632         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
2633         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
2634         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
2635         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
2636         * gcc.c (driver_handle_option): Take location_t parameter.
2637         (process_command, do_self_spec): Update calls to
2638         read_cmdline_option.
2639         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
2640         * langhooks.c (lhd_handle_option): Take location_t parameter.
2641         * langhooks.h (handle_option): Take location_t parameter.
2642         * lto-opts.c (lto_reissue_options): Update call to set_option.
2643         * opts-common.c (handle_option): Make static.  Take location_t
2644         parameter and pass it to other functions.
2645         (handle_generated_option): Take location_t parameter and pass it
2646         to other functions.
2647         (read_cmdline_option): Take location_t parameter and pass it to
2648         other functions.  Use warning_at and error_at.
2649         (set_option): Take location_t parameter and pass it to other
2650         functions.
2651         * opts.c (common_handle_option): Take location_t parameter and
2652         pass it to other functions.
2653         (enable_warning_as_error): Make static.  Take location_t parameter
2654         and pass it to other functions.
2655         (lang_handle_option): Take location_t parameter and pass it to
2656         other functions.
2657         (target_handle_option): Take location_t parameter.
2658         (read_cmdline_options, maybe_default_option,
2659         maybe_default_options, default_options_optimization,
2660         decode_options): Take location_t parameter and pass it to other
2661         functions.
2662         * opts.h: Include input.h.
2663         (struct cl_option_handler_func, decode_options, set_option,
2664         handle_generated_option, read_cmdline_option): Take location_t
2665         parameters.
2666         (handle_option, enable_warning_as_error): Remove.
2667         * toplev.c (toplev_main): Update call to decode_options.
2668
2669 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
2670
2671         * graphite-cloog-util.c (oppose_constraint,
2672         cloog_matrix_to_ppl_constraint,
2673         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
2674         CLooG isl uses unsigned integers.  This triggered a warning.
2675
2676 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
2677
2678         PR target/46438
2679         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
2680         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
2681         (xtensa_function_arg_1): De-constify cum.
2682         (xtensa_expand_prologue): Use add_reg_note.
2683
2684         PR target/46435
2685         * config/cris/cris.c (saved_regs_mentioned): Delete.
2686         (cris_reload_address_legitimized): Cast itype to enum reload_type.
2687         Remove unused variable op0p.
2688         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
2689         (cris_emit_movem_store): Use add_reg_note.
2690
2691         PR bootstrap/46456
2692         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
2693
2694 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
2695
2696         * function.c (expand_function_end): Set the locator of the prologue on
2697         the stack checking insns.
2698
2699 2010-11-12  Richard Henderson  <rth@redhat.com>
2700
2701         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
2702         * config/xtensa/xtensa.opt (mfused-madd): Remove.
2703         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
2704         MASK_FUSED_MADD.
2705         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
2706         (fnmasf4): Rename from mulsubsf3; use fma.
2707
2708 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
2709             Richard Henderson  <rth@redhat.com>
2710
2711         PR target/46428
2712         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
2713         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
2714         comparison.
2715
2716 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
2717
2718         * opts-common.c (decode_cmdline_option): Initialize separate_args.
2719
2720 2010-11-12  Jan Hubicka  <jh@suse.cz>
2721
2722         * doc/invoke.texi (early-inlining-insns): Update default.
2723         * params.def (early-inlining-insns): Default to 10.
2724
2725 2010-11-12  Olivier Hainque  <hainque@adacore.com>
2726
2727         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
2728
2729 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2730
2731         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
2732         (SUPPORTS_INIT_PRIORITY): Define.
2733
2734 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
2735
2736         PR target/46430
2737         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
2738         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
2739         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
2740         (avr_device_to_devicelib): Likewise.
2741         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
2742         into block.
2743         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
2744         (zero_extendhidi2, zero_extendsidi2): Likewise.
2745         * config/avr/avr.c (avr_num_arg_regs): Constify type.
2746         (avr_return_addr_rtx): De-constify tem.
2747         (avr_rotate_bytes): Move declarations to start of block.
2748         Don't use variable length array.  Put nested if/else into block.
2749
2750         PR rtl-optimization/46433
2751         * var-tracking.c: Include tm_p.h .
2752
2753         PR bootstrap/44756
2754         PR build/44767
2755         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
2756         should be unsigned.
2757         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
2758         * doc/tm.texi: Regenerate.
2759
2760         PR target/46412
2761         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
2762         * config/bfin/bfin.c: Include sel-sched.h .
2763         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
2764         (expand_interrupt_handler_prologue): Remove unused variable insn.
2765         (bfin_load_pic_reg): Likewise.
2766         (bfin_rtx_costs): Make code / outer_code variables of type
2767         enum rtx_code, copied from re-named parameters.
2768         (bfin_local_alignment): Change align argument and return type
2769         to unsigned.
2770         (bfin_adjust_cost): Remove unused variable insn_type.
2771         Declare variables at start of block.
2772         (struct loop_info): Rename to...
2773         (struct loop_info_d).
2774         (workaround_rts_anomaly): Change type of icode to int.
2775         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
2776         with int-typed variable.
2777         (note_np_check_stores): Likewise.
2778         (trapping_loads_p): Remove unused variable pat.
2779         (bfin_expand_binop_builtin): Use expand_normal.
2780         (bfin_expand_unop_builtin): Likewise.
2781         (bfin_expand_builtin): Likewise.  Set tmode before use.
2782
2783         PR middle-end/44769
2784         * final.c (split_double): Don't use BITS_PER_WORD directly in
2785         shift count.
2786
2787         PR target/46431
2788         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
2789         assignment.
2790
2791         PR target/46450
2792         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
2793         Use add_reg_note.
2794         (xstormy16_function_arg): Dereference cum.
2795         (xstormy16_expand_builtin): Use expand_normal.
2796         Change type of omode to enum machine_mode.
2797         (combine_bnp): Rename and to and_insn.
2798
2799         PR target/46437
2800         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
2801         localreg.
2802
2803 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
2804
2805         PR debug/46375
2806         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
2807
2808 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
2809
2810         PR lto/46376
2811         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
2812
2813 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
2814
2815         PR c/44782
2816         * common.opt (fmax-errors=): New option.
2817         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
2818         * diagnostic.h (struct diagnostic_context): Add max_errors field.
2819         * diagnostic.c (diagnostic_initialize): Initialize it.
2820         (diagnostic_action_after_output): Exit if more than max_errors
2821         have been output.
2822         * doc/invoke.texi (Warning Options): Add -fmax-errors.
2823         (-fmax-errors): Document.
2824
2825 2010-11-11  Richard Henderson  <rth@redhat.com>
2826
2827         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
2828
2829 2010-11-11  Richard Henderson  <rth@redhat.com>
2830
2831         * config/fused-madd.opt: New file.
2832         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
2833         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
2834         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
2835         * config/i386/i386.opt (mfused-madd): Remove.
2836         * config/i386/sse.md (split_fma): Remove.
2837         (split_fms, split_fnma, split_fnms): Remove.
2838
2839 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
2840
2841         PR target/46088
2842         * config/i386/i386.md (*ashl<mode>3_cconly,
2843         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
2844         change nonimmediate_operand predicate to register_operand.
2845
2846 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
2847
2848         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
2849
2850 2010-11-11  Jan Hubicka  <jh@suse.cz>
2851
2852         * opts.c (finish_options): Do not error on -flto-partition alone.
2853
2854         * doc/invoke.texi (-fwhopr): Merge into -flto section.
2855         (-flto-partition): Document none.
2856         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
2857         * lto-wrapper.c: Update comment.
2858         (run_gcc): Update LTO option parsing.
2859         * opts.c (finish_options): add support -flto-partition=none
2860         (common_handle_option): Remove fwhopr.
2861         * common.opt: Turn fwhopr into flto.
2862         * collect2.c (main): Update option handling.
2863         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
2864         * ipa-split.c (execute_split_functions): Remove flag_whopr.
2865         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
2866         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
2867         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
2868
2869 2010-11-11  Jan Hubicka  <jh@suse.cz>
2870
2871         PR tree-optimize/40436
2872         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
2873         (eliminated_by_inlining_prob): ... this one; return 50% probability
2874         for SRA.
2875         (estimate_function_body_sizes): Update use of
2876         eliminated_by_inlining_prob; estimate static function size
2877         for 2 instructions.
2878
2879 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
2880
2881         PR target/44749
2882         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
2883         declare.  Change type of argument four to type int.
2884         (mep_secondary_input_reload_class): Returns enum reg_class.
2885         (mep_secondary_output_reload_class): Likewise.
2886         (mep_function_value): Change types of arguments to cont_tree.
2887         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
2888         argument four to type int.
2889         (mep_secondary_input_reload_class): Returns enum reg_class.
2890         (mep_secondary_output_reload_class): Likewise.
2891         (mep_function_value): Change types of arguments to cont_tree.
2892         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
2893         mep_regno_reg_class to enum reg_class.
2894
2895 2010-11-11  Richard Henderson  <rth@redhat.com>
2896
2897         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
2898         that the target has the exact fma operation that we matched.
2899
2900 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
2901
2902         * reginfo.c (fix_register): Avoid inserting English word in
2903         diagnostic sentence.  Use %qs for quoting and %'.
2904
2905 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
2906
2907         * config/i386/driver-i386.c (host_detect_local_cpu): Support
2908         Intel processor family 6, model 0x2c.
2909
2910 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
2911
2912         * opts.c (warning_as_error_callback,
2913         register_warning_as_error_callback): Remove.
2914         (enable_warning_as_error): Don't use warning_as_error_callback.
2915         * opts.h (register_warning_as_error_callback): Remove.
2916
2917 2010-11-11  Richard Henderson  <rth@redhat.com>
2918
2919         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
2920         in between the MULT and the PLUS/MINUS.
2921
2922 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
2923
2924         PR middle-end/46388
2925         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
2926         BLKmode mode for it.
2927         (expand_expr_real_1): Similarly for op0.
2928
2929 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2930
2931         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
2932         Document optional target selector.
2933
2934 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
2935
2936         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
2937         assembling high and low parts of size if not using 32-bit HWINT; else
2938         use DECL_SIZE_UNITS, not DECL_SIZE.
2939
2940 2010-11-11  Martin Jambor  <mjambor@suse.cz>
2941
2942         PR tree-optimization/46383
2943         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
2944         offsets.
2945         (compute_complex_ancestor_jump_func): Likewise.
2946         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
2947
2948 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
2949
2950         PR debug/46150
2951         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
2952         true if expr1->hash != expr2->hash.
2953
2954 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
2955
2956         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
2957         diagnostics with lowercase letters.
2958         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
2959         lowercase letters.
2960         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
2961         diagnostic.
2962         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2963         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
2964         lowercase letters.
2965         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2966         Remove trailing ' ' from diagnostic.
2967         * config/avr/avr.c (print_operand_address): Start diagnostic with
2968         a lowercase letter and remove trailing '.'.
2969         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
2970         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
2971         with lowercase letters.  Use %' in diagnostics.  Remove trailing
2972         '.' from diagnostics.
2973         (bfin_handle_longcall_attribute): Use %' in diagnostic.
2974         * config/cris/cris.c (cris_split_movdx,
2975         cris_expand_pic_call_address): Start diagnostics with lowercase
2976         letters.
2977         (cris_asm_output_label_ref): Use %' in diagnostic.
2978         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
2979         letter.
2980         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
2981         lowercase letter.
2982         * config/darwin-c.c (version_as_macro): Start diagnostic with a
2983         lowercase letter.
2984         * config/darwin-driver.c (darwin_default_min_version): Use %' in
2985         diagnostic.
2986         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
2987         diagnostic.
2988         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2989         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
2990         diagnostics.
2991         * config/i386/i386.c (ix86_option_override_internal): Write
2992         diagnostic as a single sentence without trailing '.'.  Use %' in
2993         diagnostics.
2994         (ix86_function_sseregparm, classify_argument): Start diagnostics
2995         with lowercase letters.
2996         (ix86_expand_prologue): Use %' in diagnostic.
2997         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
2998         diagnostic.
2999         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
3000         lowercase letter.
3001         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
3002         diagnostic.
3003         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3004         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
3005         '`' in help text.
3006         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
3007         lowercase letter.
3008         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
3009         lowercase letters.
3010         * config/microblaze/microblaze.c (microblaze_handle_option):
3011         Remove trailing '.' from diagnostic.
3012         (print_operand): Start diagnostic with a lowercase letter.
3013         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
3014         lowercase letters.  Avoid '`' in diagnostics.
3015         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
3016         lowercase letters.  Avoid '`' in diagnostics.
3017         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
3018         lowercase letters.  Avoid '`' in diagnostics.
3019         * config/picochip/picochip.c (picochip_option_override,
3020         picochip_emit_save_register, picochip_function_arg,
3021         picochip_output_label, picochip_output_internal_label,
3022         picochip_asm_output_opcode, picochip_output_cbranch,
3023         picochip_output_compare, picochip_output_branch,
3024         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
3025         diagnostics. Start diagnostics with lowercase letters.  Use %' in
3026         diagnostics.
3027         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
3028         "SPE" capitalization.  Start diagnostic with a lowercase letter.
3029         (rs6000_handle_option): Start diagnostics with lowercase letters.
3030         (def_builtin): Remove trailing '.' from diagnostic.
3031         (rs6000_savres_routine_name): Start diagnostic with a lowercase
3032         letter.
3033         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
3034         diagnostic.
3035         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
3036         lowercase letter.
3037         * config/s390/s390.c (s390_option_override) Start diagnostics with
3038         lowercase letters.  Use %' in diagnostic.
3039         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
3040         lowercase letters.
3041         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
3042         diagnostic.
3043         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
3044         diagnostic.
3045         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
3046         diagnostic.
3047         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3048         * config/spu/spu.c (spu_option_override): Start diagnostics with
3049         lowercase letters.  Use %qs for quoting in diagnostics.
3050         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
3051         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
3052         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
3053         from diagnostic.
3054         * convert.c (convert_to_integer, convert_to_vector): Use %' in
3055         diagnostics.
3056         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
3057         letter and use "cannot" spelling.
3058         * expmed.c (extract_fixed_bit_field): Start diagnostic with
3059         lowercase letter and format as a single sentence without '.'.
3060         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
3061         Use %' in diagnostics.
3062         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3063         Use %' in diagnostics.
3064         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3065         Use %' in diagnostics.
3066         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
3067         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
3068         with lowercase letters and remove tailing '.' and '\n'.
3069         * lto-cgraph.c (input_profile_summary): Start diagnostic with
3070         lowercase letter and remove trailing '.'.
3071         (input_cgraph): Start diagnostics with lowercase letters and
3072         remove trailing '\n'.
3073         * opts.c (finish_options, common_handle_option): Start diagnostics
3074         with lowercase letters and remove trailing '.'.  Fix typo in
3075         diagnostic.
3076         * passes.c (position_pass): Start diagnostic with lowercase letter.
3077         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
3078         register_callback, try_init_one_plugin): Start diagnostics with
3079         lowercase letters.
3080         * reload1.c (spill_failure): Use %' in diagnostic.
3081         (gen_reload): Start diagnostic with a lowercase letter.
3082         * stor-layout.c (place_field): Start diagnostic with a lowercase
3083         letter.
3084         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
3085         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
3086         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
3087         Start diagnostics with lowercase letters, remove trailing '.' and
3088         use %' in diagnostics.
3089         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
3090         (verify_ssa): Don't split diagnostic across two error calls.
3091         Spell out "number" and use %' in diagnostic.
3092         * value-prof.c (visit_hist, check_counter): Start diagnostics with
3093         lowercase letters.
3094
3095 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
3096
3097         PR middle-end/46419
3098         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
3099         (_mm_cvtpu16_ps): Ditto.
3100
3101 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3102
3103         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
3104         warn_larger_than, larger_than_size, warn_frame_larger_than,
3105         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
3106         default_visibility, flag_tls_default): New Variable declarations.
3107         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
3108         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
3109         (v): Declare as Common and document here.
3110         * flags.h (default_visibility, flag_generate_lto,
3111         warn_larger_than, larger_than_size, warn_frame_larger_than,
3112         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
3113         flag_shlib, flag_excess_precision_cmdline): Remove.
3114         (set_Wstrict_aliasing): Update prototype.
3115         * gcc.c (verbose_flag): Remove.
3116         (driver_handle_option): Add diagnostic_context parameter.  Don't
3117         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
3118         incrementing it.
3119         * opts-common.c (handle_option): Pass dc to handler.
3120         * opts.c (warn_larger_than, larger_than_size,
3121         warn_frame_larger_than, frame_larger_than_size,
3122         default_visibility): Remove.
3123         (common_handle_option): Add diagnostic_context parameter.
3124         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
3125         gcc_options parameters.
3126         (lang_handle_option, target_handle_option, read_cmdline_options,
3127         decode_options): Add diagnostic_context parameters.
3128         (finish_options): Access option state through opts pointer where
3129         possible.
3130         (common_handle_option): Access option state through opts pointer
3131         where possible.  Do not set local static variable verbose.  Do not
3132         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
3133         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
3134         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
3135         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
3136         OPT_fwhopr_.  Do not explicitly set .opt file variables for
3137         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
3138         (set_Wstrict_aliasing): Add gcc_options parameter.
3139         * opts.h (struct cl_option_handler_func): Add diagnostic_context
3140         parameter to handler.
3141         (decode_options): Add diagnostic_context parameter.
3142         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
3143         asm_file_name, flag_generate_lto, flag_gen_aux_info,
3144         aux_info_file_name, flag_shlib, flag_tls_default,
3145         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
3146         (toplev_main): Pass global_dc to decode_options.
3147         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
3148         aux_info_file_name, asm_file_name): Remove.
3149         * tree.h (flag_tls_default): Remove.
3150
3151 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
3152
3153         PR target/45986
3154         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
3155         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
3156
3157 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
3158
3159         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
3160         (x86_64-*-*): Likewise.
3161         * config/i386/cpuid.h: Define TBM bit.
3162         * config/i386/driver-i386.c (host_detect_local_cpu): Define
3163         and set has_tbm.
3164         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3165         isa_flag for TBM.
3166         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
3167         (OPTION_MASK_ISA_TBM_UNSET): New.
3168         (ix86_handle_option): Handle -mtbm.
3169         (isa_opts): Add -mtbm.
3170         (enum pta_flags): Add PTA_TBM.
3171         (ix86_option_override_internal): Add TBM support.
3172         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
3173         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
3174         (IX86_BUILTIN_BEXTRI64): Likewise.
3175         (bdesc_args): Add TBM intrinsics.
3176         (ix86_expand_builtin): Add TBM specific case.
3177         * config/i386/i386.h (TARGET_TBM): New for TBM.
3178         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
3179         (tbm_bextri_<mode>): Likewise.
3180         (*tbm_blcfill_<mode>): Likewise.
3181         (*tbm_blci_<mode>): Likewise.
3182         (*tbm_blcic_<mode>): Likewise.
3183         (*tbm_blcmsk_<mode>): Likewise.
3184         (*tbm_blcs_<mode>): Likewise.
3185         (*tbm_blsfill_<mode>): Likewise.
3186         (*tbm_blsic_<mode>): Likewise.
3187         (*tbm_t1mskc_<mode>): Likewise.
3188         (*tbm_tzmsk_<mode>): Likewise.
3189         * config/i386/i386.opt: Add -mtbm.
3190         * config/i386/tbmintrin.h (__bextri_u32): New.
3191         (__blcfill_u32): Likewise.
3192         (__blci_u32): Likewise.
3193         (__blcic_u32): Likewise.
3194         (__blcmsk_u32): Likewise.
3195         (__blcs_u32): Likewise.
3196         (__blsfill_u32): Likewise.
3197         (__blsic_u32): Likewise.
3198         (__t1mskc_u32): Likewise.
3199         (__tzmsk_u32): Likewise.
3200         (__bextri_u64): Likewise.
3201         (__blcfill_u64): Likewise.
3202         (__blci_u64): Likewise.
3203         (__blcic_u64): Likewise.
3204         (__blcmsk_u64): Likewise.
3205         (__blcs_u64): Likewise.
3206         (__blsfill_u64): Likewise.
3207         (__blsic_u64): Likewise.
3208         (__t1mskc_u64): Likewise.
3209         (__tzmsk_u64): Likewise.
3210         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
3211         * doc/invoke.texi: Document -mtbm.
3212         * doc/extend.texi: Document TBM built-in functions.
3213
3214 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
3215
3216         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
3217         (x86_64-*-*): Likewise.
3218         * config/i386/cpuid.h: Define BMI bit.
3219         * config/i386/driver-i386.c (host_detect_local_cpu): Define
3220         and set has_bmi.
3221         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3222         isa_flag for BMI.
3223         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
3224         (OPTION_MASK_ISA_BMI_UNSET): New.
3225         (ix86_handle_option): Handle -mbmi.
3226         (isa_opts): Add -mbmi.
3227         (enum pta_flags): Add PTA_BMI.
3228         (ix86_option_override_internal): Add BMI support.
3229         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
3230         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
3231         (IX86_BUILTIN_BEXTR64): Likewise.
3232         (IX86_BUILTIN_CTZS): Likewise.
3233         (bdesc_args): Add BMI intrinsics.
3234         (ix86_expand_args_builtin): Add BMI specific cases.
3235         * config/i386/i386.h (TARGET_BMI): New for BMI.
3236         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
3237         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
3238         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
3239         (UNSPEC_TZCNT): Likewise.
3240         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
3241         (bmi_andn_<mode>): New for BMI.
3242         (bmi_bextr_<mode>): Likewise.
3243         (bmi_blsi_<mode>): Likewise.
3244         (bmi_blsmsk_<mode>): Likewise.
3245         (bmi_blsr_<mode>): Likewise.
3246         * config/i386/i386.opt: Add -mbmi.
3247         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
3248         * config/i386/bmiintrin.h (__lzcnt_u16): New.
3249         (__tzcnt_u16): Likewise.
3250         (__andn_u32): Likewise.
3251         (__bextr_u32): Likewise.
3252         (__blsi_u32): Likewise.
3253         (__blsmsk_u32): Likewise.
3254         (__blsr_u32): Likewise.
3255         (__lzcnt_u32): Likewise.
3256         (__tzcnt_u32): Likewise.
3257         (__andn_u64): Likewise.
3258         (__bextr_u64): Likewise.
3259         (__blsi_u64): Likewise.
3260         (__blsmsk_u64): Likewise.
3261         (__blsr_u64): Likewise.
3262         (__lzcnt_u64): Likewise.
3263         (__tzcnt_u64): Likewise.
3264         * doc/invoke.texi: Document -mbmi and -mno-bmi.
3265         * doc/extend.texi: Document BMI built-in functions.
3266
3267 2010-11-10  Jan Hubicka  <jh@suse.cz>
3268
3269         PR tree-optimize/46228
3270         * doc/invoke.texi (comdat-sharing-probability): Document.
3271         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
3272         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
3273
3274 2010-11-10  Jan Hubicka  <jh@suse.cz>
3275
3276         PR tree-optimize/46228
3277         * cgraph.c (cgraph_propagate_frequency): Fix typo.
3278
3279 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
3280
3281         PR tree-optimization/46414
3282         * tree-inline.c (estimate_move_cost): Check preferred vector
3283         mode for vector type.
3284
3285 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3286
3287         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
3288
3289 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
3290
3291         PR tree-optimization/45971
3292         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
3293         for phi nodes analyzable by scev.
3294
3295 2010-11-10  Richard Guenther  <rguenther@suse.de>
3296
3297         PR tree-optimization/44964
3298         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
3299
3300 2010-11-10  Martin Jambor  <mjambor@suse.cz>
3301
3302         PR tree-optimization/46351
3303         PR tree-optimization/46377
3304         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
3305         aggregate bit-fields.
3306
3307 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3308
3309         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3310         * doc/tm.texi: Regenerate.
3311         * opts-common.c (tm.h): Don't include.
3312         (target_option_translations): Remove.
3313         (decode_cmdline_options_to_array): Don't handle translating options.
3314         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
3315         * config/darwin-driver.c: Don't condition includes on
3316         CROSS_DIRECTORY_STRUCTURE.
3317         (darwin_default_min_version): Make static.
3318         (darwin_driver_init): New.  Call darwin_default_min_version if not
3319         CROSS_DIRECTORY_STRUCTURE.
3320         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3321         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
3322         (ASM_SPEC): Add %{static}.
3323         (darwin_default_min_version): Don't declare.
3324         (darwin_driver_init): Declare.
3325         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
3326         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
3327         * config/darwin.opt (all_load, allowable_client,
3328         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
3329         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
3330         exported_symbols_list, filelist, findirect-virtual-calls,
3331         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
3332         framework, fterminated-vtables, gfull, gused, image_base, init,
3333         install_name, multi_module, multiply_defined,
3334         multiply_defined_unused, no_dead_strip_inits_and_terms,
3335         seg_addr_table, seg_addr_table_filename, segaddr,
3336         segs_read_only_addr, segs_read_write_addr, single_module,
3337         umbrella, unexported_symbols_list, weak_reference_mismatches,
3338         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
3339         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
3340         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
3341         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
3342         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
3343         (ASM_SPEC): Add %{static}.
3344         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
3345         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3346         (DRIVER_SELF_SPECS): Handle options formerly in
3347         TARGET_OPTION_TRANSLATE_TABLE.
3348         * config/mep/mep.opt (mfar): New.
3349         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3350         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
3351         TARGET_OPTION_TRANSLATE_TABLE.
3352         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
3353         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
3354         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
3355         ffix-and-continue, findirect-data): New.
3356         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3357         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
3358         (mnofpu): Define mask and use Report here.
3359
3360 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3361
3362         * config/s390/s390.c (s390_emit_prologue): Report the stack
3363         size if -fstack-usage is used.
3364
3365 2010-11-10  Richard Guenther  <rguenther@suse.de>
3366
3367         PR tree-optimization/46398
3368         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
3369
3370 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
3371
3372         PR target/44760
3373         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
3374         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
3375         GP_REG_OR_PSEUDO_STRICT_P.
3376         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
3377         unexpected alternative.
3378         (*movsf_internal): Likewise.
3379         (indirect_jump): Replace call to non-existant function with call to
3380         internal_error.
3381         (tablejump): Likewise.
3382         * config/iq2000/iq2000.c: Include df.h .
3383         (iq2000_function_arg_advance): Use CONST_CAST2.
3384         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
3385         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
3386         a non-zero function address.
3387         (iq2000_initial_elimination_offset): Add gcc_unreachable for
3388         unexpected value of FROM.
3389         (symbolic_expression_p): Delete.
3390         (iq2000_function_value): Constify func.
3391         (expand_one_builtin): Use expand_normal.
3392         (iq2000_print_operand): Don't print VALUE if calculating it failed.
3393
3394         PR rtl-optimization/44764
3395         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
3396
3397         PR target/46407
3398         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
3399         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
3400         with ATTRIBUTE_UNUSED.
3401         (valid_psw_flag): Constify parameter which.
3402         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
3403
3404         PR target/46415
3405         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
3406         (mmix_dbx_register_number): Likewise.
3407         * config/mmix/mmix.c: Include df.h .
3408         (mmix_local_alignment): Change argument basic_align and return type
3409         to unsigned.
3410         (mmix_dbx_register_number): Change argument and return type to
3411         unsigned.
3412         (mmix_expand_prologue): Use add_reg_note.
3413
3414         PR target/46417
3415         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
3416         (spu_split_store): Use aform.
3417         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
3418
3419 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3420
3421         PR/46268
3422         * doc/gty.texi (GTY Options): Clarify that variable_size produces
3423         allocators taking size in bytes, compare with length option.  Add
3424         size calculation example.
3425         (Invoking the garbage collector): Ensure that sentences are
3426         followed by two spaces.  Describe that pointer fields must be
3427         initialized at ggc_collect call.
3428         (Troubleshooting): New section.
3429
3430 2010-11-09  Jan Hubicka  <jh@suse.cz>
3431
3432         PR tree-optimization/40436
3433         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
3434         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
3435         normal instructions; be sure bultin is not implemented in this file;
3436         compute non-zero return cost.
3437         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
3438         * tree-inline.h (eni_weights_d): Add return cost.
3439
3440 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
3441
3442         * c-parser.c (c_parser_struct_declaration): Handle declaration
3443         specifiers followed by CPP_CLOSE_BRACE.
3444
3445 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3446
3447         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
3448         split occurs before reload, and we allocate memory at the time of
3449         the split, not during expansion.  Add attributes.
3450         (floatsi<mode>2_lfiwax_mem): Ditto.
3451         (floatunssi<mode>2_lfiwzx): Ditto.
3452         (floatunssi<mode>2_lfiwzx_mem): Ditto.
3453         (floatsidf2): Ditto.
3454         (floatunssisf2): Ditto.
3455         (floatunssidf2): Ditto.
3456         (fix_trunc<mode>si2): Ditto.
3457         (fix_trunc<mode>si2_stfiwx): Ditto.
3458         (fix_trunc<mode>si2_internal): Ditto.
3459         (fix_trunc<mode>si2): Ditto.
3460         (fix_trunc<mode>di2): Ditto.
3461         (fixuns_trunc<mode>si2_stfiwx): Ditto.
3462         (floatsisf2): Ditto.
3463         (floatdidf2_mem): Ditto.
3464         (floatunsdidf2_mem): Ditto.
3465         (floatunsdidf2): Ditto.
3466         (floatdisf2_internal1): Ditto.
3467         (floatdisf2_mem): Ditto.
3468         (floatunsdisf2_mem): Ditto.
3469         (floatsi<mode>2_lfiwax_mem2): Delete.
3470         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
3471         (fix_trunc<mode>si2_mem): Ditto.
3472         (fixuns_trunc<mode>si2_mem): Ditto.
3473         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
3474         type operations to reduce copying the values to multiple memory slots.
3475         (roundu32<mode>2_fprs): Ditto.
3476
3477         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
3478         PRE_INC, PRE_DEC, PRE_MODIFY.
3479         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
3480
3481         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
3482         Delete prototype.
3483
3484 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
3485
3486         PR target/43808
3487         * cfgexpand.c (partition_stack_vars): Call
3488         update_alias_info_with_stack_vars unconditionally.
3489         (update_alias_info_with_stack_vars): Allow unused
3490         unreferenced vars when not optimizing.
3491
3492 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
3493
3494         PR tree-optimization/46036
3495         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
3496         add_to_dst_predicate_list.
3497
3498 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
3499
3500         PR debug/46171
3501         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
3502         earlier.
3503         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
3504         argument, call dead_debug_reset when adding REG_UNUSED note.
3505         (dead_debug_reset): New function.
3506         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
3507         df_create_unused_note callers.
3508
3509 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
3510
3511         * config/fr30/fr30.c: Include "df.h".
3512
3513 2010-11-09  Richard Guenther  <rguenther@suse.de>
3514
3515         PR tree-optimization/46355
3516         * tree-loop-distribution.c (tree_loop_distribution): Do not
3517         distribute loops without a single exit.
3518
3519 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3520
3521         PR rtl-optimization/46237
3522         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
3523         saved hard regs if they might get partially clobbered.
3524
3525 2010-11-09  Paul Koning  <ni1d@arrl.net>
3526
3527         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
3528
3529 2010-11-09  Richard Guenther  <rguenther@suse.de>
3530
3531         PR tree-optimization/46177
3532         * tree-loop-distribution.c (prop_phis): Remove.
3533         (generate_builtin): Re-use the old loop exit edge to avoid
3534         needing to update PHI nodes.
3535
3536 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
3537
3538         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
3539         type of args_size to unsigned HOST_WIDE_INT.
3540
3541         PR target/44755
3542         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
3543         * config/t-pnt16-warn: New file.
3544         * config/picochip/picochip.c (picochip_emit_stack_allocate):
3545         Use add_reg_note.
3546         (picochip_emit_save_register): Likewise.
3547         (picochip_emit_restore_register): Remove variable insn.
3548         (picochip_legitimize_address): Don't use C++ style comments.
3549         (picochip_legitimize_reload_address): Likewise.
3550         (reorder_var_tracking_notes): Remove variable vliw_start.
3551         (picochip_reorg): Cast first arguemnt to emit_note_after to
3552         enum insn_note.
3553         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
3554         (picochip_expand_builtin_3op): Likewise.
3555         (picochip_expand_builtin_2opvoid): Likewise.
3556         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
3557         (picochip_expand_array_testport): Likewise.
3558         (picochip_init_builtins): Remove unused variables.
3559         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
3560         to unsigned long, and output it as such.
3561         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
3562         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
3563         (schedType): Cast result of picochip_schedule_type to
3564         enum attr_schedType.
3565
3566         PR target/44759
3567         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
3568         conditional to type of S.
3569         (mn10300_function_arg): Remove unused variable align.
3570         (mn10300_arg_partial_bytes): Likewise.
3571         * config/mn10300/mn10300.md (attribute cpu): Cast value to
3572         enum attr_cpu.
3573
3574 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
3575
3576         PR bootstrap/46392
3577         * gengtype-parse.c (type): Call get_input_file_name to get file name.
3578
3579 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3580
3581         * tree.h (contains_placeholder_p): Fix comment.
3582         (type_contains_placeholder_p): Adjust comment.
3583         * tree.c (contains_placeholder_p): Fix comment.
3584         (type_contains_placeholder_1): Do not recurse on pointed-to types and
3585         adjust comment.
3586         (type_contains_placeholder_p): Add comment.
3587
3588 2010-11-09  Paul Koning  <ni1d@arrl.net>
3589
3590         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
3591         output of byte values.
3592
3593 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
3594
3595         PR middle-end/46360
3596         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
3597         not in SSA mode.
3598
3599 2010-11-09  Richard Guenther  <rguenther@suse.de>
3600
3601         PR middle-end/46221
3602         * varasm.c (compute_visible_aliases): New function.
3603         (remove_unreachable_alias_pairs): Aliases make a target available
3604         even though we reclaimed the cgraph node.
3605         (finish_aliases_1): Likewise.
3606         * Makefile.in (varasm.o): Add pointer-set.h dependency.
3607
3608 2010-11-09  Nick Clifton  <nickc@redhat.com>
3609
3610         * config/mn10300/mn10300-modes.def: New file.
3611
3612 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
3613             Jeremie Salvucci  <jeremie.salvucci@free.fr>
3614
3615         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
3616         (plugin_files, get_file_basename, get_file_realbasename)
3617         (get_file_langdir, error_at_line, gt_files, this_file)
3618         (system_h_file, read_input_list, create_field_all)
3619         (get_file_srcdir_relative_path, get_file_basename)
3620         (get_file_langdir, get_file_gtfilename)
3621         (get_output_file_with_visibility, get_output_file_name)
3622         (struct flist, put_mangled_filename, walk_type)
3623         (put_mangled_filename, finish_root_table, write_roots): Use
3624         input_file-s.
3625         (lang_dir_names, num_lang_dirs): Remove static.
3626         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
3627         (main): Use input_file-s.
3628
3629         * gengtype.h: (struct input_file_st, input_file): New type.
3630         (struct fileloc): Use it.
3631         (gt_files, num_gt_files, this_file, system_h_file)
3632         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
3633         (get_input_file_name): New function.
3634         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
3635         use input_file.
3636         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
3637         (get_output_file_name): Ditto.
3638
3639         * gengtype-lex.l (yybegin): Use input_file.
3640
3641         * gengtype-parse.c (parse_error): Use input_file.
3642
3643 2010-11-08  Xinliang David Li  <davidxl@google.com>
3644
3645         PR tree-optimization/46316
3646         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
3647         * double-int.h (double_int_mul_with_sign): New function.
3648         * double-int.c (double_int_mul_with_sign): New function.
3649
3650 2010-11-08  Paul Koning  <ni1d@arrl.net>
3651
3652         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
3653
3654 2010-11-08  Paul Koning  <ni1d@arrl.net>
3655
3656         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
3657
3658 2010-11-08  Paul Koning  <ni1d@arrl.net>
3659
3660         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
3661         to 8 bits.
3662
3663 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
3664
3665         PR target/46378
3666         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
3667         turn on ISA 2.04 rounding instructions for power5.
3668
3669         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
3670         not ISA 2.02.
3671
3672         PR target/45585
3673         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
3674         in FPR registers.
3675         (movdi_low_st): Ditto.
3676
3677 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
3678             Richard Henderson  <rth@redhat.com>
3679
3680         PR target/44758
3681         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
3682         (attribute acc_group): Cast value to enum attr_acc_group.
3683         (*movdi_nodouble+6): Use gen_int_mode.
3684         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
3685         if RTX_CODE is defined or not.
3686         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
3687         struct frv_io.
3688         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
3689         (frv_frame_access, frv_expand_prologue): Remove unused variables.
3690         (frv_expand_block_clear): Likewise.
3691         (frv_trampoline_init): Use LCT_NORMAL.
3692         (struct frv_packet_group): New struct, broken out of type of
3693         frv_packet.
3694         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
3695         use cast in loop counter increment.
3696         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
3697         assigning to io->type.
3698         (bdesc_set): Use rtx_code UNKNOWN in initializer.
3699         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
3700         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
3701         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
3702         (frv_read_argument): Use expand_normal.
3703
3704         PR target/44757
3705         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
3706         lm32_legitimate_constant_p.
3707         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
3708         * config/lm32/lm32.c (gen_int_relational): Make new block for
3709         LE / LT / LEU / LTU case.  Declare variables at start of block.
3710         (lm32_block_move_inline): Use XALLOCAVEC.
3711
3712 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3713
3714         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
3715
3716 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
3717
3718         * gengtype (get_output_file_for_structure): Ensure type is union
3719         or struct.
3720         (write_splay_tree_allocator_def): Use
3721         get_output_file_with_visibility.
3722
3723 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3724
3725         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
3726         to defined values in case of an error.
3727         (s390_option_override): Skip further processing if the -march
3728         parameter wasn't recognized.
3729
3730 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
3731
3732         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
3733         assert that REG is a hard register number before using it as an index.
3734
3735         PR bootstrap/46358
3736         * config/i386/i386.c (ix86_expand_split_stack_prologue):
3737         Avoid warnings when HOST_WIDE_INT is 32 bit.
3738
3739 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
3740
3741         PR target/46208
3742         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
3743         (sparc_promote_prototypes): Likewise.
3744         (sparc_promote_function_mode): Promote in 32-bit mode as well.
3745         (sparc_return_in_memory): Remove superfluous parentheses.
3746         (sparc_struct_value_rtx): Fix long lines.
3747         (sparc_function_value_1): Promote in 32-bit mode as well.
3748
3749 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
3750
3751         PR rtl-optimization/45352
3752         * sel-sched.c (find_best_expr): Do not set pneed_stall when
3753         the variable_issue hook is not implemented.
3754         (fill_insns): Remove dead variable stall_iterations.
3755         (init_seqno_1): Force EBB start for resetting sched cycles on any
3756         successor blocks of the rescheduled region.
3757         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
3758         (reset_sched_cycles_in_current_ebb): Add debug printing.
3759         New variable issued_insns.  Advance state when we have issued
3760         issue_rate insns.
3761
3762 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
3763
3764         * gengtype (main): Get here's position using POS_HERE macro for
3765         do*typedef calls.
3766
3767 2010-11-07  Ian Lance Taylor  <iant@google.com>
3768
3769         PR target/46089
3770         * config/i386/i386.c (split_stack_fn_large): New static variable.
3771         (ix86_expand_split_stack_prologue): Handle large model.
3772
3773 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
3774
3775         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
3776         all possible addressing modes.
3777
3778 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
3779
3780         PR tree-optimization/46346
3781         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
3782
3783 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
3784
3785         * config/mips/mips.c: Revert previous patch.
3786         * config/mips/mips.md: Likewise.
3787
3788 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
3789
3790         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
3791         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
3792         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
3793         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
3794         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
3795         to use FMA.
3796         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
3797         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
3798         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
3799         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
3800
3801 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
3802
3803         PR c/43384
3804         * c-decl.c (lookup_label): Labels can only be referenced in a
3805         function's scope.
3806         (store_parm_decls_oldstyle): Skip erroneous parameters.
3807
3808 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
3809
3810         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
3811         LIBCALL_VALUE): Remove macros.
3812         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3813         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3814         (fr30_function_value_regno_p, fr30_function_value,
3815         fr30_libcall_value): New functions.
3816
3817 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
3818
3819         PR middle-end/46314
3820         * target.def (generate_internal_label): New asm_out hook.
3821         * output.h (default_generate_internal_label): Declare.
3822         * varasm.c (default_generate_internal_label): Define.
3823
3824 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
3825
3826         PR target/44981
3827         * doc/extend.tex (format): Document NSString extension.
3828         (format_arg): Likewise.
3829         (Darwin Format Checks): New section.
3830         * doc/tm.texi: Document string object hooks (generated).
3831         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
3832         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
3833         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
3834         * target.def (objc_construct_string_object): Rename, amend
3835         documentation.
3836         (string_object_ref_type_p): New hook.
3837         (check_string_object_format_arg): New hook.
3838         * c-parser.c (c_parser_attributes): Allow objective-c class names as
3839         attribute identifiers.
3840         * config/darwin-c.c (darwin_cfstring_ref_p): New.
3841         (darwin_check_cfstring_format_arg): New.
3842         (darwin_additional_format_types): New.
3843         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
3844         (darwin_check_cfstring_format_arg): New.
3845         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
3846         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
3847         (TARGET_N_FORMAT_TYPES): New.
3848         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
3849
3850 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
3851             Pascal Obry  <obry@adacore.com>
3852
3853         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
3854         in 64-bit mode and 17 otherwise.
3855
3856 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3857
3858         PR debug/45939
3859         * var-tracking.c (emit_note_insn_var_location): Make sure that
3860         call related var location notes come before the normal ones.
3861
3862 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
3863
3864         PR target/46326
3865         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
3866         in the last change.
3867
3868 2010-11-05  Ian Lance Taylor  <iant@google.com>
3869
3870         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
3871
3872 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
3873
3874         PR c/44772
3875         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
3876         pointer_set_contains if DECL_NAME is NULL.
3877
3878 2010-11-05  Ian Lance Taylor  <iant@google.com>
3879
3880         PR target/46084
3881         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
3882         request enough additional space for alignment, and force alignment.
3883
3884 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
3885
3886         * config/i386/i386.c (legitimate_pic_address_disp_p):
3887         Handle UNSPEC_PCREL.
3888         (ix86_legitimate_address_p): Likewise.
3889         (legitimize_pic_address): Likewise.
3890         (output_pic_addr_const): Likewise.
3891         (ix86_delegitimize_address): Likewise.
3892         (ix86_find_base_term): Likewise.
3893         (memory_address_length): Likewise.
3894         (x86_output_mi_thunk): Handle special case x64
3895         for non local binding.
3896         * config/i386/i386.md (UNSPEC_PCREL): New.
3897         * config/i386/winnt.c (i386_pe_binds_local_p):
3898         Allow weak symbol for x64 windows with non-local binding.
3899
3900 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
3901
3902         PR target/45670
3903         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
3904         instead of EXPAND_NORMAL for base expansion.
3905
3906 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
3907
3908         * config.gcc: Support --with-fpmath=avx for x86.
3909         * config/i386/avxmath.h: New.
3910         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
3911
3912 2010-11-05  Ian Lance Taylor  <iant@google.com>
3913
3914         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
3915         * gengtype.c (walk_type): Don't recognize descbits option.
3916
3917 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
3918
3919         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
3920         WORD_SWITCH_TAKES_ARG): Remove.
3921         * doc/options.texi (Args): Document.
3922         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
3923         * doc/tm.texi: Regenerate.
3924         * opt-functions.awk (switch_flags): Handle Args.
3925         * opts-common.c: Update comment on tm.h include.
3926         (decode_cmdline_option): Handle options with multiple arguments.
3927         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
3928         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
3929         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
3930         CL_COMMON): Update values.
3931         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
3932         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
3933         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
3934         sectobjectsymbols, sectorder, segcreate, segprot): New.
3935
3936 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
3937             Uros Bizjak  <ubizjak@gmail.com>
3938
3939         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
3940         256bit AVX register is used.
3941         (ix86_expand_vector_move_misalign): Likewise.
3942         (ix86_expand_vector_move): Replace use_avx256_p with
3943         VALID_AVX256_REG_MODE.
3944
3945 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
3946
3947          PR target/44750
3948         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
3949         change.  Set $@-warn.o to -Wno-error.
3950
3951         PR bootstrap/44756
3952         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
3953         comparing it to a signed value.
3954
3955         PR middle-end/44766
3956         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
3957         PR bootstrap/44770
3958         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
3959         to i.
3960
3961         PR target/44754
3962         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
3963         (m32c_function_arg).  Add comma between arguments two and three.
3964         (m32c_promote_prototypes): Remove declaration.
3965         (current_function_special_page_vector): Likewise.
3966         (m32c_regno_reg_class): Change return type to enum reg_class.
3967         (m32c_pushm_popm): Use add_reg_note.
3968         (m32c_push_rounding): Change return type to unsigned int.
3969         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
3970         enum reload_type.
3971         (m32c_insert_attributes): Constify variable name.
3972         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
3973         (m32c_prepare_shift): Remove variable lref.
3974         (m32c_expand_movcc): Remove variable cmp.
3975         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
3976         (m32c_compare_redundant): Remove variable op2.
3977         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
3978         (m32c_pragma_memregs): Assign the number to target_memregs.
3979         (m32c_pragma_address): Remove variable var_str.
3980         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
3981         enum reg_class.
3982         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
3983         * config/m32c/bitops.md (andsi3): Add default case to switch.
3984         (iorsi3, xorsi3): Likewise.
3985         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
3986         * config/m32c/jump.md (call, call_value): Likewise.
3987         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
3988         (m32c_regno_reg_class): Likewise.
3989         (current_function_special_page_vector): Declare.
3990
3991 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
3992
3993         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
3994
3995         PR tree-optimization/46099
3996         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
3997         if it is NULL and uid wasn't found in the hash table.  Just fold the
3998         result if it is NULL otherwise.  Insert other potentially needed
3999         stmts right before current stmt instead of on the entry edge.
4000         (struct elv_data): Add gsi and reset fields.
4001         (eliminate_local_variables_1): Adjust caller.  If take_address_of
4002         failed for debug stmt, set dta->reset and return.
4003         (eliminate_local_variables_stmt): Change STMT argument for GSI,
4004         pass GSI through to the callback, handle resetting of debug stmts.
4005         (eliminate_local_variables): Adjust caller.  Process debug stmts
4006         in second phase.
4007
4008         PR middle-end/43690
4009         * gimplify.c (gimplify_asm_expr): If a "m" input is a
4010         {pre,post}{in,de}crement, fail.
4011
4012         PR debug/46307
4013         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
4014         * tree-pretty-print.c (dump_generic_node): Likewise.
4015         (op_code_prio): Likewise.
4016         * cfgexpand.c (expand_debug_expr): Likewise.
4017
4018 2010-11-04  Paul Koning  <ni1d@arrl.net>
4019
4020         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
4021         constraints.
4022
4023 2010-11-04  Chao-ying Fu  <fu@mips.com>
4024
4025         * configure.ac: Test assembler support for DSP Rev1 mult.
4026         * configure: Regenerate.
4027         * config.in: Regenerate.
4028         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
4029         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
4030         (CODE_FOR_mips_multu): New define.
4031         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
4032         dspr2_32 to dsp_32.
4033         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
4034         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
4035         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
4036         New define_expand patterns.
4037         * config/mips/constraints.md (ka): Update the constraint to test
4038         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
4039         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
4040         mips_multu): Delete.
4041         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
4042         Change target constraint to "ka".
4043         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
4044         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
4045         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4046         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
4047         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4048         (<u>maddsidi4): Likewise.
4049         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
4050         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
4051
4052 2010-11-04  Paul Koning  <ni1d@arrl.net>
4053
4054         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
4055
4056 2010-11-04  Paul Koning  <ni1d@arrl.net>
4057
4058         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
4059
4060 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
4061
4062         Fixed using the Objective-C 2.0 dot-syntax with class names.
4063         * c-parser.c (c_parser_next_token_starts_declspecs): In
4064         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
4065         (c_parser_next_token_starts_declaration): Same.
4066         (c_parser_postfix_expression): Parse the Objective-C 2.0
4067         dot-syntax with a class name.
4068
4069 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
4070
4071         * final.c (compute_alignments): Compute/free loop info all the time.
4072         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
4073         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
4074         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
4075         * config/rs6000/rs6000.c (cfgloop.h): Include.
4076         (can_override_loop_align): New.
4077         (rs6000_option_override_internal): Set it.
4078         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
4079         (rs6000_loop_align): New function.
4080         (rs6000_loop_align_max_skip): Likewise.
4081
4082 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4083
4084         PR driver/45703
4085         * collect2.c (main): Print --help output to stdout.  Do not
4086         exit right away, so ld --help is appended.  Add empty lines
4087         to separate output suitably.
4088
4089 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
4090
4091         PR tree-optimization/46233
4092         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
4093         after calling analyze_function, not before.
4094
4095         PR target/46234
4096         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
4097         instead of build_va_arg_indirect_ref.
4098         * config/spu/spu.c (spu_va_start): Likewise.
4099         * config/s390/s390.c (s390_va_start): Likewise.
4100
4101 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
4102
4103         PR middle-end/46292
4104         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
4105         if the innermode is not vector mode, determine the mode of a subreg
4106         by using mode_for_size of inner_size.
4107
4108 2010-11-04  Richard Guenther  <rguenther@suse.de>
4109
4110         PR rtl-optimization/46183
4111         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
4112         (execute_rtl_pre): Likewise.
4113         (execute_rtl_hoist): Likewise.
4114
4115 2010-11-04  Richard Guenther  <rguenther@suse.de>
4116
4117         PR tree-optimization/46068
4118         * ipa-split.c (consider_split): Remove gcc_unreachable.
4119
4120 2010-11-04  Richard Guenther  <rguenther@suse.de>
4121
4122         * tree-nested.c (build_addr): Use build_fold_addr_expr.
4123
4124 2010-11-04  Richard Guenther  <rguenther@suse.de>
4125
4126         PR tree-optimization/45991
4127         * gimplify.c (force_gimple_operand_1): Use the provded test
4128         function in the initial test.
4129
4130 2010-11-04  Jeff Law  <law@redhat.com>
4131
4132         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
4133         of readonly memory equivalances for const/pure calls.
4134
4135 2010-11-04  Richard Guenther  <rguenther@suse.de>
4136
4137         PR tree-optimization/45733
4138         * tree-vect-stmts.c (reverse_vec_elements): Honor the
4139         permute builtins function return type.
4140
4141 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
4142
4143         PR middle-end/44765
4144         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
4145         as an index, check it is not INVALID_REGNUM.
4146
4147         PR bootstrap/44756
4148         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
4149         unsignedp.
4150         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
4151
4152         PR bootstrap/44756
4153         * function.c (thread_prologue_and_epilogue_insns): Add
4154         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
4155
4156         PR bootstrap/44756
4157         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
4158
4159         PR target/44750
4160         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
4161         (pdp11_preferred_reload_class): Rename class to rclass.
4162         (pdp11_preferred_output_reload_class): Likewise.
4163         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
4164         ALL_COMPILERFLAGS .
4165         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
4166
4167         PR bootstrap/44756
4168         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
4169         iteration variables to enum machine_mode.
4170
4171         PR target/44751
4172         * config/h8300/h8300.c: Include df.h.
4173         (push, pop): Use add_reg_note.
4174         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
4175         (compute_a_shift_cc): Likewise.
4176         (expand_a_shift): Argument code has type enum rtx_code.
4177         (struct shift_insn): Member cc_valid has type enum attr_cc.
4178         (struct shift_info) <cc_inline, cc_special>: Likewise.
4179         enum attr_cc.
4180         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
4181         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
4182
4183 2010-11-04  Ira Rosen  <irar@il.ibm.com>
4184
4185         PR tree-optimization/46213
4186         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
4187         MINUS_EXPR only if the first operand is reduction operand.
4188
4189 2010-11-04  Richard Guenther  <rguenther@suse.de>
4190             Richard Henderson  <rth@redhat.com>
4191
4192         * tree.def (FMA_EXPR): New tree code.
4193         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
4194         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
4195         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
4196         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
4197         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
4198         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
4199         (execute_optimize_widening_mul): Call it.  Reorganize to allow
4200         dead stmt removal.  Move TODO flags ...
4201         (pass_optimize_widening_mul): ... here.
4202         * flag-types.h (enum fp_contract_mode): New enum.
4203         * common.opt (flag_fp_contract_mode): New variable.
4204         (-ffp-contract): New option.
4205         * opts.c (common_handle_option): Handle it.
4206         * doc/invoke.texi (-ffp-contract): Document.
4207         * tree.h (fold_fma): Declare.
4208         * builtins.c (fold_fma): New function.
4209         (fold_builtin_fma): Likewise.
4210         (fold_builtin_3): Call it for fma.
4211         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
4212         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
4213         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
4214         New expanders.
4215         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
4216         named patterns.
4217         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
4218         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
4219         (fms_optab, fnma_optab, fnms_optab): New defines.
4220         * gimplify.c (gimplify_expr): Handle binary truth expressions
4221         explicitly.  Handle FMA_EXPR.
4222         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
4223         operations.
4224
4225 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
4226             Richard Guenther  <rguenther@suse.de>
4227
4228         * passes.c (init_optimization_passes): Move veclower after SSA.
4229         * tree-vect-generic.c (uniform_vector_p): New function.
4230         (expand_vector_operations_1): Handle conversion.
4231         (pass_lower_vector): Update SSA form.
4232
4233 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
4234
4235         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
4236         plugin capabilities.
4237         * configure: Regenerate.
4238
4239 2010-11-03  Xinliang David Li  <davidxl@google.com>
4240
4241         PR target/46200
4242         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
4243         Adjust cbase if the use stmt is after iv update.
4244
4245 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4246
4247         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
4248
4249 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4250
4251         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
4252         comment.  Pass true to the last argument of output_stack_adjust.
4253
4254 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4255
4256         PR target/46295
4257         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
4258         if 256bit AVX register is used.
4259
4260 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
4261
4262         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
4263         xsmindp/xsmaxdp on VSX for single precision min/max.
4264         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
4265         (vsx_sminsf3): Ditto.
4266
4267 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4268
4269         * combine.c (try_combine): Fix formatting issues, improve comments and
4270         fix a pasto.
4271
4272 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4273
4274         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
4275         of the result before building binary expressions.
4276
4277 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4278
4279         PR rtl-optimization/45865
4280         * Makefile.in (df-problems.o): Revert revision 164552.
4281         * basic-block.h (enum bb_flags): Likewise.
4282         * cfgcleanup.c (block_was_dirty): Likewise.
4283         (try_forward_edges): Likewise.
4284         (try_crossjump_bb): Likewise.
4285         (try_head_merge_bb): Likewise.
4286         (try_optimize_cfg): Likewise.
4287         (cleanup_cfg): Likewise.
4288         * df-core.c (df_set_bb_dirty): Likewise.
4289         * df-problems.c: Likewise.
4290         (df_simulate_find_uses): Likewise.
4291         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
4292         (find_memory, find_memory_store): Likewise.
4293         (can_move_insns_across): Likewise.
4294         * df.h (can_move_insns_across): Likewise.
4295         * ifcvt.c (find_memory): Likewise.
4296         (dead_or_predicable): Likewise.
4297
4298 2010-11-03  Richard Guenther  <rguenther@suse.de>
4299
4300         PR middle-end/46288
4301         * predict.c (strip_predict_hints): Simply DCE builtin expect if
4302         the result is unused.
4303
4304 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4305
4306         PR tree-optimization/46009
4307         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
4308         cond_if_else_store_replacement if bb1 and bb2 have the same
4309         single successor.
4310         (cond_store_replacement): Use gimple_assign_single_p, don't
4311         check if rhs is SSA_NAME or invariant.  Call release_defs for
4312         assign.
4313         (cond_if_else_store_replacement): New function.
4314
4315 2010-11-03  Richard Guenther  <rguenther@suse.de>
4316
4317         * opts.c (finish_options): Properly check for all WHOPR
4318         flags before complaining about -flto-partition.
4319
4320 2010-11-04  Alan Modra  <amodra@gmail.com>
4321
4322         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
4323         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
4324         TARGET_SECURE_PLT.
4325         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
4326         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
4327         on input, "r" on output.
4328
4329 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
4330
4331         Implemented -fobjc-std=objc1 flag.
4332         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
4333         option.
4334         * doc/standards.texi (Standards): Updated the section on
4335         Objective-C; mention support for Objective-C 2.0 features and the
4336         new -fstd-objc=objc1 flag to disable them.
4337
4338 2010-11-03  Richard Guenther  <rguenther@suse.de>
4339
4340         PR middle-end/46241
4341         * dwarf2out.c (scope_die_for): Properly detect global scope.
4342
4343 2010-11-03  Richard Guenther  <rguenther@suse.de>
4344
4345         PR tree-optimization/46190
4346         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4347         Properly compute peel iterations.
4348
4349 2010-11-03  Richard Guenther  <rguenther@suse.de>
4350
4351         PR tree-optimization/46286
4352         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
4353         re-allocated vector data.
4354
4355 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4356
4357         PR target/46285
4358         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
4359         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
4360         is completed.
4361
4362 2010-11-03  Richard Guenther  <rguenther@suse.de>
4363
4364         PR tree-optimization/46217
4365         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
4366         flag matches.
4367         (execute_update_addresses_taken): Likewise.
4368
4369 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
4370
4371         PR bootstrap/44335
4372         * targhooks.c (targhook_words_big_endian): New function.
4373         (targhook_float_words_big_endian): Likewise.
4374         * targhooks.h (targhook_words_big_endian): Declare.
4375         (targhook_float_words_big_endian): Likewise.
4376         * target.def (words_big_endian, float_words_big_endian): New hooks.
4377
4378 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4379
4380         PR tree-optimization/46165
4381         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
4382         a normal call into noreturn call.
4383
4384 2010-11-03  Richard Guenther  <rguenther@suse.de>
4385
4386         PR middle-end/46251
4387         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
4388         not INDIRECT_REFs.
4389
4390 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4391
4392         PR tree-optimization/46107
4393         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
4394         if cfg_hook_duplicate_loop_to_header_edge failed.
4395
4396 2010-11-03  Ian Lance Taylor  <iant@google.com>
4397
4398         PR lto/46273
4399         * config.gcc: Don't set lto_binary_reader.
4400         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
4401         (Configuration): Mention --disable-lto.  Remove --with-libelf
4402         paragraph.
4403
4404 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4405
4406         PR debug/46252
4407         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
4408         prev_real_insn.
4409         * gcse.c (insert_insn_end_basic_block): Likewise.
4410
4411         PR rtl-optimization/46034
4412         PR rtl-optimization/46212
4413         PR rtl-optimization/46248
4414         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
4415         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
4416         before i0dest -> i0src substitution and pass 1 instead of 0 as last
4417         argument to subst on i2pat.
4418
4419 2010-11-02  Ian Lance Taylor  <iant@google.com>
4420
4421         * configure.ac: Use AC_SYS_LARGEFILE.
4422         * configure: Rebuild.
4423         * config.in: Rebuild.
4424
4425 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
4426
4427         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
4428         fold_convert.
4429         * c-typeck.c (build_function_call_vec): Likewise.
4430         * cfgexpand.c (expand_debug_expr): Likewise.
4431         * cgraphunit.c (assemble_thunk): Likewise.
4432         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
4433         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
4434         (fold_binary_loc, fold_ternary_loc): Likewise.
4435         * gimple-fold.c (get_symbol_constant_value): Likewise.
4436         * gimple-low.c (lower_builtin_setjmp): Likewise.
4437         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
4438         * gimplify.c (gimplify_init_constructor): Likewise.
4439         * lambda.h (build_linear_expr): Likewise.
4440         * omp-low.c (omp_reduction_init): Likewise.
4441         * tree-inline.c (remap_ssa_name): Likewise.
4442         * tree-object-size.c (compute_object_sizes): Likewise.
4443         * tree-sra.c (init_subtree_with_zero): Likewise.
4444         (sra_ipa_modify_assign): Likewise.
4445         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
4446         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
4447         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
4448         (undistribute_ops_list): Likewise.
4449         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
4450         * tree-vect-stmts.c (vectorizable_call): Likewise.
4451         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
4452         (build_zero_cst): Handle more cases directly.  Update comment.
4453
4454 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4455
4456         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
4457         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
4458
4459         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
4460         and call ix86_split_call_vzeroupper instead of
4461         ix86_split_call_pop_vzeroupper.
4462         (*call_pop_1_vzeroupper): Likewise.
4463         (*sibcall_pop_1_vzeroupper): Likewise.
4464         (*call_value_pop_0_vzeroupper): Likewise.
4465         (*call_value_pop_1_vzeroupper): Likewise.
4466         (*sibcall_value_pop_1_vzeroupper): Likewise.
4467
4468 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4469
4470         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
4471
4472 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
4473
4474         * basic-block.h (insert_insn_end_bb_new): Delete.
4475         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
4476
4477 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
4478             H.J. Lu  <hongjiu.lu@intel.com>
4479
4480         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
4481         (ix86_split_call_pop_vzeroupper): Likewise.
4482
4483         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
4484         (ix86_expand_call): Conditionally decorate calls with
4485         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
4486         (ix86_split_call_vzeroupper): New.
4487         (ix86_split_call_pop_vzeroupper): Likewise.
4488
4489         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
4490         (*call_pop_0_vzeroupper): New insn_and_split pattern.
4491         (*call_pop_1_vzeroupper): Likewise.
4492         (*sibcall_pop_1_vzeroupper): Likewise.
4493         (*call_0_vzeroupper): Likewise.
4494         (*call_1_vzeroupper): Likewise.
4495         (*sibcall_1_vzeroupper): Likewise.
4496         (*call_1_rex64_vzeroupper): Likewise.
4497         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
4498         (*call_1_rex64_large_vzeroupper): Likewise.
4499         (*sibcall_1_rex64_vzeroupper): Likewise.
4500         (*call_value_pop_0_vzeroupper): Likewise.
4501         (*call_value_pop_1_vzeroupper): Likewise.
4502         (*sibcall_value_pop_1_vzeroupper): Likewise.
4503         (*call_value_0_vzeroupper): Likewise.
4504         (*call_value_0_rex64_vzeroupper): Likewise.
4505         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
4506         (*call_value_1_vzeroupper): Likewise.
4507         (*sibcall_value_1_vzeroupper): Likewise.
4508         (*call_value_1_rex64_vzeroupper): Likewise.
4509         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
4510         (*call_value_1_rex64_large_vzeroupper): Likewise.
4511         (*sibcall_value_1_rex64_vzeroupper): Likewise.
4512
4513 2010-11-02  Ian Lance Taylor  <iant@google.com>
4514
4515         PR lto/46273
4516         * config.gcc: Revert last patch: set lto_binary_reader.
4517
4518 2010-11-02  Richard Guenther  <rguenther@suse.de>
4519
4520         PR tree-optimization/46149
4521         * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
4522         non-indirect MEM_REF variants.
4523
4524 2010-11-02  Richard Guenther  <rguenther@suse.de>
4525
4526         PR tree-optimization/46216
4527         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
4528         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
4529
4530 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4531
4532         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
4533         (*-*-osf*): Likewise.
4534         * configure: Regenerate.
4535
4536 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4537
4538         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
4539         for Intel Core 2 and Core i7.
4540
4541 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
4542
4543         Model decoder of Core 2/i7 for multipass scheduling.
4544
4545         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
4546         New type to hold target-specific data for multipass scheduling.
4547         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
4548         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
4549         Core 2/i7.
4550         (core2i7_secondary_decoder_max_insn_size,)
4551         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
4552         New static variables.
4553         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
4554         ([_]ix86_first_cycle_multipass_data): New static variable.
4555         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
4556         Implement targetm.sched hooks.
4557         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
4558         of ...
4559         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
4560         Implement new targetm.sched hooks.
4561         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
4562         targetm.sched hook to install multipass scheduling hooks on demand.
4563
4564         * doc/tm.texi.in: Document new targetm.sched hooks.
4565         * doc/tm.texi: Regenerate.
4566
4567         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
4568         (first_cycle_multipass_data_t): New typedef.
4569         (struct choice_entry: target_data): New field.
4570         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
4571         to allow target model restrictions not represented in DFA.
4572         (choose_ready, schedule_block): Update.
4573         (sched_extend_ready_list, sched_finish_ready_list): Call new target
4574         hooks to initialize target-specific data for multipass scheduling.
4575         * sched-int.h (max_issue): Update declaration.
4576         * sel-sched.c (choose_best_insn): Update.
4577         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
4578         (first_cycle_multipass_{init, fini}): Define and document new
4579         targetm.sched hooks.
4580
4581 2010-11-02  Richard Guenther  <rguenther@suse.de>
4582
4583         PR tree-optimization/46184
4584         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
4585         input vector type from the reduction operand as well.
4586
4587 2010-11-02  Richard Guenther  <rguenther@suse.de>
4588
4589         PR tree-optimization/46177
4590         * tree-loop-distribution.c (prop_phis): Use
4591         mark_virtual_phi_result_for_renaming.
4592
4593 2010-11-02  Martin Jambor  <mjambor@suse.cz>
4594
4595         PR middle-end/46120
4596         * tree.c (get_binfo_at_offset): Bail out on artificial
4597         fields.  Identify primary bases according to their offsets.
4598
4599 2010-11-02  Martin Jambor  <mjambor@suse.cz>
4600
4601         PR tree-optimization/45875
4602         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
4603         (gimple_get_relevant_ref_binfo): Detect primary bases according to
4604         their field offset.
4605
4606 2010-11-02  Ian Lance Taylor  <iant@google.com>
4607
4608         * doc/install.texi (Configuration): Note in two places that Java
4609         is not enabled by default.
4610
4611 2010-11-02  Ian Lance Taylor  <iant@google.com>
4612
4613         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
4614         (Configuration): Mention --disable-lto.  Remove --with-libelf
4615         paragraph.
4616
4617 2010-11-02  Ian Lance Taylor  <iant@google.com>
4618
4619         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
4620         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
4621         LIBELFINC.  Remove HAVE_libelf.
4622         * config.gcc: Don't set lto_binary_reader.
4623         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
4624         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
4625         (LIBS): Remove $(LIBELFLIBS).
4626         (INCLUDES): Remove $(LIBELFINC).
4627         * configure: Rebuild.
4628         * config.in: Rebuild.
4629
4630 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
4631
4632         * config/microblaze/microblaze-protos.h (function_arg): Delete.
4633         (function_arg_advance): Delete.
4634         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
4635         (FUNCTION_ARG): Delete.
4636         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
4637         (microblaze_function_arg_advance): ...this.  Make static.  Take a
4638         const_tree and a bool.
4639         (function-arg): Rename to...
4640         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
4641         and a bool.
4642         (microblaze_expand_prologue): Call targetm.calls.function_arg and
4643         targetm.calls.function_arg_advance.
4644         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4645
4646 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
4647
4648         Merge from FSF "apple/trunk" branch.
4649
4650         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
4651         * config/darwin.opt: .. to here.
4652         (matt-stubs): New option.
4653         * config/i386/darwin.opt: Delete.
4654         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
4655         (MACHO_DYNAMIC_NO_PIC_P): New.
4656         (MACHOPIC_INDIRECT): New.
4657         (MACHOPIC_PURE): New.
4658         * config/i386/darwin.h (DARWIN_X86) Define to 1.
4659         (MACHOPIC_ATT_STUB): New.
4660         (CC1_SPEC): Do not remove mdynamic-no-pic.
4661         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
4662         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
4663         (FUNCTION_PROFILER): Correct over-length line.
4664         (SUBTARGET_OVERRIDE_OPTIONS): New.
4665         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
4666         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
4667         (legitimate_constant_p): Handle mdynamic-no-pic.
4668         (ix86_legitimate_address_p): Likewise.
4669         (ix86_legitimize_address): Likewise.
4670         (ix86_expand_move): Likewise.
4671         (machopic_output_stub): Update for ATT-style stubs and
4672         mdynamic-no-pic.
4673         * config/darwin-protos.h (machopic_symbol_defined_p): New.
4674         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
4675         TARGET_DYNAMIC_NO_PIC: Remove.
4676         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
4677         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
4678         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
4679         Remove handling of mdynamic-no-pic.
4680         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
4681         Define if required.
4682         (machopic_symbol_defined_p): Do not try to use current_function_decl
4683         when generating _get_pc thunks within stubs.
4684         (machopic_indirect_data_reference): Rework for direct conditionals
4685         rather than #ifdefs, add x86 mdynamic-no-pic
4686         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
4687         defined value.
4688         (darwin_override_options): Handle mdynamic-no-pic here.
4689         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
4690         (machopic_lazy_symbol_ptr3_section): New.
4691         (machopic_picsymbol_stub2_section): New.
4692         (machopic_picsymbol_stub3_section): New.
4693         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
4694         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
4695         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
4696         Moved common definition from x86 and rs6000.
4697         (MACHO_DYNAMIC_NO_PIC_P): Override value.
4698         (MACHOPIC_INDIRECT): Likewise.
4699         (MACHOPIC_PURE): Likewise.
4700         * config.gcc (x86-darwin-*): Remove darwin.opt.
4701
4702 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
4703
4704         PR debug/46255
4705         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
4706         instead of gsi_last_bb.
4707
4708 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
4709             Maxim Kuvyrkov  <maxim@codesourcery.com>
4710
4711         * config/i386/i386.c (cpu_names): Add "corei7".
4712         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
4713
4714 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
4715             Maxim Kuvyrkov  <maxim@codesourcery.com>
4716
4717         Tune alignment for Intel Core i7
4718
4719         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
4720         (enum processor_type): Update comment.  Add entries for Core i7.
4721         * config/i386-c.c (ix86_target_macros_internal): Update.
4722         * config/i386.c (m_COREI7{_32,_64}): New macros.
4723         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
4724         (processor_target_table): Tune alignment for Core i7.
4725         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
4726
4727         * doc/invoke.texi: Document "corei7" option value.
4728
4729 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
4730             Maxim Kuvyrkov  <maxim@codesourcery.com>
4731             H.J. Lu  <hjl.tools@gmail.com>
4732
4733         Basic support for Intel Core i7
4734
4735         * i386.c (ix86_option_override_internal): Add entry for corei7, use
4736         generic tuning.  Use generic32 when compiling for 32-bit ABI.
4737
4738 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
4739
4740         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
4741         sections and call darwin_asm_dwarf_section() to handle them.
4742         (darwin_asm_dwarf_section): New.
4743         (darwin_file_start): Remove code emitting dwarf section symbols.
4744
4745 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
4746
4747         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
4748         explicitly disable stack protection when building libgcc.
4749         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
4750
4751 2010-11-01  Jason Merrill  <jason@redhat.com>
4752
4753         * fold-const.c (fold_indirect_ref_1): Handle folding
4754         POINTER_PLUS_EXPR to ARRAY_REF.
4755
4756 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
4757
4758         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
4759         (sh_delegitimize_address): New function.
4760
4761 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
4762
4763         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
4764         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
4765         (CC1_SPEC): Don't handle -target.
4766         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
4767         options.
4768         * config/darwin.opt (Zallowable_client, Zbundle_loader,
4769         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
4770         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
4771         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
4772         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
4773         Zweak_reference_mismatches, client_name, compatibility_version,
4774         current_version, dylinker_install_name, pagezero_size,
4775         read_only_relocs, seg1addr, segs_read_only_addr,
4776         segs_read_write_addr, sub_library, sub_umbrella): New.
4777         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
4778         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
4779         * config/freebsd.opt: New.
4780         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
4781         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
4782         * config/rpath.opt: New.
4783         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
4784         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
4785         Use rpath.opt.
4786
4787 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
4788
4789         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
4790         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
4791         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
4792         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
4793         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
4794         Document that options in .opt files do not need to be included.
4795         * doc/tm.texi: Regenerate.
4796         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
4797         * opts-common.c: Update comment on tm.h include.
4798         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
4799         * system.h (SWITCH_TAKES_ARG): Poison.
4800         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
4801         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
4802         in darwin.opt.
4803         (LINK_COMMAND_SPEC_A): Don't include %{x}.
4804         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
4805         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
4806         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
4807         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
4808         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
4809         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
4810         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
4811         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
4812         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
4813         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
4814         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
4815         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
4816         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
4817         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
4818         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
4819         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
4820         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
4821         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
4822         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
4823         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
4824         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
4825         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
4826         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
4827
4828 2010-11-01  Paul Koning  <ni1d@arrl.net>
4829
4830         * config/pdp11/pdp11.md: Use iterators.
4831         (addqi3, subqi3, iorsi3, xorsi3): Delete.
4832
4833 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
4834
4835         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
4836         GCC_INSN_FLAGS_H.
4837         * libgcov.c (__gcov_indirect_call_profiler): Set
4838         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
4839         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
4840
4841 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
4842
4843         PR tree-optimization/46259
4844
4845         Revert:
4846         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
4847         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
4848         build_vector_from_val.
4849
4850 2010-11-01  DJ Delorie  <dj@redhat.com>
4851
4852         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
4853         as well as an assertion.
4854
4855 2010-11-01  Paul Koning  <ni1d@arrl.net>
4856
4857         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
4858         complex modes in memory.
4859
4860 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
4861
4862         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
4863
4864 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
4865
4866         PR target/45250
4867         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
4868         (cfa_base_offset): New variable.
4869         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
4870         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
4871         is NULL.
4872         (vt_init_cfa_base): Initialize cfa_base_offset.
4873
4874 2010-11-01  Alan Modra  <amodra@gmail.com>
4875
4876         PR target/46030
4877         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
4878         and savres_strategy.
4879         (stack_info): New file scope var.
4880         (rs6000_init_machine_status): Init stack_info.
4881         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
4882         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
4883         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
4884         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
4885         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
4886         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
4887         (rs6000_savres_strategy): Rewrite.
4888         (rs6000_stack_info): Use "stack_info" in place of local "info".
4889         Return cached stack info when reload_completed unless ENABLE_CHECKING
4890         in which case confirm newly calculated stack info matches old info.
4891         Delay calculation of lr_save_p, set it for out of line gp save/restore
4892         as well as fp.  Call rs6000_savres_strategy from here..
4893         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
4894         (rs6000_output_function_prologue): Use info->savres_strategy to
4895         determine whether fp save/restore externs need to be emitted.
4896
4897 2010-10-31  Jason Merrill  <jason@redhat.com>
4898
4899         * tree.h (EXPR_LOC_OR_HERE): New macro.
4900         * builtins.c (c_strlen): Use it.
4901         * c-decl.c (build_enumerator): Likewise.
4902         * gimplify.c (internal_get_tmp_var): Likewise.
4903         (shortcut_cond_expr): Likewise.
4904         (gimplify_one_sizepos): Likewise.
4905
4906 2010-10-31  Richard Henderson  <rth@redhat.com>
4907
4908         * config/i386/cygming.h (TARGET_SEH): New.
4909         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
4910         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
4911         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
4912         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
4913         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
4914         (ASM_DECLARE_FUNCTION_SIZE): New.
4915         * config/i386/i386-protos.h: Update.
4916         * config/i386/i386.c (ix86_option_override_internal): Enable
4917         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
4918         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
4919         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
4920         (ix86_compute_frame_layout): For SEH, disable
4921         use_fast_prologue_epilogue, move frame pointer to the end of
4922         the frame.  Initialize hfp_save_offset.
4923         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
4924         at end of prologue for SEH.
4925         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
4926         emit blockage at beginning of epilogue.
4927         (ix86_expand_binary_operator): After reload, emit LEA if needed.
4928         (ix86_output_call_insn): New.
4929         * config/i386/i386.h (TARGET_SEH): New.
4930         (struct machine_function): Add member seh.
4931         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
4932         * config/i386/winnt.c (struct seh_frame_state): New.
4933         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
4934         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
4935         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
4936         i386_pe_start_function, i386_pe_end_function): New.
4937
4938         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
4939         as CFA_STORE in rules 12 and 13.
4940
4941 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
4942
4943         PR tree-optimization/46142
4944         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
4945         accommodate third function argument.
4946
4947 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
4948
4949         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
4950
4951 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
4952
4953         * fold-const.c (build_zero_vector): Use build_vector_from_val.
4954         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
4955         (get_initial_def_for_reduction): Likewise.
4956         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
4957         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
4958         * tree.c (build_one_cst): Likewise.
4959         (build_vector_from_val): Use types_compatible_p for assert.
4960
4961 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
4962
4963         * emit-rtl.c (mark_used_flags): New function.
4964         (set_used_flags, reset_used_flags): Call it.
4965
4966 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
4967
4968         PR middle-end/44569
4969         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
4970         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
4971
4972 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
4973
4974         PR target/46195
4975         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
4976         (ix86_compat_aligned_value_p): This.
4977         (ix86_old_function_arg_boundary): Renamed to ...
4978         (ix86_compat_function_arg_boundary): This.  Updated.
4979         (ix86_contains_aligned_value_p): New.
4980         (ix86_function_arg_boundary): Align long double parameters on
4981         stack to 4byte in 32bit.
4982
4983 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
4984
4985         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
4986         * c-parser.c (c_parser_objc_at_property_declaration): Removed
4987         parsing of RID_COPIES and RID_IVAR.  Updated call to
4988         objc_add_property_declaration.
4989         * c-typecheck.c (build_component_ref): Call
4990         objc_maybe_build_component_ref instead of objc_build_setter_call.
4991         Use objc_is_property_ref to improve Objective-C checks.
4992         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
4993         of objc_build_getter_call.
4994
4995 2010-10-29  Paul Koning  <ni1d@arrl.net>
4996
4997         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
4998         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
4999         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
5000         (REG_OK_STRICT): Move description.
5001
5002 2010-10-29  Paul Koning  <ni1d@arrl.net>
5003
5004         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
5005
5006 2010-10-29  Paul Koning  <ni1d@arrl.net>
5007
5008         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
5009
5010 2010-10-29  Paul Koning  <ni1d@arrl.net>
5011
5012         PR/41822
5013         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
5014
5015 2010-10-29  Richard Henderson  <rth@redhat.com>
5016
5017         PR rtl-opt/46226
5018         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
5019         for asm goto.
5020
5021 2010-10-29  Paul Koning  <ni1d@arrl.net>
5022
5023         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
5024         register to register move.
5025
5026 2010-10-29  Paul Koning  <ni1d@arrl.net>
5027
5028         * config/pdp11/pdp11.c (print_operand_address): Correct handling
5029         of integer constant addresses, delete vax-only logic.
5030
5031 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
5032
5033         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
5034         a conditional expression.
5035
5036 2010-10-29  Paul Koning  <ni1d@arrl.net>
5037
5038         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
5039         instruction encoding.
5040
5041 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
5042             Andrew Pinski  <pinskia@gmail.com>
5043
5044         * tree.h (build_vector_from_val): Declare.
5045         * tree.c (build_vector_from_val): New function.
5046         * c-typeck.c (build_binary_op): Handle vector shifting.
5047         * doc/extend.texi: Description of the vector shifting operation.
5048
5049 2010-10-29  Paul Koning  <pkoning@equallogic.com>
5050
5051         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
5052         pdp11_secondary_memory_needed): Declare.
5053         * config/pdp11/predicates.md (float_operand): New predicate.
5054         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
5055         (cbranchdf4, movdf): Change predicate.
5056         (movsf): Handle FPU register case.
5057         (truncdfsf2, extendsfdf2): Add FPU register case.
5058         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
5059         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
5060         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5061         (pdp11_register_move_cost): Update cost matrix.
5062         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
5063         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
5064         pdp11_secondary_memory_needed): New function.
5065         (pdp11_return_in_memory): Add other float types.
5066         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
5067         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
5068         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
5069         REGISTER_MOVE_COST): Delete.
5070         (BASE_RETURN_VALUE_REG): Add other float types.
5071
5072 2010-10-29  Nick Clifton  <nickc@redhat.com>
5073
5074         * doc/invoke.texi: Document -mam34 and -mtune options.
5075         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
5076         (mn10300_tune_cpu): New variable.
5077         (mn10300_handle_option): Handle -mam34 and -mtune options.
5078         (mn10300_option_override): Convert tune string into tune cpu variable.
5079         (mn10300_legitimate_constant_p): Delete unused local variable.
5080         (is_load_insn): New function.
5081         (is_store_insn): New function.
5082         (mn10300_adjust_schedule_cost): New function.
5083         (TARGET_SCHED_ADJUST_COST): Define.
5084         * config/mn10300/mn10300.opt (mam34): New option.
5085         (mtune): New option.
5086         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
5087         (enum processor_type): Add AM34.
5088         (TARGET_AM34): Define.
5089         * config/mn10300/mn10300.md (attr cpu): Add am34.
5090         Add pipeline description.
5091         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
5092         Remove unneeded alternatives.  Add timing attribute.
5093         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
5094         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
5095         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
5096         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
5097         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
5098         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
5099         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
5100         float_conditional_branch, jump, indirect_jump, tablejump,
5101         call_internal, call_value_internal, zero_extendqisi2_am33,
5102         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
5103         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
5104         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
5105         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
5106         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
5107         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
5108         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
5109         return_internal_regs, store_movm, return, call_next_insn):
5110         Add timing attribute.
5111         (am33_subsi3): Add missing clobber of CC_REG.
5112         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
5113         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
5114         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
5115         extendqisi2): Fix predicates.
5116         (call_internal, call_internal_value): Separate alternatives.
5117         * config/mn10300/t-mn10300: Add AM34 multilib.
5118
5119 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
5120
5121         * config/sh/sh.c (sh_promote_function_mode): Use
5122         default_promote_function_mode if !sh_promote_prototypes.
5123
5124 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
5125
5126         * recog.c (split_all_insns): Remove dead code.
5127
5128 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5129
5130         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5131
5132 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5133
5134         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
5135         (FUNCTION_ARG_ADVANCE): Delete.
5136         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
5137         functions.
5138         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
5139         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5140         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5141
5142 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5143
5144         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
5145         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5146         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5147         Take a const_tree and a bool.
5148         (mcore_function_arg_advance): New function.
5149         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5150
5151 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5152
5153         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
5154         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5155         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5156         Take a const_tree and a bool.
5157         (mcore_function_arg_advance): New function.
5158         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5159
5160 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5161
5162         * config/h8300/h8300-protos.h (function_arg): Delete.
5163         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5164         * config/h8300/h8300.c (function_arg): Rename to...
5165         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
5166         a bool.
5167         (h8300_function_arg_advance): New function.
5168         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5169
5170 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5171
5172         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
5173         to...
5174         * config/arc/arc.c (arc_function_arg): ...here and...
5175         (arc_function_arg_advance): ...here.  New functions.
5176         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5177
5178 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5179
5180         * config/crx/crx-protos.h (crx_function_arg): Delete.
5181         (crx_function_arg_advance): Delete.
5182         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5183         * config/crx/crx.c (crx_function_arg): Make static.  Take a
5184         const_tree and a bool.
5185         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
5186         (enough_regs_for_param): Take a const_tree.
5187         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5188
5189 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5190
5191         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
5192         (m68hc11_function_arg_advance): Delete.
5193         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
5194         (FUNCTION_ARG_ADVANCE): Delete.
5195         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
5196         Take a const_tree and a bool.
5197         (m68hc11_function_arg_advance): Likewise.
5198         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5199
5200 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5201
5202         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
5203         (xstormy16_function_arg_advance): Delete.
5204         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
5205         (FUNCTION_ARG_ADVANCE): Delete.
5206         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
5207         Take a const_tree and a bool.
5208         (xstormy16_function_arg_advance): Likewise.  Return void, updating
5209         the CUM parameter instead.
5210         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5211
5212 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5213
5214         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
5215         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5216         (MOXIE_FUNCTION_ARG_SIZE): Move to...
5217         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
5218         (moxie_function_arg): Make static.  Take a const_tree and a bool.
5219         (moxie_function_arg_advance): New function.
5220         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5221
5222 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5223
5224         * config/mn10300/mn10300-protos.h (function_arg): Delete.
5225         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
5226         (FUNCTION_ARG_ADVANCE): Delete.
5227         * config/mn10300/mn10300.c (function_arg): Rename to...
5228         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
5229         and a bool.
5230         (mn10300_function_arg_advance): New function.
5231         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5232
5233 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5234
5235         * config/iq2000/iq2000-protos.h (function_arg): Delete.
5236         (function_arg_advance): Delete.
5237         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5238         * config/iq2000/iq2000.c (function_arg): Rename to...
5239         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
5240         a bool.
5241         (function_arg_advance): Rename to...
5242         (iq2000_function_arg_advance): ...this.  Make static.  Take a
5243         const_tree and a bool.
5244         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
5245         iq2000_function_arg.
5246         (iq2000_pass_by_reference): Call iq2000_function_arg).
5247         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5248
5249 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5250
5251         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
5252         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5253         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
5254         const_tree.
5255         (fr30_function_arg): New function.
5256         (fr30_function_arg_advance): New function.
5257         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5258
5259 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5260
5261         * config/frv/frv-protos.h (frv_function_arg): Delete.
5262         (frv_function_arg_advance): Delete.
5263         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5264         * config/frv/frv.c (frv_function_arg): Rename to...
5265         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
5266         (frv_function_arg, frv_function_incoming_arg): New functions.
5267         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
5268         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5269         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5270
5271 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
5272
5273         PR target/46153
5274         * config/i386/sse.md (sse_movhlps_exp): Use destination
5275         returned from ix86_fixup_binary_operands to expand insn.
5276         (sse_movlhps_exp): Ditto.
5277         (sse_loadhps_exp): Ditto.
5278         (sse_loadlps_exp): Ditto.
5279         (sse2_loadhpd_exp): Ditto.
5280         (sse2_loadlpd_exp): Ditto.
5281
5282 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
5283
5284         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
5285         constants in thumb2.
5286
5287 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
5288
5289         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
5290         arithmetics in masking operations.
5291         (contains_muldiv): Likewise.
5292         (try_combine): Likewise.
5293         (find_split_point): Likewise.
5294         (combine_simplify_rtx): Likewise.
5295         (simplify_if_then_else): Likewise.
5296         (simplify_set): Likewise.
5297         (expand_compound_operation): Likewise.
5298         (expand_field_assignment): Likewise.
5299         (make_extraction): Likewise.
5300         (extract_left_shift): Likewise.
5301         (make_compound_operation): Likewise.
5302         (force_to_mode): Likewise.
5303         (make_field_assignment): Likewise.
5304         (reg_nonzero_bits_for_combine): Likewise.
5305         (simplify_shift_const_1): Likewise.
5306         (simplify_comparison): Likewise.
5307
5308 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
5309
5310         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
5311         (ia64_function_arg_advance): Delete.
5312         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
5313         (FUNCTION_ARG_ADVANCE): Delete.
5314         * config/ia64/ia64.c (ia64_function_arg): Rename to...
5315         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
5316         bool arguments.
5317         (ia64_function_arg, ia64_function_incoming_arg): New functions.
5318         (ia64_function_arg_advance): Make static.  Take a const_tree and
5319         a bool.
5320         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5321         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5322
5323 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
5324
5325         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
5326         (TARGET_GET_RAW_ARG_MODE): New.
5327         * doc/tm.texi: Regenerate.
5328         * target.def (get_raw_result_mode): New.
5329         (get_raw_arg_mode): New.
5330         * targhooks.c (default_get_reg_raw_mode): New.
5331         * targhooks.h (default_get_reg_raw_mode): New.
5332         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
5333         (apply_result_size): Ditto.
5334         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
5335         (TARGET_GET_RAW_RESULT_MODE): Define.
5336         (TARGET_GET_RAW_ARG_MODE): Ditto.
5337
5338 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5339
5340         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
5341         for newer Solaris 10 release.
5342         (sparc_fallback_frame_state): Likewise.
5343
5344 2010-10-27  Jason Merrill  <jason@redhat.com>
5345
5346         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
5347         variables sooner.
5348
5349 2010-10-27  Jie Zhang  <jie@codesourcery.com>
5350             Maxim Kuvyrkov  <maxim@codesourcery.com>
5351
5352         * haifa-sched.c (ISSUE_POINTS): Remove.
5353         (max_issue): Don't issue more than issue_rate instructions.
5354
5355 2010-10-27  Ian Lance Taylor  <iant@google.com>
5356
5357         PR target/46197
5358         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
5359         (split_stack_return): Replace UNSPEC_STACK_CHECK with
5360         UNSPECV_SPLIT_STACK_RETURN.
5361
5362 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
5363
5364         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
5365
5366         * config/i386/i386.c (block_info): New.
5367         (BLOCK_INFO): Likewise.
5368         (call_avx256_state): Likewise.
5369         (check_avx256_stores): Likewise.
5370         (move_or_delete_vzeroupper_2): Likewise.
5371         (move_or_delete_vzeroupper_1): Likewise.
5372         (move_or_delete_vzeroupper): Likewise.
5373         (use_avx256_p): Likewise.
5374         (function_pass_avx256_p): Likewise.
5375         (flag_opts): Add -mvzeroupper.
5376         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
5377         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
5378         is disabled.
5379         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
5380         generate vzeroupper.
5381         (init_cumulative_args): Add an int to indicate caller.  Set
5382         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
5383         based on return type.
5384         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
5385         caller_pass_avx256_p based on argument type.
5386         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
5387         is used, but not returned by caller.
5388         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
5389         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
5390         is used.
5391         (ix86_minimum_alignment): Likewise.
5392         (ix86_expand_special_args_builtin): Set target to
5393         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
5394         (ix86_reorg): Run the vzeroupper optimization if needed.
5395
5396         * config/i386/i386.h (ix86_args): Add caller.
5397         (INIT_CUMULATIVE_ARGS): Updated.
5398         (machine_function): Add use_vzeroupper_p, use_avx256_p,
5399         caller_pass_avx256_p, caller_return_avx256_p,
5400         callee_pass_avx256_p and callee_return_avx256_p.
5401
5402         * config/i386/i386.opt (-mvzeroupper): New.
5403
5404         * config/i386/predicates.md (vzeroupper_operation): Removed.
5405
5406         * config/i386/sse.md (avx_vzeroupper): Removed.
5407         (*avx_vzeroupper): Removed.
5408         (avx_vzeroupper): New.
5409
5410         * doc/invoke.texi: Document -mvzeroupper.
5411
5412 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5413
5414         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
5415         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
5416         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
5417
5418 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5419             Olivier Hainque  <hainque@adacore.com>
5420
5421         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
5422         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
5423         fs->signal_frame instead.
5424
5425 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5426
5427         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
5428         parsing of RID_COPIES and RID_IVAR.
5429
5430 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5431
5432         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
5433         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
5434         Do not use objc_set_property_attr, but use local variables
5435         instead.  Detect repeated usage of setter, getter and ivar
5436         attributes.  Improved error processing when a setter name does not
5437         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
5438         that the token is a keyword.  Updated call to
5439         objc_add_property_declaration.
5440
5441 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5442
5443         * c-parser.c (c_parser_objc_at_property): Renamed to
5444         c_parser_objc_at_property_declaration.  Updated calls to
5445         objc_add_property_variable, now objc_add_property_declaration.
5446         Code rewritten to be much more robust in recovering from syntax
5447         errors.  Added comments.
5448         (c_parser_objc_property_attrlist): Removed.
5449         (c_parser_external_declaration): Updated calls to
5450         c_parser_objc_at_property, now
5451         c_parser_objc_at_property_declaration.
5452         (c_parser_objc_methodprotolist): Same change.
5453
5454 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5455
5456         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
5457
5458 2010-10-26  Jan Hubicka  <jh@suse.cz>
5459
5460         * ipa.c (process_references): Enqueue all referenced nodes;
5461         mark as reachable only non-external nodes.
5462         (cgraph_remove_unreachable_nodes): All referenced nodes should
5463         be enqueued; remove bogues node->needed check.
5464
5465 2010-10-26  Jan Hubicka  <jh@suse.cz>
5466
5467         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
5468         to represent OMP.
5469
5470 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5471
5472         * config/i386/i386.md (split_stack_return): Replace
5473         unspec_volatile with unspec.
5474
5475 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
5476
5477         * doc/install.texi: Fix typo in --with-sysroot description.
5478
5479 2010-10-26  Jan Hubicka  <jh@suse.cz>
5480
5481         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
5482         Use info provided by linker plugin.
5483
5484 2010-10-26  Jason Merrill  <jason@redhat.com>
5485
5486         * varasm.c (constructor_static_from_elts_p): Don't require a
5487         CONSTRUCTOR to have elements to be suitable for static
5488         initialization.  Allow ARRAY_TYPE as well.
5489
5490 2010-10-26  Jan Hubicka  <jh@suse.cz>
5491
5492         PR middle-end/45736
5493         * cgraph.c (cgraph_set_readonly_flag): Rename to...
5494         (cgraph_set_const_flags) ... this one; get also looping argument;
5495         clear constructor/destructor flags.
5496         (cgraph_set_pure_flag): Likewise.
5497         (cgraph_set_looping_const_or_pure_flag): Remove.
5498         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
5499         to optimize away static ctors/dtors; it does not work on inline clones;
5500         external functions can always be rmeoved.
5501         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
5502         inline clones; in LTO external functions always can go.
5503         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
5504         (cgraph_mark_address_taken_node): Assert that we are not taking
5505         address of inline clone.
5506         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
5507         external functions.
5508         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
5509         address taken.
5510         (ipcp_initialize_node_lattices): Only local functions can be
5511         handled without cloning.
5512         * cgraph.h (cgraph_set_readonly_flag,
5513         cgraph_set_looping_const_or_pure_flag): Remove.
5514         (cgraph_set_const_flag): Declare.
5515         (cgraph_set_pure_flag): Update.
5516         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
5517         flags setting code.
5518         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
5519         look at inline clones; fix handling of external definitions.
5520         (cgraph_postorder): Do not look at inline clones in the first pass.
5521         (function_and_variable_visibility): Drop constructors/destructor
5522         flags at pure and const functions.
5523         * tree-profile.c (tree_profiling): Update.
5524         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
5525         address taken; external functions do not account to whole program size.
5526         (cgraph_decide_inlining): Likewise; do not try to inline
5527         functions already inlined.
5528
5529 2010-10-26  Jie Zhang  <jie@codesourcery.com>
5530
5531         * doc/invoke.texi: Improve documentation of
5532         -fstrict-volatile-bitfields.
5533
5534 2010-10-26  Ira Rosen  <irar@il.ibm.com>
5535
5536         PR tree-optimization/46167
5537         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
5538         is basic block for the statement.
5539
5540 2010-10-26  Paul Koning  <ni1d@arrl.net>
5541
5542         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
5543         current definition of struct_real_format.
5544
5545 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5546
5547         PR target/44948
5548         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
5549         (ix86_function_arg_boundary): Always align parameters on stack
5550         in 64bit and align parameters with alignment >= 16byte on stack
5551         in 32bit.  Warn alignment change.
5552
5553 2010-10-26  Ian Lance Taylor  <iant@google.com>
5554
5555         PR middle-end/45687
5556         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
5557         offset.
5558
5559 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
5560
5561         Implement opaque-enum-specifiesr for C++0x
5562         * tree.h (ENUM_IS_OPAQUE): New.
5563         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
5564
5565 2010-10-26  Jie Zhang  <jie@codesourcery.com>
5566
5567         * stor-layout.c (layout_decl): Use the field's type to
5568         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
5569         * config/arm/arm.c (arm_override_options): Default to
5570         -fstrict-volatile-bitfields.
5571
5572 2010-10-25  Paul Koning  <ni1d@arrl.net>
5573
5574         * config/pdp11/pdp11.md: Add define_constants for register
5575         numbers, branch offset limits.
5576         * config/pdp11/pdp11.c: Use named constants instead of numbers.
5577         * config/pdp11.pdp11.h: Ditto.
5578
5579 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
5580
5581         * configure.ac: Use $cpu_type instead of $target to define the nop.
5582         * configure: Regenerate.
5583
5584 2010-10-25  Jie Zhang  <jie@codesourcery.com>
5585
5586         * combine.c (try_combine): If insns need to be kept around, check that
5587         they can be copied in the merged instruction.
5588
5589 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
5590
5591         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
5592         has been modified.
5593         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
5594         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
5595         it has been modified.
5596
5597 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
5598
5599         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
5600
5601 2010-10-24  Paul Koning  <ni1d@arrl.net>
5602
5603         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
5604         * config/pdp11/pdp11.c (output_jump): Ditto.
5605
5606 2010-10-24  Ian Lance Taylor  <iant@google.com>
5607
5608         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
5609
5610 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
5611
5612         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
5613         least one insn with a locus corresponding to an edge's goto_locus,
5614         disregard non-fallthru edges to the exit block and merge the blocks
5615         created for the same goto_locus.
5616
5617 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
5618
5619         * gcc.c (n_switches_alloc_debug_check): New.
5620         (set_option_handlers): New.
5621         (process_command): Use set_option_handlers.
5622         (do_self_spec): Pass spec-generated options through option handlers.
5623         (main): Also save and restore n_switches_alloc when swapping
5624         switch arrays.
5625
5626 2010-10-23  Richard Henderson  <rth@redhat.com>
5627
5628         PR target/46144
5629         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
5630         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
5631         Honor matching operands when splitting to XOR.
5632
5633 2010-10-23  Ian Lance Taylor  <iant@google.com>
5634
5635         * tree-vrp.c (extract_range_from_binary_expr): If
5636         flag_non_call_exceptions don't eliminate division by zero.
5637         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
5638
5639 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
5640
5641         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
5642         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
5643         __ORDER_PDP_ENDIAN__.
5644         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5645         (struct DWstruct): Define based on __BYTE_ORDER__.
5646         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5647         (struct INTstruct): Define based on __BYTE_ORDER__.
5648         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5649         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
5650         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
5651         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5652         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5653         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5654         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5655         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5656         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5657         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5658         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5659         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5660         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5661         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5662         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5663         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5664         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5665         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5666         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5667         * doc/tm.texi: Regenerate.
5668         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
5669         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
5670
5671 2010-10-23  Jie Zhang  <jie@codesourcery.com>
5672
5673         PR rtl-optimization/37360
5674         * config/mips/mips.c (cached_can_issue_more): New local variable.
5675         (mips_sched_reorder_1): New.
5676         (mips_sched_reorder): Use mips_sched_reorder_1.
5677         (mips_sched_reorder2): New.
5678         (mips_variable_issue): Set cached_can_issue_more.
5679         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
5680         instead of mips_sched_reorder.
5681
5682         Revert:
5683         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
5684         PR rtl-optimization/37360
5685         * haifa-sched.c (max_issue): Do not assert that we never issue more
5686         insns than issue_rate.  Add comment.
5687
5688 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
5689
5690         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
5691         location info of the expression.
5692
5693 2010-10-22  DJ Delorie  <dj@redhat.com>
5694
5695         * doc/extend.texi (Named Address Spaces): Document the M32C named
5696         address space.
5697
5698         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
5699         __far address space.
5700         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
5701         "__far" address space for R8C and M16C processor variants.
5702         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
5703         (far_addr_space_p): New.
5704         (encode_pattern_1): Add sign and zero extend support.
5705         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
5706         (m32c_extra_constraint_p2): Add SF constraint.
5707         (m32c_legitimate_address_p): Support __far addresses.
5708         (m32c_addr_space_pointer_mode): New.
5709         (m32c_addr_space_address_mode): New.
5710         (m32c_addr_space_legitimate_address_p): New.
5711         (m32c_addr_space_legitimize_address): New.
5712         (m32c_addr_space_subset_p): New.
5713         (m32c_addr_space_convert): New.
5714         (conversions): Add __far operand patterns.
5715         (m32c_prepare_move): Force constants into registers for __far moves.
5716         (m32c_split_move): __far moves are always split.
5717         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
5718         * config/m32c/mov.md (mov<mode>_far_op1): New.
5719         (mov<mode>_far_op2): New.
5720         (movqi_op): Add __far (SF) support.
5721         (movhi_op): Likewise.
5722         (movsi_splittable): Split A1A0 also.
5723
5724 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
5725             Andrew Pinski  <pinskia@gmail.com>
5726
5727         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
5728         * doc/extend.texi: New paragraph
5729
5730 2010-10-22  Paul Koning  <ni1d@arrl.net>
5731
5732         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
5733
5734 2010-10-22  DJ Delorie  <dj@redhat.com>
5735
5736         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
5737
5738 2010-10-22  Paul Koning  <ni1d@arrl.net>
5739
5740         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
5741
5742 2010-10-22  Richard Henderson  <rth@redhat.com>
5743
5744         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
5745         cases for __builtin_fma and __builtin_fmaf.
5746
5747 2010-10-22  Richard Henderson  <rth@redhat.com>
5748
5749         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
5750         NEG+USE for vectors as well.
5751         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
5752         and splitter.
5753
5754 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
5755
5756         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
5757         SWITCH_CURTAILS_COMPILATION): Remove.
5758         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
5759         * doc/tm.texi: Regenerate.
5760         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
5761
5762 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
5763
5764         * config/i386/bdver1.md: New file.
5765         * config/i386/i386.md (include "bdver1.md"): Invoke the
5766         pipeline description for bdver1.
5767         (x86_sahf_1): Add "bdver1_decode" attribute.
5768         (*cmpfp_i_mixed): Likewise.
5769         (*cmpfp_i_sse): Likewise.
5770         (*cmpfp_i_i387): Likewise.
5771         (*cmpfp_iu_mixed): Likewise.
5772         (*cmpfp_iu_sse): Likewise.
5773         (*cmpfp_iu_387): Likewise.
5774         (*swap<mode>,*swap<mode>_1): Likewise.
5775         (fixuns_trunc<mode>hi2): Likewise.
5776         (fix_trunc<mode>si_sse): Likewise.
5777         (x86_fnstcw_1): Likewise.
5778         (x86_fldcw_1): Likewise.
5779         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
5780         (*floatsi<mode>2_vector_mixed): Likewise.
5781         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
5782         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
5783         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
5784         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
5785         (*floatsi<mode>2_vector_sse): Likewise.
5786         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
5787         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
5788         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
5789         (*mul<mode>3_1): Likewise.
5790         (*mulsi3_1_zext): Likewise.
5791         (*mulhi3_1): Likewise.
5792         (*mulqi3_1): Likewise.
5793         (*<u>mul<mode><dwi>3_1): Likewise.
5794         (*<u>mulqihi3_1): Likewise.
5795         (*<s>muldi3_highpart_1): Likewise.
5796         (*<s>mulsi3_highpart_1): Likewise.
5797         (*<s>mulsi3_highpart_zext): Likewise.
5798         (x86_64_shld): Likewise.
5799         (x86_shld): Likewise.
5800         (x86_64_shrd): Likewise.
5801         (x86_shrd): Likewise.
5802         (sqrtxf2): Likewise.
5803         (sqrt_extend<mode>xf2_i387): Likewise.
5804         (*sqrt<mode>2_sse): Likewise.
5805         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
5806         (sse_cvtsi2ssq): Likewise.
5807         (sse_cvtss2si): Likewise.
5808         (sse_cvtss2si_2): Likewise.
5809         (sse_cvtss2siq): Likewise.
5810         (sse_cvtss2siq_2): Likewise.
5811         (sse_cvttss2si): Likewise.
5812         (sse_cvttss2siq): Likewise.
5813         (sse2_cvtpi2pd): Likewise.
5814         (sse2_cvttpd2pi): Likewise.
5815         (sse2_cvtsi2sd): Likewise.
5816         (sse2_cvtsi2sdq): Likewise.
5817         (sse2_cvtsd2si): Likewise.
5818         (sse2_cvtsd2si_2): Likewise.
5819         (sse2_cvtsd2siq): Likewise.
5820         (sse2_cvtsd2siq_2): Likewise.
5821         (sse2_cvttsd2si): Likewise.
5822         (sse2_cvttsd2siq): Likewise.
5823         (*sse2_cvtpd2dq): Likewise.
5824         (*sse2_cvttpd2dq): Likewise.
5825         (sse2_cvtsd2ss): Likewise.
5826         (sse2_cvtss2sd): Likewise.
5827         (*sse2_cvtpd2ps): Likewise.
5828         (sse2_cvtps2pd): Likewise.
5829
5830 2010-10-22  Richard Guenther  <rguenther@suse.de>
5831
5832         PR middle-end/46137
5833         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
5834         remove the virtual operands if they are not needed.
5835
5836 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
5837
5838         * config/i386/i386.c (processor_costs bdver1_cost): Update
5839         insn costs and architectural parameters for bdver1.
5840
5841 2010-10-22  Richard Guenther  <rguenther@suse.de>
5842
5843         * gimple.h (gimple_register_canonical_type): Declare.
5844         * gimple.c (gimple_canonical_types): New global hashtable.
5845         (struct gimple_type_leader_entry_s): New type.
5846         (gimple_type_leader): New global cache.
5847         (gimple_lookup_type_leader): New function.
5848         (gtc_visit): Query the proper cache.
5849         (gimple_types_compatible_p): Likewise.
5850         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
5851         (gimple_canonical_type_eq): New function.
5852         (gimple_register_canonical_type): Likewise.
5853         (print_gimple_types_stats): Adjust for gimple_canonical_types.
5854         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
5855         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
5856         gimple_types_compatible_p for LTO.
5857
5858 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
5859
5860         PR target/46098
5861         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
5862         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
5863         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
5864         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
5865         (<sse>_movu<ssemodesuffix>): New expander.
5866         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
5867         (avx_movdqu<avxmodesuffix>): New expander.
5868         (*sse2_movdqu): Rename from sse2_movdqu.
5869         (sse2_movdqu): New expander.
5870
5871 2010-10-22  Richard Guenther  <rguenther@suse.de>
5872
5873         PR tree-optimization/45720
5874         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
5875         Handle negative step.
5876         (vect_enhance_data_refs_alignment): Likewise.
5877         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
5878         (vect_create_cond_for_align_checks): Likewise.
5879         (vect_create_cond_for_alias_checks): Likewise.
5880
5881 2010-10-22  Ira Rosen  <irar@il.ibm.com>
5882
5883         PR tree-optimization/46126
5884         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
5885         vectorizable_shift in case of basic block vectorization.
5886
5887 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
5888
5889         * target.h (enum opt_levels, struct default_options): New.
5890         * target.def (handle_ofast): Remove hook.
5891         (target_option.optimization): Change to
5892         target_option.optimization_table.
5893         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
5894         TARGET_OPTION_OPTIMIZATION_TABLE.
5895         (CAN_DEBUG_WITHOUT_FP): Remove.
5896         * doc/tm.texi: Regenerate.
5897         * opts.c (maybe_default_option, maybe_default_options,
5898         default_options_table): New.
5899         (default_options_optimization): Take extra parameters.  Don't
5900         assert that global_options and global_options_set are in use.  Use
5901         maybe_default_options.
5902         (decode_options): Pass extra parameters to
5903         default_options_optimization.
5904         * common.opt (falign-loops): Use value 0 with Var.
5905         (frerun-cse-after-loop, ftree-ter): Remove Init.
5906         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
5907         TARGET_OPTION_OPTIMIZATION): Remove.
5908         * targhooks.c (empty_optimization_table): New.
5909         * targhooks.h (empty_optimization_table): Declare.
5910         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
5911         * config/alpha/alpha.c (alpha_option_optimization_table,
5912         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5913         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
5914         * config/arm/arm.c (arm_option_optimization: Change to
5915         arm_option_optimization_table.
5916         (TARGET_OPTION_OPTIMIZATION): Change to
5917         TARGET_OPTION_OPTIMIZATION_TABLE.
5918         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
5919         * config/avr/avr.c (avr_option_optimization_table,
5920         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5921         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
5922         * config/cris/cris.c (cris_option_optimization): Change to
5923         cris_option_optimization_table.
5924         (TARGET_OPTION_OPTIMIZATION): Change to
5925         TARGET_OPTION_OPTIMIZATION_TABLE.
5926         * config/crx/crx.c (crx_option_optimization): Change to
5927         crx_option_optimization_table.
5928         (TARGET_OPTION_OPTIMIZATION): Change to
5929         TARGET_OPTION_OPTIMIZATION_TABLE.
5930         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
5931         * config/fr30/fr30.c (fr30_option_optimization_table,
5932         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5933         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
5934         * config/frv/frv.c (frv_option_optimization_table,
5935         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5936         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
5937         * config/h8300/h8300.c (h8300_option_optimization): Change to
5938         h8300_option_optimization_table.
5939         (TARGET_OPTION_OPTIMIZATION): Change to
5940         TARGET_OPTION_OPTIMIZATION_TABLE.
5941         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
5942         * config/i386/i386.c (ix86_option_optimization): Change to
5943         ix86_option_optimization_table.
5944         (TARGET_OPTION_OPTIMIZATION): Change to
5945         TARGET_OPTION_OPTIMIZATION_TABLE.
5946         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
5947         as initializer.
5948         * config/ia64/ia64.c (ia64_option_optimization): Change to
5949         ia64_option_optimization_table.
5950         (TARGET_OPTION_OPTIMIZATION): Change to
5951         TARGET_OPTION_OPTIMIZATION_TABLE.
5952         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
5953         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
5954         initializer.
5955         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
5956         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5957         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
5958         * config/lm32/lm32.c (lm32_option_optimization_table,
5959         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5960         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
5961         * config/m32r/m32r.c (m32r_option_optimization): Change to
5962         m32r_option_optimization_table.
5963         (TARGET_OPTION_OPTIMIZATION): Change to
5964         TARGET_OPTION_OPTIMIZATION_TABLE.
5965         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
5966         CAN_DEBUG_WITHOUT_FP): Remove.
5967         * config/mcore/mcore.c (mcore_option_optimization): Change to
5968         mcore_option_optimization_table.
5969         (TARGET_OPTION_OPTIMIZATION): Change to
5970         TARGET_OPTION_OPTIMIZATION_TABLE.
5971         * config/mep/mep.c (mep_option_optimization): Change to
5972         mep_option_optimization_table.
5973         (TARGET_OPTION_OPTIMIZATION): Change to
5974         TARGET_OPTION_OPTIMIZATION_TABLE.
5975         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
5976         * config/microblaze/microblaze.c
5977         (microblaze_option_optimization_table,
5978         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5979         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
5980         * config/mips/mips.c (mips_option_optimization_table,
5981         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5982         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
5983         * config/mmix/mmix.c (mmix_option_optimization): Change to
5984         mmix_option_optimization_table.
5985         (TARGET_OPTION_OPTIMIZATION): Change to
5986         TARGET_OPTION_OPTIMIZATION_TABLE.
5987         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
5988         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
5989         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5990         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
5991         * config/pa/pa.c (pa_option_optimization_table,
5992         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5993         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
5994         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
5995         pdp11_option_optimization_table.
5996         (TARGET_OPTION_OPTIMIZATION): Change to
5997         TARGET_OPTION_OPTIMIZATION_TABLE.
5998         * config/picochip/picochip.c (picochip_option_optimization_table,
5999         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6000         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
6001         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
6002         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6003         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
6004         * config/rx/rx.c (rx_option_optimization_table,
6005         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6006         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
6007         * config/s390/s390.c (s390_option_optimization): Change to
6008         s390_option_optimization_table.
6009         (s390_option_override): Update comment.
6010         (TARGET_OPTION_OPTIMIZATION): Change to
6011         TARGET_OPTION_OPTIMIZATION_TABLE.
6012         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
6013         * config/score/score.c (score_option_optimization_table,
6014         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6015         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
6016         * config/sh/sh.c (sh_option_optimization): Change to
6017         sh_option_optimization_table.
6018         (TARGET_OPTION_OPTIMIZATION): Change to
6019         TARGET_OPTION_OPTIMIZATION_TABLE.
6020         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
6021         (sh_option_override, expand_block_move, multcosts, find_barrier,
6022         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
6023         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
6024         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
6025         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
6026         instead of TARGET_SMALLCODE.
6027         * config/sh/sh.opt (mspace): Make into an alias for -Os.
6028         * config/sparc/sparc.c (sparc_option_optimization_table,
6029         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6030         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
6031         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
6032         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6033         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
6034         * config/v850/v850.c (v850_option_optimization): Change to
6035         v850_option_optimization_table.
6036         (TARGET_OPTION_OPTIMIZATION): Change to
6037         TARGET_OPTION_OPTIMIZATION_TABLE.
6038         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
6039         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
6040         xtensa_option_optimization_table.
6041         (TARGET_OPTION_OPTIMIZATION): Change to
6042         TARGET_OPTION_OPTIMIZATION_TABLE.
6043         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
6044
6045 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
6046
6047         Based on the CFString implementation in FSF apple/trunk branch.
6048
6049         * target.def (objc_construct_string): New Hook.
6050         * doc/tm.texi (objc_construct_string): Document.
6051         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
6052         * config/t-darwin: Amend build rules for darwin.o.
6053         * config/darwin.opt: Add cfstrings flags.
6054         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
6055         (darwin_objc_construct_string): New.
6056         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
6057         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
6058         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
6059         (darwin_fold_builtin): Likewise.
6060         (darwin_build_constant_cfstring): Likewise.
6061         (darwin_objc_construct_string): Likewise.
6062         (darwin_cfstring_p): Likewise.
6063         (darwin_enter_string_into_cfstring_table): Likewise.
6064         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
6065         * config/darwin.c (darwin_running_cxx): New var.
6066         (machopic_select_section): Return cfstring_constant_object_section.
6067         (darwin_override_options): Set darwin_running_cxx.
6068         (add_builtin_field_decl): New.
6069         (darwin_init_cfstring_builtins): New.
6070         (darwin_build_constant_cfstring): New.
6071         (darwin_fold_builtin): New.
6072         (cfstring_hash): New.
6073         (cfstring_eq): New.
6074         (darwin_enter_string_into_cfstring_table): New.
6075         * config/darwin-sections.def (cfstring_constant_object_section): New.
6076         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
6077         (TARGET_OBJC_CONSTRUCT_STRING): Define.
6078
6079 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6080
6081         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
6082         TYPE_STUB_DECL instead of TREE_CHAIN.
6083         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
6084         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
6085         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
6086         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
6087         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
6088         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
6089         Likewise.
6090         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
6091
6092 2010-10-22  Jie Zhang  <jie@codesourcery.com>
6093
6094         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
6095         (copy_blkmode_from_reg): Likewise.
6096         (read_complex_part): Likewise.
6097         (expand_expr_real_1): Calculate packedp and pass it to
6098         extract_bit_field.
6099         * expr.h (extract_bit_field): Update declaration.
6100         * calls.c (store_unaligned_arguments_into_pseudos): Update call
6101         to extract_bit_field.
6102         * expmed.c (extract_fixed_bit_field): Update calls to
6103         extract_fixed_bit_field.
6104         (store_split_bit_field): Likewise.
6105         (extract_bit_field_1): Add new argument packedp.
6106         (extract_bit_field): Add new argument packedp.
6107         (extract_fixed_bit_field): Add new argument packedp and let
6108         packed attribute override volatile.
6109         * stmt.c (expand_return): Update call to extract_bit_field.
6110
6111 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6112
6113         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
6114
6115 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6116
6117         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
6118         of gcc_checking_assert.
6119         * sel-sched.c (code_motion_process_successors): Likewise.
6120
6121 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
6122
6123         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
6124         when stopping because of a different locus on edge or insn.
6125         (try_optimize_cfg): Add comment.
6126         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
6127         block is a forwarder block, propagate locus on the edge.
6128         (cfg_layout_merge_blocks): Likewise.
6129
6130 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
6131
6132         PR target/45946
6133         * config/i386/i386.md (*pushti2): New insn pattern.
6134         (pushti2 splitter): New insn splitter.
6135         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
6136         DWI mode iterator.
6137
6138 2010-10-21  Paul Koning  <ni1d@arrl.net>
6139
6140         * config/pdp11/pdp11-protos.md (arith_operand,
6141         const_immediate_operand, expand_shift_operand,
6142         immediate15_operand): Delete
6143         * config/pdp11/pdp11.c: Ditto.
6144         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
6145         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
6146         EXTRA_CONSTRAINT): Delete.
6147         * config/pdp11/pdp11.md (various): Use standard constraints
6148         instead of removed ones.
6149         * config/pdp11/constraints.md: New file.
6150         * config/pdp11/predicates.md: New file.
6151
6152 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
6153
6154         PR c/45834
6155         * alias.c (true_dependence_1): Remove obsolete check for QImode.
6156         (may_alias_p): Ditto.
6157
6158 2010-10-21  Martin Jambor  <mjambor@suse.cz>
6159
6160         PR tree-optimization/45875
6161         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
6162
6163 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6164
6165         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
6166         variables.
6167         (create_new_def_for): Likewise.
6168
6169 2010-10-21  Nick Clifton  <nickc@redhat.com>
6170
6171         * config/mn10300/mn10300.c: Fold code to 80-character width.
6172         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6173         MEM, CONST_INT and CONST_DOUBLE.
6174         (targetm): Move initialization to end of file.
6175         (print_operand): Rename to mn10300_print_operand.
6176         (print_operand_address): Rename to mn10300_print_operand_address.
6177         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
6178         (expand_prologue): Rename to mn10300_expand_prologue.
6179         (expand_epilogue): Rename to mn10300_expand_epilogue.
6180         (initial_offset): Rename to mn10300_initial_offset.
6181         (function_arg): Rename to mn10300_function_arg.
6182         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
6183         (symbolic_operand): Rename to mn10300_symbolic_operand.
6184         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
6185         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
6186         * config/mn10300/mn10300-protos.h: Update prototypes.
6187         * config/mn10300/mn10300.h: Fold code to 80-character width.
6188         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6189         MEM, CONST_INT and CONST_DOUBLE.
6190         (CPP_SPEC): Move to...
6191         (TARGET_CPU_CPP_BUILTINS): ... here.
6192         * config/mn10300/mn10300.md: Fold code to 80-character width.
6193         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6194         MEM, CONST_INT and CONST_DOUBLE.
6195
6196 2010-10-21  Ira Rosen  <irar@il.ibm.com>
6197
6198         PR tree-optimization/46049
6199         PR tree-optimization/46052
6200         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
6201         (vect_get_slp_defs): Add arguments.
6202         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
6203         operands to vect_get_slp_defs.
6204         (vectorizable_reduction): Fix comment, pass scalar operands to
6205         vect_get_slp_defs.
6206         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
6207         type to determine number of units in the created vector.
6208         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
6209         (vectorizable_conversion): Fix comment.
6210         (vectorizable_shift): New function.
6211         (vectorizable_operation): Move code that handles shifts to
6212         vectorizable_shift.
6213         (vectorizable_type_demotion): Fix comment, pass scalar operands to
6214         vect_get_slp_defs.
6215         (vectorizable_type_promotion, vectorizable_store): Likewise.
6216         (vectorizable_condition): Fix comment.
6217         (vect_analyze_stmt): Call vectorizable_shift.
6218         (vect_transform_stmt): Likewise.
6219         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
6220         Use it as the operand to create vectors for, except reduction
6221         initial definition and store.  Use operands type.
6222         (vect_get_slp_defs): Add new arguments.  Pass them to
6223          vect_get_constant_vectors.
6224
6225 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6226
6227         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
6228         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
6229         * cfghooks.c (fixup_reorder_chain): Likewise.
6230         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
6231         * cgraph.c (cgraph_add_thunk): Likewise.
6232         (cgraph_create_edge_1): Likewise.
6233         (cgraph_create_virtual_clone): Likewise.
6234         * ddg.c (add_cross_iteration_register_deps): Likewise.
6235         * dwarf2out.c (modified_type_die): Likewise.
6236         * emit-rtl.c (set_mem_alias_set): Likewise.
6237         * ggc-zone.c (zone_allocate_marks): Likewise.
6238         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
6239         * gimple.c (iterative_hash_gimple_type): Likewise.
6240         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
6241         (create_single_exit_edge): Likewise.
6242         * haifa-sched.c (choose_ready): Likewise.
6243         * lto-streamer-in.c (input_gimple_stmt): Likewise.
6244         * passes.c (execute_todo): Likewise.
6245         * sched-ebb.c (begin_schedule_ready): Likewise.
6246         * sel-sched.c (code_motion_process_successors): Likewise.
6247         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
6248         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
6249         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
6250         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
6251         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
6252         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
6253         (ssa_conflicts_add): Likewise.
6254         * tree-ssa-copy.c (replace_exp): Likewise.
6255         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
6256         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
6257         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
6258         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
6259         (compute_antic): Likewise.
6260         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
6261         (add_dependence): Likewise.
6262         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
6263         * tree-vrp.c (supports_overflow_infinity): Likewise.
6264         (make_overflow_infinity, negative_overflow_infinity): Likewise.
6265         (avoid_overflow_infinity, register_new_assert_for): Likewise.
6266         (process_assert_insertions_for): Likewise.
6267         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
6268         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
6269         (intersect_loc_chains, variable_merge_over_cur): Likewise.
6270
6271 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6272
6273         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
6274         * reload1.c (has_nonexceptional_receiver): Likewise.
6275         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
6276         (create_new_def_for): Likewise.
6277         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
6278         (merge_phi_nodes): Likewise.
6279         (has_abnormal_incoming_edge_p): Delete.
6280
6281 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
6282
6283         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
6284
6285 2010-10-21  Richard Guenther  <rguenther@suse.de>
6286             Michael Matz  <matz@suse.de>
6287
6288         PR tree-optimization/45764
6289         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
6290         Adjust initial misalignment for negative DR_STEP.
6291         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
6292         do not have the same alignment over the whole iteration domain.
6293
6294 2010-10-21  Richard Guenther  <rguenther@suse.de>
6295
6296         PR tree-optimization/46111
6297         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
6298
6299 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6300
6301         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
6302
6303 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6304
6305         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
6306         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
6307
6308 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6309
6310         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
6311         signal_frame.
6312         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
6313
6314 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6315
6316         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
6317         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
6318
6319 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
6320
6321         * basic-block.h (find_fallthru_edge): Define.
6322         * cfgcleanup.c (merge_blocks_move): Use it.
6323         (try_crossjump_bb): Likewise.
6324         * cfglayout.c (fixup_reorder_chains): Likewise.
6325         (fixup_fallthru_exit_predecessor): Likewise.
6326         * cfgrtl.c (rtl_split_edge): Likewise.
6327         (rtl_verify_flow_info): Likewise.
6328         * function.c (thread_prologue_and_epilogue_insns): Likewise.
6329         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
6330         * ifcvt.c (block_fallthru): Likewise.
6331         * reload1.c (fixup_abnormal_edges): Likewise.
6332         * sched-ebb.c (being_schedule_ready): Likewise.
6333         (schedule_ebb): Likwise.
6334         * sched-rgn.c (find_single_block_region): Likewise.
6335         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
6336         * tree-complex.c (expand_complex_move): Likewise.
6337         * sched-int.h (find_fallthru_edge): Rename to...
6338         (find_fallthru_edge_from): ...this.
6339         * haifa-sched.c (find_fallthru_edge): Rename to...
6340         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
6341         (init_before_recovery): Call find_fallthru_edge_from.
6342         * sel-sched-ir.c (merge_fences): Likewise.
6343         * sel-sched.c (in_fallthru_bb_p): Likewise.
6344         (move_cond_jump): Likewise.
6345
6346 2010-10-20  Paul Koning  <ni1d@arrl.net>
6347
6348         * config/pdp11/pdp11.md (various): Fix conditions on a number of
6349         insn to check for target 11/40 or higher.
6350
6351 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
6352
6353         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
6354         bool instead of a tree.
6355         (c_parser_objc_method_decl): Added bool argument.  Updated call to
6356         objc_build_method_signature.
6357         (c_parser_objc_method_definition): Do not call
6358         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
6359         c_parser_objc_method_decl and objc_start_method_definition.
6360         (c_parser_objc_methodproto): Do not call objc_set_method_type.
6361         Updated calls to c_parser_objc_method_type,
6362         c_parser_objc_method_decl and objc_add_method_declaration.
6363
6364 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
6365
6366         PR tree-optimization/45919
6367         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
6368         array members.
6369
6370         PR tree-optimization/46066
6371         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
6372         instead of gsi_last_bb.
6373
6374 2010-10-20  DJ Delorie  <dj@redhat.com>
6375
6376         * config/m32c/m32c.c (m32c_option_override): Always disable
6377         function-cse in 16-bit mode.  Indirect calls are always worse than
6378         direct calls as there is no 16-bit indirect call opcode.
6379         (m32c_override_options_after_change): New, likewise.
6380
6381 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
6382
6383         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
6384         emitting the conditional move in the inner mode of the SUBREG.
6385
6386 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
6387
6388         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
6389         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
6390         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6391         (ia64_preferred_reload_class): Make static.  Change rclass argument
6392         and result types from enum reg_class to reg_class_t.
6393
6394 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
6395
6396         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
6397         call for single operand expression.
6398
6399 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
6400
6401         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
6402         if there is a call statement to pure or const function in the block.
6403
6404 2010-10-20  Paul Koning  <pkoning@equallogic.com>
6405
6406         Fix several build errors for pdp11 target.
6407         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
6408         (cbranchdf4): Conditional on TARGET_FPU.
6409         (movdf): Ditto; correct alternatives check.
6410         (movmemhi): Fix predicate and constraint.
6411         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
6412
6413 2010-10-20  Richard Guenther  <rguenther@suse.de>
6414
6415         PR lto/45667
6416         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
6417         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
6418         (verify_gimple_assign_single): Disable ADDR_EXPR type check
6419         when in LTO.
6420
6421 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
6422
6423         PR fortran/42169
6424         * ira-emit.c (store_can_be_removed_p): Return false instead of
6425         gcc_unreachable.
6426
6427 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
6428
6429         * fold-const.c (fold_binary_loc): New transformation.
6430
6431 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
6432
6433         PR target/46085
6434         * config/i386/sse.md (reduc_splus_v8sf): Updated.
6435         (reduc_splus_v4df): Likewise.
6436
6437 2010-10-20  Richard Guenther  <rguenther@suse.de>
6438
6439         PR tree-optimization/45860
6440         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
6441         conditional store replacement for non-register type stores.
6442
6443 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
6444
6445         * stor-layout.c (skip_simple_constant_arithmetic): New function.
6446         (self_referential_size): Use it instead of skip_simple_arithmetic.
6447
6448 2010-10-20  Olivier Hainque  <hainque@adacore.com>
6449
6450         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
6451         If the current function calls eh_return, claim live all registers
6452         that we need to check for liveness otherwise.
6453
6454 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
6455
6456         * c-decl.c (c_write_global_declarations): Call
6457         objc_write_global_declarations when compiling Objective-C.
6458         * c-lang.c (finish_file): Removed.
6459
6460 2010-10-19  DJ Delorie  <dj@redhat.com>
6461
6462         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
6463         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
6464         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
6465         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
6466         * doc/tm.texi: Regenerate.
6467         * targhooks.h (default_label_align_after_barrier_max_skip,
6468         default_loop_align_max_skip, default_label_align_max_skip,
6469         default_jump_align_max_skip): Declare.
6470         * target.def (label_align_after_barrier_max_skip): New.
6471         (loop_align_max_skip): New.
6472         (label_align_max_skip): New.
6473         (jump_align_max_skip): New.
6474         * system.h (poison): Add those macros to the list.
6475         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
6476         (LOOP_ALIGN_MAX_SKIP): Remove.
6477         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
6478         (JUMP_ALIGN_MAX_SKIP): Remove.
6479         (default_label_align_after_barrier_max_skip): New.
6480         (default_loop_align_max_skip): New.
6481         (default_label_align_max_skip): New.
6482         (default_jump_align_max_skip): New.
6483         (compute_alignments): Use the new hooks.
6484         (shorten_branches): Likewise.
6485
6486 2010-10-19  Richard Henderson  <rth@redhat.com>
6487
6488         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
6489         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
6490         (fma4i_fmadd_<mode>): New.
6491         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
6492         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
6493         standard fma patterns.
6494         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
6495         enable for FMA.
6496         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
6497         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
6498         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
6499
6500 2010-10-19  Paul Koning  <pkoning@equallogic.com>
6501
6502         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
6503         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
6504
6505 2010-10-19  Richard Henderson  <rth@redhat.com>
6506
6507         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
6508         (fmadf4, *fmsdf4, *nfmadf4): New.
6509         (fmaxf4, *fmsxf4, *nfmaxf4): New.
6510
6511 2010-10-19  Michael Eager  <eager@eagercon.com>
6512
6513         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
6514         Use sjlj unwind info for exceptions.
6515
6516 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
6517
6518         PR fortran/43414
6519         * dwarf2out.c (add_calling_convention_attribute): Flag main
6520         Fortran subroutine with DW_AT_main_subprogram.
6521
6522 2010-10-19  Nick Clifton  <nickc@redhat.com>
6523
6524         * config/rx/rx.c (rx_function_value): Small integer types are
6525         promoted to SImode.
6526         (rx_promote_function_mode): New function.
6527         (TARGET_PROMOTE_FUNCTION_MODE): Define.
6528
6529 2010-10-19  Nick Clifton  <nickc@redhat.com>
6530
6531         * config/mep/mep.c (mep_print_operand): Use
6532         targetm.strip_name_encoding.
6533         (mep_output_aligned_common): Likewise.
6534
6535 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
6536
6537         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
6538
6539 2010-10-18  Richard Henderson  <rth@redhat.com>
6540
6541         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
6542         (fma (neg a) (neg b) c) and (fma a (neg b) c).
6543
6544 2010-10-18  Richard Henderson  <rth@redhat.com>
6545
6546         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
6547         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
6548         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
6549         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
6550         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
6551         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
6552         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
6553         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
6554         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
6555         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
6556         (bdesc_multi_arg): Remove the corresponding builtins.
6557         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
6558         (UNSPEC_FMA4_FMSUBADD): Remove.
6559         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
6560         * config/i386/sse.md (FMA4MODEF4): Remove.
6561         (FMAMODE): Add.
6562         (fma<mode>4): New expander.
6563         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
6564         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
6565         (*fma4i_fmsub_<mode>): Similarly.
6566         (*fma4i_fnmadd_<mode>): Similarly.
6567         (*fma4i_fnmsub_<mode>): Similarly.
6568         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
6569         with the first operand.
6570         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
6571         of explicit arithmetic.  Macroize with AVXMODEF2P.
6572         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
6573         (xop_frcz<mode>2): Macroize with FMAMODE.
6574         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
6575         the first operand.
6576         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
6577         extra negations.
6578         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
6579         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
6580         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
6581         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
6582         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
6583         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
6584         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
6585         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
6586
6587 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
6588
6589         PR rtl-optimization/45966
6590         * combine.c (try_combine): If added_sets_2, deal with the case
6591         where i0 feeds i1 and i1 feeds i2.
6592
6593 2010-10-18  Jan Hubicka  <jh@suse.cz>
6594
6595         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
6596         preserve flags before trying to guess on visibility.
6597         (varpool_externally_visible_p): New function.
6598         (function_and_variable_visibility): Use it.
6599
6600 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
6601
6602         Implemented parsing @synthesize and @dynamic for Objective-C.
6603         * c-parser.c (c_parser_external_declaration): Recognize
6604         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
6605         (c_parser_objc_at_synthesize_declaration): New.
6606         (c_parser_objc_at_dynamic_declaration): New.
6607
6608 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
6609
6610         * c-parser.c (c_parser_objc_class_declaration): After finding an
6611         error, parse the whole declaration then reset parser->error.
6612
6613 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
6614
6615         PR target/46041
6616         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
6617         * builtins.c (mode_has_fma): Ditto.
6618
6619 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
6620
6621         PR target/36898
6622         PR middle-end/43760
6623         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
6624
6625 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
6626
6627         * config/i386/i386.c (ix86_option_override_internal): Define and
6628         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
6629         default.
6630         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
6631         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
6632
6633 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
6634
6635         Merge from 'apple/trunk' branch on FSF servers.
6636         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
6637         following Objective-C change:
6638
6639         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
6640
6641         Radar 4301047
6642         * c-parse.in (objc_quals): Build objc qualifier list same way
6643         as gcc-3.3
6644
6645 2010-10-18  Jan Hubicka  <jh@suse.cz>
6646
6647         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
6648         function_and_variable_visibility): Revert accidental commit.
6649
6650 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
6651
6652         Merge from 'apple/trunk' branch on FSF servers.
6653         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
6654         the following Objective-C change:
6655
6656         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
6657
6658         Radar 4204796
6659         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
6660         'volatilized' type used in a typeof operator.
6661
6662 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
6663
6664         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
6665         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
6666         rewrite modelled on gimple_purge_dead_eh_edges.
6667         (gimple_purge_all_dead_abnormal_call_edges): New function.
6668         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
6669         directly instead of through gimple_purge_dead_abnormal_call_edges.
6670         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
6671         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
6672         removed AB side-effects from one of its statements.
6673         (init_pre): Initialize need_ab_cleanup.
6674         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
6675         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
6676
6677 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
6678
6679         PR c/46015
6680         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
6681         on computed goto argument.
6682
6683 2010-10-18  Richard Guenther  <rguenther@suse.de>
6684
6685         PR tree-optimization/45967
6686         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
6687         (could_have_pointers): Likewise.
6688         (handle_rhs_call, handle_const_call, handle_pure_call,
6689         find_func_aliases, intra_create_variable_infos): Remove calls to them.
6690         (struct fieldoff): Add must_have_pointers field.
6691         (type_must_have_pointers): New function.
6692         (field_must_have_pointers): Likewise.
6693         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
6694         Adjust field merging.
6695         (create_function_info_for): May-have-pointers of varinfo is
6696         almost always true.
6697         (create_variable_info_for_1): Likewise.
6698
6699 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
6700
6701         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
6702         of operands to vec_concat.
6703
6704 2010-10-18  Richard Guenther  <rguenther@suse.de>
6705
6706         PR lto/44950
6707         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
6708         also clear references to entries of it.
6709
6710 2010-10-18  Andi Kleen  <ak@linux.intel.com>
6711
6712         PR other/43448
6713         * gccbug.in: Remove.
6714         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
6715         (doc, distclean, install-common): Remove reference to gccbug.
6716         * configure: Regenerate.
6717         * configure.ac (all_outputs): Remove gccbug.
6718         * doc/configfiles.texi: Remove references to gccbug.
6719         * doc/sourcebuild.texi: Dito.
6720
6721 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
6722
6723         PR middle-end/46019
6724         * fold-const.c (fold_binary_loc): If integer_pow2p has
6725         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
6726
6727 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
6728             Jeremie Salvucci  <jeremie.salvucci@free.fr>
6729
6730         * gengtype.c (verbosity_level): Add variable.
6731         (set_gc_used): Count variables for verbosity.
6732         (close_output_files): Backing up files, counting written ones
6733         verbosily.
6734         (write_types): Count emitted functions for verbosity. Added
6735         debug messages.
6736         (write_enum_defn): Count structures for verbosity. Added debug
6737         messages.
6738         (gengtype_long_options): Add "verbose" & "backupdir".
6739         (print_usage): Ditto.
6740         (main): Verbose display of parsed files.
6741
6742         * gengtype.h (verbosity_level): Add declaration.
6743
6744 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
6745
6746         * gengtype.c (parse_program_options): Add allocation of
6747         plugin_files, and correct test on nb_plugin_files.
6748
6749 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
6750
6751         Merge from 'apple/trunk' branch on FSF servers.
6752
6753         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
6754
6755         Radar 4133425
6756         * c-decl.c (undeclared_variable): Issue diagnostic on
6757         private 'ivar' access.
6758
6759 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
6760
6761         PR target/46051
6762         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
6763         generated sequence to match *avx_vperm2f128<mode>_nozero.
6764         (vec_interleave_lowv4df): Ditto.
6765         (vec_interleave_highv8sf): Ditto.
6766         (vec_interleave_lowv8sf): Ditto.
6767
6768 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
6769
6770         * libgcov.c (create_file_directory): Enable it for win32 case.
6771         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
6772         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
6773         (GCOV_PREFIX_SKIP): Likewise.
6774
6775 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
6776
6777         * doc/objc.texi (GNU Objective-C runtime API): New section.
6778         (Modern GNU Objective-C runtime API): New section.
6779         (Traditional GNU Objective-C runtime API): New section.
6780         (Executing code before main): Mention that this section is
6781         specific to the GNU Objective-C runtime.
6782         (Garbage Collection): Same.
6783
6784 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
6785
6786         * c-parser.c (c_parser_for_statement): Move initialization of
6787         cond and incr before if.
6788
6789 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
6790
6791         * target.def (preferred_output_reload_class): New hook.
6792         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
6793         * doc/tm.texi: Regenerate.
6794         * targhooks.c (default_preferred_output_reload_class): New function.
6795         * targhooks.h (default_preferred_output_reload_class): Declare.
6796         * reload.c (find_dummy_reload): Change rclass argument type from
6797         enum reg_class to reg_class_t. Change this_alternative array type
6798         from enum reg_class to reg_class_t.
6799         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
6800         (push_reload): Change preferred_class variable type to reg_class_t.
6801         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
6802         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
6803         argument type from enum reg_class to reg_class_t. Use
6804         HARD_REGISTER_NUM_P predicate.
6805         * recog.h (reg_fits_class_p): Update prototype.
6806
6807         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
6808         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
6809         Remove.
6810         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
6811         static. Change regclass argument and result types from enum reg_class
6812         to reg_class_t.
6813         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
6814
6815 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
6816
6817         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
6818         visibility enum, and handle @package.
6819
6820 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
6821
6822         * doc/objc.texi (What you can and what you cannot do in +load):
6823         Document that sending messages to constant string objects in +load
6824         is not guaranteed to work.
6825
6826 2010-10-16  Jan Hubicka  <jh@suse.cz>
6827
6828         PR middle-end/44206
6829         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
6830         existence of refrences before removing the function.
6831
6832 2010-10-16  Jan Hubicka  <jh@suse.cz>
6833
6834         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
6835         only_called_at_startup and only_called_at_exit.
6836         (cgraph_propagate_frequency): Compute only_called_at_startup and
6837         only_called_at_exit.
6838         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
6839         only_called_at_exit.
6840         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
6841         flags.
6842         * predict.c (compute_function_frequency): Initialize the new flags.
6843
6844 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
6845
6846         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
6847         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
6848         on the bounds of its domain.
6849         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
6850
6851 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
6852
6853         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
6854         * config/avr/avr-protos.h (preferred_reload_class): Remove.
6855         * config/avr/avr.c (preferred_reload_class): Remove.
6856         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
6857         * config/pa/pa.c (emit_move_sequence): Update comment
6858         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
6859         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
6860         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
6861         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
6862         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
6863         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
6864         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
6865         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
6866         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
6867         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
6868         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
6869         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
6870         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
6871
6872 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
6873
6874         * opts.c (set_fast_math_flags,
6875         set_unsafe_math_optimizations_flags): Make static.
6876         * toplev.h (set_fast_math_flags,
6877         set_unsafe_math_optimizations_flags): Remove prototypes.
6878
6879 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
6880
6881         * config/arm/arm.c (arm_option_optimization): Set
6882         flag_section_anchors to 1 not 2.
6883         * config/i386/i386.c (ix86_option_override_internal): Check
6884         global_options_set.x_flag_zee and
6885         global_options_set.x_flag_omit_frame_pointer.
6886         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
6887         flag_zee to 2.
6888         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
6889         global_options_set.x_flag_omit_frame_pointer.
6890         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
6891         opts->x_flag_section_anchors to 1 not 2.
6892         * config/sh/sh.c (sh_option_optimization): Don't set
6893         flag_schedule_insns to 2.
6894         (sh_option_override): Check
6895         global_options_set.x_flag_schedule_insns.
6896         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
6897
6898 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
6899
6900         * configure.ac: Make sure inhibit_libc remains false for mingw targets
6901         as cross.
6902         * configure: Regenerated.
6903
6904 2010-10-15  Xinliang David Li  <davidxl@google.com>
6905
6906         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
6907         function.
6908         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
6909         into a recursive function.
6910
6911 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
6912
6913         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
6914         (*movdfcc_1): ditto.
6915
6916 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
6917
6918         * target.def (target_option.init_struct): New hook.
6919         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
6920         * doc/tm.texi: Regenerate.
6921         * hooks.c (hook_void_gcc_optionsp): New.
6922         * hooks.h (hook_void_gcc_optionsp): Declare.
6923         * langhooks-def.h (lhd_init_options_struct): Remove.
6924         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
6925         * langhooks.c (lhd_init_options_struct): Remove.
6926         * opts.c (init_options_struct): Also call
6927         targetm.target_option.init_struct.
6928         * config/i386/i386.c (ix86_option_init_struct,
6929         TARGET_OPTION_INIT_STRUCT): New.
6930         (ix86_option_optimization): Move some settings to
6931         ix86_option_init_struct.
6932         * config/pdp11/pdp11.c (pdp11_option_init_struct,
6933         TARGET_OPTION_INIT_STRUCT): New.
6934         (pdp11_option_optimization): Move some settings to
6935         pdp11_option_init_struct.
6936         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
6937         rs6000_option_init_struct.  Use options structure pointer.
6938         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
6939         * config/s390/s390.c (s390_option_init_struct,
6940         TARGET_OPTION_INIT_STRUCT): New.
6941         (s390_option_optimization): Don't set
6942         flag_asynchronous_unwind_tables here.
6943         * config/sh/sh.c (sh_option_init_struct,
6944         TARGET_OPTION_INIT_STRUCT): New.
6945         (sh_option_optimization): Don't set flag_finite_math_only here.
6946         * config/spu/spu.c (spu_option_optimization): Replace by
6947         spu_option_optimization.  Use options structure pointer.
6948         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
6949
6950 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6951
6952         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
6953
6954         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
6955         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
6956         (Standard names): Document fma.
6957
6958         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
6959         __FP_FAST_FMAF, __FP_FAST_FMAL.
6960
6961         * builitns.c (expand_builtin_mathfn_ternary): New function for
6962         expanding ternary math functions, like fma.
6963         (expand_builtin): Call it for the fma builtins.
6964
6965         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
6966         ops at present.
6967
6968         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
6969         vectorizable functions to support vectorizing fma.
6970
6971         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
6972         Handle fma builtins.
6973
6974         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
6975         (UNSPEC_VSX_MSUB): Ditto.
6976         (UNSPEC_VSX_NMADD): Ditto.
6977         (UNSPEC_VSX_NMSUB): Ditto.
6978         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
6979         of UNSPEC. Renumber combiner patterns.
6980         (vsx_fmsub<mode>4*): Ditto.
6981         (vsx_fnmadd<mode>4*): Ditto.
6982         (vsx_fnmsub<mode>4*): Ditto.
6983
6984         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
6985         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
6986         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
6987         (altivec_vmaddfp_1): Ditto.
6988         (altivec_vmaddfp_2): Ditto.
6989         (atlivec_mulv4sf3): Ditto.
6990         (altivec_vnmsubfp): Ditto.
6991         (altivec_vnmsubfp_1): Ditto.
6992         (altivec_vnmsubfp_2): Ditto.
6993         (altivec_vnmsubfp_3): Delete.
6994
6995         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
6996         (fmasf4_fpr): Ditto.
6997         (fmssf4_fpr): Ditto.
6998         (fnmasf4_fpr): Ditto.
6999         (fnmssf4_fpr): Ditto.
7000         (fmadf4): Ditto.
7001         (fmadf4_fpr): Ditto.
7002         (fmsdf4_fpr): Ditto.
7003         (fnmadf4_fpr): Ditto.
7004         (fnmsdf4_fpr): Ditto.
7005
7006         * optabs.h (OTI_fma): Add fma optab.
7007         (fma_optab): Ditto.
7008
7009         * genopinit.c (optabs): Set fma optab.
7010
7011         * rtl.def (FMA): Add FMA rtl.
7012
7013         * tree.h (mode_has_fma): New function to return if MODE supports a
7014         fast multiply and add instruction.
7015         * builtins.c (mode_has_fma): Ditto.
7016
7017 2010-10-15  Jan Hubicka  <jh@suse.cz>
7018
7019         * lto-streamer-out.c (write_symbol): Use pointer set of seen
7020         objects instead of bitmap.
7021         (produce_symtab): Likewise; output defined symbols first.
7022
7023 2010-10-15  Jie Zhang  <jie@codesourcery.com>
7024
7025         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
7026         Option Summary and Index.
7027
7028 2010-10-15  Richard Guenther  <rguenther@suse.de>
7029
7030         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
7031         for automatic variables again.
7032
7033 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7034
7035         * doc/extend.texi (Variable Length): Don't refer to VLAs not
7036         conforming to C99.
7037
7038 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7039
7040         * config/rx/rx.c (rx_option_optimization): Change to
7041         rx_override_options_after_change.  Don't change
7042         flag_lto_compression_level.  Don't check for changes to whether
7043         FPU instructions can be used.  Check and set only
7044         flag_finite_math_only, not other fast-math flags.
7045         (rx_option_override): Call rx_override_options_after_change.
7046         (TARGET_OPTION_OPTIMIZATION): Remove.
7047         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
7048
7049 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7050
7051         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
7052         disable section anchors for lang_hooks.name[4] != 'O'.
7053
7054 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7055
7056         * config/frv/frv.c (frv_option_optimization,
7057         TARGET_OPTION_OPTIMIZATION): Remove.
7058         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
7059
7060 2010-10-15  Michael Matz  <matz@suse.de>
7061
7062         * cgraphunit.c (clone_of_p): Define unconditionally.
7063
7064 2010-10-15  Richard Guenther  <rguenther@suse.de>
7065
7066         PR lto/45957
7067         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
7068
7069 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
7070
7071         * ifcvt.c (find_active_insn_before): New function.
7072         (find_active_insn_after): New function.
7073         (cond_exec_process_if_block): Use new functions to replace
7074         prev_active_insn() and next_active_insn().
7075
7076 2010-10-14  Yao Qi  <yao@codesourcery.com>
7077
7078         PR target/45447
7079         * config/arm/arm.c (arm_build_builtin_va_list): Assign
7080         va_list_name to TYPE_STUB_DECL (va_list_type).
7081
7082 2010-10-14  Jan Hubicka  <jh@suse.cz>
7083
7084         PR middle-end/45621
7085         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
7086         redirected to clone, be happy.
7087         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
7088         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
7089         former_clone_of unconditionally.
7090
7091 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7092
7093         Merge from FSF apple 'trunk' branch.
7094         2006 Fariborz Jahanian  <fjahanian@apple.com>
7095
7096         Radars 4436866, 4505126, 4506903, 4517826
7097         * c-parser.c (c_parser, objc_property_attr_context) New flag.
7098         (c_lex_one_token): Handle property attributes.
7099         (c_parser_external_declaration): Handle @property.
7100         (c_parser_declaration_or_fndef): Warn on invalid attributes before
7101         @alias, @class, @end and @property objc keywords.
7102         (c_parser_objc_methodprotolist): Handle @property.
7103         (c_parser_objc_property_attrlist): New.
7104         (c_parser_objc_at_property): New.
7105         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
7106         (build_modify_expr): Likewise.
7107
7108 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
7109
7110         PR tree-optimization/46008
7111         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
7112
7113 2010-10-14  Richard Guenther  <rguenther@suse.de>
7114
7115         PR tree-optimization/44913
7116         * tree-data-ref.c (disjoint_objects_p): Remove.
7117         (dr_may_alias_p): Simplify.  Only hand the base object to
7118         the alias-oracle.
7119         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
7120         some more trees, bail out instead of asserting.
7121         (ptr_derefs_may_alias_p): Likewise.  Export.
7122         (refs_may_alias_p_1): Handle STRING_CSTs.
7123         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
7124
7125 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
7126
7127         PR c/45969
7128         * c-typeck.c (build_binary_op): Don't try to compute a semantic
7129         type with excess precision for boolean operations.
7130
7131 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
7132             Basile Starynkevitch  <basile@starynkevitch.net>
7133
7134         * gengtype.c:  Include getopt.h and version.h.
7135
7136         (lang_bitmap, struct outf, outf_p)
7137         (get_output_file_with_visibility, oprintf): Definitions moved to
7138         gengtype.h
7139         (output_files, header_file, srcdir, srcdir_len, this_file)
7140         (do_dump): No more static variables.
7141         (do_debug): New.
7142         (dbgprint_count_type_at): Added new function.
7143         (gengtype_long_options): New.
7144         (print_usage, print_version, parse_program_options): New.
7145         (main): Call parse_program_options, and removed old option
7146         handling code.  Added some debug output.
7147
7148         * gengtype.h:  Updated copyright year.
7149         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
7150         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
7151         Moved from gengtype.c to here.
7152         (do_debug, read_state_filename, write_state_filename): New variables.
7153         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
7154
7155         * Makefile.in:
7156         (REVISION): Always defined.
7157         (version.o): Removed ifdef REVISION_c.
7158         (s-gtype): Pass arguments to build/gengtype program.
7159         (build/version.o): Added building rule.
7160         (build/gengtype$(build_exeext)): Added build/version.o.
7161
7162 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7163
7164         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
7165         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
7166         __strong macros.
7167
7168 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
7169
7170         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
7171         may_trap_or_fault_p instead of may_trap_p predicate.
7172         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
7173         (substitute_placeholder_in_expr): Likewise.
7174         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
7175         flag on MEM_REF nodes.
7176         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
7177         flags on INDIRECT_REF nodes.
7178
7179 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
7180
7181         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
7182         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
7183         (arm*-*-eabi*) <tm_file>: Likewise.
7184         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
7185         (frv-*-*linux*) <tm_file>: Likewise.
7186         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
7187         and associated helper macros.
7188         * config/frv/frv-abi.h: Delete.
7189
7190 2010-10-14  Richard Guenther  <rguenther@suse.de>
7191
7192         PR lto/44561
7193         * tree.def (NULLPTR_TYPE): New tree code.
7194         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
7195         * dwarf2out.c (is_base_type): Likewise.
7196         (gen_type_die_with_usage): Likewise.
7197         * sdbout.c (plain_type_1): Likewise.
7198         * tree.c (build_int_cst_wide): Likewise.
7199         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
7200
7201 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
7202
7203         * params.c (params_finished): New.
7204         (add_params): Assert !params_finished.
7205         (finish_params): New.
7206         (set_param_value_internal): Take params and params_set
7207         parameters.  Assert params_finished.
7208         (set_param_value, maybe_set_param_value): Take params and
7209         params_set parameters.  Update calls to set_param_value_internal.
7210         (set_default_param_value): Assert !params_finished.  Don't use
7211         set_param_value_internal.
7212         (default_param_value, init_param_values): New.
7213         * params.h (struct param_info): Change value to default_value.
7214         Remove set.
7215         (set_param_value, maybe_set_param_value): Add params and
7216         params_set parameters.
7217         (PARAM_VALUE): Get parameters from global_options.
7218         (PARAM_SET_P): Remove.
7219         (finish_params, default_param_value, init_param_values): New.
7220         * common.opt (param_values): New Variable.
7221         * config/arm/arm.c (arm_option_override): Pass extra arguments to
7222         maybe_set_param_value.
7223         * config/i386/i386.c (ix86_option_override_internal): Pass extra
7224         arguments to maybe_set_param_value.
7225         * config/picochip/picochip.c (picochip_option_override): Pass
7226         extra arguments to maybe_set_param_value.
7227         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
7228         extra arguments to maybe_set_param_value.
7229         * config/s390/s390.c (s390_option_override): Use
7230         maybe_set_param_value instead of set_param_value.  Pass extra
7231         arguments to maybe_set_param_value.
7232         * config/sparc/sparc.c (sparc_option_override): Pass extra
7233         arguments to maybe_set_param_value.
7234         * config/spu/spu.c (spu_option_override): Pass extra arguments to
7235         maybe_set_param_value.
7236         * opts.c (handle_param): Take opts and opts_set parameters.
7237         Update call to set_param_value.
7238         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
7239         initial_loop_invariant_max_bbs_in_loop): Remove.
7240         (init_options_once): Don't set them.
7241         (init_options_struct): Initialize parameters structures.
7242         (default_options_optimization): Use default_param_value when
7243         restoring defaults.  Update calls to maybe_set_param_value.
7244         (finish_options): Update calls to maybe_set_param_value.
7245         (common_handle_option): Update calls to handle_param and
7246         set_param_value.
7247         * toplev.c (DEFPARAM): Update definition for changes to param_info.
7248         (general_init): Call finish_params.
7249
7250 2010-10-14  Nick Clifton  <nickc@redhat.com>
7251
7252         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
7253         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
7254         (FIRST_PSEUDO_REGISTER): Increase by one.
7255         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
7256         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
7257         (MODES_TIEABLE): Call mn10300_modes_tieable.
7258         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
7259         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
7260         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
7261         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
7262         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
7263         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
7264         (mn10300_cc_status_mdep): Delete.
7265         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
7266         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
7267         the combine-stack-adjust pass.
7268         (print_operand): Use the mode of the comparison operation to
7269         select the comparison suffix.
7270         (notice_update_cc): Delete.
7271         (mn10300_secondary_reload_class): Remove test for stack pointer
7272         based arithmetic.
7273         (output_tst): Rename to mn10300_output_cmp.
7274         (impossible_plus_operand): Move into predicates.md.
7275         (mn10300_legitimize_address): Make static.
7276         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
7277         constant pic operands.
7278         (mn10300_legitimate_constant_p): New function.
7279         (mn10300_case_values_threshold): Make static.
7280         (mn10300_hard_regno_mode_ok): New function.
7281         (mn10300_modes_tieable): New function.
7282         (mn10300_select_cc_mode): New function.
7283         * config/mn10300/predicates.md (impossible_plus_operand): Define.
7284         * config/mn10300/mn10300-protos.h: Tidy.
7285         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
7286         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
7287         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
7288         with clobbers or sets of CC_REG.
7289         (CC_REG): Define.
7290         (mov*): Remove use of CLR instruction.
7291         (cbranch_si4_<code>): New pattern/split.
7292         (integer_conditional_branch): New pattern.
7293         (cbranch_sf4_<code>): New pattern/split.
7294         (float_conditional_branch): New pattern.
7295         (casesi): Use addsi3 pattern instead of movsi pattern to add and
7296         move a value at the same time.
7297         (cc0 peepholes): Remove.
7298
7299 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7300
7301         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
7302         on RTX_FRAME_RELATED_P insns and the insn to which
7303         NOTE_INSN_EPILOGUE_BEG is attached.
7304         * sched-vis.c (print_value): Allow NULL value.
7305
7306 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7307
7308         PR rtl-optimization/45570
7309         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
7310         assert that we are pipelining outer loops.  Allow returning
7311         zero predecessors.
7312
7313 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7314
7315         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
7316         (tidy_control_flow): Tidy vertical space.
7317         (sel_remove_bb): New variable idx.  Use it to remember the basic
7318         block index before deleting the block.
7319         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
7320         (sel_merge_blocks): ... here.
7321         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
7322
7323 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
7324
7325         * cse.c (is_dead_reg): Change into inline function that is not
7326         called through for_each_rtx.
7327         (set_live_p): Adjust caller.
7328         (insn_live_p): Don't reset DEBUG_INSNs here.
7329         (struct dead_debug_insn_data): New data.
7330         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
7331         (delete_trivially_dead_insns): If there is just one setter for the
7332         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
7333         and add DEBUG_INSN for it right before the removed setter and
7334         use the DEBUG_EXPR instead of the dead pseudo.
7335
7336 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
7337
7338         * et-forest.c (et_nca): Return NULL immediately when
7339         the dominance forest has disjoint components.
7340
7341 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
7342
7343         * ira.c (setup_class_hard_regs): Fix typo in indexing
7344         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
7345
7346 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
7347
7348         * graph.c (inbb): New variable.
7349         (start_bb): Set inbb to 1 if output is inside of a building block.
7350         (end_bb): Check if output is inside of a building block.
7351
7352 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
7353
7354         PR rtl-optimization/45912
7355         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
7356         regno of registers instead of their index to compute the alignment.
7357
7358 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
7359
7360         * config/i386/i386.c (ix86_build_const_vector): Check vector
7361         mode instead of scalar mode.
7362         (ix86_build_signbit_mask): Likewise.
7363         (ix86_expand_fp_absneg_operator): Updated.
7364         (ix86_expand_copysign): Likewise.
7365         (ix86_expand_int_vcond): Likewise.
7366         (ix86_emit_swdivsf): Likewise.
7367         (ix86_sse_copysign_to_positive): Likewise.
7368         (ix86_expand_sse_fabs): Likewise.
7369         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
7370         * config/i386/sse.md (copysign<mode>3): Likewise.
7371         (sse2_cvtudq2ps): Likewise.
7372         (vec_unpacku_float_hi_v4si): Likewise.
7373         (vec_unpacku_float_lo_v4si): Likewise.
7374
7375         * config/i386/i386.c (ix86_builtins): Add
7376         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
7377         (bdesc_args): Likewise.
7378         (ix86_builtin_vectorized_function): Support
7379         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
7380         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
7381         and IX86_BUILTIN_CVTPS2DQ256.
7382         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
7383
7384         * config/i386/sse.md (STORENT_MODE): New.
7385         (VEC_FLOAT_MODE): Likewise.
7386         (VEC_EXTRACT_MODE): Likewise.
7387         (*avx_cvtdq2pd256_2): Likewise.
7388         (vec_pack_trunc_v4df): Likewise.
7389         (vec_interleave_highv8sf): Likewise.
7390         (vec_interleave_lowv8sf): Likewise.
7391         (storent<mode>): Macroized.
7392         (<code><mode>2: absneg): Likewise.
7393         (copysign<mode>3): Likewise.
7394         (vec_extract<mode>): Likewise.
7395
7396         PR target/44180
7397         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
7398         for V8SFmode.
7399
7400 2010-10-13  Richard Guenther  <rguenther@suse.de>
7401             H.J. Lu  <hongjiu.lu@intel.com>
7402
7403         * config/i386/sse.md (reduc_splus_v8sf): Add.
7404         (reduc_splus_v4df): Likewise.
7405         (vec_unpacks_hi_v8sf): Likewise.
7406         (vec_unpacks_lo_v8sf): Likewise.
7407         (*avx_cvtps2pd256_2): Likewise.
7408         (vec_unpacks_float_hi_v8si): Likewise.
7409         (vec_unpacks_float_lo_v8si): Likewise.
7410         (vec_interleave_highv4df): Likewise.
7411         (vec_interleave_lowv4df): Likewise.
7412
7413 2010-10-13  Richard Guenther  <rguenther@suse.de>
7414
7415         PR objc/45878
7416         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
7417         alone if there are no virtual methods.
7418
7419 2010-10-13  Richard Henderson  <rth@redhat.com>
7420
7421         * expr.c (build_personality_function): Take parameter LANG instead
7422         of parameter NAME.  Build the name based on the lang prefix and the
7423         unwind method in use.
7424         * tree.c (lhd_gcc_personality): Update call to
7425         build_personality_function.
7426
7427 2010-10-13  Richard Guenther  <rguenther@suse.de>
7428
7429         PR objc/45878
7430         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
7431
7432 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
7433
7434         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
7435         Canonicalize input operands of ASM_OPERANDS insns.
7436
7437 2010-10-13  Richard Guenther  <rguenther@suse.de>
7438
7439         PR tree-optimization/45788
7440         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
7441         EH update until fixup-cfg.
7442
7443 2010-10-13  Julian Brown  <julian@codesourcery.com>
7444
7445         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
7446         from CORE_REGS and GENERAL_REGS classes.
7447         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
7448         final constraint for register preferencing.
7449
7450 2010-10-13  Richard Guenther  <rguenther@suse.de>
7451
7452         PR tree-optimization/45970
7453         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
7454         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
7455         (stmt_kills_ref_p): Likewise.
7456         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
7457
7458 2010-10-13  Richard Guenther  <rguenther@suse.de>
7459
7460         PR tree-optimization/45982
7461         * tree-ssa-structalias.c (make_constraints_to): New function.
7462         (make_constraint_to): Implement in terms of make_constraints_to.
7463         (find_func_aliases): Properly make return values of pure/const
7464         functions escape if they assign to sth that is not a pointer.
7465
7466 2010-10-13  Richard Guenther  <rguenther@suse.de>
7467
7468         PR middle-end/45874
7469         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
7470         Fixup the CFG when EH was fixed up.
7471
7472 2010-10-13  Ira Rosen  <irar@il.ibm.com>
7473
7474         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
7475         Use operand's type for POINTER_PLUS_EXPR.
7476
7477 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
7478
7479         * c-parser.c (c_parser_for_statement): Initialize incr.
7480
7481 2010-10-12  Xinliang David Li  <davidxl@google.com>
7482
7483         PR tree-optimization/45972
7484         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
7485         with too many arguments.
7486
7487 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
7488
7489         PR fortran/45636
7490         * tree-ssa-forwprop.c: Include expr.h.
7491         (constant_pointer_difference, simplify_builtin_call): New functions.
7492         (tree_ssa_forward_propagate_single_use_vars): Call
7493         simplify_builtin_call on builtin calls.
7494
7495 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
7496
7497         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
7498         (*adddi3_extend_sp32): Likewise.
7499         (*subdi3_insn_sp32): Likewise.
7500         (*subdi3_extend_sp32): Likewise.
7501         (*negdi2_sp32): Use negative test for consistency.
7502
7503 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
7504
7505         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
7506         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7507         * config/fixed-bit.h: Likewise.
7508         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7509         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7510         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
7511         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
7512         (DF_SIZE): Likewise.
7513         * doc/tm.texi: Regenerate.
7514
7515 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
7516
7517         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
7518         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
7519         (*isel_reversed_unsigned_<mode>): New.
7520         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
7521         as valid comparisons and adjust operands and output appropriately.
7522         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
7523
7524 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
7525
7526         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
7527         DATA_ALIGNMENT and add COND parameter. Update comments above.
7528         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
7529         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
7530
7531 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
7532
7533         PR bootstrap/45958
7534         * exec-tool.in: Support '-plugin' as the second option to the linker.
7535
7536 2010-10-12  Richard Henderson  <rth@redhat.com>
7537
7538         PR middle-end/45962
7539         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
7540         (expand_stack_vars): Assert large base allocated when used.
7541
7542 2010-10-12  Richard Guenther  <rguenther@suse.de>
7543
7544         * tree-ssa-structalias.c (get_constraint_for_1): Constants
7545         only point to nonlocal, not anything.
7546
7547 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
7548
7549         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
7550         unwind info for exceptions.
7551
7552 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7553
7554         PR testsuite/45851
7555         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
7556         Document optional target selector.
7557
7558 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
7559
7560         * flag-types.h: New.
7561         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
7562         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
7563         options.h.
7564         (OPTIONS_H): Define.
7565         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
7566         of options.h.
7567         * configure.ac (tm_include_list): Include options.h not flags.h.
7568         * configure: Regenerate.
7569         * flags.h: Include flag-types.h.  Include options.h at top of file
7570         again.
7571         (enum debug_info_type, enum debug_info_level, enum
7572         debug_info_usage, enum symbol_visibility, struct visibility_flags,
7573         enum ira_algorithm, enum ira_region, enum excess_precision, enum
7574         graph_dump_types, enum stack_check_type,
7575         enum warn_strict_overflow_code): Move to flag-types.h
7576         * opth-gen.awk: Include flag-types.h in options.h.
7577
7578 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
7579
7580         * expr.c (store_expr): Share code for STRING_CST and
7581         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
7582         check if target is a MEM.
7583
7584         * rtl.h: Include hashtab.h.
7585         (iterative_hash_rtx): New prototype.
7586         * rtl.c (iterative_hash_rtx): New function.
7587         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
7588         (output_loc_list): Return immediately if emitted is set, set it.
7589         (hash_loc_operands, hash_locs, hash_loc_list,
7590         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
7591         optimize_location_lists_1, optimize_location_lists): New function.
7592         (dwarf2out_finish): Call optimize_location_lists.
7593         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
7594
7595 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7596
7597         PR testsuite/45974
7598         Revert:
7599         * Makefile.in ($(lang_checks_parallel))
7600         ($(lang_checks_parallelized)): Use single quotes for
7601         $(RUNTESTFLAGS), to allow passing quoted content.
7602
7603 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7604
7605         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
7606         actual_oldval.  Use __builtin_expect.
7607         (SUBWORD_VAL_CAS): Likewise.
7608
7609 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
7610
7611         * recog.c (nonmemory_operand): Call immediate_operand for
7612         CONSTANT_P operands.
7613
7614 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
7615
7616         * config/i386/i386.md (movmem<mode>): Macroize expander from
7617         movmem{si,di} using SWI48 mode iterator.
7618         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
7619         *strmovsi_rex_1 using P mode iterator.
7620         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
7621         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
7622         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
7623         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
7624         (setmem<mode>): Macroize expander from setmem{si,di} using
7625         SWI48 mode iterator.
7626         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
7627         *strsetsi_rex_1 using P mode iterator.
7628         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
7629         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
7630         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
7631         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
7632         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
7633         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
7634         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
7635         mode iterator.
7636         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
7637         *strlenqi_rex_1 using P mode iterator.
7638
7639 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
7640
7641         PR bootstrap/45445
7642         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
7643         static functions.
7644         (mark_ref_live, mark_ref_dead): Use them.
7645         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
7646         Save the original reg, and use the new functions.
7647         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
7648         changed.
7649         (check_and_make_def_conflict): Save the original reg.
7650
7651 2010-10-11  Martin Jambor  <mjambor@suse.cz>
7652
7653         PR middle-end/45699
7654         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
7655         thunks.
7656
7657 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7658
7659         * Makefile.in ($(lang_checks_parallel))
7660         ($(lang_checks_parallelized)): Use single quotes for
7661         $(RUNTESTFLAGS), to allow passing quoted content.
7662
7663         PR bootstrap/35855
7664         * opt-functions.awk (BEGIN): New section.
7665         (lower, upper, digit, alnum): New variables.
7666         (static_var, opt_sanitized_name): Use alnum instead of character
7667         classes, for non-C locale.
7668         * optc-gen.awk: Likewise.
7669         * opth-gen.awk: Likewise.
7670
7671 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
7672
7673         * target.def (preferred_reload_class): New hook.
7674         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
7675         * doc/tm.texi: Regenerate.
7676         * targhooks.c (default_preferred_reload_class): New function.
7677         * targhooks.h (default_preferred_reload_class): Declare.
7678         * reload.c (find_dummy_reload): Change preferred_class variable type
7679         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
7680         target hook.
7681         (find_reloads): Change goal_alternative array type from int to
7682         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
7683         (push_reload, find_reloads_address_part): Use
7684         TARGET_PREFERRED_RELOAD_CLASS target hook.
7685         * reload1.c (emit_input_reload_insns): Ditto.
7686         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
7687         hook. Change rclass argument and secondary_class variable types from
7688         'enum reg_class' to reg_class_t.
7689
7690         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
7691         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
7692         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
7693         Change regclass argument and result types from enum reg_class to
7694         reg_class_t.
7695         (TARGET_PREFERRED_RELOAD_CLASS): Define.
7696
7697 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
7698
7699         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
7700         in masking operations.
7701         (simplify_const_unary_operation): Likewise.
7702         (simplify_binary_operation_1): Likewise.
7703         (simplify_const_binary_operation): Likewise.
7704         (simplify_const_relational_operation): Likewise.
7705         (simplify_ternary_operation): Likewise.
7706         (simplify_immed_subreg): Likewise.
7707
7708 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7709
7710         PR middle-end/45862
7711         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
7712         (TARGET_SUPPORTS_WEAK): New.
7713         * doc/tm.texi: Regenerate.
7714         * defaults.h (SUPPORTS_WEAK): Update comment.
7715         (TARGET_SUPPORTS_WEAK): New.
7716         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
7717         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
7718         SUPPORTS_WEAK.
7719         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
7720         make_decl_one_only): Likewise.
7721         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
7722         TARGET_SUPPORTS_WEAK.
7723         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
7724         instead of SUPPORTS_WEAK.
7725
7726 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7727
7728         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
7729
7730 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
7731
7732         * vec.h (VEC_qsort): Define.
7733         * dbxout.c (output_used_types): Use it.
7734         * df-scan.c (df_sort_and_compress_refs): Likewise.
7735         (df_sort_and_compress_mws): Likewise.
7736         * genautomata.c (uniq_sort_alt_states): Likewise.
7737         (evaluate_equiv_classes): Likewise.
7738         (output_trans_table): Likewise.
7739         (output_state): Likewise.
7740         * gimplify.c (compare_case_labels): Likewise.
7741         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
7742         * ipa.c (build_cdtor_fns): Likewise.
7743         * lto.c (lto_wpa_write_files): Likewise.
7744         * sel-sched.c (fill_vec_av_set): Likewise.
7745         * tree-predcom.c (determine_roots_comp): Likewise.
7746         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
7747         (splice_param_accesses): Likewise.
7748         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
7749         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
7750         (reassociate_bb): Likewise.
7751         * tree-ssa-sccvn.c (sort_scc): Likewise.
7752         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
7753
7754 2010-10-11  Ian Lance Taylor  <iant@google.com>
7755
7756         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
7757         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
7758         TREE_THIS_NOTRAP when appropriate.
7759         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
7760         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
7761         newly created MEM_REF.
7762
7763 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
7764
7765         Nathan Froyds patch to hooks FUNCTION_ARG etc.
7766         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
7767         (picochip_incoming_function_arg): Delete.
7768         (picochip_arg_advance): Delete.
7769         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
7770         (FUNCTION_INCOMING_ARG): Delete.
7771         (FUNCTION_ARG_ADVANCE): Delete.
7772         * config/picochip/picochip.c (picochip_function_arg): Take a
7773         const_tree and a bool.
7774         (picochip_incoming_function_arg): Likewise.
7775         (picochip_arg_advance): Likewise.
7776         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7777         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7778
7779 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7780
7781         PR middle-end/45955
7782         * ipa.c (build_cdtor): Delete endless loop.
7783
7784 2010-10-07  Andi Kleen  <ak@linux.intel.com>
7785
7786         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
7787         checksum-options.
7788         (checksum-options): Add.
7789         (cc1-dummy): Remove.
7790         (cc1-checksum): Change to run checksum over object files
7791         and options only.
7792         * dummy-checksum.c: Remove.
7793         * genchecksum.c: Update copyright.
7794         (usage): Allow multiple arguments.
7795         (BLOCKSIZE): Add.
7796         (dosum): Change for incremental checksum. Remove C output.
7797         (main): Iterate over all argument files. Add C output.
7798
7799 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
7800
7801         * params.c (set_param_value_internal): New.
7802         (set_param_value): Use set_param_value_internal.
7803         (maybe_set_param_value, set_default_param_value): New.
7804         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
7805         (maybe_set_param_value, set_default_param_value): Declare.
7806         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
7807         * config/i386/i386.c (ix86_option_override_internal): Use
7808         maybe_set_param_value.
7809         * config/ia64/ia64.c (ia64_option_default_params,
7810         TARGET_OPTION_DEFAULT_PARAMS): New.
7811         (ia64_option_optimization): Move some code to
7812         ia64_option_default_params.
7813         * config/picochip/picochip.c (picochip_option_override): Use
7814         maybe_set_param_value.
7815         * config/rs6000/rs6000.c (rs6000_option_default_params,
7816         TARGET_OPTION_DEFAULT_PARAMS): New.
7817         (rs6000_option_override_internal): Use maybe_set_param_value.
7818         (rs6000_option_optimization): Move some code to
7819         rs6000_option_default_params.
7820         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
7821         * config/sh/sh.c (sh_option_default_params,
7822         TARGET_OPTION_DEFAULT_PARAMS): New.
7823         (sh_option_optimization): Move some code to sh_option_default_params.
7824         * config/sparc/sparc.c (sparc_option_override): Use
7825         maybe_set_param_value.
7826         * config/spu/spu.c (spu_option_default_params,
7827         TARGET_OPTION_DEFAULT_PARAMS): New.
7828         (spu_option_optimization): Move some code to spu_option_default_params.
7829         (spu_option_override): Use maybe_set_param_value.
7830         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
7831         * doc/tm.texi: Regenerate.
7832         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
7833         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
7834         compiler_params.
7835         (default_options_optimization): Use maybe_set_param_value.
7836         (finish_options): Use maybe_set_param_value.
7837         * target.def (target_option.default_params): New hook.
7838         * toplev.c (general_init): Call targetm.target_option.default_params.
7839
7840 2010-10-11  Ira Rosen  <irar@il.ibm.com>
7841
7842         PR tree-optimization/45902
7843         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
7844         vector type for constants, unless it's a pointer.
7845
7846 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7847
7848         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
7849
7850 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
7851
7852         PR target/45870
7853         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
7854         (ix86_delegitimize_address): Use it.
7855
7856 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
7857
7858         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
7859
7860 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
7861
7862         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
7863         to cum struct in the call to function_arg_advance.
7864         (alpha_function_arg_advance): Mark named as unused.
7865
7866 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
7867
7868         * config/mips/mips.c (mips_handle_option): Make "value" with
7869         ATTRIBUTE_UNUSED.
7870
7871 2010-10-09  Richard Henderson  <rth@redhat.com>
7872
7873         PR rtl-opt/33721
7874         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
7875         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
7876         required_align, tidy the code a bit.  Emit split_stack code in the
7877         right place.  Mark the return value with the alignment properly.
7878         * expr.h (allocate_dynamic_stack_space): Update decl.
7879         * builtins.c (expand_builtin_apply): Update call to
7880         allocate_dynamic_stack_space.
7881         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
7882         * calls.c (initialize_argument_information): Update call to
7883         allocate_dynamic_stack_space.
7884         (expand_call): Likewise.
7885
7886         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
7887         Don't update_stack_alignment here.
7888         (alloc_stack_frame_space): Make ALIGN unsigned.
7889         (stack_var_cmp): Sort by alignment too.
7890         (partition_stack_vars): Don't merge large and small alignment vars.
7891         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
7892         Take care when BASE is not virtual_stack_vars_rtx.
7893         (expand_stack_vars): Allocate dynamic stack space for large
7894         alignment variables.
7895         (expand_one_stack_var): Update all to expand_one_stack_var_at.
7896         (defer_stack_allocation): True for large alignment vars.
7897         (update_stack_alignment): Merge into ...
7898         (expand_one_var): ... here.
7899         (gimple_expand_cfg): Place code from expand_stack_vars.
7900
7901 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7902
7903         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7904         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
7905         (pdp11_function_arg_advance): New function.
7906         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7907
7908 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7909
7910         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
7911         * libgcc2.c: Likewise.
7912
7913 2010-10-09  Richard Guenther  <rguenther@suse.de>
7914
7915         PR lto/45956
7916         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
7917         Properly check if a decl is an automatic var.
7918
7919 2010-10-09  Richard Guenther  <rguenther@suse.de>
7920
7921         PR lto/45947
7922         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
7923
7924 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7925
7926         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
7927         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7928         * config/mmix/mmix.c (mmix_function_arg): Rename to...
7929         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
7930         bool arguments.
7931         (mmix_function_arg): New function.
7932         (mmix_function_incoming_arg): New function.
7933         (mmix_function_arg_advance): New function.
7934         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7935         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7936
7937 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7938
7939         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7940         * config/vax/vax.c (vax_function_arg): New function.
7941         (vax_function_arg_advance): New function.
7942         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7943
7944 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7945
7946         * config/pa/pa-protos.h (function_arg): Delete.
7947         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7948         * config/pa/pa.c (function_arg): Rename to...
7949         (pa_function_arg): ...this.  Make static.  Take a const_tree and
7950         a bool.
7951         (pa_function_arg_advance): New function.
7952         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7953
7954 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7955
7956         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7957         * config/m68k/m68k.c (m68k_function_arg): New function.
7958         (m68k_function_arg_advance): New function.
7959         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7960
7961 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7962
7963         * config/avr/avr-protos.h (function_arg): Delete.
7964         (function_arg_advance): Delete.
7965         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7966         * config/avr/avr.c (function_arg): Rename to...
7967         (avr_function_arg): ...this.  Make static.  Take a const_tree and
7968         a bool.
7969         (function_arg_advance): Rename to...
7970         (avr_function_arg_advance): ...this.  Make static.  Take a
7971         const_tree and a bool.
7972         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7973
7974 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7975
7976         * config/alpha/alpha-protos.h (function_arg): Delete.
7977         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7978         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
7979         * config/alpha/alpha.c (function_arg): Rename to...
7980         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
7981         a bool.  Delete TARGET_ABI_UNICOSMK code.
7982         (alpha_function_arg_advance): New function.
7983         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7984
7985 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7986
7987         * config/mep/mep-protos.h (mep_function_arg): Delete.
7988         (mep_function_arg_advance): Delete.
7989         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7990         * config/mep/mep.c (mep_function_arg): Make static.  Take a
7991         const_tree and a bool.
7992         (mep_function_arg_advance): Likewise.
7993         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7994
7995 2010-10-09  Richard Guenther  <rguenther@suse.de>
7996
7997         PR tree-optimization/45945
7998         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
7999
8000 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
8001
8002         PR tree-optimization/45612
8003         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
8004         Test LABEL_DECLs as well.  Fix formatting issues.
8005         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
8006         whose label is present in NON_SSA_VARS.
8007         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
8008         as well.  Fix formatting issues.
8009         (visit_bb): Fix typos and formatting issue.
8010
8011 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8012
8013         PR tree-optimization/45950
8014         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
8015         before initializing vno->op.
8016
8017 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
8018
8019         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
8020         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
8021
8022 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
8023
8024         PR target/45913
8025         * config/i386/i386.c (ix86_binary_operator_ok): Support
8026         "andhi/andsi/anddi" as a zero-extending move.
8027
8028 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8029
8030         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
8031         into a temporary array.
8032
8033 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
8034
8035         PR tree-optimization/45903
8036         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
8037         of {A,L}SHIFTRT of MEM.
8038
8039 2010-10-08  Richard Guenther  <rguenther@suse.de>
8040
8041         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
8042         Re-construct BLOCK_VARS.
8043         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
8044         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
8045         * tree.c (free_lang_data_in_block): Remove.
8046         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
8047         Do not touch the BLOCK tree.
8048         * expr.c (expand_expr_real_1): Allow externals.
8049
8050 2010-10-08  Richard Guenther  <rguenther@suse.de>
8051
8052         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
8053         Do not output BLOCK_SUBBLOCKS.
8054         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
8055         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
8056         Re-construct BLOCK_SUBBLOCKS of parent block.
8057         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
8058         for BINFO_BASE_ACCESSES.
8059
8060 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
8061
8062         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
8063         (TREE_H): Include $(FLAGS_H) instead of options.h.
8064         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
8065         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8066         * common.opt (flag_complex_method, flag_evaluation_order,
8067         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
8068         Variable declarations.
8069         * configure.ac (tm_include_list): Include flags.h instead of options.h.
8070         * configure: Regenerate.
8071         * flags.h: Condition out contents for target libraries.  Include
8072         options.h at end of file.
8073         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
8074         flag_evaluation_order, flag_warn_unused_result): Remove.
8075         * gcc.c (main): Intialize global_options with global_options_init.
8076         * langhooks-def.h (lhd_init_options_struct): Declare.
8077         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8078         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
8079         * langhooks.c (lhd_init_options_struct): New.
8080         * langhooks.h (struct lang_hooks): Add init_options_struct.
8081         Update comment on init_options.
8082         * optc-gen.awk: Generate initializer for global_options_init, not
8083         global_options.
8084         * opth-gen.awk: Condition out structure declarations for target
8085         libraries.  Declare global_options_init.
8086         * opts-common.c: Include flags.h instead of options.h.
8087         * opts.c (flag_warn_unused_result): Remove.
8088         (read_cmdline_options): Take gcc_options parameters.  Pass them to
8089         read_cmdline_option.
8090         (initial_lang_mask, initial_min_crossjump_insns,
8091         initial_max_fields_for_field_sensitive,
8092         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
8093         (init_options_once): New.  Split out of decode_options.
8094         (init_options_struct): New.  Split out of decode_options.
8095         (decode_cmdline_options_to_array_default_mask): New.
8096         (default_options_optimization): New.  Split out of decode_options.
8097         (decode_options): Move most code to other functions.  Update call
8098         to read_cmdline_options.
8099         (finish_options): New.  Split out of decode_options.
8100         * opts.h (decode_options): Add gcc_options parameters.
8101         (init_options_once, init_options_struct,
8102         decode_cmdline_options_to_array_default_mask): New.
8103         * toplev.c (flag_complex_method, flag_ira_algorithm,
8104         flag_ira_region, flag_evaluation_order): Remove.
8105         (general_init): Use global_options_init for initial flag values
8106         for global_dc.
8107         (toplev_main): Call init_options_once, init_options_struct,
8108         lang_hooks.init_options_struct,
8109         decode_cmdline_options_to_array_default_mask and
8110         lang_hooks.init_option before decode_options.  Update arguments to
8111         decode_options.
8112         * tree.h: Include flags.h instead of options.h.
8113
8114 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8115
8116         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8117
8118 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8119
8120         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
8121         Delete.
8122         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
8123         (FUNCTION_INCOMING_ARG): Delete.
8124         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
8125         (function_arg_slotno): Likewise.  Take bool arguments.
8126         (sparc_arg_partial_bytes): Update call to it.
8127         (function_arg): Rename to...
8128         (sparc_function_arg_1): ...this.  Take bool arguments.
8129         (sparc_function_arg, sparc_function_incoming_arg): New functions.
8130         (function_arg_advance): Rename to...
8131         (sparc_function_arg_advance): ...this.  Take bool argument.
8132         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
8133         (TARGET_FUNCTION_INCOMING_ARG): Define.
8134
8135 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8136
8137         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
8138         Delete.
8139         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8140         * config/bfin/bfin.c (function_arg_advance): Rename to...
8141         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
8142         and bool arguments.
8143         (function_arg): Rename to...
8144         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
8145         arguments.
8146         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8147
8148 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8149
8150         * config/score/score-protos.h (score_function_arg): Delete.
8151         (score_function_arg_advance): Delete.
8152         * config/score/score3.h (score3_function_arg_advance): Take a
8153         const_tree and a bool.
8154         (score3_function_arg): Likewise.
8155         * config/score/score7.h (score7_function_arg_advance): Likewise.
8156         (score7_function_arg): Likewise.
8157         * config/score/score3.c (score3_classify_arg): Likewise.
8158         (score3_function_arg_advance, score3_function_arg): Likewise.
8159         * config/score/score7.c (score7_classify_arg): Likewise.
8160         (score7_function_arg_advance, score7_function_arg): Likewise.
8161         * config/score/score.c (score_function_arg_advance): Likewise.
8162         (score_function_arg): Likewise.  De-const-ify `cum' argument.
8163         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8164
8165 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8166
8167         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
8168         (s390_function_arg): Delete.
8169         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8170         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
8171         (s390_function_arg_integer): Likewise.
8172         (s390_function_arg_advance): Make static.  Take a const_tree and
8173         a bool.
8174         (s390_function_arg): Likewise.
8175         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8176
8177 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8178
8179         * config/spu/spu-protos.h (spu_function_arg): Delete.
8180         * config/spu/spu.h (FUNCTION_ARG): Delete.
8181         (FUNCTION_ARG_ADVANCE): Move code to ...
8182         * config/spu/spu.c (spu_function_arg_advance): New function.
8183         (spu_function_arg): Make static.  Take a const_tree and a bool.
8184         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
8185         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8186
8187 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8188
8189         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8190
8191 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8192
8193         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
8194         (init_vn_nary_op_from_op): New function.
8195         (init_vn_nary_op_from_stmt): New function.
8196         (vn_nary_op_lookup_1): New function.
8197         (sizeof_vn_nary_op): New function.
8198         (alloc_vn_nary_op_noinit): New function.
8199         (alloc_vn_nary_op): New function.
8200         (vn_nary_op_insert_into): New function.
8201         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
8202         (vn_nary_op_lookup): Likewise.
8203         (vn_nary_op_lookup_stmt): Likewise.
8204         (vn_nary_op_insert_pieces): Likewise.
8205         (vn_nary_op_insert): Likewise.
8206         (vn_nary_op_insert_stmt): Likewise.
8207         (copy_nary): Likewise.
8208         (set_value_id_for_result): New function.
8209         (set_hashtable_value_ids): Call it.
8210
8211 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8212
8213         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8214         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
8215
8216 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8217
8218         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
8219         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8220
8221 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
8222
8223         PR debug/45656
8224         * cse.c (cse_extended_basic_block): Preserve cc0 info across
8225         debug isnsn.  Skip them when searching for cc0 setter.
8226         (set_live_p): Skip debug insns when searching for cc0 user.
8227
8228 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
8229
8230         PR debug/45673
8231         PR debug/45604
8232         PR debug/45419
8233         PR debug/45408
8234         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
8235         type of MEM_REFs to INTEGER_CSTs.
8236
8237 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
8238
8239         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
8240         m68hc11_print_operand_address.
8241
8242 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
8243
8244         * builtins.c (rewrite_call_expr): Move code to...
8245         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
8246         (rewrite_call_expr_array): New function.
8247         (fold_builtin_sprintf_chk_1): New function.
8248         (fold_builtin_sprintf_chk): Call it.
8249         (gimple_fold_builtin_sprintf_chk): Likewise.
8250         (fold_builtin_snprintf_chk_1): New function.
8251         (fold_builtin_snprintf_chk): Call it.
8252         (gimple_fold_builtin_snprintf_chk): Likewise.
8253         (gimple_rewrite_call_expr): Delete.
8254
8255 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8256
8257         * config.host: Update copyright year.
8258
8259 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8260
8261         * config.host (host_lto_plugin_soname): New shell variable.
8262         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
8263         * config.in: Regenerate.
8264         * configure: Regenerate.
8265         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
8266         LTO plugin shared library.
8267
8268 2010-10-07  Richard Henderson  <rth@redhat.com>
8269
8270         * target.h (enum unwind_info_type): Move ...
8271         * coretypes.h: ... here.
8272
8273 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
8274
8275         * doc/objc.texi (Fast enumeration protocol): Mention that
8276         'unsigned int' can also be used instead of 'unsigned long' in
8277         countByEnumeratingWithState:objects:count:.
8278
8279 2010-10-07  Martin Jambor  <mjambor@suse.cz>
8280
8281         * tree-sra.c (struct access): New field grp_assignment_write.
8282         (dump_access): Dump grp_assignment_write.
8283         (build_accesses_from_assign): Set grp_assignment_write.
8284         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
8285         (mark_read_status): Renamed to mark_rw_status, individual values
8286         renamed too.
8287         (analyze_access_subtree): Changed type of mark_write to
8288         mark_read_status.  Fixed propagating of mark_read and
8289         mark_write.  Changed benefit estimate.  Updated comment.
8290
8291 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
8292
8293         PR Tree-Vect/45847
8294         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
8295         check for vectype_out returned by get_vectype_for_scalar_type().
8296
8297 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
8298
8299         PR target/45805
8300         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
8301         constraint, add register specifier in instruction template.
8302         (neon_vec_pack_trunc_<mode>): Likewise.
8303         (neon_vec_<US>mult_<mode>): Add register specifier to
8304         instruction template.
8305
8306 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8307
8308         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
8309         cygwin2.o.
8310         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
8311         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
8312         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
8313         (cygwin2.o): Likewise.
8314         * config/i386/cygwin1.c: Delete file.
8315         * config/i386/cygwin2.c: Likewise.
8316         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
8317         make all {%!mno-cygwin} ones unconditional.
8318         (STARTFILE_SPEC): Likewise.
8319         (REAL_LIBGCC_SPEC): Likewise.
8320         (LIB_SPEC): Likewise.
8321         (CXX_WRAP_SPEC): Likewise.
8322         (LINK_SPEC): Likewise.
8323         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
8324         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
8325         (cygwin_gplusplus_include_dir): Delete now-unused array.
8326         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
8327         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
8328         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
8329         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
8330         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
8331         (cygwin_local_include_dir): Delete now-unused array.
8332         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
8333         (cygwin_cross_include_dir): Delete now-unused array.
8334         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
8335         (cygwin_tool_include_dir): Delete now-unused array.
8336         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
8337         (cygwin_standard_include_dir): Delete now-unused array.
8338         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
8339         (GEN_CVT_ARRAY): Delete now-unused macro definition.
8340         (cvt_to_mingw): Delete now-unused array.
8341         (mingw_scan): Remove prototype of deleted function.
8342         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
8343         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
8344         * doc/invoke.texi (-mcygwin): Don't document removed option.
8345         (-mno-cygwin): Likewise.
8346
8347 2010-10-07  Richard Guenther  <rguenther@suse.de>
8348
8349         * machmode.h (mode_for_vector): Declare.
8350         * stor-layout.c (mode_for_vector): New function, split out from ...
8351         (layout_type): ... here.
8352         * tree-vectorizer.h (current_vector_size): Declare.
8353         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
8354         mask vector type is available.
8355         (get_vectype_for_scalar_type): Rename to ...
8356         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
8357         size argument.
8358         (get_vectype_for_scalar_type): New wrapper around
8359         get_vectype_for_scalar_type_and_size using current_vector_size.
8360         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
8361         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
8362         of vect_analyze_loop here.
8363         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
8364         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
8365         to autodetect.
8366         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
8367         V8SF to V8SI conversion builtin.
8368
8369 2010-10-07  Richard Guenther  <rguenther@suse.de>
8370
8371         * target.def (autovectorize_vector_sizes): New target hook.
8372         * targhooks.c (default_autovectorize_vector_sizes): New function.
8373         * targhooks.h (default_autovectorize_vector_sizes): Declare.
8374         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
8375         Document.
8376         * doc/tm.texi: Update.
8377         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
8378         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8379
8380 2010-10-07  Richard Guenther  <rguenther@suse.de>
8381
8382         * target.def (units_per_simd_word): Rename to ...
8383         (preferred_simd_mode): ... this.  Return mode instead of size.
8384         * targhooks.c (default_units_per_simd_word): Rename to ...
8385         (default_preferred_simd_mode): ... this.  Return word_mode.
8386         * targhooks.h (default_preferred_simd_mode): Declare.
8387         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
8388         (arm_preferred_simd_mode): ... this.  Re-implement.
8389         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
8390         (ix86_preferred_simd_mode): ... this.  Re-implement.
8391         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
8392         (sparc_preferred_simd_mode): ... this.  Re-implement.
8393         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
8394         (mips_preferred_simd_mode): ... this.  Re-implement.
8395         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
8396         (rs6000_preferred_simd_mode): ... this.  Re-implement.
8397         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
8398         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
8399         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
8400         * doc/tm.texi: Update.
8401
8402 2010-10-07  Richard Guenther  <rguenther@suse.de>
8403
8404         PR middle-end/45869
8405         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
8406         of pointers.
8407
8408 2010-10-07  Alan Modra  <amodra@gmail.com>
8409
8410         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
8411         rather than sign extension by hand.
8412
8413 2010-10-07  Jan Hubicka  <jh@suse.cz>
8414
8415         PR middle-end/45926
8416         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
8417
8418 2010-10-07  Richard Guenther  <rguenther@suse.de>
8419
8420         PR bootstrap/45914
8421         * configure.ac: Fix typo.
8422         * configure: Regenerated.
8423
8424 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8425
8426         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
8427         define_builtin_std where it's unnecessary.
8428         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
8429
8430 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
8431
8432         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
8433         * doc/tm.texi.in: Regenerate.
8434         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
8435         * targhooks.c (default_class_likely_spilled_p): Don't use the
8436         CLASS_LIKELY_SPILLED_P macro.
8437
8438         * config/arm/arm.md: Update comment.
8439
8440 2010-10-06  Jan Hubicka  <jh@suse.cz>
8441
8442         * ipa.c (cgraph_remove_unreachable_nodes): External references can
8443         always be removed.
8444         (cgraph_externally_visible_p): We can not bring local comdats that
8445         are known to linker; fix handling of internal visibility.
8446         (function_and_variable_visibility): Likewise.
8447
8448 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
8449
8450         PR rtl-optimization/45394
8451         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
8452         (struct rtx_subst_pair): Remove AFTER field.
8453         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
8454         (propagate_for_debug): Remove MOVE parameter and adjust.
8455         (try_combine): In the special case where I2 is a PARALLEL, combine only
8456         destinations of SETs and set I2SRC to the I2 source.
8457         Adjust calls to propagate_for_debug throughout.
8458         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
8459         insns.
8460
8461 2010-10-06  Olivier Hainque  <hainque@adacore.com>
8462
8463         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
8464         switch on insn codes as sequence of ifs.
8465
8466 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
8467
8468         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
8469         be UI_NONE for picochip.
8470         (picochip_option_override): Do not disable exception flags.
8471         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
8472         Declare.
8473
8474 2010-10-06  Richard Guenther  <rguenther@suse.de>
8475
8476         * Makefile.in (regmove.o): Depend on $(TARGET_H).
8477
8478 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
8479
8480         Implemented fast enumeration for Objective-C.
8481         * c-parser.c (objc_could_be_foreach_context): New.
8482         (c_lex_one_token): Recognize RID_IN keyword in a potential
8483         Objective-C foreach context.
8484         (c_parser_declaration_or_fndef): Added parameter.  Accept
8485         Objective-C RID_IN keyword as terminating a declaration; in that
8486         case, return the declaration in the new parameter.
8487         (c_parser_extenral_declaration): Updated calls to
8488         c_parser_declaration_or_fndef.
8489         (c_parser_declaration_or_fndef): Same change.
8490         (c_parser_compound_statement_nostart): Same change.
8491         (c_parser_label): Same change.
8492         (c_parser_objc_methodprotolist): Same change.
8493         (c_parser_omp_for_loop): Same change.
8494         (c_parser_for_statement): Detect and parse Objective-C foreach
8495         statements.
8496         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
8497         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
8498         fast enumeration parsing code to turn off the c99 error but still
8499         perform checks on the loop declarations.
8500         * c-tree.h (check_for_loop_decls): Updated declaration.
8501         * doc/objc.texi: Document fast enumeration.
8502
8503 2010-10-06  Nick Clifton  <nickc@redhat.com>
8504
8505         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
8506         (MDR_REGNUM): Define.
8507         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
8508         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
8509         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
8510         (REGISTER_NAMES): Add MDR.
8511         (DWARF2_DEBUGGING_INFO): Define to 1.
8512         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8513         (F): New function.  Sets RTX_FRAME_RELATED_P.
8514         (mn10300_gen_multiple_store): Use F.
8515         (expand_prologue): Use F.  Use gen_movsf() to push floating
8516         point registers.
8517         (expand_epilogue): Use gen_movsf() to pop floating point registers.
8518         (mn10300_option_override): Disable combine stack adjust pass.
8519
8520 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
8521
8522         PR target/45901
8523         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
8524         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
8525
8526 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
8527
8528         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
8529         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
8530         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
8531         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
8532         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
8533         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
8534         BUILT_IN_TOUPPER): Mark as leaf.
8535
8536         PR middle-end/45838
8537         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
8538         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
8539         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
8540         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
8541         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
8542         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
8543         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
8544
8545 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
8546
8547         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
8548         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
8549         (m68hc11_class_likely_spilled_p): New function.
8550
8551 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
8552
8553         * c-parser.c (c_parser_objc_method_definition): Updated comment.
8554
8555 2010-10-05  Jan Hubicka  <jh@suse.cz>
8556
8557         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
8558         Document.
8559         * opts.c (decode_options): Handle lto partitions.
8560         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
8561         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
8562
8563 2010-10-05  Jan Hubicka  <jh@suse.cz>
8564
8565         * cgraphunit.c (assemble_function): Output thunks and aliases before
8566         the function itself.
8567
8568 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
8569
8570         * config/picochip/picochip.c (picochip_option_override): Disable
8571         exception flags for picochip.
8572
8573 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
8574
8575         * opts-common.c (handle_option, handle_generated_option,
8576         read_cmdline_option, set_option): Add diagnostic_context
8577         parameter.  Update calls among these functions.
8578         (set_option): Don't use global_dc.
8579         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
8580         (decode_options): Pass global_dc to enable_warning_as_error.
8581         (common_handle_option): Pass global_dc to enable_warning_as_error.
8582         (enable_warning_as_error): Add diagnostic_context parameter.
8583         Document parameters.  Don't use global_dc.  Pass
8584         diagnostic_context parameter to handle_generated_option.
8585         * opts.h (set_option, handle_option, handle_generated_option,
8586         read_cmdline_option, enable_warning_as_error): Add
8587         diagnostic_context parameter.
8588         * Makefile.in (lto-opts.o): Update dependencies.
8589         * coretypes.h (struct diagnostic_context, diagnostic_context):
8590         Declare here.
8591         * diagnostic.h (diagnostic_context): Don't declare typedef here.
8592         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
8593         * langhooks-def.h (struct diagnostic_context): Don't declare here.
8594         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
8595         using diagnostic_context typedef.
8596         * langhooks.c (lhd_initialize_diagnostics): Declare using
8597         diagnostic_context typedef.
8598         * langhooks.h (struct diagnostic_context): Don't declare here.
8599         (initialize_diagnostics, print_error_function): Declare using
8600         diagnostic_context typedef.
8601         * lto-opts.c: Include diagnostic.h.
8602         (lto_reissue_options): Pass global_dc to set_option.  Pass
8603         DK_UNSPECIFIED not 0.
8604         * plugin.c (plugins_internal_error_function): Declare using
8605         diagnostic_context typedef.
8606         * plugin.h (struct diagnostic_context): Don't declare here.
8607         (plugins_internal_error_function): Declare using
8608         diagnostic_context typedef.
8609
8610 2010-10-05  Olivier Hainque  <hainque@adacore.com>
8611             Nicolas Roche  <roche@adacore.com>
8612
8613         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
8614         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
8615
8616 2010-10-05  Ira Rosen  <irar@il.ibm.com>
8617
8618         PR tree-optimization/45752
8619         * tree-vect-slp.c (vect_get_mask_element): Remove static
8620         variables, make them function arguments.
8621         (vect_transform_slp_perm_load): Pass new arguments to
8622         vect_get_mask_element.
8623
8624 2010-10-05  Richard Guenther  <rguenther@suse.de>
8625
8626         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
8627         (gimple_mod_pow2): Likewise.
8628         (gimple_mod_subtract): Likewise.
8629         (gimple_ic): Likewise.
8630         (gimple_stringop_fixed_value): Likewise.
8631         * tree-profile.c (tree_init_edge_profiler): Mark profile
8632         functions nothrow and leaf.
8633         (add_abnormal_goto_call_edges): Remove.
8634         (tree_gen_edge_profiler): Work on SSA form.
8635         (tree_gen_ic_profiler): Likewise.  Simplify.
8636         (do_tree_profiling): Update SSA form.
8637         (pass_tree_profile): Remove.
8638         (do_tree_profiling): Likewise.
8639         (gate_tree_profile_ipa): New function.
8640         (pass_ipa_tree_profile): New.
8641         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
8642         state of instrumented functions.
8643         * passes.c (init_optimization_passes): Remove early non-SSA
8644         inlining.  Move profiling after early optimizations.
8645         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
8646         (pass_ipa_early_inline): Likewise.
8647         * tree-pass.h (pass_ipa_early_inline): Remove.
8648         (pass_tree_profile): Likewise.
8649         (pass_ipa_tree_profile): Declare.
8650
8651 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8652             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
8653
8654         * config/s390/s390.c (z196_cost): New.
8655         (s390_handle_arch_option): Add -march=z196.
8656         (s390_option_override): Use the new cost function and use the z10
8657         defaults also for z196.
8658         (legitimate_reload_constant_p): Adjust comment.
8659         (legitimate_reload_fp_constant_p): New function.
8660         (s390_preferred_reload_class): Distingiush between FP and Int constants.
8661         (preferred_la_operand_p): Avoid la with index on z196.
8662         (s390_adjust_priority): Trigger also for z196.
8663         (s390_issue_rate): Issue rate for z196 is 3.
8664         (s390_z10_fix_long_loop_prediction): Rename to ...
8665         (s390_fix_long_loop_prediction): ... this.
8666         (s390_reorg): Apply the z10 adjustments also for z196.
8667         (s390_loop_unroll_adjust): Do this also for z196.
8668         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
8669         (enum processor_flags): Add PF_Z196.
8670         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
8671         (TARGET_CPU_Z196, TARGET_Z196): New macros.
8672         * config.gcc: Enable z196 for --with-arch.
8673         * config/s390/2817.md: New file.
8674         * config/s390/2084.md: New type for multiply and add.
8675         * config/s390/2097.md: Likewise.
8676         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
8677         (UNSPECV_ATOMIC_OP): New constants.
8678         (fmadddf, fmaddsf): New values for type attribute.
8679         (z196prop): New insn attribute.
8680         (cpu, cpu_facility): Add z196.
8681         (ATOMIC_Z196): New code iterator.
8682         (noxa): New code attribute.
8683         (gk): New mode attribute.
8684         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
8685         Support load zero for fp constants.
8686         (fixuns_truncdddi2, fixuns_trunctddi2)
8687         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
8688         for z196.
8689         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
8690         (popcounthi2, popcountqi2): New expander.
8691         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
8692         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
8693         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
8694         insn definition.
8695         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
8696         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
8697         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
8698         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
8699         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
8700         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
8701         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
8702         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
8703         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
8704         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
8705         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
8706         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
8707         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
8708         Support new z196 instructions.
8709
8710 2010-10-05  Richard Guenther  <rguenther@suse.de>
8711
8712         PR middle-end/45877
8713         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
8714         case where gimplification optimizes away the stmt.
8715
8716 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
8717
8718         PR debug/45849
8719         * var-tracking.c (strip_pointer_flags): New function.
8720         (emit_note_insn_var_location): If rtx_equal_p check failed,
8721         retry on locations simplified with simplify_replace_fn_rtx
8722         and strip_pointer_flags as its callback.
8723
8724 2010-10-04  Jan Hubicka  <jh@suse.cz>
8725
8726         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
8727         (can_refer_decl_in_current_unit_p): ... this one; reverse return
8728         value; handle comdats too.
8729         (canonicalize_constructor_val): Use it; handle function_decls
8730         correctly.
8731         (gimple_fold_obj_type_ref_known_binfo): Likewise.
8732         * gimple.c (get_base_address): Accept all kinds of decls.
8733
8734 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
8735
8736         * flags.h (g_switch_value, g_switch_set): Remove.
8737         * opts.c (g_switch_value, g_switch_set): Remove.
8738         * config/g.opt (G): Add Var(g_switch_value).
8739         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
8740         (alpha_option_override): Check global_options_set.x_g_switch_value
8741         instead of g_switch_set.
8742         (alpha_in_small_data_p): Remove cast in comparison with
8743         g_switch_value.
8744         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
8745         g_switch_value to unsigned HOST_WIDE_INT.
8746         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
8747         with g_switch_value.
8748         (frv_handle_option): Don't handle -G here.
8749         (frv_option_override): Check global_options_set.x_g_switch_value
8750         instead of g_switch_set.  Don't modify g_switch_set.
8751         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
8752         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
8753         g_switch_value to unsigned HOST_WIDE_INT.
8754         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
8755         (ia64_option_override): Check global_options_set.x_g_switch_value
8756         instead of g_switch_set.
8757         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
8758         Remove.
8759         (lm32_in_small_data_p): Remove cast in comparison with
8760         g_switch_value.
8761         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
8762         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
8763         HOST_WIDE_INT.
8764         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
8765         (m32r_init): Check global_options_set.x_g_switch_value instead of
8766         g_switch_set.
8767         (m32r_in_small_data_p): Remove cast in comparison with
8768         g_switch_value.
8769         (m32r_file_start): Format g_switch_value with %d.
8770         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
8771         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
8772         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
8773         handle -G here.
8774         (microblaze_option_override): Check
8775         global_options_set.x_g_switch_value instead of g_switch_set.
8776         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
8777         (mips_option_override): Check global_options_set.x_g_switch_value
8778         instead of g_switch_set.
8779         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
8780         (rs6000_file_start): Format g_switch_value with %d.
8781         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
8782         comparisons with g_switch_value.
8783         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
8784         global_options_set.x_g_switch_value instead of g_switch_set.
8785         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
8786         global_options_set.x_g_switch_value instead of g_switch_set.
8787         * config/score/score.c (score_handle_option): Don't handle -G here.
8788         * config/score/score3.c (score3_option_override): Check
8789         global_options_set.x_g_switch_value instead of g_switch_set.
8790         * config/score/score7.c (score7_option_override): Check
8791         global_options_set.x_g_switch_value instead of g_switch_set.
8792
8793 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
8794
8795         * common.opt (fira-coalesce): Remove.
8796
8797         * doc/invoke.texi (flag_ira_coalesce): Remove.
8798
8799         * ira-color.c (allocno_coalesced_p): Move before
8800         copy_freq_compare_func.
8801         processed_coalesced_allocno_bitmap): Ditto.
8802         (update_conflict_hard_regno_costs): Don't use
8803         ALLOCNO_FIRST_COALESCED_ALLOCNO.
8804         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
8805         (assign_hard_reg): Assume no coalesced allocnos.
8806         (get_coalesced_allocnos_attributes): Remove.
8807         (bucket_allocno_compare_func): Assume no coalesced allocnos.
8808         (push_allocno_to_stack): Ditto.
8809         (remove_allocno_from_bucket_and_push): Use
8810         ira_print_expanded_allocno instead of print_coalesced_allocno.
8811         (push_allocnos_to_stack): Assume uncoalesced allocnos.
8812         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
8813         all_conflicting_hard_regs.
8814         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
8815         (setup_allocno_left_conflicts_size): Ditto.
8816         (put_allocno_into_bucket): Ditto.
8817         (copy_freq_compare_func): Remove.
8818         (copy_freq_compare_func, merge_allocnos): Move before
8819         coalesced_pseudo_reg_freq_compare.
8820         coalesced_allocno_conflict_p): Ditto.
8821         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
8822         parameter.  Assume it true.
8823         (color_allocnos): Assume uncoalesced allocnos.  Use
8824         ira_print_expanded_allocno instead of print_coalesced_allocno.
8825         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
8826         parameter.
8827
8828         * ira.c: Remove comment about coalescing.
8829
8830 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
8831
8832         * config/mips/mips.h (target_flags_explicit): Declare for
8833         GENERATOR_FILE.
8834
8835 2010-10-04  Andi Kleen  <ak@linux.intel.com>
8836
8837         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
8838         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
8839
8840 2010-10-04  Matthias Klose  <doko@ubuntu.com>
8841
8842         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
8843         multilib osdirname if it exists.
8844         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
8845
8846 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
8847
8848         PR middle-end/45876
8849         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
8850         arg0's type or its unsigned counterpart as utype.  Convert
8851         arg1 to utype unconditionally.
8852
8853 2010-10-04  Julian Brown  <julian@codesourcery.com>
8854
8855         * expr.c (expand_assignment): Add assertion to prevent emitting
8856         null rtx for movmisalign pattern.
8857         (expand_expr_real_1): Likewise.
8858         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
8859         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
8860         (arm_vector_alignment_reachable): New.
8861         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
8862         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
8863         (arm_print_operand): Include alignment qualifier in %A.
8864         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
8865         (movmisalign<mode>): New expander.
8866         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
8867         insn patterns.
8868
8869 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
8870
8871         * optc-gen.awk: Define global_options_set.  Don't define
8872         target_flags_explicit.
8873         * opth-gen.awk: Declare global_options_set.  Define
8874         target_flags_explicit as macro.
8875         * opts-common.c (handle_option): Take opts_set and generated_p
8876         parameters.
8877         (handle_generated_option, read_cmdline_option, set_option): Take
8878         opts_set parameter.
8879         (set_option): Use opts_set instead of hardcoding target_flags and
8880         target_flags_explicit.
8881         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
8882         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
8883         flag_value_profile_transformations_set, flag_peel_loops_set,
8884         flag_branch_probabilities_set, flag_inline_functions_set,
8885         flag_ipa_cp_set, flag_ipa_cp_clone_set,
8886         flag_predictive_commoning_set, flag_unswitch_loops_set,
8887         flag_gcse_after_reload_set): Remove.
8888         (common_handle_option, lang_handle_option, target_handle_option):
8889         Take opts_set parameter.  Assert that it is &global_options_set.
8890         (common_handle_option): Don't set _set variables.  Check opts_set
8891         instead of such variables.
8892         (enable_warning_as_error): Pass &global_options_set to
8893         handle_generated_option.
8894         * opts.h (cl_option_handler_func.handler, set_option,
8895         handle_option, handle_generated_option, read_cmdline_option): Add
8896         opts_set parameters.
8897         (handle_option): Add generated_p parameter.
8898         * config/i386/i386.c (ix86_function_specific_save,
8899         ix86_function_specific_restore): Updat for renaming of
8900         target_flags_explicit field.
8901         * config/i386/i386.opt (target_flags_explicit): Rename to
8902         ix86_target_flags_explicit.
8903         * config/ia64/ia64.c (ia64_override_options_after_change): Check
8904         global_options_set.x_flag_selective_scheduling and
8905         global_options_set.x_flag_selective_scheduling2, not
8906         sel_sched_switch_set.
8907         * flags.h (sel_sched_switch_set,
8908         flag_speculative_prefetching_set): Remove.
8909         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
8910         that it is &global_options_set.
8911         (process_command): Pass &global_options_set to read_cmdline_option.
8912         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
8913         set_option.
8914         * toplev.c (target_flags_explicit): Remove.
8915
8916 2010-10-04  Jan Hubicka  <jh@suse.cz>
8917
8918         PR middle-end/45871
8919         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
8920         use get_ref_base_and_offset to handle references.
8921         (fold_const_aggregate_ref): Update.
8922
8923 2010-10-04  Martin Jambor  <mjambor@suse.cz>
8924
8925         PR tree-optimization/45572
8926         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
8927         ipa_check_create_node_params.
8928         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
8929
8930 2010-10-04  Yao Qi  <yao@codesourcery.com>
8931
8932         * doc/passes.texi: Clean up.
8933
8934 2010-10-03  Ian Lance Taylor  <iant@google.com>
8935
8936         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
8937         referring to a field using a typedef name.
8938         (find_anonymous_field_with_type): New static function.
8939         (convert_to_anonymous_field): New static function.
8940         (convert_for_assignment): If -fplan9-extensions, permit converting
8941         pointer to struct to pointer to anonymous field.
8942         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
8943         (is_duplicate_field): New static function.
8944         (detect_field_duplicates_hash): If -fplan9-extensions, check for
8945         typedef names duplicating field names.
8946         (detect_field_duplicates): Likewise.
8947         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
8948         (C Dialect Options): Document -fplan9-extensions.
8949         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
8950
8951 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
8952
8953         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
8954         revision 164914.
8955         (vect_create_data_ref_ptr): Likewise.
8956         * tree-vect-stmts.c (vectorizable_store): Likewise.
8957         (perm_mask_for_reverse): Likewise.
8958         (reverse_vec_elements): Likewise.
8959         (vectorizable_load): Likewise.
8960
8961 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8962
8963         * cppbuiltin.c: New file.
8964         * cppbuiltin.h: New file.
8965         * Makefile.in: Take into account cppbuiltin.{h,c}.
8966
8967 2010-10-03  Andi Kleen  <ak@linux.intel.com>
8968
8969         * lto-cgraph.c (input_cgraph): Check for missing sections.
8970
8971 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
8972
8973         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
8974         to nonimmediate_operand.  Force operand 2 to register when allowed.
8975         (*<shiftrt_insn><mode>3_mask): Ditto.
8976         (*<rotate_insn><mode>3_mask): Ditto.
8977
8978 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
8979
8980         PR tree-optimization/45720
8981         PR tree-optimization/45764
8982         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
8983         Don't accept backwards consecutive accesses.
8984         (vect_create_data_ref_ptr): Disallow negative steps.
8985
8986         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
8987         (perm_mask_for_reverse): Removed.
8988         (reverse_vec_elements): Likewise.
8989         (vectorizable_load): Don't handle negative steps.
8990
8991 2010-10-02  Jan Hubicka  <jh@suse.cz>
8992
8993         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
8994         call destination is known.
8995
8996 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8997
8998         PR target/45820
8999         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
9000         earlier.
9001
9002 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9003
9004         * doc/install.texi (Configuration): Document build_configargs,
9005         host_configargs, target_configargs.
9006
9007 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
9008
9009         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
9010         (*<shiftrt_insn><mode>3_mask): Ditto.
9011         (*<rotate_insn><mode>3_mask): Ditto.
9012
9013 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
9014
9015         PR tree-optimization/44716
9016         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
9017         (HOT_TEXT_SECTION_NAME): Define.
9018
9019 2010-10-01  Nick Clifton  <nickc@redhat.com>
9020
9021         * common.opt: Add -fcombine-stack-adjustments.
9022         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
9023         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
9024         flag_combine_stack_adjustments.
9025         * doc/invoke.texi: Document the new option.
9026
9027 2010-10-01  Richard Guenther  <rguenther@suse.de>
9028
9029         PR tree-optimization/45854
9030         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
9031
9032 2010-10-01  Anthony Green  <green@moxielogic.com>
9033
9034         * config.gcc: Fix moxie-*-rtems* configuration.
9035
9036 2010-10-01  Richard Guenther  <rguenther@suse.de>
9037
9038         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
9039         (gen_decl_die): Likewise.
9040
9041 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9042
9043         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
9044         to the function code for SPU MD builtins.
9045         (spu_expand_builtin): Update.
9046         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
9047
9048 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9049
9050         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
9051         sjlj_except_unwind_info.
9052
9053 2010-10-01  Tristan Gingold  <gingold@adacore.com>
9054
9055         * configure.ac: Define the nop insn for avr*-*-*
9056         * configure: Regenerate.
9057
9058 2010-10-01  Alan Modra  <amodra@gmail.com>
9059
9060         PR target/45807
9061         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
9062         extend toc_restore_insn.
9063
9064 2010-09-30  Richard Guenther  <rguenther@suse.de>
9065
9066         PR tree-optimization/43959
9067         * function.c (gimplify_parameters): Use create_tmp_reg instead of
9068         create_tmp_var.
9069
9070 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
9071
9072         * config/sh/sh.c (sh_expand_prologue): Set
9073         current_function_static_stack_size.
9074
9075 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9076
9077         * configure.ac: Check for Solaris 8 ld with .hidden support.
9078         * configure: Regenerate.
9079
9080 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9081
9082         PR middle-end/45758
9083         * graphite.c (graphite_initialize): Call scev_reset.
9084
9085 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9086
9087         * sese.h (scev_analyzable_p): Return false for real or floating
9088         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
9089
9090 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9091
9092         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
9093         and ps.
9094         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
9095         domain.
9096         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
9097         Do not allocate ub_expr, it is passed in initialized.
9098
9099 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9100
9101         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
9102         (build_cloog_prog): Dump CLooG input file when
9103         flag_graphite_dump_cloog is set.  This is disabled on trunk.
9104         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
9105
9106 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9107
9108         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
9109         verify_dominators for CDI_POST_DOMINATORS.
9110         * sese.h: Remove comment about CDI_POST_DOMINATORS.
9111         (recompute_all_dominators): Remove call to free_dominance_info
9112         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
9113         for CDI_POST_DOMINATORS.
9114
9115 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9116
9117         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
9118         over pbb_dim_iter_domain.
9119
9120 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9121
9122         * graphite-flattening.c: Fix comments.
9123
9124 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9125
9126         * Makefile.in (OBJS-common): Add graphite-flattening.o.
9127         (graphite-flattening.o): New rule.
9128         * common.opt (floop-flatten): New flag.
9129         * doc/invoke.texi (-floop-flatten): Documented.
9130         * graphite-flattening.c: New.
9131         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
9132         * graphite-poly.h (flatten_all_loops): Declared.
9133         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
9134         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
9135         is set, also set flag_graphite.
9136
9137 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9138
9139         * graphite-poly.c (cloog_checksum): New.
9140         * graphite-poly.h (cloog_checksum): Declared.
9141
9142 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9143
9144         * graphite-poly.c (pbb_number_of_iterations): Removed.
9145         (pbb_number_of_iterations_at_time): Correctly compute the number
9146         of iterations in the transformed loop.
9147         * graphite-poly.h (pbb_number_of_iterations): Removed.
9148
9149 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9150
9151         * graphite-poly.h (lst_update_scattering_seq): Removed.
9152         (lst_update_scattering): Correctly handle outermost loop dewey
9153         renumbering.
9154
9155 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9156
9157         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
9158         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
9159         * graphite-poly.h (lst_niter_for_loop): New.
9160
9161 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9162
9163         * graphite-poly.c (apply_poly_transforms): Do not abort when the
9164         transform read from disk is not legal.  Call fatal_error instead.
9165
9166 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9167
9168         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
9169         (print_scop_header): Removed.  Inlined in the only call place...
9170         (print_scop): ... here.
9171
9172 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9173
9174         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
9175
9176 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9177
9178         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
9179
9180 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9181
9182         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
9183         (dot_deps_stmt): Same.
9184         * graphite-poly.c (dot_lst): Same.
9185
9186 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9187
9188         * graphite-blocking.c (scop_do_strip_mine): Do not call
9189         graphite_legal_transform.
9190         (scop_do_block): Same.
9191
9192 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
9193
9194         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
9195         description.
9196
9197 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9198
9199         * tree-scalar-evolution.c (instantiate_array_ref): New.
9200         (instantiate_scev_r): Also handle ARRAY_REFs.
9201
9202 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9203
9204         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
9205         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
9206         RESULT_DECL, and FIELD_DECL.  Return false for an
9207         SSA_NAME_IS_DEFAULT_DEF.
9208         (compute_scalar_evolution_in_loop): Do not further analyze the
9209         scalar evolution when no_evolution_in_loop_p returns true.
9210
9211 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9212
9213         * tree-chrec.h (evolution_function_is_affine_p): Do not check
9214         whether CHREC_LEFT is invariant.  A function is affine when
9215         CHREC_RIGHT is invariant.
9216
9217 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9218
9219         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
9220         is_gimple_reg.
9221         (rewrite_degenerate_phi): Same.
9222         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
9223
9224 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
9225
9226         * graphite-scop-detection.c (graphite_can_represent_scev,
9227         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
9228         graphite_can_represent_loop): Remove outermost_loop.
9229
9230 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9231
9232         PR middle-end/45229
9233         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
9234         handle GIMPLE_CALLs with no LHS.
9235
9236 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9237
9238         * graphite-poly.c (init_graphite_out_file): New.
9239         (init_graphite_in_file): New.
9240         (apply_poly_transforms): Updated to enable reading and writing of
9241         multiple scop files.
9242
9243 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
9244
9245         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
9246         redundant checks.
9247
9248 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9249
9250         * graphite-clast-to-gimple.c (precision_for_value): Adjust
9251         computation of precision by 1.
9252
9253 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9254
9255         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
9256         (openscop_read_polyhedron_matrix): New.
9257         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
9258         (openscop_read_N_int): Same.
9259         * graphite-poly.c (openscop_read_N_int): New.
9260         (openscop_read_one_int): New.
9261         (openscop_read_N_string): New.
9262         (openscop_read_one_string): New.
9263         (openscop_read_powerset_matrix): New.
9264         (graphite_read_transforms): Remove.
9265         (graphite_read_scatt): New.
9266         (graphite_read_scop_file): New.
9267         (apply_poly_transforms): Updated to call graphite_read_scop_file.
9268
9269 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9270
9271         * graphite-poly.c: Change include order.
9272
9273 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9274
9275         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
9276         (cloog_matrix_nrows): New.
9277
9278 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9279
9280         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
9281         from matrix lines.
9282         * graphite-poly.c (openscop_print_scattering_function_1): Same.
9283         (print_scattering_function_1): Same.
9284         (openscop_print_pbb_domain): Same.
9285         (openscop_print_scop_context): Same.
9286         (print_scop_context): Same.
9287
9288 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
9289
9290         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
9291         (openscop_print_pdr_polyhedron): Print pph.
9292
9293 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9294
9295         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
9296         priority signed types.
9297
9298 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9299
9300         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
9301         the call to lang_hooks.types.type_for_size.  Call
9302         build_nonstandard_integer_type.
9303
9304 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9305
9306         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
9307         (openscop_print_polyhedron_matrix): New.
9308         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
9309         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
9310         (openscop_print_pdr_powerset): New.
9311         (openscop_print_powerset_matrix): New.
9312         (openscop_print_scattering_function_1): New.
9313         (print_scattering_function): Add support for scattering names and
9314         OpenScop format.
9315         (graphite_write_transforms): Remove.
9316         (print_pdr_access_layout): Updated to support OpenScop format.
9317         (print_pdr): Same.
9318         (openscop_print_pbb_domain): New.
9319         (print_pbb_body): Added a parameter to allow indicating that pbb_body
9320         is not provided.
9321         (print_pbb): Updated to call the new print_pbb_body.
9322         (openscop_print_scop_context): New.
9323         (print_scop_header): New.
9324         (print_scop): Updated to call print_scop_header.
9325         * graphite-poly.h: Document OpenScop format.
9326
9327 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
9328
9329         * config/cris/m32c.c (cris_memory_move_cost): New.
9330         (cris_register_move_cost): Make static. Change arguments type from
9331         enum reg_class to reg_class_t.
9332         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
9333         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
9334         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
9335
9336 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
9337
9338         PR target/45843
9339         * config/i386/i386.c (ix86_gimplify_va_arg): Use
9340         INTVAL (XEXP (slot, 1)) as prev_size.
9341
9342 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
9343
9344         PR target/45837
9345         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
9346         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
9347         defined.
9348         * config/rs6000/option-defaults.h (toplevel): Change #if
9349         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
9350         global option changes.
9351
9352 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
9353
9354         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
9355
9356         PR tree-optimization/31261
9357         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
9358         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
9359
9360 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9361
9362         PR bootstrap/45796
9363         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
9364         special-casing for generators and turn into ...
9365         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
9366         rule, for better error messages in case of toplevel dependency errors.
9367         (genprog): Add hooks, rename to ...
9368         (genprogerr): ... this, and let genprog also contain check,
9369         checksum, condmd.
9370         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
9371         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
9372         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
9373
9374 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
9375             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9376
9377         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
9378         for GMP, MPFR and MPC.
9379
9380 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9381
9382         * config/sparc/sparc.opt (mimpure-text): Move ...
9383         * config/sol2.opt: ... here.  Correct description.
9384         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
9385         * doc/invoke.texi (Option Summary, SPARC Options): Move
9386         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
9387         (Option Summary, Solaris 2 Options): ... here.
9388         (Submodel Options, Solaris 2 Options): New menu entry.
9389         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
9390         (Solaris 2 Options): ... here.
9391
9392 2010-09-30  Michael Eager  <eager@eagercon.com>
9393
9394         * extend.texi (interrupt_handler): Add MicroBlaze to list.
9395         (save_volatiles): Describe option for MicroBlaze.
9396         * invoke.texi: Add MicroBlaze Options.
9397         * contrib.texi: Add acknowledgment.
9398         * md.texi: Add MicroBlaze d and z constraints.
9399         * install.texi: Add microblaze-*-elf.
9400         * configure.ac: Add microblaze-*-* to target list.
9401         * configure: Regenerate.
9402         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
9403         * config/microblaze/microblaze-protos.h: New.
9404         * config/microblaze/crti.s: New.
9405         * config/microblaze/predicates.md: New.
9406         * config/microblaze/linux.h: New.
9407         * config/microblaze/microblaze.md: New.
9408         * config/microblaze/constraints.md: New.
9409         * config/microblaze/crtn.s: New.
9410         * config/microblaze/microblaze.opt: New.
9411         * config/microblaze/microblaze-c.c: New.
9412         * config/microblaze/t-microblaze: New.
9413         * config/microblaze/microblaze.c: New.
9414         * config/microblaze/microblaze.h: New.
9415
9416 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
9417
9418         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
9419         parse @optional/@required and set the flags as appropriate.
9420
9421 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
9422
9423         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
9424
9425 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
9426
9427         * opt-functions.awk (static_var): Update comment.
9428         (var_ref): Return offsetof expression or -1, not variable address.
9429         * optc-gen.awk: Generate structure field initializers instead of
9430         static variables.  Expect -1 for missing variables instead of null
9431         pointer.  Add gcc_options parameters to generated functions.
9432         * opth-gen.awk: Generate structure fields for static variables.
9433         Add gcc_options parameters to generated functions.
9434         * common.opt (optimize, optimize_size): Add variables.
9435         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
9436         &global_options to cl_target_option_restore.
9437         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
9438         &global_options to cl_optimization_restore, cl_target_option_save
9439         and cl_target_option_restore.
9440         (ix86_set_current_function): Pass &global_options to
9441         cl_target_option_restore.
9442         * config/pdp11/pdp11.h (optimize): Remove.
9443         * config/rs6000/rs6000.h (optimize): Remove.
9444         * config/sh/sh.h (optimize): Remove.
9445         * config/xtensa/xtensa.h (optimize): Remove.
9446         * coretypes.h (struct gcc_options): Declare.
9447         * diagnostic.c (diagnostic_initialize): Initialize
9448         context->option_state.
9449         (diagnostic_report_diagnostic): Pass option_state to
9450         option_enabled hook.
9451         * diagnostic.h (diagnostic_context.option_enabled): Add void *
9452         parameter.
9453         (diagnostic_context.option_state): New field.
9454         * final.c (final_start_function, final, final_scan_insn): Rename
9455         optimize parameter to optimize_p.
9456         * flags.h (optimize, optimize_size): Remove.
9457         * function.c (invoke_set_current_function_hook): Pass
9458         &global_options to cl_optimization_restore.
9459         * gcc.c (driver_handle_option): Take gcc_options parameter.
9460         Assert that it is &global_options.
9461         (process_command): Pass &global_options to read_cmdline_option.
9462         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
9463         option_enabled.
9464         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
9465         &global_options to set_option.
9466         * opts-common.c (handle_option, handle_generated_option,
9467         read_cmdline_option, set_option): Take explicit gcc_options
9468         parameters.  Use option_flag_var.
9469         (option_flag_var): New.
9470         * opts.c (common_handle_option, lang_handle_option,
9471         target_handle_option): Take gcc_options parameter.  Assert that it
9472         is &global_options.
9473         (read_cmdline_options): Pass &global_options to read_cmdline_option.
9474         (print_filtered_help): Use option_flag_var.  Pass &global_options
9475         to option_enabled.
9476         (common_handle_option): Use option_flag_var.
9477         (option_enabled): Take opts parameter.  Use option_flag_var.
9478         (get_option_state): Take gcc_options parameter.  Use
9479         option_flag_var.  Pass gcc_options parameter to option_enabled.
9480         (enable_warning_as_error): Pass &global_options to
9481         handle_generated_option.
9482         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
9483         (cl_option_handler_func.handler): Take gcc_options parameter.
9484         (option_enabled, get_option_state, set_option, handle_option,
9485         handle_generated_option, read_cmdline_option): Take gcc_options
9486         parameters.
9487         * toplev.c (optimize, optimize_size): Remove.
9488         (print_switch_values): Pass &global_options to option_enabled.
9489         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
9490         to get_option_state.
9491         (general_init): Initialize global_dc->option_state.
9492         * tree.c (build_optimization_node): Pass &global_options to
9493         cl_optimization_save.
9494         (build_target_option_node): Pass &global_options to
9495         cl_target_option_save.
9496
9497 2010-09-30  Martin Jambor  <mjambor@suse.cz>
9498
9499         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
9500         zero sized bit-fields.
9501
9502 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
9503
9504         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
9505         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
9506         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
9507         (c_parser_objc_class_declaration): Same change.
9508         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
9509         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
9510         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
9511         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
9512         and RID_AT_PUBLIC instead of RID_PUBLIC.
9513         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
9514         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
9515
9516 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
9517
9518         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
9519         Add links to current providers of packages for Solaris and IRIX.
9520
9521 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
9522
9523         Merge from 'apple/trunk' branch on FSF servers.
9524         * c-parser.c: Applied change originally in c-parse.in.
9525
9526         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
9527
9528         Radar 4281748
9529         * c-decl.c (start_decl): Check for redeclaration of class name.
9530         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
9531
9532 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
9533
9534         * config/ia64/ia64.c (ia64_builtin_decl): New.
9535         (TARGET_BUILTIN_DECL): Define.
9536         (ia64_builtins): New.
9537         (ia64_init_builtins): Save decls in ia64_builtins.
9538
9539 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
9540
9541         PR target/40457
9542         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
9543         (move2add_use_add3_insn): Likewise.
9544         (reload_cse_move2add): Likewise.
9545         * rtlanal.c (get_full_rtx_cost): New function.
9546         * rtl.h (struct full_rtx_costs): New.
9547         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
9548         costs_add_n_insns): New inline functions.
9549         (get_full_rtx_cost): Declare.
9550
9551         PR c/45054
9552         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
9553         invariants.  Check for reg_equiv_invariant.
9554         (reload): Assert that spilled_pseudos is empty when returning.
9555
9556 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
9557
9558         * config/i386/mingw32.h (TARGET_64BIT): replaced by
9559         TARGET_64BIT_DEFAULT in #if check.
9560
9561 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
9562
9563         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
9564
9565 2010-09-29  Mike Stump  <mikestump@comcast.net>
9566
9567         * config/darwin.h (flag_mkernel): Remove.
9568         (flag_apple_kext): Likewise.
9569
9570 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
9571             Jack Howarth  <howarth@bromo.med.uc.edu>
9572
9573         * config/darwin.opt (undefined): Add.
9574
9575 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
9576
9577         PR testsuite/45664
9578         * configure.ac: Add --enable-indirect-function option.
9579         * config.gcc: Add default_gnu_indirect_function.
9580         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
9581         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
9582         * varasm.c (do_assemble_alias): Adjust for macro name change.
9583         * configure: Rebuilt.
9584         * doc/install.texi: Document --enable-indirect-function.
9585
9586 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
9587
9588         * doc/options.texi (Variable, Var, Init): Update documentation
9589         without reference to VarExists.
9590         (VarExists): Remove.
9591         * common.opt, config/i386/i386.opt, config/linux.opt,
9592         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
9593         Don't use VarExists.
9594
9595 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
9596
9597         * optc-gen.awk: Generate global_options initializer instead of
9598         individual variables.  Add x_ prefix to names of structure members.
9599         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
9600         names of structure members.
9601         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
9602         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
9603         * doc/tm.texi: Regenerate.
9604         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
9605         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
9606         * c-parser.c (disable_extension_diagnostics,
9607         restore_extension_diagnostics): Update names of cpp_options members.
9608         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
9609         * common.opt (fcompare-debug-second): Don't use Var.
9610         * config/alpha/alpha.h (target_flags): Remove.
9611         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
9612         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
9613         * config/bfin/bfin.h (target_flags): Remove.
9614         * config/cris/cris.h (target_flags): Remove.
9615         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
9616         cl_target_option members.
9617         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
9618         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
9619         ix86_can_inline_p): Update names of cl_target_option members.
9620         * config/i386/i386.h (ix86_isa_flags): Remove.
9621         * config/lm32/lm32.h (target_flags): Remove.
9622         * config/mcore/mcore.h (mcore_stack_increment): Remove.
9623         * config/mcore/mcore.md (addsi3): Remove extern declaration of
9624         flag_omit_frame_pointer.
9625         * config/mep/mep.h (target_flags): Remove.
9626         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
9627         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
9628         * config/mmix/mmix.h (target_flags): Remove.
9629         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
9630         flag_expensive_optimizations): Remove.
9631         * config/s390/s390.h (flag_pic): Remove.
9632         * config/score/score-conv.h (target_flags): Remove.
9633         * config/sh/sh.h (sh_fixed_range_str): Remove.
9634         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
9635         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
9636         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9637         * diagnostic.c (diagnostic_initialize): Update names of
9638         diagnostic_context members.
9639         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
9640         warn_system_headers.
9641         (diagnostic_report_warnings_p): Update for new names.
9642         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
9643         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
9644         HARD_FRAME_POINTER_IS_ARG_POINTER.
9645         * flags.h (flag_compare_debug): Declare.
9646         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
9647         * opts.c (flag_compare_debug): Define.
9648         (common_handle_option): Update names of diagnostic_context
9649         members.  Handle -fcompare-debug-second.
9650         (fast_math_flags_struct_set_p): Update names of cl_optimization
9651         members.
9652         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9653         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9654         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9655         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9656         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9657         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
9658         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
9659         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
9660         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
9661
9662 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
9663
9664         * config/picochip/picochip.c (picochip_output_internal_label):
9665         This function can now be called for debug CFI labels, which can come
9666         in the middle of a vliw instruction.  Postpone until end of vliw.
9667
9668 2010-09-29  Richard Guenther  <rguenther@suse.de>
9669
9670         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
9671         (DECL_FILE_SCOPE_P): Use it.
9672         (TYPE_FILE_SCOPE_P): New macro.
9673
9674 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
9675
9676         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
9677         a CPP_NAME which is a reserved word, clearly separate cases for
9678         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
9679
9680 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
9681
9682         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
9683         token->value with the canonical spelling.  Do exactly like C and
9684         C++ and leave it as it is.
9685
9686 2010-09-28  Richard Henderson  <rth@redhat.com>
9687
9688         * config/alpha/alpha.c (alpha_builtins): New.
9689         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
9690         (alpha_builtin_function): New.
9691         (alpha_add_builtins, alpha_init_builtins): Use it.
9692
9693 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
9694
9695         * doc/standards.texi (Standards): Expanded the section on
9696         Objective-C and Objective-C++.
9697
9698 2010-09-28  DJ Delorie  <dj@redhat.com>
9699
9700         PR target/45800
9701         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
9702         volatile MEMs.
9703
9704 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
9705
9706         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
9707         attributes on methods.
9708          (c_parser_objc_method_definition): Handle attributes.
9709         (c_parser_objc_methodproto): Likewise.
9710         (c_parser_objc_maybe_method_attributes): New.
9711         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
9712         missing definition, similar to that in ObjC++.
9713
9714 2010-09-28  Richard Henderson  <rth@redhat.com>
9715
9716         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
9717         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
9718         (CONFIG_SJLJ_EXCEPTIONS): Remove.
9719         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
9720         (STACK_CHECK_PROTECT): Likewise.
9721         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
9722         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
9723         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
9724         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
9725         (dwarf2out_assembly_start): Likewise.
9726         * except.c (init_eh): Use targetm.except_unwind_info.
9727         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
9728         (output_one_function_exception_table): Likewise.
9729         * final.c: Unconditionally include dwarf2out.h.
9730         (final_start_function): Unconditionally call dwarf2out routines.
9731         (final_end_function, final_scan_insn): Likewise.
9732         * function.c (expand_function_end): Use targetm.except_unwind_info.
9733         * opts.c (decode_options): Use targetm.except_unwind_info.
9734         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
9735         * target.def (debug_unwind_info, except_unwind_info): New.
9736         * target.h (enum unwind_info_type): New.
9737         * targhooks.c (default_debug_unwind_info): New.
9738         (default_except_unwind_info): New.
9739         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
9740         * targhooks.h: Declare them.
9741         * tree-tailcall.c: Include "target.h"
9742         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
9743         * Makefile.in (tree-tailcall.o): Update.
9744         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
9745         (lhd_gcc_personality): Likewise.
9746
9747         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
9748         (TARGET_EXCEPT_UNWIND_INFO): New.
9749         (DWARF2_UNWIND_INFO): Update.
9750         (TARGET_DEBUG_UNWIND_INFO): New.
9751         * doc/tm.texi: Rebuild.
9752
9753         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
9754         targetm.except_unwind_info.
9755
9756         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
9757         (arm_except_unwind_info): New.
9758         (arm_compute_func_type): Use it.
9759         (arm_expand_prologue, thumb_pushpop): Likewise.
9760         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
9761         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
9762         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
9763         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
9764         (DWARF2_UNWIND_INFO): Remove.
9765         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
9766         (ARM_EABI_UNWIND_TABLES): Remove.
9767
9768         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
9769         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
9770         (ia64_except_unwind_info): New.
9771         (ia64_output_function_prologue): Use it.
9772         (ia64_add_bundle_selector_before): Likewise.
9773         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
9774         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
9775         (TARGET_UNWIND_INFO): Remove.
9776
9777         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
9778
9779 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
9780
9781         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
9782         (c_parser_objc_protocol_definition): Likewise.
9783         (c_parser_external_declaration): Provide dummy attribute arguments.
9784         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
9785         (c_parser_objc_class_definition): Handle attributes.
9786         (c_parser_objc_protocol_definition): Likewise.
9787
9788 2010-09-28  Tobias Burnus  <burnus@net-b.de>
9789
9790         PR fortran/40569
9791         PR fortran/40568
9792         * toplev.h (save_decoded_options, save_decoded_options_count):
9793         New global variables.
9794         * toplev.c (save_decoded_options, save_decoded_options_count):
9795         Export variables.
9796
9797 2010-09-28  Ian Lance Taylor  <iant@google.com>
9798
9799         * config/i386/i386.c (ix86_supports_split_stack): Test
9800         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
9801
9802 2010-09-28  Ian Lance Taylor  <iant@google.com>
9803
9804         PR target/45815
9805         * opts.c (decode_options): Don't test whether the target supports
9806         split stack if flag_split_stack == 0.
9807
9808 2010-09-28  Jan Hubicka  <jh@suse.cz>
9809
9810         * builtin-attrs.def (ATTR_LEAF): New attribute.
9811         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
9812         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
9813         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
9814         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
9815         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
9816         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
9817         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
9818         * sync-builtins.def: Annotate all builtins by leaf.
9819         * omp-builtins.def: Annotate all builtins by leaf.
9820         * builtins.def: Annotate relevant builtins with leaf attribute.
9821         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
9822         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
9823         leaf.
9824
9825 2010-09-28  Jan Hubicka  <jh@suse.cz>
9826
9827         * tree-ssa-ccp.c (fold_ctor_reference): New function.
9828         (fold_const_aggregate_ref): Use it.
9829         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
9830         into external static.
9831
9832 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9833
9834         PR target/44452
9835         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
9836         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
9837         (ix86_solaris_return_in_memory): Remove.
9838         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
9839         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
9840         (TARGET_SUBTARGET_DEFAULT): Redefine.
9841         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
9842         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
9843         (TARGET_SUBTARGET_DEFAULT): Redefine.
9844         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
9845         -mvect8-ret-in-mem.
9846         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
9847
9848 2010-09-29  Alan Modra  <amodra@gmail.com>
9849
9850         PR target/45807
9851         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
9852         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
9853         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
9854         Delete.
9855         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
9856         (rs6000_emit_prologue): Don't just create frame save info for r2,
9857         actually save r2.
9858
9859 2010-09-28  Richard Henderson  <rth@redhat.com>
9860
9861         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
9862         when 8 bytes are requested.
9863
9864 2010-09-28  Tristan Gingold  <gingold@adacore.com>
9865
9866         * config/avr/avr.c (expand_prologue): Set
9867         current_function_static_stack_size.
9868
9869 2010-09-28  Tristan Gingold  <gingold@adacore.com>
9870
9871         * config/alpha/alpha.md: Change the initial condition of the
9872         probing loop.
9873
9874 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
9875
9876         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
9877         Split from *avx_<maxmin:code><mode>3.
9878         (*avx_<smaxmin:code><mode>3): Ditto.
9879         * config/i386/i386.md (maxmin): Remove code iterator.
9880
9881 2010-09-27  Ian Lance Taylor  <iant@google.com>
9882
9883         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
9884         requires assembler support for CFI directives.
9885
9886 2010-09-27  Richard Henderson  <rth@redhat.com>
9887
9888         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
9889
9890 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
9891
9892         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
9893         that AFTER is not in the range FROM..TO, inclusive.
9894
9895 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
9896             Bernd Schmidt  <bernds@codesourcery.com>
9897
9898         PR rtl-optimization/45792
9899         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
9900         If not all insns are to be merged, for each edge, stash the
9901         next candidate after the to-be-merged insns before doing the
9902         merge, and use them for the retry at the new insertion point.
9903         Handle CC0 targets when retrying.
9904
9905 2010-09-27  Ian Lance Taylor  <iant@google.com>
9906
9907         * common.opt (fsplit-stack): New option.
9908         * opts.c (decode_options): Set flag_split_stack to final value.
9909         * target.def (supports_split_stack): New hook.
9910         * gcc.c (STACK_SPLIT_SPEC): Define.
9911         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
9912         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
9913         (Code Gen Options): Document -fsplit-stack.
9914         * doc/extend.texi (Function Attributes): Mention no_split_stack.
9915         (Function Attributes): Document no_split_stack.
9916         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
9917         TARGET_SUPPORTS_SPLIT_STACK.
9918         * doc/tm.texi: Rebuild.
9919         * function.c (thread_prologue_and_epilogue_insns): If
9920         flag_split_stack, add split stack prologue.
9921         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
9922         * varasm.c (saw_no_split_stack): New static variable.
9923         (assemble_start_function): Set saw_no_split_stack if the function
9924         has the no_split_stack attribute.
9925         (file_end_indicate_split_stack): New function.
9926         * output.h (file_end_indicate_split_stack): Declare.
9927         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
9928         and function.
9929         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
9930         routines.
9931         * config/i386/i386.c (ix86_option_override_internal): Don't set
9932         expand_builtin_va_start to NULL if -fsplit-stack.
9933         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
9934         -fsplit-stack.
9935         (ix86_va_start): If -fsplit-stack, get overflow pointer from
9936         scratch register set by prologue.
9937         (ix86_code_end): If -fsplit-stack, call
9938         file_end_indicate_split_stack.
9939         (ix86_supports_split_stack): New static function.
9940         (SPLIT_STACK_AVAILABLE): Define.
9941         (split_stack_prologue_scratch_regno): New static function.
9942         (split_stack_fn): New static variable.
9943         (ix86_expand_split_stack_prologue): New function.
9944         (ix86_live_on_entry): New static function.
9945         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
9946         (output_pic_addr_const): Likewise.
9947         (i386_asm_output_addr_const_extra): Likewise.
9948         (ix86_expand_call): Change return type to rtx.  Return the new
9949         call instruction.
9950         (TARGET_SUPPORTS_SPLIT_STACK): Define.
9951         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
9952         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
9953         (split_stack_prologue, split_stack_return): New insns.
9954         (split_stack_space_check): New insn.
9955         * config/i386/i386.h (struct machine_function): Add
9956         split_stack_varargs_pointer field.
9957         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
9958         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
9959         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
9960         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
9961         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
9962         Declare.
9963         (ix86_expand_call): Update declaration.
9964
9965 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
9966
9967         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
9968         code.  Added byref, which was missing in the list of codes.
9969         Explain that enumeration values are encoded as the integer type
9970         that the compiler uses to store them.  Explain and make examples
9971         of how 'const' interacts with pointers, and the complication of
9972         the encoding of 'const char *'.
9973         (Legacy type encoding): New subsection, explaining that GCC emits
9974         incorrect type encodings for the NeXT runtime for compatibility
9975         reasons.
9976         (@@encode): New subsection, explaining @encode and particularly
9977         that protocol qualifiers are not recognized inside an @encode()
9978         expression.
9979         (Method signatures): New subsection, explaining how method
9980         signatures are encoded.
9981
9982 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
9983
9984         Merge from 'apple/trunk' branch on FSF servers.  Removed small
9985         change in build_conditional_expr that had been added when fixing
9986         PR objc/27377 and which did the same check in a less complete way.
9987
9988         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
9989
9990         Radar 4229905
9991         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
9992         looking for objective-c common pointer types.
9993
9994         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
9995
9996         Radar 4154928
9997         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
9998         use their ObjC common type.
9999
10000 2010-09-27  Richard Guenther  <rguenther@suse.de>
10001
10002         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
10003
10004 2010-09-27  Jie Zhang  <jie@codesourcery.com>
10005
10006         * print-tree.c (print_node): Print in-constant-pool.
10007
10008 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
10009
10010         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
10011         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
10012         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
10013         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
10014
10015 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10016
10017         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
10018         from pro_epilogue_adjust_stack_<mode>_{1,2}.
10019         (pro_epilogue_adjust_stack_<mode>_add): Rename from
10020         pro_epilogue_adjust_stack_<mode>_3.
10021         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
10022         renamed pro_epilogue_adjust_stack_{si,di}_add.
10023         (ix86_expand_prologue): Use indirect functions.  Update for renamed
10024         pro_epilogue_adjust_stack_{si,di}_sub.
10025
10026 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10027
10028         * config/i386/i386.md (movmsk_df): New insn.
10029         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
10030         sequence for TARGET_SSE_MATH.
10031
10032 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
10033
10034         * config/mips/mips.c (mips_builtin_decls): Declare.
10035         (mips_init_builtins): Store function declarations in
10036         mips_builtin_decls.
10037         (mips_builtin_decl): New function.
10038         (TARGET_BUILTIN_DECL): Define.
10039
10040 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
10041             Richard Henderson  <rth@redhat.com>
10042
10043         * config/i386/cygwin.asm: Include auto-host.h.
10044         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
10045         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
10046         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
10047         alignment code from the 64-bit path.  Use gas local labels.
10048         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
10049         from _di_2.  Remove the useless constant integer argument.
10050         (pro_epilogue_adjust_stack_<mode>_3): New.
10051         (allocate_stack_worker_probe_<mode>): Macroize from
10052         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
10053         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
10054         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
10055         (__chkstk_ms): New function.
10056         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
10057         * config/i386/t-interix: Likewise.
10058         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
10059         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
10060         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
10061         * configure, config.in: Rebuild.
10062
10063 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
10064
10065         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
10066         statements because of the return slot optimization.
10067
10068 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
10069
10070         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
10071         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
10072         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10073         (class_likely_spilled_p): Rename to...
10074         (avr_class_likely_spilled_p): ...this. Make static. Change argument
10075         type to reg_class_t.
10076
10077 2010-09-24  Jan Hubicka  <jh@suse.cz>
10078
10079         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
10080         (lto_symtab_resolve_symbols): Set it.
10081         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
10082         store resolution field in cgraph/varpool.
10083         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
10084         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
10085         (cgraph_dump_node): Drop used_from_object_file.
10086         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
10087         (cgraph_function_body_availability): Use decl_replaceable_p.
10088         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
10089         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
10090         cgraph_used_from_object_file_p.
10091         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
10092         cgraph_used_from_object_file_p.
10093         (resolution_used_from_other_file_p): New functoin.
10094         (cgraph_used_from_object_file_p): New predicate.
10095         * cgraph.h: Include plugin-api.h
10096         (struct cgraph_local_info): Remove used_from_object_file.
10097         (struct cgraph_node): Add resolution field.
10098         (struct varpool_node): Likewise; remove used_from_object_file;
10099         reove const_value_known.
10100         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
10101         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
10102         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
10103         varpool_used_from_object_file_p): Declare.
10104         (varpool_get_node, varpool_extra_name_alias): Update prototype.
10105         * tree.h (DECL_REPLACEABLE_P): Remove.
10106         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
10107         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
10108         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
10109         input_overwrite_node, input_node, input_varpool_node): Stream
10110         resolution.
10111         * expr.c (expand_expr_real_1): Use const_value_known_p
10112         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
10113         const_value_known.
10114         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
10115         (function_and_variable_visibility): Set resolution for local vars
10116         and functions; use varpool_used_from_object_file_p.
10117         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
10118         static functions.
10119         (default_binds_local_p_1): Use resolutoin info.
10120         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
10121         * varpool.c (varpool_get_node): Constify.
10122         (const_value_known_p): Do not use vnode->const_value_known;
10123         use decl_replaceable_p.
10124         (varpool_finalize_decl): Do not set const_value_known.
10125         (cgraph_variable_initializer_availability): Use decl_replaceable_p
10126         (varpool_extra_name_alias): Return new node.
10127         (varpool_used_from_object_file_p): New function.
10128
10129 2010-09-24  Richard Henderson  <rth@redhat.com>
10130
10131         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
10132         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
10133         (do_spill): Use REG_CFA_OFFSET.
10134         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
10135         as appropriate.
10136         (ia64_expand_epilogue): Likewise.
10137         (process_set): Split into ...
10138         (process_cfa_adjust_cfa): this,
10139         (process_cfa_register): this,
10140         (process_cfa_offset): and this new function.
10141         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
10142         instead of REG_FRAME_RELATED_EXPR.
10143
10144 2010-09-24  Olivier Hainque  <hainque@adacore.com>
10145
10146         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
10147
10148 2010-09-24  Jan Hubicka  <jh@suse.cz>
10149
10150         * doc/extend.texi: (attribute leaf): Document.
10151         * tree.c (local_define_builtin): Handle ECF_LEAF.
10152         (build_common_builtin_nodes): Set ECF_LEAF where needed.
10153         * tree.h (ECF_LEAF): New.
10154         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
10155         overwrittable and unavailable functions.
10156         (ipa_init): Put all_module_statics into optimization_summary_obstack.
10157         (copy_global_bitmap): Do not copy all_module_statics.
10158         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
10159         (propagate): Handle overwritable and unavailable leaf functions;
10160         initialize global info for overwritable and unavailable leaf functions;
10161         do not free all module statics.
10162         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
10163         local statics.
10164         * calls.c (flags_from_decl_or_type): Handle leaf.
10165         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
10166         abnormal gotos.
10167
10168 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
10169
10170         * gengtype.c: Reindented.
10171         * gengtype.h: Reindented.
10172         * gengtype-parse.c: Reindented.
10173
10174 2010-09-24  Jan Hubicka  <jh@suse.cz>
10175
10176         PR tree-optimization/45738
10177         PR tree-optimization/45741
10178         * expr.c (string_constant): Allow CONST_DECL too;
10179         check that DECL_INITIAL is set.
10180         * varpool.c (const_value_known_p): Only look into VAR_DECL
10181         and CONST_DECL.
10182
10183 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
10184
10185         * common.opt (undef): New.
10186
10187 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
10188
10189         PR middle-end/45234
10190         * rtl.h (enum global_rtl_index): Add
10191         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
10192         (LAST_VIRTUAL_POINTER_REGISTER): Define.
10193         (virtual_preferred_stack_boundary_rtx,
10194         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
10195         (LAST_VIRTUAL_REGISTER): Increase by one.
10196         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
10197         instead of LAST_VIRTUAL_REGISTER.
10198         * function.c (instantiate_new_reg): Handle
10199         virtual_preferred_stack_boundary_rtx.
10200         * emit-rtl.c (init_virtual_regs): Handle
10201         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
10202         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
10203         * explow.c (round_push): If crtl->preferred_stack_boundary
10204         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
10205         virtual_preferred_stack_boundary_rtx alignment instead of
10206         crtl->preferred_stack_boundary alignment.
10207         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
10208         macros.  Never decrease crtl->preferred_stack_boundary,
10209         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
10210         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
10211         stack_pointer_delta in dynamic allocation, even when size
10212         is constant.
10213         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
10214         macro.
10215         * print-rtl.c (print_rtx): Handle
10216         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
10217         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
10218         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
10219         * config/frv/frv.c (frv_emit_movsi): Likewise.
10220         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
10221         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
10222         Likewise.
10223
10224         Revert:
10225         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
10226
10227         PR middle-end/45234
10228         * calls.c (expand_call): Make sure that all variable sized
10229         adjustments are multiple of preferred stack boundary after
10230         stack alignment.
10231
10232 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
10233             Dominique Dhumieres  <dominiq@lps.ens.fr>
10234
10235         PR bootstrap/45751
10236         * config/darwin-driver.c (darwin_default_min_version):
10237         Adjust size passed to memcpy in two places.
10238
10239 2010-09-24  Richard Guenther  <rguenther@suse.de>
10240
10241         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
10242         Make sure to not call set_type_context with error_mark_node.
10243         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
10244
10245 2010-09-24  Richard Guenther  <rguenther@suse.de>
10246
10247         * Makefile.in (OBJS-onestep): Remove.
10248         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
10249         (libbackend.a): Remove onestep support.
10250         (libbackend.o): Remove.
10251         * configure.ac (--enable-intermodule): Remove.
10252         * configure: Regenerate.
10253
10254 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
10255
10256         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
10257         reaching the end of a block if it occurs at a DEBUG_INSN.
10258
10259 2010-09-09  Tristan Gingold  <gingold@adacore.com>
10260
10261         PR target/44242
10262         * config/vms/vms-crt0-64.c: Removed.
10263         * config/vms/vms-crt0.c: Removed.
10264         * config/vms/vms-psxcrt0-64.c: Removed.
10265         * config/vms/vms-psxcrt0.c: Removed.
10266         * config/vms/vms-ucrt0.c: New file.
10267         * config/vms/t-vms64: Removed.
10268         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
10269         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
10270         * config.gcc (alpha-dec-vms): Use t-vms.
10271
10272 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10273
10274         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
10275         underfull hbox in DVI output.
10276         (-fobjc-class-cxx-cdtors): Same change.
10277         (-fobjc-exceptions): Tidied up documentation.  Explain what the
10278         option does, but moved the (lenghty) description of the exception
10279         syntax into objc.texi.
10280         (-fobjc-gc): Explain that the option is not useful with the GNU
10281         runtime.
10282         (-fzero-link): Explain that the GNU runtime always works in
10283         "zero-link" mode.
10284         * doc/objc.texi: All sections: simplified @node declarations
10285         removing specification of next, previous, up node.
10286         (Objective-C): Updated introduction.
10287         (Garbage Collection): Updated.  The bohem-gc library is now
10288         included in gcc itself.  Mention that this section only applies to
10289         the GNU Objective-C runtime.
10290         (compatibility_alias): Small tidy up.
10291         (Exceptions): New section mostly containing text previously in the
10292         description of the -fobjc-exception command-line option.
10293         (Synchronization): Same.
10294
10295 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
10296
10297         * config/i386/i386.md (ix86_code_end): Move the initialization of
10298         xops array near the consumer.  Use AX_REG and SP_REG instead of
10299         numerical constants.
10300
10301 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10302
10303         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
10304         method [methodname]' for an Objective-C method instead of the less
10305         satisfactory 'too many arguments to function' (with no method name).
10306
10307 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
10308
10309         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
10310         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
10311         (execute_update_addresses_taken): Remove parameter.  Execute the
10312         optimization unconditionally.
10313         * passes.c (execute_function_todo): Call execute_update_addresses_taken
10314         unconditionally if TODO_rebuild_alias is set, else only when optimizing
10315         if TODO_update_address_taken is set.
10316
10317 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
10318
10319         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10320         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
10321         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10322         (arm_output_addr_const_extra): Make static.
10323
10324 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
10325
10326         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
10327         define as unspec_volatile.
10328         ("nops"): Define as unspec_volatile. Use fputs to write to
10329         asm_out_file directly.  Output NOPs on separate lines using while loop.
10330         * config/i386/i386.c (ix86_code_end): Use fputs to write to
10331         asm_out_file directly.  Output NOPs on separate lines using while loop.
10332
10333 2010-09-23  Richard Guenther  <rguenther@suse.de>
10334
10335         PR tree-optimization/45565
10336         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
10337         Make sure to adjust the fndecl before replacing the stmt.
10338
10339 2010-09-23  Richard Guenther  <rguenther@suse.de>
10340
10341         PR middle-end/45750
10342         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
10343         gimplifying MEM_REF.
10344
10345 2010-09-23  Alan Modra  <amodra@gmail.com>
10346
10347         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
10348         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
10349
10350 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
10351
10352         PR rtl-optimization/44374
10353         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
10354         * df-core.c (df_set_bb_dirty): Set it.
10355         * ifcvt.c (find_memory): Remove function.
10356         (dead_or_predicable): Use can_move_insns_across.
10357         * df.h (can_move_insns_across): Declare function.
10358         * cfgcleanup.c (block_was_dirty): New static variable.
10359         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
10360         than df_get_bb_dirty.
10361         (try_head_merge_bb): New static function.
10362         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
10363         is set.
10364         * df-problems.c: Include "target.h"
10365         (df_simulate_find_uses): New static function.
10366         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
10367         (find_memory, find_memory_store): New static functions.
10368         (can_move_insns_across): New function.
10369         * Makefile.in (df-problems.o): Update dependencies.
10370
10371 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
10372
10373         PR java/44095
10374         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
10375         is specified and the suffix of the file isn't ".c".
10376         * config/sparc/linux64.h (ASM_SPEC): Likewise.
10377
10378 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10379
10380         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
10381         * doc/cppopts.texi: Fix markup of index entry.
10382         * doc/extend.texi (Constructing Calls): Fix markup of
10383         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
10384         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
10385         (Vague Linkage, C++ Attributes): Fix markup of index entries and
10386         keywords.
10387         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
10388         avoid long lines.
10389         (C Dialect Options, C++ Dialect Options, Warning Options)
10390         (Debugging Options, Spec Files, Darwin Options)
10391         (i386 and x86-64 Options, MIPS Options)
10392         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
10393         index entries, avoid abbreviations, allow URLs to wrap, avoid
10394         long lines, avoid overlong pages from long @itemx lists.
10395         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
10396         * doc/standards.texi (Standards): Likewise.
10397         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
10398
10399 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
10400
10401         * opts-common.c (prune_options): Make static.  Work with decoded
10402         options.
10403         (decode_cmdline_options_to_array): Call prune_options.  Don't
10404         resize option array here.
10405         * opts.h (prune_options): Remove prototype.
10406         * gcc.c (process_command): Take decoded options; don't call
10407         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
10408         (main): Call decode_cmdline_options_to_array here instead of
10409         prune_options.  Update call to process_command.
10410         * config/darwin-driver.c: Include opts.h.
10411         (darwin_default_min_version): Work with decoded options.  Don't
10412         handle -b or -V here.
10413         * config/darwin.h (darwin_default_min_version): Update prototype.
10414         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
10415         darwin_default_min_version.
10416         * config/i386/cygwin.h (mingw_scan): Update prototype.
10417         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
10418         * config/i386/cygwin1.c: Include opts.h.
10419         (mingw_scan): Work with decoded options.
10420         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
10421         * config/t-darwin (darwin-driver.o): Update dependencies.
10422
10423 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
10424
10425         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
10426         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
10427         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
10428         -force-link, -force-link=, -language, -language=,
10429         -library-directory, -library-directory=, -no-canonical-prefixes,
10430         -no-standard-libraries, -no-warnings, -optimize, -output,
10431         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
10432         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
10433         -print-file-name=, -print-libgcc-file-name,
10434         -print-multi-directory, -print-multi-lib,
10435         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
10436         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
10437         -profile, -save-temps, -shared, -specs, -specs=, -static,
10438         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
10439         symbolic): New.
10440         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
10441         * gcc.c (A Short Introduction to Adding a Command-Line Option):
10442         Remove comment.
10443         (cc1_options): Correct specs for passing down --help,
10444         --target-help and --help=*.  Add spec for passing down --version.
10445         (struct option_map, option_map, target_option_translations,
10446         translate_options): Remove.
10447         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
10448         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
10449         OPT_fhelp_ and OPT_ftarget_help.
10450         (process_command): Don't call translate_options.  Call
10451         decode_cmdline_options_to_array before checking for
10452         -no-canonical-prefixes using decoded options.
10453         * opts-common.c (tm.h): Update comment on #include.
10454         (find_opt): Allow abbreviations of long options.
10455         (struct option_map, option_map): New.
10456         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
10457         and -mno handling.
10458         (target_option_translations): New.
10459         (decode_cmdline_options_to_array): Handle
10460         TARGET_OPTION_TRANSLATE_TABLE in driver.
10461         * opts.c (common_handle_option): Don't handle OPT_fhelp,
10462         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
10463
10464 2010-09-22  Richard Guenther  <rguenther@suse.de>
10465
10466         * tree-inline.c (optimize_inline_calls): Schedule cleanups
10467         only if we inlined something.  Block compaction and conditional
10468         folding are done by cfg cleanup.  Schedule update-address-taken.
10469         (tree_function_versioning): Remove redundant call to number_blocks.
10470         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
10471         folding is done by cfg cleanup.
10472         * passes.c (init_optimization_passes): Remove update-address-taken
10473         pass after IPA inlining.
10474
10475 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
10476
10477         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
10478         to update conditions. Fix reg_mode[] check.
10479
10480 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
10481
10482         * config/picochip/picochip.md (movhicc): Use expand to check whether
10483         movhicc is available and split it after reload.
10484
10485 2010-09-22  Richard Guenther  <rguenther@suse.de>
10486
10487         * tree-ssanames.c (release_dead_ssa_names): Do not remove
10488         callee edges here.
10489         * passes.c (init_optimization_passes): Remove early CFG cleanup.
10490         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
10491         (pass_cleanup_cfg): Likewise.
10492         (execute_fixup_cfg): Cleanup.
10493         * tree-pass.h (pass_cleanup_cfg): Remove.
10494
10495 2010-09-22  Martin Jambor  <mjambor@suse.cz>
10496
10497         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
10498         builtins if it is true.
10499         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
10500         parameter.
10501
10502 2010-09-22  Martin Jambor  <mjambor@suse.cz>
10503
10504         * tree-sra.c (struct access): New field grp_no_warning.
10505         (create_access_replacement): Set TREE_NO_WARNING according to
10506          grp_no_warning.
10507         (create_artificial_child_access): Use build_ref_for_model and set
10508         grp_no_warning if build_user_friendly_ref_for_offset fails.
10509         (propagate_subaccesses_across_link): Likewise.
10510
10511 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
10512
10513         PR target/35664
10514         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
10515         ('f'): Likewise.
10516
10517 2010-09-22  Tristan Gingold  <gingold@adacore.com>
10518
10519         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
10520
10521 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
10522
10523         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
10524         * config/i386/i386.c (decide_alg): Update for rename.
10525
10526 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
10527
10528         PR rtl-optimization/45739
10529         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
10530         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
10531
10532 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
10533
10534         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
10535         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
10536         Remove.
10537         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
10538         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10539
10540 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
10541
10542         PR objc/23710
10543         * c-parser.c (c_parser_objc_method_definition): Check the return
10544         value of objc_start_method_definition and if false is returned,
10545         parse the method definition but emit no code.
10546
10547 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
10548
10549         PR objc/25965
10550         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
10551         call objc_get_interface_ivars ().
10552
10553 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
10554
10555         PR target/45694
10556         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
10557         static chain-register is used for 64-bit.
10558
10559 2010-09-21  Richard Guenther  <rguenther@suse.de>
10560
10561         * dwarf2out.c (is_cu_die): New function.
10562         (add_pubtype): Use it.
10563         (gen_subprogram_die): Likewise.
10564         (gen_struct_or_union_type_die): Likewise.
10565         (dwarf2out_finish): Likewise.
10566         (comp_unit_die): Rename to ...
10567         (single_comp_unit_die): ... this.
10568         (comp_unit_die): New function lazily constructing and
10569         returning single_comp_unit_die.
10570         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
10571         base_type_die, subrange_type_die, modified_type_die,
10572         lower_bound_default, add_bound_info, add_prototyped_attribute,
10573         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
10574         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
10575         force_decl_die, gen_namespace_die, dwarf2out_decl,
10576         dwarf2out_start_source_file, dwarf2out_end_source_file,
10577         prune_unused_types, dwarf2out_finish): Use it.
10578         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
10579         the global list of translation-unit decls.
10580         (dwarf2out_init): Do not create single_comp_unit_die here.
10581         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
10582
10583 2010-09-21  Richard Guenther  <rguenther@suse.de>
10584
10585         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
10586         for bool for C++.
10587
10588 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
10589
10590         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
10591         (qhs_extenddi_cstr): Likewise.
10592         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
10593         them for the source operand.
10594
10595 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
10596
10597         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
10598         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
10599         (ix86_split_ashr): Ditto.
10600         (ix86_split_lshr): Ditto.
10601
10602 2010-09-21  Richard Guenther  <rguenther@suse.de>
10603
10604         PR tree-optimization/45580
10605         * tree-ssa-propagate.c (substitute_and_fold): Always replace
10606         regular uses.
10607         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
10608         virtuals fold the call into a regular indirect one.
10609
10610 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
10611
10612         PR rtl-optimization/42775
10613         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
10614         scheduling is enabled.
10615
10616 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
10617
10618         PR rtl-optimization/45728
10619         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
10620         gen_lowpart_common first and if that fails, force_reg first
10621         before calling gen_lowpart.
10622
10623         PR middle-end/45678
10624         * cfgexpand.c (expand_one_stack_var_at): Use
10625         crtl->max_used_stack_slot_alignment as max_align, instead
10626         of maximum of that and PREFERRED_STACK_BOUNDARY.
10627         Don't call update_stack_alignment.
10628
10629 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
10630
10631         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
10632         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
10633         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
10634         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
10635         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
10636         (build_nonstandard_integer_type): Likewise.
10637         (build_range_type_1): New function, built from...
10638         (build_range_type): ...this.  Call build_range_type_1.
10639         (build_nonshared_range_type): New function.
10640         (build_array_type_1): New function, built from...
10641         (build_array_type: ...this.  Call build_array_type_1.
10642         (build_nonshared_array_type): New function.
10643         * tree.h (build_nonshared_range_type): Declare.
10644         (build_nonshared_array_type): Likewise.
10645
10646 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
10647
10648         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
10649         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10650         (arm_class_likely_spilled_p): New function.
10651
10652 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
10653
10654         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
10655         indirect functions.
10656         (ix86_split_ashl): Ditto.
10657         (ix86_split_ashr): Ditto.
10658         (ix86_split_lshr): Ditto.
10659         (ix86_adjust_counter): Ditto.
10660
10661 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
10662
10663         * c-family/c-common.h (constant_string_class): Documented with
10664         comment identical to the one already in c-common.c.
10665
10666 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
10667
10668         * dwarf2out.c (any_cfis_emitted): New static variable.
10669         (add_fde_cfi): Set it.
10670         (dwarf2out_frame_debug): Clear it before processing,
10671         if it is set afterwards, flush any queued reg saves.
10672
10673         PR debug/45124
10674         * dwarf2out.c (add_accessibility_attribute): Assume
10675         DW_ACCESS_private as the default for dwarf_version > 2
10676         and DW_TAG_class_type parent.
10677         (gen_inheritance_die): Assume DW_ACCESS_public as the default
10678         for dwarf_version > 2 and parent other than DW_TAG_class_type.
10679
10680 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
10681
10682         PR target/45726
10683         * arm.md (arm_movt): Only enable on machines with MOVT.
10684
10685 2010-09-20  Jie Zhang  <jie@codesourcery.com>
10686
10687         * config/arm/arm.c (arm_address_offset_is_imm): New.
10688         (arm_early_store_addr_dep): New.
10689         (arm_early_load_addr_dep): New.
10690         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
10691         (arm_early_load_addr_dep): Declare.
10692         (arm_address_offset_is_imm): Declare.
10693         * config/arm/cortex-m4.md: New file.
10694         * config/arm/cortex-m4-fpu.md: New file.
10695         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
10696         (attr generic_sched): Exclude cortexm4.
10697         (attr generic_vfp): Exclude cortexm4.
10698
10699 2010-09-20  Richard Guenther  <rguenther@suse.de>
10700
10701         PR middle-end/45704
10702         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
10703
10704 2010-09-20  Jan Hubicka  <jh@suse.cz>
10705
10706         PR tree-optimize/45605
10707         * cgraph.h (const_value_known_p): Declare.
10708         (varpool_decide_const_value_known): Remove.
10709         * tree-ssa-ccp.c (get_base_constructor): Use it.
10710         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
10711         * expr.c (string_constant): Likewise.
10712         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
10713         * ipa.c (ipa_discover_readonly_nonaddressable_var,
10714         function_and_variable_visibility): Likewise.
10715         * gimplify.c (gimplify_call_expr): Likewise.
10716         * gimple-fold.c (get_symbol_constant_value): Likewise.
10717         * varpool.c (varpool_decide_const_value_known): Replace by...
10718         (const_value_known_p): ... this one; handle other kinds of DECLs
10719         too and work for automatic vars.
10720         (varpool_finalize_decl): Use const_value_known_p.
10721
10722 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
10723
10724         PR target/45726
10725         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
10726
10727 2010-09-20  Richard Guenther  <rguenther@suse.de>
10728
10729         PR tree-optimization/45705
10730         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
10731
10732 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
10733
10734         PR rtl-optimization/45695
10735         * combine.c (try_combine): When splitting a two set pattern,
10736         make sure the pattern which will be put into i2 doesn't use REGs
10737         or MEMs set by insns in between i2 and i3.
10738
10739 2010-09-19  Jan Hubicka  <jh@suse.cz>
10740
10741         PR lto/44246
10742         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
10743         processing same node twice.
10744
10745 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
10746
10747         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
10748         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10749         (bfin_class_likely_spilled_p): New function
10750
10751 2010-09-19  Ira Rosen  <irar@il.ibm.com>
10752
10753         PR tree-optimization/45714
10754         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
10755         created in vectorizable_call instead of the original statement in
10756         def stmt updates.
10757
10758 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
10759
10760         * config/i386/i386-protos.h (split_double_mode): New prototype.
10761         (split_di, split_ti): Remove prototypes.
10762         * config/i386/i386.c (split_double_mode): New function.
10763         (split_di, split_ti): Remove.
10764         (ix86_expand_branch): Use split_double_mode.
10765         (ix86_split_to_parts): Ditto.
10766         (ix86_split_ashl): Ditto.
10767         (ix86_split_ashr): Ditto.
10768         (ix86_split_lshr): Ditto.
10769         (ix86_force_to_memory): Ditto.
10770         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
10771
10772 2010-09-18  Jan Hubicka  <jh@suse.cz>
10773
10774         PR tree-optimization/45453
10775         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
10776         virtual functions are reachable.
10777         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
10778         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
10779         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
10780         when modifying function.
10781
10782 2010-09-18  Jan Hubicka  <jh@suse.cz>
10783
10784         PR tree-optimization/45605
10785         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
10786         * gimple-fold.c (static_object_in_other_unit_p): New function.
10787         (canonicalize_constructor_val): Use it.
10788         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
10789         returning NULL.
10790         (gimple_fold_obj_type_ref_known_binfo): Use
10791         static_object_in_other_unit_p.
10792
10793 2010-09-18  Richard Guenther  <rguenther@suse.de>
10794
10795         PR tree-optimization/45709
10796         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
10797         insertions until after all PHI nodes of the block are processed.
10798
10799 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
10800
10801         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
10802
10803 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
10804
10805         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
10806
10807 2010-09-18  Richard Guenther  <rguenther@suse.de>
10808
10809         PR tree-optimization/45709
10810         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
10811
10812 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
10813
10814         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
10815         (dot_deps_stmt): Same.
10816         * graphite-poly.c (dot_lst): Same.
10817         * graphite-scop-detection.c (dot_all_scops): Same.
10818         (dot_scop): Same.
10819
10820 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
10821
10822         Revert:
10823         2009-12-16  Ben Elliston  <bje@au.ibm.com>
10824
10825         * tree-data-ref.c (dot_rdg_1): Added back.
10826         (dot_rdg): Same.  Added "#if 0" around system call.
10827
10828 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
10829             Richard Henderson  <rth@redhat.com>
10830
10831         * config/i386/i386.c (initial_ix86_tune_features): Add
10832         X86_TUNE_PAD_SHORT_FUNCTION.
10833         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
10834         (ix86_count_insn): New.
10835         (ix86_pad_short_function): Likewise.
10836         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
10837
10838         * config/i386/i386.h (ix86_tune_indices): Add
10839         X86_TUNE_PAD_SHORT_FUNCTION.
10840         (TARGET_PAD_SHORT_FUNCTION): New.
10841
10842         * config/i386/i386.md (UNSPEC_NOPS): New.
10843         (nops): Likewise.
10844
10845 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
10846
10847         PR middle-end/45234
10848         * calls.c (expand_call): Make sure that all variable sized
10849         adjustments are multiple of preferred stack boundary after
10850         stack alignment.
10851
10852 2010-09-17  DJ Delorie  <dj@redhat.com>
10853
10854         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
10855         passed an invalid value, print an error instead of ICEing.
10856         (valid_psw_flag): New.
10857         (rx_expand_builtin): Call it for setpsw/clrpsw.
10858         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
10859
10860         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
10861         (bitclr_in_memory): Likewise.
10862         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
10863
10864 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
10865
10866         PR middle-end/45678
10867         * cfgexpand.c (update_stack_alignment): New.
10868         (get_decl_align_unit): Use it.
10869         (expand_one_stack_var_at): Call update_stack_alignment.
10870
10871 2010-09-17  Richard Guenther  <rguenther@suse.de>
10872
10873         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
10874         Properly copy the read string.
10875
10876 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
10877
10878         * doc/options.texi (Variable): Document.
10879         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
10880         generate target_flags declarations explicitly.  Don't define
10881         VarExists variables for the driver.
10882         * common.opt (target_flags): New Variable record.
10883         (flag_dump_unnumbered, flag_dump_unnumbered_links,
10884         flag_var_tracking, flag_var_tracking_assignments,
10885         flag_var_tracking_assignments_toggle): Don't mark variables with
10886         VarExists.
10887         * config/i386/i386.c (ix86_isa_flags): Don't define here.
10888         * config/i386/i386.opt (ix86_isa_flags): Define here.
10889         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
10890         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
10891         VarExists.
10892         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
10893         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
10894         Only define for generator programs.
10895         * rtlanal.c (target_flags): Remove.
10896         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
10897         flag_var_tracking_assignments_toggle): Remove.
10898
10899 2010-09-17  Michael Matz  <matz@suse.de>
10900
10901         PR tree-optimization/43432
10902         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
10903         Accept backwards consecutive accesses.
10904         (vect_create_data_ref_ptr): If step is negative generate
10905         decreasing IVs.
10906         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
10907         (perm_mask_for_reverse, reverse_vec_elements): New functions.
10908         (vectorizable_load): Handle loads with negative steps when easily
10909         possible.
10910
10911 2010-09-03  Jan Hubicka  <jh@suse.cz>
10912
10913         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
10914
10915 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
10916
10917         * config/v850/v850.c (v850_function_value_regno_p): Make static.
10918         Adjust comments. Declare.
10919         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
10920         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
10921
10922 2010-09-17  Richard Guenther  <rguenther@suse.de>
10923
10924         * common.opt (combine): Remove.
10925         * gcc.c (default_compilers): Remove specs testing combine.
10926         The C compilers no longer can combine.
10927         (option_map): Remove -combine.
10928         (display_help): Remove -combine.
10929         (driver_handle_option): Remove OPT_combine handling.
10930         (compile_input_file_p): Remove.
10931         (do_spec): Remove code concerning combine.
10932         (main): Likewise.
10933         * doc/invoke.texi: Remove traces of -combine.
10934         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
10935
10936 2010-09-17  Richard Guenther  <rguenther@suse.de>
10937
10938         PR middle-end/45678
10939         * builtins.c (fold_builtin_memory_op): Always properly adjust
10940         alignment of memory accesses.
10941
10942 2010-09-16  Jan Hubicka  <jh@suse.cz>
10943
10944         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
10945         processing clone.
10946
10947 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
10948
10949         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
10950
10951         * config/i386/i386.c (predict_jump): Add prototype.
10952         (flag_opts): Add -m8bit-idiv.
10953         (ix86_split_idivmod): New.
10954
10955         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
10956         Add 2 splitters for SI/DI mode divide.
10957         (divmod<mode>4_1): New pattern.
10958         (udivmod<mode>4_1): Likewise.
10959         (testdi_ccno_1): Likewise.
10960
10961         * config/i386/i386.opt (m8bit-idiv): New.
10962
10963         * doc/invoke.texi: Document -m8bit-idiv.
10964
10965 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
10966
10967         PR bootstrap/45680
10968         * config/i386/i386.c (min_insn_size): Moved out of the
10969         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
10970
10971 2010-09-16  Jan Hubicka  <jh@suse.cz>
10972
10973         * lto-cgraph.c (lto_output_node): Fix handling of clones.
10974         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
10975         unreachable clones with reachable clones.
10976         * tree-inline.c (copy_bb): Fix sanity checking when producing
10977         unreachable clone.
10978
10979 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
10980
10981         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
10982         (TARGET_MEMORY_MOVE_COST): Define.
10983         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
10984
10985 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
10986
10987         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
10988         maybe_tidy_empty_bb.
10989
10990         Revert:
10991         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
10992         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
10993
10994 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
10995
10996         * target.def (target_option.optimization): New hook.
10997         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
10998         TARGET_OPTION_OPTIMIZATION hook.
10999         * doc/tm.texi: Regenerate.
11000         * hooks.c (hook_void_int_int): New.
11001         * hooks.h (hook_void_int_int): Declare.
11002         * opts.c: Don't include tm_p.h.
11003         (decode_options): Use targetm.target_option.optimization instead
11004         of OPTIMIZATION_OPTIONS.
11005         * system.h (OPTIMIZATION_OPTIONS): Poison.
11006         * config/arm/arm-protos.h (arm_optimization_options): Remove.
11007         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
11008         (arm_optimization_options): Rename to arm_option_optimization.
11009         Make static.
11010         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
11011         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
11012         (cris_option_optimization): New.
11013         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
11014         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
11015         (crx_option_optimization): New.
11016         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
11017         * config/frv/frv-protos.h (frv_optimization_options): Remove.
11018         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
11019         (frv_optimization_options): Rename to frv_option_optimization.
11020         Make static.
11021         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
11022         * config/h8300/h8300.c (h8300_option_optimization): New.
11023         (TARGET_OPTION_OPTIMIZATION): Define.
11024         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
11025         * config/i386/i386-protos.h (optimization_options): Remove.
11026         * config/i386/i386.c (optimization_options): Rename to
11027         ix86_option_optimization.  Make static.
11028         (TARGET_OPTION_OPTIMIZATION): Define.
11029         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
11030         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
11031         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
11032         (ia64_optimization_options): Rename to ia64_option_optimization.
11033         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
11034         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
11035         commented-out definition.
11036         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
11037         instead of OPTIMIZATION_OPTIONS.
11038         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
11039         (m32r_option_optimization): New.
11040         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
11041         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
11042         Remove.
11043         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
11044         (mcore_option_optimization): New.
11045         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
11046         * config/mep/mep-protos.h (mep_optimization_options): Remove.
11047         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
11048         (mep_optimization_options): Rename to mep_option_optimization.
11049         Make static.  Take unused level and size parameters.
11050         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
11051         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
11052         (mmix_option_optimization): New.
11053         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
11054         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
11055         (pdp11_option_optimization): New.
11056         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
11057         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
11058         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
11059         (optimization_options): Rename to rs6000_option_optimization.
11060         Make static.
11061         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
11062         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
11063         * config/rx/rx.c (rx_set_optimization_options): Rename to
11064         rx_option_optimization.  Make static.  Take unused level and size
11065         parameters.
11066         (TARGET_OPTION_OPTIMIZATION): Define.
11067         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
11068         * config/s390/s390-protos.h (optimization_options): Remove.
11069         * config/s390/s390.c (optimization_options): Rename to
11070         s390_option_optimization.  Make static.  Don't mark size parameter
11071         unused.
11072         (TARGET_OPTION_OPTIMIZATION): Define.
11073         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
11074         * config/sh/sh-protos.h (sh_optimization_options): Remove.
11075         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
11076         (sh_optimization_options): Rename to sh_option_optimization.  Make
11077         static.  Don't mark parameters unused.
11078         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
11079         * config/spu/spu-protos.h (spu_optimization_options): Remove.
11080         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
11081         (spu_optimization_options): Rename to spu_option_optimization.
11082         Make static.
11083         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
11084         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
11085         (v850_option_optimization): New.
11086         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
11087         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
11088         (xtensa_option_optimization): New.
11089         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
11090
11091 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
11092
11093         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
11094         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
11095         * doc/tm.texi: Regenerate.
11096         * system.h (OVERRIDE_OPTIONS): Poison.
11097         * target.def (override): Default to hook_void_void.
11098         * targhooks.c (default_target_option_override): Remove.
11099         * genmodes.c, machmode.def: Update comments mentioning
11100         OVERRIDE_OPTIONS.
11101         * config/alpha/alpha-modes.def: Update comment mentioning
11102         alpha_override_options.
11103         * config/alpha/alpha-protos.h (override_options): Remove.
11104         * config/alpha/alpha.c (override_options): Rename to
11105         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
11106         (TARGET_OPTION_OVERRIDE): Define.
11107         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
11108         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
11109         of OVERRIDE_OPTIONS.
11110         * config/arc/arc-protos.h (arc_init): Remove.
11111         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
11112         (arc_init): Rename to arc_option_override.  Make static.
11113         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
11114         (OVERRIDE_OPTIONS): Remove.
11115         * config/arm/arm-protos.h (arm_override_options): Remove.
11116         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
11117         (arm_override_options): Rename to arm_option_override.  Make
11118         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
11119         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
11120         * config/arm/arm.md: Update comment referring to arm_override_options.
11121         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
11122         instead of OVERRIDE_OPTIONS.
11123         * config/avr/avr-protos.h (avr_override_options): Remove.
11124         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
11125         (avr_override_options): Rename to avr_option_override.  Make static.
11126         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
11127         * config/bfin/bfin-protos.h (override_options): Remove (twice).
11128         * config/bfin/bfin.c (override_options): Rename to
11129         bfin_option_override.  Make static.
11130         (TARGET_OPTION_OVERRIDE): Define.
11131         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
11132         * config/cris/cris-protos.h (cris_override_options): Remove.
11133         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
11134         (cris_override_options): Rename to cris_option_override.  Make static.
11135         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
11136         * config/frv/frv-protos.h (frv_override_options): Remove.
11137         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
11138         (frv_override_options): Rename to frv_option_override.  Make static.
11139         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
11140         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
11141         * config/h8300/h8300.c (h8300_init_once): Rename to
11142         h8300_option_override.  Make static.
11143         (TARGET_OPTION_OVERRIDE): Define.
11144         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
11145         * config/i386/i386-protos.h (override_options): Remove.
11146         * config/i386/i386.c (override_options): Rename to
11147         ix86_option_override_internal.  Make static.  Comments referring
11148         to this function and callers changed.
11149         (ix86_option_override): New.
11150         (TARGET_OPTION_OVERRIDE): Define.
11151         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
11152         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
11153         * config/ia64/ia64.c (ia64_file_start): Update comment referring
11154         to ia64_override_options.
11155         * config/iq2000/iq2000-protos.h (override_options): Remove.
11156         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
11157         (override_options): Rename to iq2000_option_override.  Make static.
11158         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
11159         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
11160         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
11161         (lm32_override_options): Rename to lm32_option_override.  Make static.
11162         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
11163         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
11164         (m32r_option_override): New.
11165         (m32r_init): Update comment.
11166         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
11167         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
11168         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
11169         (m68hc11_override_options): Rename to m68hc11_option_override.
11170         Make static.  Return void.
11171         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
11172         * config/m68k/m68k-protos.h (override_options): Remove.
11173         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
11174         (override_options): Rename to m68k_option_override.  Make static.
11175         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
11176         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
11177         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
11178         (mcore_override_options): Rename to mcore_option_override.  Make
11179         static.
11180         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
11181         * config/mep/mep-protos.h (mep_override_options): Remove.
11182         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
11183         (mep_override_options): Rename to mep_option_override.  Make static.
11184         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
11185         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
11186         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
11187         (mmix_override_options): Rename to mmix_option_override.  Make static.
11188         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
11189         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
11190         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
11191         (mn10300_override_options): Rename to mn10300_option_override.
11192         Make static.
11193         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
11194         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
11195         * config/moxie/moxie.c (moxie_override_options): Rename to
11196         moxie_option_override.  Make static.
11197         (TARGET_OPTION_OVERRIDE): Define.
11198         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
11199         * config/picochip/picochip-protos.h (picochip_override_options):
11200         Remove.  Update comment referring to picochip_override_options.
11201         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
11202         (picochip_override_options): Rename to picochip_option_override.
11203         Make static.  Update comment and definition of
11204         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
11205         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
11206         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11207         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11208         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11209         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11210         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11211         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
11212         instead of OVERRIDE_OPTIONS.
11213         * config/rs6000/rs6000-modes.def: Update comment referring to
11214         rs6000_override_options.
11215         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
11216         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
11217         (rs6000_override_options): Rename to
11218         rs6000_option_override_internal.  Make static.  Commented
11219         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
11220         (rs6000_option_override): New.
11221         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
11222         instead of OVERRIDE_OPTIONS.
11223         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11224         * config/s390/s390-protos.h (override_options): Remove.
11225         * config/s390/s390.c (override_options): Rename to
11226         s390_option_override.  Make static.
11227         (TARGET_OPTION_OVERRIDE): Define.
11228         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
11229         * config/score/score-protos.h (score_override_options): Remove.
11230         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
11231         (score_override_options): Rename to score_option_override.  Make
11232         static.
11233         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
11234         Update comment referring to override_options.
11235         * config/score/score3.c (score3_override_options): Rename to
11236         score3_option_override.
11237         * config/score/score3.h (score3_override_options): Rename to
11238         score3_option_override.
11239         * config/score/score7.c (score7_override_options): Rename to
11240         score7_option_override.
11241         * config/score/score7.h (score7_override_options): Rename to
11242         score7_option_override.
11243         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
11244         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
11245         (sparc_override_options): Rename to sparc_option_override.  Make
11246         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
11247         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
11248         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
11249         instead of OVERRIDE_OPTIONS.
11250         * config/spu/spu-protos.h (spu_override_options): Remove.
11251         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
11252         (spu_override_options): Rename to spu_option_override.  Make
11253         static.
11254         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
11255         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
11256         OVERRIDE_OPTIONS.
11257         * config/vax/vax-protos.h (override_options): Remove.
11258         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
11259         (override_options): Rename to vax_option_override.  Make static.
11260         Call SUBTARGET_OVERRIDE_OPTIONS.
11261         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
11262         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
11263         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
11264         * config/xtensa/xtensa-protos.h (override_options): Remove.
11265         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
11266         (override_options): Rename to xtensa_option_override.  Make static.
11267         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
11268
11269 2010-09-16  Richard Guenther  <rguenther@suse.de>
11270
11271         PR tree-optimization/45623
11272         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
11273         (get_constraint_for_component_ref): If computing a constraint
11274         for the rhs handle type punning through unions.
11275         (get_constraint_for_address_of): Adjust.
11276         (get_constraint_for_1): Likewise.
11277         (get_constraint_for): Likewise.
11278         (get_constraint_for_rhs): New function.
11279         (do_structure_copy): Adjust.
11280         (make_constraint_to): Likewise.
11281         (handle_const_call): Likewise.
11282         (find_func_aliases): Likewise.
11283         (process_ipa_clobber): Likewise.
11284         (create_variable_info_for): Likewise.
11285
11286 2010-09-16  Ira Rosen  <irar@il.ibm.com>
11287
11288         * tree-vectorizer.c: Fix documentation.
11289         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
11290         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
11291         is_pattern_stmt_p, is_loop_header_bb_p,
11292         stmt_vinfo_set_inside_of_loop_cost,
11293         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
11294         known_alignment_for_access_p): Likewise.
11295         * tree-vect-loop.c: Fix documentation.
11296         (vect_get_cost): Start function name from new line.
11297         * tree-vect-data-refs.c: Fix documentation.
11298         * tree-vect_stmts.c: Likewise.
11299         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
11300         (vectorizable_store): Free vec_oprnds if allocated.
11301         (vectorizable_condition): Initialize several variables to avoid
11302         warnings.
11303         * tree-vect-slp.c: Fix documentation.
11304
11305 2010-09-16  Richard Guenther  <rguenther@suse.de>
11306
11307         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
11308         is TS_TRANSLATION_UNIT_DECL.
11309         (initialize_tree_contains_struct): Adjust.
11310         (all_translation_units): New global vector.
11311         (build_translation_unit_decl): New function.
11312         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
11313         (struct tree_translation_unit_decl): New.
11314         (all_translation_units): Declare.
11315         (union tree_node): Add translation_unit_decl member.
11316         (build_translation_unit_decl): Declare.
11317         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
11318         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
11319         New function.
11320         (pack_value_fields): Call it.
11321         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
11322         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
11323         (lto_output_tree_pointers): Call it.
11324         * lto-streamer-in.c (lto_input_tree_ref): Handle references
11325         to TRANSLATION_UNIT_DECL.
11326         (unpack_ts_translation_unit_decl_value_fields): New function.
11327         (unpack_value_fields): Call it.
11328         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
11329         (lto_input_tree_pointers): Call it.
11330         * lto-streamer.c (check_handled_ts_structures): Adjust.
11331         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
11332         * c-decl.c (all_translation_units): Remove.
11333         (pop_scope): Use build_translation_unit_decl.
11334         (collect_all_refs): Adjust.
11335         (for_each_global_decl): Likewise.
11336         (c_write_global_declarations): Likewise.
11337
11338 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
11339
11340         PR bootstrap/45686
11341         * fold-const.c (fold_checksum_tree): Change slot from const void **
11342         to void **, use CONST_CAST_TREE to store into *slot.
11343
11344 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
11345
11346         * config/i386/i386.md: Remove unneeded empty conditions and
11347         preparation statements from expanders.
11348         * config/i386/mmx.md: Ditto.
11349         * config/i386/sse.md: Ditto.
11350
11351 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
11352
11353         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
11354
11355 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11356
11357         PR rtl-optimization/45593
11358         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
11359         insns that were in delay slots as stand-alone insns.
11360
11361 2010-09-15  Ian Lance Taylor  <iant@google.com>
11362
11363         * incpath.c (remove_duplicates): If name is not a directory, issue
11364         a warning rather than an error.
11365
11366 2010-09-15  Martin Jambor  <mjambor@suse.cz>
11367
11368         PR middle-end/45644
11369         * tree-sra.c (create_access): Check for bit-fields directly.
11370
11371 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
11372
11373         PR tree-optimization/45633
11374         * tree-cfg.c (verify_gimple_assign_binary): Allow
11375         MINUS_EXPR with lhs and rhs1 pointer vector and
11376         rhs2 sizetype vector.
11377         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
11378         or vector pointer use TER to optimize pointer subtraction.
11379
11380 2010-09-15  Jie Zhang  <jie@codesourcery.com>
11381
11382         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
11383         fcmpd to fcmps.
11384
11385 2010-09-15  Ian Lance Taylor  <iant@google.com>
11386
11387         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
11388
11389 2010-09-15  Ian Lance Taylor  <iant@google.com>
11390
11391         * function.c (get_arg_pointer_save_area): Set
11392         arg_pointer_save_area_init to true.
11393
11394 2010-09-15  Martin Jambor  <mjambor@suse.cz>
11395
11396         * tree-sra.c (generate_subtree_copies): Updated comment.
11397         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
11398         obtained from the statement iterator instead.
11399         (load_assign_lhs_subreplacements): Removed parameters lhs and
11400         right_offset, which is obtained from top_racc instead.  Parameter lacc
11401         is now expected to be the root of the processed tree rather than root's
11402         first child.  Updated all callers.
11403
11404 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
11405
11406         * config/pdp11/pdp11.c (register_move_cost): Rename to
11407         pdp11_register_move_cost.
11408         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
11409         pdp11_register_move_cost.
11410         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
11411         pdp11_register_move_cost instead of register_move_cost.
11412
11413 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
11414
11415         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
11416         pattern for vmovn. Expansion in case of non
11417         -mvectorize-with-neon-quad.
11418         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
11419         non- -mvectorize-with-neon-quad case.
11420         (move_lo_quad_<mode>): New expansion to vmov into low part.
11421         (move_hi_quad_<mode>): New expansion to vmov into high part.
11422         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
11423         (move_lo_quad_v4sf): Likewise.
11424         (move_lo_quad_v8hi): Likewise.
11425         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
11426         low part.
11427         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
11428         high part.
11429         * config/arm/iterators.md (ANY128): New mode iterator.
11430         (V_narrow_pack): New mode attribute.
11431         (V_HALF): Add attribute.
11432         (V_DOUBLE): Add attribute.
11433         (V_mode_nunits): Add attribute.
11434
11435 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11436
11437         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
11438         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
11439
11440 2010-09-15  Olivier Hainque  <hainque@adacore.com>
11441             Jose Ruiz  <ruiz@adacore.com>
11442
11443         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
11444         * config/alpha/osf5-unwind.h: New file.
11445
11446 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11447
11448         PR bootstrap/45672
11449         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
11450         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
11451         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
11452
11453 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
11454
11455         * c-lang.h (struct lang_type): Add variable_size GTY option.
11456
11457 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11458
11459         PR bootstrap/45672
11460         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
11461
11462 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11463
11464         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
11465         result isn't used in memory address.
11466
11467 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11468
11469         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
11470         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
11471         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
11472         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
11473         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
11474         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
11475
11476         * target.def: Add units_per_simd_word to vectorize.
11477
11478         * targhooks.c (default_units_per_simd_word): New.
11479         * targhooks.h (default_units_per_simd_word): Likewise.
11480         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
11481         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11482         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
11483         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11484         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
11485         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11486         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
11487         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11488
11489         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
11490         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
11491
11492         * tree-vect-stmts.c: Don't include "tm_p.h".
11493         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
11494         with targetm.vectorize.units_per_simd_word.
11495
11496         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
11497
11498         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
11499
11500         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
11501         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
11502
11503         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
11504         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
11505
11506         * doc/tm.texi: Regenerated.
11507
11508 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11509
11510         * tree-vect-stmts.c: Include "tm_p.h".
11511
11512         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
11513         out of RTX_CODE.
11514
11515 2010-09-14  Martin Jambor  <mjambor@suse.cz>
11516
11517         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
11518         location of generated statement.  Changed all callers.
11519         (build_ref_for_model): New parameter loc which used to set location of
11520         all generated expressions.  Changed all callers.
11521         (generate_subtree_copies): Likewise.
11522         (init_subtree_with_zero): Likewise.
11523         (sra_modify_expr): Set locations of all generated statements and
11524         expressions to the location the original statement.
11525         (handle_unscalarized_data_in_subtree): Likewise.
11526         (load_assign_lhs_subreplacements): Likewise.
11527         (sra_modify_constructor_assign): Likewise.
11528         (sra_modify_assign): Likewise.
11529
11530 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
11531
11532         PR target/45277
11533         PR target/45363
11534         PR target/45407
11535         * doc/install.texi (sparc*-*-*): New section.
11536         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
11537
11538 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
11539
11540         PR middle-end/45567
11541         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
11542         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
11543         (expand_builtin): Adjust caller.
11544         (expand_builtin_unop): Only use subtarget if it has the right mode.
11545
11546 2010-09-14  Tristan Gingold  <gingold@adacore.com>
11547
11548         * configure.ac (plugins): Fix typos.
11549         * configure: Regenerate.
11550
11551 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
11552
11553         PR debug/45660
11554         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
11555         gen_type_die for function/method return type.
11556
11557 2010-09-14  Ira Rosen  <irar@il.ibm.com>
11558
11559         PR tree-optimization/45470
11560         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
11561         can throw an exception.
11562         * tree-vect-stmts.c (vectorizable_call): Likewise.
11563
11564 2010-09-14  DJ Delorie  <dj@redhat.com>
11565
11566         PR target/44749
11567         * config/mep/mep-protos.h (mep_save_register_info,
11568         mep_reinit_regs, mep_init_regs): Declare.
11569
11570         * config/mep/mep.c: Move all target definitions to the end of the
11571         file to avoid the need for duplicate declarations.
11572         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
11573         (mep_reorg_erepeat): Remove unused variables.
11574         (mep_expand_builtin): Likewise.
11575
11576         * config/mep/mep-pragma.c: Don't include rtl.h.
11577         (INVALID_REGNUM): New.
11578         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
11579         functions.
11580         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
11581         Avoid enum/integer math.
11582
11583 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
11584
11585         PR target/44749
11586         * config/mep/t-mep (GTM_H): Add insn-constants.h.
11587         * config/mep/mep.c (mep_conditional_register_usage): Take no
11588         parameters.
11589         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
11590         prototype.
11591         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
11592         call to mep_conditional_register_usage.
11593
11594 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
11595
11596         PR debug/43937
11597         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
11598         the DECL as well.
11599
11600 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
11601
11602         PR rtl-optimization/45617
11603         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
11604         even if low N bits of X aren't known to be zero.
11605
11606 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
11607
11608         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
11609
11610         * config/i386/i386.c (initial_ix86_tune_features): Add
11611         X86_TUNE_VECTORIZE_DOUBLE.
11612         (ix86_units_per_simd_word): New.
11613
11614         * config/i386/i386.h (ix86_tune_indices): Add
11615         X86_TUNE_VECTORIZE_DOUBLE.
11616         (TARGET_VECTORIZE_DOUBLE): New.
11617         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
11618
11619 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
11620
11621         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
11622         (new_temp_expr_table): Allocate call_cnt vector.
11623         (free_temp_expr_table): Free it.
11624         (process_replaceable): Add call_cnt parm and set in vector.
11625         (find_replaceable_in_bb): Skip replacement if def/use span a call.
11626         (debug_ter): Dump call_cnt value, remove stderr uses.
11627
11628 2010-09-13  Jan Hubicka  <jh@suse.cz>
11629
11630         * tree.c (build_zero_cst): New.
11631         * tree.h (build_zero_cst): Declare.
11632         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
11633         (get_base_constructor): Break out from ...
11634         (fold_const_aggregate_ref): Here; handle empty constructors.
11635
11636 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
11637
11638         * config/arm/arm.md: (define_attr "conds"): Update comment.
11639         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
11640         conds attribute to clob.
11641         (arm_sync_compare_and_swapsi): Likewise.
11642         (arm_sync_compare_and_swap<mode>): Likewise.
11643         (arm_sync_lock_test_and_setsi): Likewise.
11644         (arm_sync_lock_test_and_set<mode>): Likewise.
11645         (arm_sync_new_<sync_optab>si): Likewise.
11646         (arm_sync_new_nandsi): Likewise.
11647         (arm_sync_new_<sync_optab><mode>): Likewise.
11648         (arm_sync_new_nand<mode>): Likewise.
11649         (arm_sync_old_<sync_optab>si): Likewise.
11650         (arm_sync_old_nandsi): Likewise.
11651         (arm_sync_old_<sync_optab><mode>): Likewise.
11652         (arm_sync_old_nand<mode>): Likewise.
11653
11654 2010-09-13  Olivier Hainque  <hainque@adacore.com>
11655
11656         * fwprop.c (forward_propagate_and_simplify): Only attach a
11657         REG_EQUAL note to an insn if the destination is a register.
11658         * gcse.c (try_replace_reg): Likewise.
11659
11660 2010-09-13  Richard Guenther  <rguenther@suse.de>
11661
11662         PR tree-optimization/45611
11663         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
11664         (copy_ref_info): Likewise.
11665
11666 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
11667
11668         PR debug/45604
11669         PR debug/45419
11670         PR debug/45408
11671         * tree-pretty-print.c (dump_generic_node): Disregard top-level
11672         types of MEM_REF pointer types to the same type.
11673
11674 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
11675
11676         PR rtl-optimization/41087
11677         * ifcvt.c (noce_get_condition): Don't allow conditions with
11678         side-effects.
11679
11680 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
11681
11682         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11683         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
11684         * config/frv/frv.c (frv_register_move_cost): Make static. Change
11685         arguments type to reg_class_t. Add mode argument.
11686         (frv_memory_move_cost): New.
11687         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
11688
11689 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
11690
11691         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
11692         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
11693
11694 2010-09-10  Jan Hubicka  <jh@suse.cz>
11695
11696         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
11697
11698 2010-09-10  Richard Guenther  <rguenther@suse.de>
11699
11700         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
11701         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
11702         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
11703         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
11704         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
11705
11706 2010-09-10  Richard Guenther  <rguenther@suse.de>
11707
11708         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
11709         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
11710         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
11711         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
11712
11713 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
11714
11715         PR middle-end/45634
11716         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
11717         of string folding is of integral type.
11718
11719 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
11720
11721         * doc/invoke.texi (-x): Fix typo.
11722
11723 2010-09-10  Richard Guenther  <rguenther@suse.de>
11724
11725         PR debug/44115
11726         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
11727         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
11728         Output DECL_DEBUG_EXPR.
11729         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11730         Input DECL_DEBUG_EXPR.
11731
11732 2010-09-10  Richard Guenther  <rguenther@suse.de>
11733
11734         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
11735         (build_index_type): Implement in terms of build_range_type.
11736         (build_range_type): Do not allow NULL_TREE type, improve
11737         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
11738         if we didn't hash.
11739         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
11740         create a distinct copy of the type.
11741
11742 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
11743
11744         * configure: Regenerated.
11745         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
11746
11747 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11748
11749         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
11750         * config/arm/cortex-a9-neon.md: New and partially generated.
11751         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
11752
11753 2010-09-10  Richard Guenther  <rguenther@suse.de>
11754
11755         * tree.h (build_index_2_type): Remove.
11756         * tree.c (build_index_2_type): Remove.
11757
11758 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
11759
11760         PR bootstrap/45630
11761         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
11762         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
11763         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
11764
11765 2010-09-10  Martin Jambor  <mjambor@suse.cz>
11766
11767         PR tree-optimization/44972
11768         * tree-sra.c: Include toplev.h.
11769         (build_ref_for_offset): Entirely reimplemented.
11770         (build_ref_for_model): New function.
11771         (build_user_friendly_ref_for_offset): New function.
11772         (analyze_access_subtree): Removed build_ref_for_offset check.
11773         (propagate_subaccesses_across_link): Likewise.
11774         (create_artificial_child_access): Use
11775         build_user_friendly_ref_for_offset.
11776         (propagate_subaccesses_across_link): Likewise.
11777         (ref_expr_for_all_replacements_p): Removed.
11778         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
11779         (sra_modify_expr): Use build_ref_for_model.
11780         (load_assign_lhs_subreplacements): Likewise.
11781         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
11782         checks for return values of build_ref_for_offset.
11783         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
11784         build_ref_for_offset.
11785         * ipa-prop.h: Include gimple.h
11786         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
11787         (ipa_analyze_indirect_call_uses): Update comment.
11788         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
11789         (IPA_PROP_H): Likewise.
11790
11791 2010-09-10  Martin Jambor  <mjambor@suse.cz>
11792
11793         PR tree-optimization/44972
11794         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
11795         calling build_ref_for_offset.
11796
11797 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11798
11799         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
11800         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
11801         * config/arm/arm-tune.md: Regenerate.
11802         * doc/invoke.texi (ARM Options): Document it.
11803
11804 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
11805
11806         * config/i386/i386.c: Include sched-int.h.
11807         (TARGET_SCHED_DISPATCH): Defined.
11808         (TARGET_SCHED_DISPATCH_DO): Defined.
11809         (DISPATCH_WINDOW_SIZE): Defined.
11810         (MAX_DISPATCH_WINDOWS): Defined.
11811         (MAX_INSN): Defined.
11812         (MAX_IMM): Defined.
11813         (MAX_IMM_SIZE): Defined.
11814         (MAX_IMM_32): Defined.
11815         (MAX_IMM_64): Defined.
11816         (MAX_LOAD): Defined.
11817         (MAX_STORE): Defined.
11818         (BIG): Defined.
11819         (dispatch_group): New.
11820         (num_allowable_groups): New.
11821         (group_name): New.
11822         (sched_insn_info_s): New.
11823         (dispatch_windows_s): New.
11824         (imm_info_s): New.
11825         (dispatch_window_list): New.
11826         (dispatch_window_list1): New.
11827         (get_mem_group): New.
11828         (is_cmp): New.
11829         (dispatch_violation): New.
11830         (is_branch): New.
11831         (is_prefetch): New.
11832         (init_window): New.
11833         (allocate_window): New.
11834         (init_dispatch_sched): New.
11835         (is_end_basic_block): New.
11836         (process_end_window): New.
11837         (allocate_next_window): New.
11838         (find_constant_1): New.
11839         (find_constant): New.
11840         (get_num_immediates): New.
11841         (has_immediate): New.
11842         (get_insn_path): New.
11843         (get_insn_group): New.
11844         (count_num_restricted): New.
11845         (fits_dispatch_window): New.
11846         (add_insn_window): New.
11847         (add_to_dispatch_window): New.
11848         (debug_dispatch_window_file): New.
11849         (debug_dispatch_window): New.
11850         (debug_insn_dispatch_info_file): New.
11851         (debug_ready_dispatch): New.
11852         (do_dispatch): New.
11853         (has_dispatch): New.
11854         * config/i386/i386.h (debug_ready_dispatch): Declared.
11855         (debug_dispatch_window): Declared.
11856         * config/i386/i386.opt (mdispatch-scheduler): New flag.
11857         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
11858         (TARGET_SCHED_DISPATCH_DO): New.
11859         * doc/tm.texi: Regererated.
11860         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
11861         ready_remove_first_dispatch
11862         (schedule_block): Call targetm.sched.dispatch and
11863         targetm.sched.dispatch_do.
11864         (sched_init): Call targetm.sched.dispatch and
11865         targetm.sched.dispatch_do.
11866         (ready_remove_first_dispatch): New.
11867         (number_in_ready): New.
11868         (get_ready_element): New.
11869         * hooks.c (hook_bool_rtx_int_false): New.
11870         (hook_void_rtx_int): New.
11871         * hooks.h (hook_bool_rtx_int_false): Declared.
11872         (hook_void_rtx_int): Declared.
11873         * sched-int.h (IS_DISPATCH_ON): Defined.
11874         (IS_CMP): Defined.
11875         (DISPATCH_VIOLATION): Defined.
11876         (FITS_DISPATCH_WINDOW): Defined.
11877         (DISPATCH_INIT): Defined.
11878         (ADD_TO_DISPATCH_WINDOW): Defined.
11879         (get_ready_element): Declared.
11880         (number_in_ready): Declared.
11881         * target.def (dispatch): Defined.
11882         (dispatch_do): Defined.
11883
11884 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
11885
11886         PR middle-end/45312
11887         * reload1.c (merge_assigned_reloads): Remove.
11888         (reload_as_needed): Don't call it.
11889
11890 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
11891
11892         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
11893         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11894         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11895
11896 2010-09-09  Matthias Klose  <doko@ubuntu.com>
11897
11898         PR bootstrap/43847
11899         * configure.ac (--enable-plugin): Enhance for cross builds.
11900         * configure: Regenerate.
11901
11902 2010-09-09  Jan Hubicka  <jh@suse.cz>
11903
11904         PR tree-optimization/45598
11905         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
11906         string folding is of integral type.
11907
11908 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
11909
11910         * configure.ac (gnu_indirect_function): New test.
11911         * configure: Rebuilt.
11912         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
11913         * defaults.h (IFUNC_ASM_TYPE): Provide default.
11914
11915         * doc/extend.texi (Function Attributes): Document ifunc.
11916         * varasm.c (do_assemble_alias): Deal with ifuncs too.
11917
11918 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
11919
11920         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
11921         epilogue instruction move.
11922
11923 2010-09-09  Jan Hubicka  <jh@suse.cz>
11924
11925         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
11926         command line to allow more partitions than input files.
11927
11928 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
11929
11930         PR middle-end/44554
11931         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
11932
11933 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
11934
11935         PR middle-end/40386
11936         * ira.c (pseudo_for_reload_consideration_p): Don't use
11937         flag_ira_share_spill_slots.
11938
11939 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11940
11941         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
11942         point zero operands that fit into a single GPR.
11943         (s390_preferred_reload_class): Ensure we only return general-purpose
11944         register classes.
11945         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
11946         floating-point zero operands into GPRs.
11947         ("*mov<mode>_64"): Likewise.
11948         ("mov<mode>"): Likewise using lhi.
11949
11950 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11951
11952         * config/s390/s390.c (s390_symref_operand_p): Return false for
11953         literal pool references.
11954         (s390_check_qrst_address): Update caller.
11955
11956 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
11957
11958         * config/i386/predicates.md (ext_register_operand): Check that
11959         SUBREG_REG is really a register before looking for REGNO.
11960         (reg_not_xmm0_operand): Handle SUBREGs correctly.
11961         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
11962
11963 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
11964
11965         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
11966         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
11967         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
11968         * print-rtl.c (print_rtx): Likewise.
11969         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
11970         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
11971         for ADDR_EXPR with non-addressable object.
11972         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
11973         (struct dw_val_struct): Add v.val_decl_ref.
11974         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
11975         Handle DW_OP_GNU_implicit_pointer.
11976         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
11977         (get_ref_die_offset_label): New function.
11978         (implicit_ptr_descriptor): New function.
11979         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
11980         (loc_descriptor): Likewise.
11981         (gen_variable_die): Put even definitions into decl_die_table.
11982         (resolve_addr_in_expr): Resolve still unresolved
11983         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
11984         return false.
11985         (dwarf2out_finish): Call output_location_lists after outputting
11986         .debug_info and .debug_abbrev instead of before.
11987
11988 2010-09-09  Roland McGrath  <roland@redhat.com>
11989
11990         * dwarf2out.c (DWARF_REF_SIZE): Define.
11991         (size_of_loc_descr): Use it for DW_OP_call_ref.
11992
11993 2010-09-09  Alan Modra  <amodra@gmail.com>
11994
11995         * doc/invoke.text: Reinstate mcmodel=medium.
11996         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
11997         CMODEL_MEDIUM as default.
11998         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
11999         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
12000         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
12001         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
12002
12003 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12004
12005         PR target/45250
12006         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
12007         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
12008         (builtin_longjmp): Likewise.
12009         (allocate_stack): Use hard_frame_pointer_rtx instead of
12010         frame_pointer_rtx.
12011         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
12012         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
12013         (pa_can_eliminate): Likewise.
12014         (TARGET_INTERNAL_ARG_POINTER): Define.
12015         (TARGET_CAN_ELIMINATE): Define.
12016         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
12017         pointer.
12018         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
12019         (pa_internal_arg_pointer, pa_can_eliminate,
12020         pa_initial_elimination_offset): New.
12021         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
12022         (HARD_FRAME_POINTER_REGNUM): Set to register three.
12023         (INITIAL_FRAME_POINTER_OFFSET): Delete.
12024         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
12025         Define.
12026         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
12027         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
12028         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
12029         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
12030         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
12031         new soft frame pointer.
12032         * config/pa/pa64-regs.h: Likewise.
12033
12034 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12035
12036         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
12037         numerical constant.
12038         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
12039
12040 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12041
12042         PR debug/45531
12043         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
12044
12045 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12046
12047         PR debug/45419
12048         PR debug/45408
12049         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12050         qualifiers in otherwise equal MEM_REF pointer types.
12051         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
12052         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
12053
12054 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12055
12056         PR target/44392
12057         * config/arm/arm.md (bswapsi2): Handle condition correctly
12058         for armv6 and optimize_size.
12059
12060 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
12061
12062         PR other/18555
12063         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
12064
12065 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12066
12067         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
12068         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
12069         ix86_expand_strlen, legitimate_pic_address_disp_p,
12070         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
12071         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
12072         ix86_check_movabs, ix86_secondary_memory_needed): Change function
12073         prototype to bool.
12074         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
12075         return_in_memory_ms_64, ix86_check_movabs,
12076         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
12077         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
12078         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
12079         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
12080         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
12081         ix86_secondary_memory_needed): Change to bool.  Return
12082         "true" and "false" values.
12083         * config/i386/i386.md: Return "true" and "false" values.
12084
12085 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12086
12087         * doc/sourcebuild.texi (Effective-Target Keywords): Document
12088         run_expensive_tests.
12089
12090 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12091
12092         * toplev.c (output_stack_usage): Use lbasename instead of basename.
12093
12094 2010-09-08  Martin Jambor  <mjambor@suse.cz>
12095
12096         PR other/45443
12097         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
12098         at -O3.
12099
12100 2010-09-08  Richard Guenther  <rguenther@suse.de>
12101
12102         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
12103         (visit): Adjust.
12104         (iterative_hash_gimple_type): Likewise.
12105         (gimple_type_hash): Likewise.
12106         (gimple_register_type): Likewise.
12107         (print_gimple_types_stats): Likewise.
12108         (free_gimple_type_tables): Likewise.
12109
12110 2010-09-08  Michael Matz  <matz@suse.de>
12111
12112         PR tree-optimization/43430
12113         * tree-vect-stmts.c (vectorizable_condition): Support multiple
12114         copies for conditional statements if it's not part of a reduction.
12115
12116 2010-09-08  Michael Matz  <matz@suse.de>
12117
12118         PR tree-optimization/33244
12119         * tree-ssa-sink.c (statement_sink_location): Don't sink into
12120         empty loop latches.
12121
12122 2010-09-08  Richard Guenther  <rguenther@suse.de>
12123
12124         PR tree-optimization/45578
12125         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
12126         Be more careful when transfering alignment information to
12127         the new induction variable.
12128         (copy_ref_info): Likewise.
12129
12130 2010-09-08  Richard Guenther  <rguenther@suse.de>
12131
12132         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
12133         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
12134
12135 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
12136
12137         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
12138         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
12139
12140 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
12141
12142         PR doc/45587
12143         * doc/md.texi: Fixed modes on several standard pattern names.
12144
12145 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
12146
12147         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
12148         (ashl<mode>3): ...this.
12149         (loongson_psra<V_suffix>): Rename to...
12150         (ashr<mode>3): ...this.
12151         (loongson_psrl<V_suffix>): Rename to...
12152         (lshr<mode>3): ...this.
12153         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
12154         (CODE_FOR_loongson_psllw): Define.
12155         (CODE_FOR_loongson_psrlh): Define.
12156         (CODE_FOR_loongson_psrlw): Define.
12157         (CODE_FOR_loongson_psrah): Define.
12158         (CODE_FOR_loongson_psraw): Define.
12159
12160 2010-09-07  Richard Henderson  <rth@redhat.com>
12161
12162         * tree-vect-data-refs.c: Include tm_p.h.
12163         * Makefile.in (tree-vect-data-refs.o): Update deps.
12164         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
12165         Move delarations outside #ifdef RTX_CODE.
12166
12167 2010-09-07  Richard Henderson  <rth@redhat.com>
12168
12169         * final.c (rest_of_handle_final): Unconditionally do
12170         output_function_exception_table before assemble_end_function.
12171
12172 2010-09-07  Jan Hubicka  <jh@suse.cz>
12173
12174         * tree-inline.c (tree_inlinable_function_p): Do not test
12175         DECL_REPLACEABLE_P.
12176         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
12177         update_callee_keys, cgraph_decide_inlining): Test function availability.
12178         * cif-code.def (OVERWRITABLE): New code.
12179
12180 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
12181             Jack Howarth  <howarth@bromo.med.uc.edu>
12182
12183         PR target/36502
12184         PR target/42313
12185         PR target/44651
12186         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
12187         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
12188         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
12189         MAX macro.
12190
12191 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12192
12193         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
12194         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
12195
12196 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12197
12198         * config.gcc: Don't append t-android for Android targets.
12199
12200         * config/t-android: Removed.
12201
12202 2010-09-07  Richard Henderson  <rth@redhat.com>
12203
12204         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
12205         * doc/tm.texi.in: Add doc marker.
12206         * doc/tm.texi: Rebuild.
12207         * except.c (switch_to_exception_section): Always build.
12208         (output_one_function_exception_table): Move section switch,
12209         personality output, and label output ...
12210         (output_function_exception_table): ... here.  Use the new
12211         personality hook.
12212
12213         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
12214         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
12215         TARGET_ASM_INIT_SECTIONS): New.
12216         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
12217         make static.
12218         (TARGET_ASM_UNWIND_EMIT): Update to match.
12219         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
12220
12221         * config/arm/arm.c (arm_asm_emit_except_personality): New.
12222         (arm_asm_init_sections): New.
12223         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
12224
12225 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12226
12227         * config/arm/arm.md: Remove unused variable.
12228
12229 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
12230
12231         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12232         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
12233         (m32r_memory_move_cost): New function.
12234
12235 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12236
12237         * config.gcc: Append t-android for Android targets.
12238
12239         * config/t-android: New.
12240
12241 2010-09-07  Richard Henderson  <rth@redhat.com>
12242
12243         * target.def (unwind_emit_before_insn): New hook.
12244         * doc/tm.texi.in: Add @hook marker for it.
12245         * doc/tm.texi: Rebuild.
12246         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
12247
12248 2010-09-07  Martin Jambor  <mjambor@suse.cz>
12249
12250         PR fortran/43665
12251         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
12252         are any type attributes.
12253
12254 2010-09-07  Jan Hubicka  <jh@suse.cz>
12255
12256         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
12257         array_ref_low_bound in string access folding.
12258
12259 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
12260
12261         PR target/45206
12262         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
12263         eh_return fixup sequence.
12264
12265 2010-09-07  Jan Hubicka  <jh@suse.cz>
12266
12267         * gimple-fold.c (maybe_fold_reference): Verify that operand is
12268         gimple_min_invariant.
12269
12270 2010-09-07  Richard Guenther  <rguenther@suse.de>
12271
12272         PR middle-end/45569
12273         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
12274         nor CONSTRUCTOR can trap.
12275         * tree-complex.c (update_complex_assignment): Update EH info.
12276
12277 2010-09-07  Richard Guenther  <rguenther@suse.de>
12278
12279         PR middle-end/45569
12280         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
12281         * passes.c (execute_function_todo): Do not verify anything if
12282         we saw errors.
12283
12284 2010-09-07  Richard Guenther  <rguenther@suse.de>
12285
12286         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
12287
12288 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
12289
12290         PR target/43137
12291         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
12292         New define_mode_attrs.
12293         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
12294         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
12295         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
12296         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
12297         Remove pool_range attribute.
12298         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
12299         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
12300         pool_range and neg_pool_range attributes.
12301         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
12302         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
12303         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
12304
12305 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12306
12307         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
12308         check glibc.
12309
12310 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
12311
12312         PR target/22152
12313         * config/i386/mmx.md (*mov<mode>_internal_rex64,
12314         *mov<mode>_internal_avx, *mov<mode>_internal,
12315         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
12316         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
12317
12318 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
12319
12320         * c-typeck.c (do_warn_double_promotion): Remove.
12321         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
12322         Objective-C++ too.
12323
12324 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
12325
12326         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
12327         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
12328         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
12329         argument type to reg_class_t. Change result type to bool.
12330         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12331
12332 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
12333
12334         PR libobjc/19850
12335         * gthr-posix.h (__gthread_objc_thread_detach): Use
12336         _objc_thread_attribs when detaching a thread.
12337         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
12338
12339 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12340
12341         PR target/45524
12342         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
12343         * configure: Regenerated.
12344
12345 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12346
12347         * combine.c (try_combine): Set subst_low_luid to i0.
12348
12349 2010-09-06  Richard Guenther  <rguenther@suse.de>
12350
12351         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
12352         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
12353         (build_aligned_type): Declare.
12354         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
12355         (check_aligned_type): New function.
12356         (build_aligned_type): Likewise.
12357         * expr.c (expand_assignment): Handle misaligned stores via
12358         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
12359         (expand_expr_real_1): Likewise.
12360         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
12361         * tree-vect-stmts.c (vectorizable_store): Do not build
12362         MISALIGNED_INDIRECT_REF but initialize alignment information.
12363         (vectorizable_load): Likewise.
12364         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
12365         handling.
12366         * cfgexpand.c (expand_debug_expr): Likewise.
12367         * dwarf2out.c (loc_list_from_tree): Likewise.
12368         * fold-const.c (maybe_lvalue_p): Likewise.
12369         (operand_equal_p): Likewise.
12370         (build_fold_addr_expr_with_type_loc): Likewise.
12371         * gimplify.c (gimplify_addr_expr): Likewise.
12372         (gimplify_expr): Likewise.
12373         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
12374         (verify_gimple_assign_single): Likewise.
12375         * tree-dump.c (dequeue_and_dump): Likewise.
12376         (tree_could_trap_p): Likewise.
12377         * tree-predcom.c (ref_at_iteration): Likewise.
12378         * tree-pretty-print.c (dump_generic_node): Likewise.
12379         (op_code_prio): Likewise.
12380         (op_symbol_code): Likewise.
12381         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
12382         * tree-ssa-loop-im.c (for_each_index): Likewise.
12383         (gen_lsm_tmp_name): Likewise.
12384         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
12385         (find_interesting_uses_address): Likewise.
12386         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
12387         * tree-ssa-operands.c (get_expr_operands): Likewise.
12388         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
12389         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
12390         (ao_ref_init_from_vn_reference): Likewise.
12391         * tree.c (staticp): Likewise.
12392         (build1_stat): Likewise.
12393         (reference_alias_ptr_type): Likewise.
12394         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
12395         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
12396         MISALIGNED_INDIRECT_REF handling.
12397
12398 2010-09-06  Richard Guenther  <rguenther@suse.de>
12399
12400         PR tree-optimization/45534
12401         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
12402         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
12403         on the target.
12404         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
12405         valid on the target.
12406
12407 2010-09-06  Andreas Schwab  <schwab@redhat.com>
12408
12409         * configure.ac: Quote argument of AC_MSG_WARN.
12410         * configure: Regenerate.
12411
12412 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
12413
12414         * sel-sched.c (move_cond_jump): Correct arguments to
12415         maybe_tidy_empty_bb.
12416         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
12417
12418 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
12419
12420         PR rtl-optimization/44919
12421         * sel-sched.c (move_cond_jump): Remove assert, check that
12422         the several blocks case can only happen with mutually exclusive
12423         insns instead.  Rewrite the movement code to support moving through
12424         several basic blocks.
12425
12426 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
12427
12428         * config/i386/i386.md (iptrsize): New mode attribute.
12429         (tp_seg): Ditto.
12430         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
12431         mode iterator.
12432         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
12433         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
12434         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
12435         (stack_tls_protect_set_<mode>): Ditto from
12436         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
12437         of thread base pointer load.
12438         (stack_tls_protect_test_<mode>): Ditto from
12439         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
12440         of thread base pointer load.
12441         (stack_protect_set): Rewrite using indirect functions.
12442         (stack_protect_test): Ditto.
12443         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
12444         (ix86_print_operand): Handle '@'.
12445
12446 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
12447
12448         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
12449         MINUS_EXPR.
12450
12451 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
12452
12453         * doc/invoke.texi: Document -Wdouble-promotion.
12454         * c-typeck.c (convert_arguments): Check for implicit conversions
12455         from float to double.
12456         (do_warn_double_promotion): New function.
12457         (build_conditional_expr): Use it.
12458         (build_binary_op): Likewise.
12459
12460 2010-09-05  Richard Guenther  <rguenther@suse.de>
12461
12462         PR tree-optimization/45535
12463         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
12464         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
12465         dereferencing it.
12466         (indirect_refs_may_alias_p): Likewise.
12467
12468 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
12469
12470         * config/sh/sh.c (sh_option_override): Make static.
12471         Adjust comments.  Declare.
12472         (sh_function_value_regno_p): Likewise.
12473         (sh_register_move_cost): Modify the arguments, make static.
12474         Adjust comments.  Declare.
12475         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
12476         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12477         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
12478         REGISTER_MOVE_COST): Delete.
12479         * config/sh/sh-protos.h (sh_override_options): Delete.
12480         (sh_register_move_cost): Delete.
12481         (sh_function_value_regno_p): Delete.
12482
12483 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
12484
12485         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
12486         m32r_function_value_regno_p): New functions.
12487         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12488         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
12489         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
12490         FUNCTION_VALUE_REGNO_P): Remove.
12491
12492 2010-09-04  Jan Hubicka  <jh@suse.cz>
12493
12494         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
12495         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
12496         fold_read_from_constant_string.
12497
12498         * gimple.h (canonicalize_constructor_val): Declare.
12499         * gimple-fold.c (canonicalize_constructor_val): New function.
12500         (get_symbol_constant_value):Use it.
12501         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
12502
12503 2010-09-04  Jan Hubicka  <jh@suse.cz>
12504
12505         * tree-switch-conversion.c (build_one_array): Set constructor to be
12506         static.
12507         * varpool.c (varpool_finalize_decl): Compute const_value_known.
12508
12509 2010-09-04  Richard Guenther  <rguenther@suse.de>
12510
12511         PR bootstrap/45519
12512         * tree-flow.h (force_gimple_operand_1): Declare.
12513         (force_gimple_operand_gsi_1): Likewise.
12514         * gimplify.c (force_gimple_operand_1): New worker taking a
12515         gimple predicate for ...
12516         (force_gimple_operand): ... which now wraps it.
12517         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
12518         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
12519         last change.
12520         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
12521         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
12522         (create_mem_ref): Likewise.
12523
12524 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
12525
12526         * config/i386/predicates.md (sse_reg_operand): New predicate.
12527         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
12528         predicate for operand 1.
12529         (XFmode push splitter): Use fp_register_operand predicate
12530         for operand 1.
12531         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
12532         (SF-DF float_extend push splitter): Add reload_completed insn
12533         predicate.
12534         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
12535         MODEF mode macro.  Add reload_completed insn predicate.
12536
12537 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
12538
12539         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
12540         (struct df_extract_ref): Remove.
12541         (union df_ref_d): Remove extract_ref member.
12542         (df_ref_create): Remove last three arguments.
12543         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
12544         * df-scan.c (df_ref_record): Remove last three arguments, do not
12545         pass them to df_ref_create_structure.
12546         (df_uses_record): Remove first and last three arguments.  Replace
12547         first argument with DF_REF_REGULAR, adjust calls to remove the
12548         width, offset and mode.  Always call recursively on the second
12549         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
12550         (df_ref_create_structure): Remove first argument.
12551         (struct df_scan_problem_data): Remove ref_extract_pool.
12552         (df_scan_free_internal): Do not free it.
12553         (df_scan_alloc): Do not allocate it.
12554         (df_ref_create): Remove last three arguments, do not pass them to
12555         df_ref_create_structure.
12556         (df_free_ref): Remove DF_REF_EXTRACT case.
12557         (df_notes_rescan): Adjust call to df_uses_record.
12558         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
12559         Remove DF_REF_EXTRACT case.
12560         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
12561         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
12562         and SUBREG definitions.
12563         (df_get_conditional_uses): Remove references to width/offset/mode,
12564         adjust call to df_ref_create_structure.
12565         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
12566         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
12567         calls to df_uses_record and df_ref_record.
12568         * fwprop.c (update_df): Remove references to width/offset/mode,
12569         adjust call to df_ref_create.
12570
12571 2010-09-03  Jan Hubicka  <jh@suse.cz>
12572
12573         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
12574         (build_cdtor_fns): Update use of build_cdtor.
12575
12576 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
12577
12578         * doc/options.texi (SeparateAlias): Document.
12579         * opt-functions.awk (switch_flags): Handle SeparateAlias.
12580         * opth-gen.awk: Generate enumeration names for options marked
12581         SeparateAlias, but not for those marked Ignore.
12582         * opts-common.c (generate_canonical_option): Don't output separate
12583         argument for options marked CL_SEPARATE_ALIAS.
12584         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
12585         * opts.h (CL_SEPARATE_ALIAS): New.
12586         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
12587         CL_COMMON): Adjust definitions.
12588         * config/i386/darwin.opt, config/mips/sde.opt: New.
12589         * common.opt (fdump-final-insns): New.
12590         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
12591         i386/darwin.opt.
12592         (mips*-sde-elf*): Add mips/sde.opt.
12593         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
12594         -mno-data-in-code and -mcode-xonly here.
12595         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
12596         * gcc.c (option_map): Add "j" to --dump entry.
12597         (translate_options): Don't translate -d to -foutput-class-dir= here.
12598
12599 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
12600
12601         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
12602         DR_IS_WRITE.
12603         (compute_all_dependences): Same.
12604         (create_rdg_edge_for_ddr): Same.
12605         * tree-data-ref.h (DR_IS_WRITE): New.
12606         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
12607         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
12608         (write_memrefs_written_at_least_once): Same.
12609         * tree-predcom.c (suitable_component_p): Same.
12610         (determine_roots_comp): Same.
12611         (execute_load_motion): Same.
12612         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
12613         (vect_enhance_data_refs_alignment): Same.
12614         (vect_analyze_group_access): Same.
12615
12616 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
12617
12618         PR testsuite/42843
12619         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
12620         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
12621
12622 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
12623
12624         * dwarf2out.c (file scope): Remove #if0'd code.
12625         (gen_subprogram_die): Same.
12626
12627 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
12628
12629         PR middle-end/45484
12630         * dwarf2out.c (flush_queued_reg_saves): Rename to...
12631         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
12632         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
12633         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
12634         * config/i386/i386.c (output_set_got): Call it.
12635
12636 2010-09-03  Michael Matz  <matz@suse.de>
12637
12638         PR middle-end/45415
12639         * tree-sra.c (sra_modify_assign): If we modify the statement,
12640         say so.
12641
12642         * tree-ssa.c (verify_ssa): Check number of operands and links
12643         per statement to agree.
12644
12645 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
12646             Iain Sandoe  <iains@gcc.gnu.org>
12647
12648         PR target/45476
12649         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
12650         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
12651         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
12652
12653 2010-09-03  Richard Guenther  <rguenther@suse.de>
12654
12655         * lto-streamer-out.c (output_function): Output function
12656         start and end loci.
12657         * lto-streamer-in.c (input_function): Input function start
12658         and end loci.
12659
12660 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12661
12662         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
12663         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
12664         * configure: Regenerate.
12665         * aclocal.m4: Regenerate.
12666
12667 2010-09-03  Jan Hubicka  <jh@suse.cz>
12668
12669         PR lto/44812
12670         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
12671         on functions/variables in other partition.
12672
12673 2010-09-03  Jan Hubicka  <jh@suse.cz>
12674
12675         * cgraph.h (struct varpool_node): Add const_value_known.
12676         (varpool_decide_const_value_known): Declare.
12677         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
12678         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
12679         (input_varpool_node): Restore const_value_known.
12680         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
12681         initializer folding.
12682         * ipa.c (ipa_discover_readonly_nonaddressable_var,
12683         function_and_variable_visibility): Compute const_value_known.
12684         * gimple-fold.c (get_symbol_constant_value): Use varpool for
12685         initializer folding.
12686         * varpool.c (varpool_decide_const_value_known): New function.
12687
12688 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
12689
12690         * config/i386/i386.md: Remove empty preparation statements
12691         from splitters.
12692
12693 2010-09-03  Jan Hubicka  <jh@suse.cz>
12694
12695         * passes.c (rest_of_decl_compilation): Do not add local vars into
12696         varpool.
12697         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
12698         static or extern vars are in varpool.
12699         (varpool_finalize_decl): Sanity check that only static vars are
12700         finalized.
12701
12702 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
12703
12704         PR debug/45500
12705         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
12706         not just generic vectors with BLKmode.
12707
12708 2010-09-03  Richard Guenther  <rguenther@suse.de>
12709
12710         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
12711         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
12712         * tree.h (TMR_SYMBOL): Remove.
12713         (TMR_BASE, TMR_OFFSET): Adjust.
12714         (TMR_INDEX2): New.
12715         * alias.c (ao_ref_from_mem): Use TMR_BASE.
12716         * builtins.c (get_object_alignment): Merge TMR_BASE and
12717         TMR_SYMBOL handling.
12718         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
12719         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
12720         handling.  Also allow TARGET_MEM_REF as base address.
12721         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
12722         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
12723         base.  Gimplify TMR_INDEX2.
12724         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
12725         * tree-dfa.c (get_ref_base_and_extent): Likewise.
12726         (get_addr_base_and_unit_offset): Likewise.
12727         * tree-eh.c (tree_could_trap_p): Likewise.
12728         * tree-pretty-print.c (dump_generic_node): Likewise.
12729         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
12730         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
12731         base to index2.
12732         (get_address_description): Reconstruct addres description
12733         from merged TMR_BASE and TMR_INDEX2.
12734         (maybe_fold_tmr): Fold propagated addresses.
12735         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
12736         MEM_REF and TARGET_MEM_REF paths.
12737         (indirect_refs_may_alias_p): Likewise.
12738         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
12739         instead of TMR_SYMBOL.
12740         * tree-ssa-operands.c (get_tmr_operands): Simplify.
12741         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
12742         according to changes ...
12743         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
12744         Split TARGET_MEM_REF into two fields plus the base.
12745         * tree.c (mem_ref_offset): Simplify.
12746         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
12747         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
12748         Strip NOPs when folding MEM_REF addresses.
12749         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
12750         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
12751         (fold_gimple_assign): ... not here.
12752
12753 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
12754
12755         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
12756         * config/mips/mips.c (mips_shift_truncation_mask): New function.
12757         (TARGET_SHIFT_TRUNCATION_MASK): Define.
12758
12759 2010-09-02  Richard Henderson  <rth@redhat.com>
12760
12761         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
12762         instead of readelf in the test.
12763         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
12764         in the .debug_frame section for coff targets.
12765         * configure: Rebuild.
12766
12767 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
12768
12769         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
12770         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
12771         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12772         (m32c_class_likely_spilled_p): Make static. Change argument type to
12773         reg_class_t. Change result type to bool.
12774
12775 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
12776
12777         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
12778         to convert (double)(long) into a single FRIZ instruction or not
12779         when -ffast-math is used.
12780
12781         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
12782         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
12783         or FRIZ instruction if -ffast-math.
12784         * config/rs6000/rs6000.md (friz): Ditto.
12785
12786         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
12787
12788 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
12789
12790         * opth-gen.awk (quote, comma): Remove unused variables.
12791
12792 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
12793
12794         * arm.c (arm_override_options): Correct fall-back code to use
12795         SUBTARGET_CPU_DEFAULT.
12796
12797 2010-09-02  Julian Brown  <julian@codesourcery.com>
12798
12799         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
12800         unspecs.
12801         (vcond<mode>, vcondu<mode>): New expanders.
12802         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
12803         comparisons with zero.
12804         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
12805         * config/arm/constraints.md (Dz): New constraint.
12806
12807 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
12808
12809         * target.def (class_likely_spilled_p): New hook.
12810         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
12811         * doc/tm.texi: Regenerate.
12812         * targhooks.c (default_class_likely_spilled_p): New function.
12813         * targhooks.h (default_class_likely_spilled_p): Declare.
12814         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
12815         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
12816         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
12817         Use fixed_reg_set instead of fixed_regs.
12818         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
12819         * calls.c (avoid_likely_spilled_reg): Ditto.
12820         * ira-conflicts.c (ira_build_conflicts): Ditto.
12821         * ira.c (update_equiv_regs): Ditto.
12822         * mode-switching.c (create_pre_exit): Ditto.
12823         * regmove.c (find_matches): Ditto.
12824         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
12825         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
12826         (small_register_class_p): New inline function.
12827         (push_secondary_reload, find_reusable_reload, find_reloads): Use
12828         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
12829
12830         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
12831         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
12832         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12833
12834 2010-09-02  Richard Guenther  <rguenther@suse.de>
12835
12836         PR tree-optimization/44937
12837         PR tree-optimization/45412
12838         * ipa-split.c (split_function): Properly remove PHI nodes.
12839
12840 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
12841
12842         * opts.h (struct cl_option): Add warn_message field.
12843         (struct cl_decoded_option): Add warn_message field.
12844         * doc/options.texi (Ignore, Warn): Document.
12845         * opt-functions.awk (needs_state_p): Don't consider aliases or
12846         ignored options to need state saved.
12847         * optc-gen.awk: Handle Warn and Ignore.
12848         * opth-gen.awk: Output OPT_SPECIAL_ignore.
12849         * opts-common.c (decode_cmdline_option): Set warn_message field.
12850         Handle ignored options.
12851         (decode_cmdline_options_to_array, generate_option,
12852         generate_option_input_file): Set warn_message field.
12853         (read_cmdline_option): Generate warnings from warn_message field.
12854         Handle ignored options.
12855         * common.opt (Wunreachable-code, fargument-alias,
12856         fargument-noalias, fargument-noalias-global,
12857         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
12858         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
12859         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
12860         ftree-salias): Mark Ignore.
12861         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
12862         -mintel-syntax and -mno-intel-syntax here.
12863         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
12864         using Warn.
12865         * opts.c (common_handle_option): Don't handle options marked as
12866         ignored.
12867         (enable_warning_as_error): Handle ignored options.
12868
12869 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
12870
12871         PR driver/44076
12872         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
12873         alias_target fields.
12874         * opt-functions.awk (opt_sanitized_name): Don't handle
12875         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
12876         * optc-gen.awk: Generate alias fields.
12877         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
12878         Don't generate such constants for aliases.
12879         * opts-common.c (generate_canonical_option): New.
12880         (decode_cmdline_option): Handle aliases.  Use
12881         generate_canonical_option for known options instead of copying the
12882         input option text.
12883         * doc/options.texi (Alias): Document.
12884         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
12885         fstack-check, specs): Mark as aliases.
12886         * gcc.c (driver_handle_option): Canonicalize -L options to joined
12887         arguments.
12888         (driver_handle_option): Don't handle OPT_specs.
12889         * opts.c (common_handle_option): Don't handle options marked as
12890         aliases.
12891         (enable_warning_as_error): Handle aliases.
12892         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
12893         OPT_Wlarger_than_eq.
12894         * tree-optimize.c (tree_rest_of_compilation): Use
12895         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
12896
12897 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
12898
12899         * config/i386/i386.md (nonmemory_operand): New mode attribute.
12900         (push memory peephole2): Macroize peepholes using SWI mode iterator.
12901         (move immediate to memory peephole2): Macroize peepholes using
12902         SWI124 mode iterator.
12903         (non-pairable NOT peephole2): Macroize peepholes using SWI124
12904         mode iterator.
12905         (simple lea add peephole2): Macroize peepholes using SWI48
12906         mode iterator.
12907         (simple lea mult peephole2): Ditto.
12908         (imul by 3,5,9 to lea peephole2): Ditto.
12909         (mov $-1, reg peephole2): Macroize peepholes using SWI248
12910         mode iterator.
12911         (imul $32bit_imm,mem,reg peephole2): Ditto.
12912         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
12913
12914 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
12915
12916         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
12917
12918 2010-09-02  Olivier Hainque  <hainque@adacore.com>
12919
12920         PR middle-end/44763
12921         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
12922         (allocno_priority_compare_func): Use it instead of a straight
12923         difference computation over priorities.
12924
12925 2010-09-02  Andi Kleen  <ak@linux.intel.com>
12926
12927         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
12928
12929 2010-09-02  Ira Rosen  <irar@il.ibm.com>
12930
12931         * tree-vectorizer.h (get_later_stmt): New function.
12932         (vect_analyze_data_ref_dependences): Add argument.
12933         * tree-vect-loop.c (vect_analyze_loop): Update call to
12934         vect_analyze_data_ref_dependences.
12935         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
12936         New function.
12937         (vect_analyze_data_ref_dependence): Add argument for basic block
12938         dependencies. Check dependencies in basic block vectorization.
12939         (vect_analyze_data_ref_dependences): Add argument and update call to
12940         vect_analyze_data_ref_dependences.
12941         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
12942         (vect_bb_vectorizable_with_dependencies): New.
12943         (vect_slp_analyze_bb): Check dependencies in basic block.
12944         (vect_schedule_slp_instance): Insert stores before the last store in
12945         SLP instance.
12946
12947 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
12948
12949         PR target/45476
12950         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
12951         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
12952
12953 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
12954
12955         PR middle-end/45458
12956         * bb-reorder.c (add_labels_and_missing_jumps): Treat
12957         bbs ending with throwing insns like blocks ending with a call.
12958         (fix_up_fall_thru_edges): Likewise.
12959
12960 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
12961
12962         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
12963         (m32c_function_arg_advance): Delete.
12964         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12965         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
12966         comments.  Take a const_tree and a bool.  Declare.
12967         (m32c_function_arg_advance): Likewise.
12968         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12969
12970 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
12971
12972         PR target/45476
12973         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
12974         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
12975         * config/i386/mingw32.h: ... here.
12976
12977 2010-09-01  Andi Kleen  <ak@linux.intel.com>
12978
12979         PR lto/45475
12980         * lto-streamer-in.c (lto_input_ts_target_option): Add.
12981         (lto_input_tree_pointers): Call lto_input_ts_target_option.
12982         * lto-streamer-out (lto_output_ts_target_option): Add.
12983         (lto_output_tree_pointers): Call lto_output_ts_target_option.
12984
12985 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
12986
12987         PR/target 45452
12988         * config/i386/cygwin.h: Change order of specified import libraries.
12989         * config/i386/mingw32.h: Likewise.
12990         * config/i386/t-cygwin: Likewise.
12991         * config/i386/t-mingw32: Likewise.
12992         * config/i386/t-mingw-w32: Likewise.
12993         * config/i386/t-mingw-w64: Likewise.
12994
12995 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12996
12997         * config/arm/neon-schedgen.ml (core): New type.
12998         (allCores): List of supported cores.
12999         (availability_table): Add supported cores.
13000         (collate_bypasses): Accept core as a parameter.
13001         (worst_case_latencies_and_bypasses): Accept core as a parameter.
13002         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
13003         and coreStr to get tune attribute and prefix for functional units.
13004         (emit_bypasses): Accept core name and use it.
13005         (calculate_per_core_availability_table): New.
13006         (filter_core): New.
13007         (calculate_core_availability_table): New.
13008         (main): Use calculate_core_availablity_table.
13009         * config/arm/cortex-a8-neon.md: Update copyright year.
13010         Regenerated from ml file and merged in.
13011         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
13012         cortex_a8_neon_mrc.
13013
13014 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
13015
13016         * Makefile.in (tree-switch-conversion.o): Update dependencies.
13017
13018 2010-09-01  Richard Guenther  <rguenther@suse.de>
13019
13020         * alias.c (ao_ref_from_mem): Adjust.
13021         * builtins.c (get_object_alignment): Likewise.
13022         * cfgexpand.c (expand_debug_expr): Likewise.
13023         * gimple.c (get_base_address): Likewise.
13024         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13025         (get_addr_base_and_unit_offset): Likewise.  Fix for
13026         both TMR_SYMBOL and TMR_BASE being set.
13027         * tree-eh.c (tree_could_trap_p): Likewise.
13028         * gimplify.c (gimplify_expr): Do not attempt to gimplify
13029         TMR_SYMBOL.  Always gimplify TMR_BASE.
13030         * tree-cfg.c (verify_types_in_gimple_reference): Verify
13031         TMR_BASE if there is a TMR_SYMBOL.
13032         * tree-pretty-print.c (dump_generic_node): Adjust.
13033         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
13034         (tree_mem_ref_addr): Likewise.
13035         (create_mem_ref_raw): Likewise.
13036         (move_fixed_address_to_symbol): Likewise.
13037         (create_mem_ref): Likewise.
13038         (dump_mem_address): Likewise.
13039         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
13040         Fix for both TMR_SYMBOL and TMR_BASE being set.
13041         (indirect_refs_may_alias_p): Likewise.
13042         * tree-ssa-operands.c (get_tmr_operands): Adjust.
13043         * tree.def (TARGET_MEM_REF): Adjust documentation.
13044
13045 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13046
13047         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
13048         Rename from X86_TUNE_ADD_ESP_4.
13049         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
13050         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
13051         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
13052         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
13053         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
13054         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
13055         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
13056         * config/i386/i386.c (initial_ix86_tune_features)
13057         <X86_TUNE_SINGLE_POP>: Invert members.
13058         <X86_TUNE_DOUBLE_POP>: Ditto.
13059         <X86_TUNE_SINGLE_PUSH>: Ditto.
13060         <X86_TUNE_DOUBLE_PUSH>: Ditto.
13061         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
13062         No longer exported.
13063         (push peephole2 patterns): Macroize peepholes using P mode iterator.
13064         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
13065         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
13066         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
13067
13068 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
13069
13070         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
13071         a volatile LHS if the constructor has only one element.
13072
13073 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
13074
13075         PR bootstrap/45321
13076         * tree.c (stdarg_p): Make fntype parameter const.
13077         * tree.h (stdarg_p): Likewise.
13078         (function_args_iterator): Remove unused fntype field.
13079         (function_args_iter_init): Do not initialize fntype
13080         field.  Make fntype parameter const.
13081
13082 2010-09-01  Richard Guenther  <rguenther@suse.de>
13083
13084         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
13085         estimate.
13086         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
13087         (execute_vrp): Compute number of iteration estimates.
13088         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
13089         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
13090         * tree-data-ref.c (estimated_loop_iterations): Adjust.
13091         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
13092         Infer loop bounds from undefined behavior based on a new parameter.
13093         (estimate_numbers_of_iterations): Likewise.
13094         (scev_probably_wraps_p): Adjust.
13095         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
13096
13097 2010-09-01  Nick Clifton  <nickc@redhat.com>
13098
13099         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
13100         where appropriate.
13101         (xstormy16_legitimate_address_p): Use true and false instead of 1
13102         and 0.
13103         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
13104         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
13105         magic constant 2.
13106         (xstormy16_expand_call): Fix comment at start of function.
13107
13108 2010-09-01  Nick Clifton  <nickc@redhat.com>
13109
13110         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
13111         when pushing accumulator register.
13112         (rx_get_stack_layout): Always save call clobbered registers inside
13113         interrupt handlers.
13114         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
13115
13116 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13117
13118         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
13119         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
13120
13121         * libgcc-std.ver (GCC_4.6.0): Define version.
13122
13123 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
13124
13125         * tree-nested.c (convert_all_function_calls): Iterate until after the
13126         sum of static chains in the nest doesn't change.
13127
13128 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
13129
13130         * config/m32c/m32c.c (classes_intersect): Remove.
13131         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
13132         reg_classes_intersect_p instead of classes_intersect.
13133         (class_can_hold_mode): Change arguments type from enum reg_class to
13134         reg_class_t.  Use reg_class_contents instead of class_contents.
13135         (m32c_register_move_cost): Make static. Change arguments type from
13136         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
13137         classes_intersect. Use reg_class_contents instead of class_contents.
13138         (m32c_memory_move_cost): Make static. Change arguments type from
13139         enum reg_class to reg_class_t.
13140         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13141         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13142         * config/m32c/m32c-protos.h (m32c_register_move_cost,
13143         m32c_memory_move_cost): Remove.
13144
13145 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13146
13147         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
13148         (arm_function_arg): Delete.
13149         (arm_needs_doubleword_align): Take a const_tree.
13150         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13151         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
13152         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
13153         (arm_function_arg): Make static.  Take a const_tree and a bool.
13154         (arm_function_arg_advance): Likewise.
13155         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13156
13157 2010-08-31  Andi Kleen  <ak@linux.intel.com>
13158
13159         * common.opt (fwhopr=): Update for -fwhopr=jobserver
13160         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
13161         * lto-wrapper.c (run_gcc): Add jobserver mode.
13162         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
13163         argument.
13164
13165 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
13166
13167         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
13168         (popsi1): Ditto.
13169         (*popdi1_epilogue): Ditto.
13170         (*popsi1_epilogue): Ditto.
13171         (popsi, popdi peephole2 patterns): Update peepholes for changed
13172         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
13173
13174         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
13175         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
13176
13177         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
13178         (override_options): Do not initialize removed ix86_gen_pop1.
13179         (gen_pop): New static function.
13180         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
13181         (release_scratch_register_on_entry): Ditto.
13182         (ix86_restore_reg_using_pop): Ditto.
13183         (ix86_expand_epilogue): Ditto.
13184
13185 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
13186
13187         PR middle-end/45461
13188         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
13189
13190 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13191
13192         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
13193         semicolons.
13194
13195 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
13196
13197         * doc/extend.texi: Fix documentation of the return value of
13198         __builtin_choose_expr.
13199
13200 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13201
13202         * config/v850/v850-protos.h (function_arg): Delete.
13203         * config/v850/v850.h (FUNCTION_ARG): Delete.
13204         (FUNCTION_ARG_ADVANCE): Move code to...
13205         * config/v850/v850.c (v850_function_arg_advance): ...here.
13206         (v850_function_arg): Make static.  Take a const_tree and a bool.
13207         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13208
13209 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13210
13211         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
13212         these...
13213         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
13214         ...and these...
13215         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
13216         ..to here..
13217         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
13218         ...and here.
13219         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13220
13221 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13222
13223         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
13224         Delete.
13225         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13226         * config/rx/rx.c (rx_function_arg_size): Make static.
13227         (rx_function_arg): Likewise.
13228         (rx_function_arg_advance): New function.
13229         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13230
13231 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
13232
13233         * config/arm/arm.c (arm_override_options): Remove superfluous test.
13234         Fix indentation.
13235
13236 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
13237
13238         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
13239         (dwarf2out_decl) <CONST_DECL>: Likewise.
13240
13241 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
13242
13243         Stack usage support
13244         * common.opt (-fstack-usage): New option.
13245         * doc/invoke.texi (Debugging options): Document it.
13246         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
13247         allocate_dynamic_stack_space.
13248         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
13249         and propagate it to allocate_dynamic_stack_space.
13250         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
13251         * calls.c (initialize_argument_information): Pass TRUE as 4th
13252         argument to allocate_dynamic_stack_space.
13253         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
13254         to 1 when pushing a variable-sized argument onto the stack.  Pass
13255         TRUE as 4th argument to allocate_dynamic_stack_space.
13256         Update current_function_pushed_stack_size.
13257         (emit_library_call_value_1): Likewise.
13258         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
13259         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
13260         attempt to find an upper bound.  Remove redundant code for the
13261         SETJMP_VIA_SAVE_AREA case.
13262         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
13263         * function.h (struct stack_usage): New structure.
13264         (current_function_static_stack_size): New macro.
13265         (current_function_dynamic_stack_size): Likewise.
13266         (current_function_pushed_stack_size): Likewise.
13267         (current_function_dynamic_alloc_count): Likewise.
13268         (current_function_has_unbounded_dynamic_stack_size): Likewise.
13269         (current_function_allocates_dynamic_stack_space): Likewise.
13270         (struct function): Add new field 'su'.
13271         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
13272         add the value of the dynamic offset to the dynamic stack usage.
13273         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
13274         for variable-sized objects.
13275         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
13276         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
13277         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
13278         BUILT_IN_ALLOCA for variable-sized objects.
13279         * output.h (output_stack_usage): Declare.
13280         * toplev.c (stack_usage_file): New file pointer.
13281         (output_stack_usage): New function.
13282         (open_auxiliary_file): Likewise.
13283         (lang_dependent_init): Open file if flag_stack_usage is set.
13284         (finalize): Close file if stack_usage_file is not null.
13285         * tree.h (ALLOCA_FOR_VAR_P): New macro.
13286         * config/alpha/alpha.c (compute_frame_size): New function.
13287         (alpha_expand_prologue): Use it.
13288         (alpha_start_function): Likewise.
13289         (alpha_expand_epilogue): Likewise.  Set stack usage info.
13290         * config/i386/i386.c (ix86_expand_prologue): Likewise.
13291         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
13292         * config/mips/mips.c (mips_expand_prologue): Likewise.
13293         * config/pa/pa.c (hppa_expand_prologue): Likewise.
13294         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
13295         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
13296
13297 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
13298
13299         PR tree-optimization/45427
13300         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
13301         Handle the case that the exit is never taken correctly.
13302         (number_of_iterations_ne): Pass exit_must_be_taken to
13303         number_of_iterations_ne_max.
13304
13305 2010-08-30  Catherine Moore  <clm@codesourcery.com>
13306
13307         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
13308         Infer -mdspr2 for the the 74K.
13309
13310 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
13311
13312         PR debug/45419
13313         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
13314
13315         PR middle-end/45423
13316         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
13317         and TRUTH_{AND,OR,XOR}_EXPR.
13318         * c-parser.c (c_parser_omp_atomic): Handle boolean
13319         {PRE,POST}_{INC,DEC}REMENT.
13320
13321 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
13322
13323         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
13324         (function_arg): Delete.
13325         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13326         (FUNCTION_INCOMING_ARG): Delete.
13327         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
13328         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
13329         and a bool.
13330         (function_arg): Rename to...
13331         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
13332         a bool.
13333         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
13334         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13335         (TARGET_FUNCTION_INCOMING_ARG): Define.
13336
13337 2010-08-30  Richard Guenther  <rguenther@suse.de>
13338
13339         PR tree-optimization/21602
13340         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
13341         using points-to information.
13342
13343 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
13344
13345         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
13346
13347 2010-08-30  Richard Guenther  <rguenther@suse.de>
13348
13349         PR tree-optimization/45449
13350         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
13351         variables.
13352
13353 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
13354
13355         * opts.h (CL_ERR_NEGATIVE): Define.
13356         * opts.c (unknown_option_callback): Don't postpone warnings for
13357         options marked with CL_ERR_NEGATIVE.
13358         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
13359         for negative versions of CL_REJECT_NEGATIVE options.
13360
13361 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
13362
13363         * config/i386/i386.md (zero_extendsidi2_1): Rename from
13364         zero_extendsidi2_32.
13365         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
13366         using SWI12 mode iterator.
13367         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
13368         to define_insn_and_split pattern.
13369         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
13370         using SWI24 mode iterator.
13371         (*zero_extendqi<mode>2_and): Macroize insn from
13372         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
13373         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
13374         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
13375         SWI24 mode iterator.
13376         (*zero_extendqi<mode>2_movzbl): Ditto from
13377         *zero_extendqi{hi,si}2_movzbl.
13378         (extendsidi2_1): Rename from extendsidi2_32.
13379         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
13380         SWI12 mode iterator.
13381
13382 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
13383
13384         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
13385         general purpose registers.
13386         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
13387         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
13388         with general purpose registers and memory operands.  Add associated
13389         CCImode post-reload splitter.
13390         * config/ia64/div.md: Change BImode to CCImode throughout.
13391
13392 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
13393
13394         * config/ia64/ia64.md (cstorebi4): Fix thinko.
13395
13396 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
13397
13398         * config/picochip/picochip.c (reorder_var_tracking_notes): This
13399         function was dropping debug insns which caused PR45299.
13400
13401 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
13402
13403         * config/i386/sse.md (extsuffix): New code attribute.
13404         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
13405         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
13406         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
13407         and sse4_1_zero_extendv4qiv4si2.
13408         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
13409         and sse4_1_zero_extendv2qiv2di2.
13410         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
13411         and sse4_1_zero_extendv4hiv4si2.
13412         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
13413         and sse4_1_zero_extendv2hiv2di2.
13414         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
13415         and sse4_1_zero_extendv2siv2di2
13416
13417         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
13418         using any_extend code iterator.
13419         (*avx_<s>mulv8hi3_highpart): Macroize insn from
13420         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
13421         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
13422
13423         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
13424         gen_sse4_1_sign_extend* functions.
13425         (struct builtin_description bdesc_args): Ditto.
13426
13427 2010-08-27  Xinliang David Li  <davidxl@google.com>
13428
13429         PR/45422
13430         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
13431         (iv_ca_set_no_cp): Update used inv expr count.
13432         (iv_ca_set_cp): Ditto.
13433         (iv_ca_new): Initialize new member.
13434         (iv_ca_free): Free memory.
13435
13436 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
13437
13438         * config/sh/sh-protos.h (sh_function_arg): Delete.
13439         (sh_function_arg_advance): Delete.
13440         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13441         (PASS_IN_REG_P): Eliminate cast.
13442         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
13443         const_tree and a bool.
13444         (sh_function_arg): Likewise.
13445         (sh_output_mi_thunk): Call sh_function_arg_advance) and
13446         sh_function_arg.
13447         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13448
13449 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
13450             Kaz Kojima  <kkojima@gcc.gnu.org>
13451
13452         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
13453         when possible.
13454         (sh_expand_epilogue): Likewise.
13455         * config/sh/sh.md (movml_push_banked): New insn.
13456         (movml_pop_banked): Likewise.
13457
13458 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
13459
13460         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
13461         gen_regexp_oneof, gen_regexp_sequence): Use the string found
13462         in vector element 0 rather than the original string when there's
13463         only one element.
13464         (gen_regexp): Remove extra semicolon.
13465
13466         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
13467         thumb2_movsf_vfp): Set attribute "insn".
13468         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
13469         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
13470         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
13471         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
13472         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
13473         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
13474         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
13475         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
13476         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
13477         if_not_arith, if_arith_not, cond_move_not): Likewise.
13478
13479 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
13480
13481         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
13482         New declaration.
13483         (rs6000_allocate_stack_temp): Ditto.
13484         (rs6000_expand_convert_si_to_sfdf): Ditto.
13485
13486         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
13487         line.  Update the options set if power6 or power7 server/embedded
13488         type options are used.  If we give a warning for no vsx under
13489         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
13490         (rs6000_allocate_stack_temp): New function to allocate a stack
13491         tempoary and adjust the address so it meets either REG+OFFSET or
13492         REG+REG addressing requirements.
13493         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
13494         that they can be used with the LFIWAX/LFIWZX instrucitons.
13495         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
13496         converting signed/unsigned SImode to either SFmode/DFmode.
13497
13498         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
13499         whether certain instructions can be generated.
13500         (TARGET_FCTIDZ): Ditto.
13501         (TARGET_STFIWX): Ditto.
13502         (TARGET_LFIWAX): Ditto.
13503         (TARGET_LFIWZX): Ditto.
13504         (TARGET_FCFIDS): Ditto.
13505         (TARGET_FCFIDU): Ditto.
13506         (TARGET_FCFIDUS): Ditto.
13507         (TARGET_FCTIDUZ): Ditto.
13508         (TARGET_FCTIWUZ): Ditto.
13509
13510         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
13511         (UNSPEC_FCTID): Ditto.
13512         (UNSPEC_LFIWAX): Ditto.
13513         (UNSPEC_LFIWZX): Ditto.
13514         (UNSPEC_FCTIWUZ): Ditto.
13515         (rreg): Use correct constraints.
13516         (SI_CONVERT_FP): New mode attribute for floating point conversion
13517         tests.
13518         (E500_CONVERT): Ditto.
13519         (lfiwax): New insns for converting from integer to floating point
13520         utilizing newer instructions.  Attempt to optimize conversions
13521         that come from memory so that we don't load the value into a GPR,
13522         spill it to the stack and reload it into a FPR.
13523         (floatsi<mode>2_lfiwax): Ditto.
13524         (floatsi<mode>2_lfiwax_mem): Ditto.
13525         (floatsi<mode>2_lfiwax_mem2): Ditto.
13526         (lfiwzx): Ditto.
13527         (floatunssi<mode>2_lfiwzx): Ditto.
13528         (floatunssi<mode>2_lfiwzx_mem): Ditto.
13529         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
13530         (floatdidf2_mem): Ditto.
13531         (floatunsdidf2_fcfidu): Ditto.
13532         (floatunsdidf2_mem): Ditto.
13533         (floatunsdisf2): Ditto.
13534         (floatunsdisf2_fcfidus): Ditto.
13535         (floatunsdisf2_mem): Ditto.
13536         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
13537         Use FCFID on 32-bit hosts that support it.
13538         (floatsidf2_internal): Ditto.
13539         (floatunssisf2): Ditto.
13540         (floatunssidf2): Ditto.
13541         (floatunssidf2_internal): Ditto.
13542         (floatsisf2): Ditto.
13543         (floatdidf2): Ditto.
13544         (floatdidf2_fpr): Ditto.
13545         (floatunsdidf2): Ditto.
13546         (floatdisf2): Ditto.
13547         (floatdisf2_fcfids): Ditto.
13548         (floatdisf2_internal1): Ditto.
13549         (fixuns_truncsfsi2): Delete, merge into common pattern for both
13550         SF/DF.  Add power7 support.
13551         (fix_truncsfsi2): Ditto.
13552         (fixuns_truncdfsi2): Ditto.
13553         (fixuns_truncdfdi2): Ditto.
13554         (fix_truncdfsi2): Ditto.
13555         (fix_truncdfsi2_internal): Ditto.
13556         (fix_truncdfsi2_internal_gfxopt): Ditto.
13557         (fix_truncdfsi2_mfpgpr): Ditto.
13558         (fctiwz): Ditto.
13559         (btruncdf2): Ditto.
13560         (btruncdf2_fpr): Ditto.
13561         (btructsf2): Ditto.
13562         (ceildf2): Ditto.
13563         (ceildf2_fpr): Ditto.
13564         (ceilsf2): Ditto.
13565         (floordf2): Ditto.
13566         (floordf2_fpr): Ditto.
13567         (floorsf2): Ditto.
13568         (rounddf2): Ditto.
13569         (rounddf2_fpr): Ditto.
13570         (roundsf2): Ditto.
13571         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
13572         (fix_trunc<mode>di2): Ditto.
13573         (fixuns_trunc<mode>si2): Ditto.
13574         (fixuns_trunc<mode>di2): Ditto.
13575         (fctiwz_<mode>): Ditto.
13576         (btrunc<mode>2): Ditto.
13577         (btrunc<mode>2_fpr): Ditto.
13578         (ceil<mode>2): Ditto.
13579         (ceil<mode>2_fpr): Ditto.
13580         (floor<mode>2): Ditto.
13581         (float<mode>2_fpr): Ditto.
13582         (round<mode>2): Ditto.
13583         (round<mode>2_fpr): Ditto.
13584         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
13585         (fixuns_trunc<mode>si2_stfiwx): Ditto.
13586         (fix_truncdfsi2_internal): Ditto.
13587         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
13588         converted value on stack, loaded into GPR, and then stored into
13589         the final destination.
13590         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
13591         FCTIDZ.
13592         (lrint<mode>di2): New insn, provide the lrint builtin functions.
13593         (ftruncdf2): Delete, unused.
13594         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
13595
13596         * config/rs6000/vsx.md (toplevel): Update copyright year.
13597         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
13598         (VSr3): Ditto.
13599
13600 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
13601             Jeremie Salvucci  <jeremie.salvucci@free.fr>
13602
13603         * gengtype.c (output_type_enum): Test the right union member.
13604
13605 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
13606
13607         PR target/41484
13608         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
13609         operands for operand 1.
13610         (sse4_1_extendv4qiv4si2): Ditto.
13611         (sse4_1_extendv2qiv2di2): Ditto.
13612         (sse4_1_extendv4hiv4si2): Ditto.
13613         (sse4_1_extendv2hiv2di2): Ditto.
13614         (sse4_1_extendv2siv2di2): Ditto.
13615         (sse4_1_zero_extendv8qiv8hi2): Ditto.
13616         (sse4_1_zero_extendv4qiv4si2): Ditto.
13617         (sse4_1_zero_extendv2qiv2di2): Ditto.
13618         (sse4_1_zero_extendv4hiv4si2): Ditto.
13619         (sse4_1_zero_extendv2hiv2di2): Ditto.
13620         (sse4_1_zero_extendv2siv2di2): Ditto.
13621         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
13622         (*sse4_1_extendv4qiv4si2): Ditto.
13623         (*sse4_1_extendv2qiv2di2): Ditto.
13624         (*sse4_1_extendv4hiv4si2): Ditto.
13625         (*sse4_1_extendv2hiv2di2): Ditto.
13626         (*sse4_1_extendv2siv2di2): Ditto.
13627         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
13628         (*sse4_1_zero_extendv4qiv4si2): Ditto.
13629         (*sse4_1_zero_extendv2qiv2di2): Ditto.
13630         (*sse4_1_zero_extendv4hiv4si2): Ditto.
13631         (*sse4_1_zero_extendv2hiv2di2): Ditto.
13632         (*sse4_1_zero_extendv2siv2di2): Ditto.
13633
13634 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
13635
13636         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
13637         (mips_function_arg): Delete.
13638         (mips_function_arg_boundary): Take a const_tree.
13639         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
13640         (mips_arg_info): Likewise.
13641         (mips_setup_incoming_varargs): Call mips_function_arg_advance
13642         instead of FUNCTION_ARG_ADVANCE.
13643         (mips_function_arg_advance): Adjust prototype.  Make static.
13644         (mips_function_arg): Likewise.
13645         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13646         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
13647
13648 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
13649
13650         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13651         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
13652         (function_arg): Delete.
13653         (function_arg_boundary): Take a const_tree.
13654         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
13655         (rs6000_spe_function_arg): Likewise.
13656         (rs6000_parm_start): Likewise.
13657         (rs6000_arg_size): Likewise.
13658         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
13659         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
13660         (rs6000_mixed_function_arg): Likewise.
13661         (function_arg): Rename to...
13662         (rs6000_function_arg): ...this.
13663         (function_arg_advance): Rename to...
13664         (rs6000_function_arg_advance_1): ...this
13665         (rs6000_function_arg_advance): New function.  Call it.
13666         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
13667         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
13668         (rs6000_function_value): Likewise.
13669         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13670
13671 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13672
13673         * config/arm/arm.md (enabled): Test the value of arch_enabled
13674         rather than just using it.
13675
13676 2010-08-27  Olivier Hainque  <hainque@adacore.com>
13677             Eric Botcazou  <ebotcazou@adacore.com>
13678
13679         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
13680         cover all the possible offsets from this base.
13681         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
13682
13683 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
13684
13685         PR tree-optimization/44485
13686         * calls.c (flags_from_decl_or_type): For const or pure
13687         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
13688         together with ECF_CONST resp. ECF_PURE.
13689         * builtins.c (expand_builtin): Use flags_from_decl_or_type
13690         instead of querying flags directly.
13691         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
13692         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
13693
13694 2010-08-26  Richard Guenther  <rguenther@suse.de>
13695
13696         PR tree-optimization/45255
13697         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
13698         and externals are also invariant.
13699
13700 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
13701
13702         PR rtl-optimization/44858
13703         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
13704         newi2pat, make sure they don't affect newpat.
13705
13706         PR rtl-optimization/45400
13707         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
13708         SUBREG_REG if both modes are of MODE_INT class.
13709
13710 2010-08-25  Julian Brown  <julian@codesourcery.com>
13711
13712         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
13713         * config/arm/arm.md (generic_sched): No for Cortex-A5.
13714         (generic_vfp): Likewise.
13715         (cortex-a5.md): Include.
13716         * config/arm/cortex-a5.md: New.
13717
13718 2010-08-25  Richard Guenther  <rguenther@suse.de>
13719
13720         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
13721         * gimple.c (gimple_get_alias_set): Remove special handling
13722         for pointers.
13723
13724 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
13725
13726         PR middle-end/45355
13727         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
13728         dead_or_set_p when computing i0_feeds_i2_n.
13729
13730         * combine.c (find_split_point): Undo canonicalization of multiply-add
13731         to (minus x (mult)) when it seems likely that this will increase the
13732         chances of a split.
13733
13734 2010-08-25  Richard Guenther  <rguenther@suse.de>
13735
13736         PR lto/44562
13737         * lto-streamer.c (lto_record_common_node): Do not mess with
13738         TYPE_CANONICAL when not in lto.
13739         * gimple.c (gimple_register_type): Likewise.
13740
13741 2010-08-25  Richard Guenther  <rguenther@suse.de>
13742
13743         PR tree-optimization/45316
13744         * tree-ssa-pre.c (eliminate): Properly clean EH info.
13745
13746 2010-08-25  Richard Guenther  <rguenther@suse.de>
13747
13748         PR tree-optimization/45393
13749         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
13750         and clean EH info.  Avoid SSA update.
13751         (execute_cse_sincos): Cleanup the CFG if it has changed.
13752
13753 2010-08-25  Richard Guenther  <rguenther@suse.de>
13754
13755         PR middle-end/45379
13756         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
13757         TARGET_MEM_REF in alignment computation.
13758
13759 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
13760
13761         PR tree-optimization/45059
13762         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
13763         type conversions from newop{1,2}.  Assert t is a comparison and
13764         newop{1,2} after the stripping are gimple vals.
13765
13766 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
13767
13768         * config/arm/iterators.md (VU, SE, V_widen_l): New.
13769         (V_unpack, US): New.
13770         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
13771         (vec_unpack<US>_lo_<mode>): Likewise.
13772         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
13773         (neon_vec_unpack<US>_lo_<mode>): Likewise.
13774         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
13775         (vec_widen_<US>mult_hi_<mode>): Likewise.
13776         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
13777         (neon_vec_<US>mult_hi_<mode>"): Likewise.
13778         (neon_unpack<US>_<mode>): Widening move intermediate step for
13779         vectorizing without -mvectorize-with-neon-quad.
13780         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
13781         for vectorizing without -mvectorize-with-neon-quad.
13782         * config/arm/predicates.md (vect_par_constant_high): Check for
13783         high-half lanes of a vector.
13784         (vect_par_constant_low): Check for low-half lanes of a vector.
13785
13786 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
13787
13788         * tree-if-conv.c (struct ifc_dr): New.
13789         (IFC_DR): New.
13790         (DR_WRITTEN_AT_LEAST_ONCE): New.
13791         (DR_RW_UNCONDITIONALLY): New.
13792         (memref_read_or_written_unconditionally): Use the cached values
13793         when possible.
13794         (write_memref_written_at_least_once): Same.
13795         (if_convertible_loop_p): Initialize and free DR->aux fields.
13796
13797 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
13798
13799         * gimple.c (gimple_could_trap_p_1): Not static anymore.
13800         Pass an extra bool parameter include_mem.
13801         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
13802         (gimple_assign_rhs_could_trap_p): Same.
13803         * gimple.h (gimple_could_trap_p_1): Declared.
13804         * tree-data-ref.h (same_data_refs_base_objects): New.
13805         (same_data_refs): New.
13806         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
13807         (write_memrefs_written_at_least_once): New.
13808         (ifcvt_memrefs_wont_trap): New.
13809         (operations_could_trap): New.
13810         (ifcvt_could_trap_p): New.
13811         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
13812         Gets a vector of data refs.
13813         (if_convertible_stmt_p): Same.
13814         (if_convertible_loop_p_1): New.
13815         (if_convertible_loop_p): Call if_convertible_loop_p_1.
13816
13817 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
13818
13819         * common.opt (ftree-loop-if-convert-stores): New flag.
13820         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
13821         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
13822         the created statement before GSI.
13823         (if_convertible_phi_p): Allow virtual phi nodes when
13824         flag_loop_if_convert_stores is set.
13825         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
13826         Do not handle types that do not match is_gimple_reg_type.
13827         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
13828         when flag_loop_if_convert_stores is set, as LHS can contain
13829         memory refs.
13830         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
13831         to if_convertible_gimple_assign_stmt_p.
13832         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
13833         (replace_phi_with_cond_gimple_assign_stmt): Renamed
13834         predicate_scalar_phi.  Do not handle virtual phi nodes.
13835         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
13836         Call predicate_scalar_phi.
13837         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
13838         just after the labels for flag_loop_if_convert_stores, otherwise
13839         insert the predicate in the end of the BB.
13840         (predicate_mem_writes): New.
13841         (combine_blocks): Call predicate_all_scalar_phis.  When
13842         flag_loop_if_convert_stores is set, call predicate_mem_writes.
13843         (tree_if_conversion): Call mark_sym_for_renaming when
13844         flag_loop_if_convert_stores is set.
13845         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
13846         flag_loop_if_convert_stores is set.
13847
13848 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
13849
13850         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
13851         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
13852         (pa_function_value): Make static.
13853         (override_options): Rename to...
13854         (pa_option_override): ...this. Make static.
13855         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
13856         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
13857         TARGET_OPTION_OVERRIDE): Define.
13858         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
13859         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
13860         Remove.
13861         * config/pa/pa-protos.h (override_options): Remove.
13862
13863 2010-08-24  Richard Guenther  <rguenther@suse.de>
13864
13865         PR middle-end/45379
13866         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
13867         if addr->index is NULL or zero.
13868         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
13869         TARGET_MEM_REF more properly.
13870         (indirect_ref_may_alias_decl_p): Likewise.
13871         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
13872         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
13873
13874 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
13875
13876         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
13877         (m32c_override_options): Rename to...
13878         (m32c_option_override): ...this. Make static.
13879         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
13880         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
13881         Remove.
13882         * config/m32c/m32c-protos.h (m32c_override_options,
13883         m32c_function_value_regno_p): Remove.
13884
13885 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
13886
13887         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
13888         Fix a typo in a previous commit.
13889
13890 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
13891
13892         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
13893         Pre-initialize innerloop_iters to one.
13894
13895 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
13896
13897         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
13898         existing static function global.
13899
13900         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
13901         is changed to global.
13902
13903         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
13904         may_be_nonaddressable_p on base, and don't collect this reference
13905         if the address of the base could not be taken.
13906
13907 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
13908
13909         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
13910         enable the compiler to autovectorize mathmetical functions for
13911         power7 using the Mathematical Acceleration Subsystem library.
13912
13913         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
13914         handle which vector math library we have.
13915         (rs6000_override_options): Add -mveclibabi=mass support.
13916         (rs6000_builtin_vectorized_libmass): New function to handle auto
13917         vectorizing math functions that are in the MASS library.
13918         (rs6000_builtin_vectorized_function): Call it.
13919
13920         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
13921         -mveclibabi=mass.
13922
13923 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13924
13925         PR boehm-gc/34544
13926         * gthr-posix.h (__gthread_active_init): Delete.
13927         (__gthread_active_p): Do activity check here.
13928         Don't include errno.h on hppa-hpux.  Update comment.
13929         * gthr-posix95.h (__gthread_active_init): Delete.
13930         (__gthread_active_p): Do activity check here.
13931         Don't include errno.h on hppa-hpux.  Update comment.
13932         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
13933         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
13934         add -lpthread when -mt or -pthread is specified.
13935         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
13936         (LINK_GCC_C_SEQUENCE_SPEC): Define.
13937         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
13938         (stublib.c, pthread_default_stacksize_np-stub.o,
13939         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
13940         $(T)libgcc_stub.a): Add methods.
13941         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
13942         (stublib.c, pthread_default_stacksize_np-stub.o,
13943         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
13944         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
13945         pthread_mutex_unlock): New stubs.
13946
13947 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
13948
13949         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
13950         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
13951         options.
13952         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
13953         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
13954         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
13955         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
13956         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
13957         "-l".
13958         * cppspec.c: Include opts.h.
13959         (lang_specific_driver): Use cl_decoded_option structures.
13960         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
13961         * doc/tm.texi: Regenerate.
13962         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
13963         (driver_handle_option): Allow driver options needing no special
13964         processing.
13965         (process_command): Decode options before call to
13966         lang_specific_driver.  Pass decoded options to
13967         lang_specific_driver.
13968         * gcc.h (lang_specific_driver): Update prototype.
13969         * gccspec.c: Include opts.h.
13970         (lang_specific_driver): Use cl_decoded_option structures.
13971         * opts-common.c (option_ok_for_language, generate_option,
13972         generate_option_input_file): New.
13973         (decode_cmdline_option): Use option_ok_for_language.
13974         (decode_cmdline_options_to_array): Use generate_option_input_file.
13975         (handle_generated_option): Use generate_option.
13976         * opts.h (generate_option, generate_option_input_file): Declare.
13977
13978 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
13979
13980         * config/mips/mips.c (mips_override_options): Rename to...
13981         (mips_option_override): ...this. Make static.
13982         (TARGET_OPTION_OVERRIDE): Define.
13983         (mips_in_small_data_p): Update comment.
13984         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
13985         (FIXED_REGISTERS): Update comment.
13986         * config/mips/mips-protos.h (mips_override_options): Remove.
13987
13988 2010-08-21  Olivier Hainque  <hainque@adacore.com>
13989
13990         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
13991
13992 2010-08-21  Olivier Hainque  <hainque@adacore.com>
13993
13994         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
13995         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
13996
13997 2010-08-20  Jan Hubicka  <jh@suse.cz>
13998
13999         * tree-pass.h (pass_ipa_cdtor_merge): New function.
14000         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
14001         heap allocated.
14002         (record_cdtor_fn): Move to ipa.c; do not test for
14003         have_ctors_dtors.
14004         (build_cdtor): Move to ipa.c; add code avoiding construction
14005         when target have ctors/dtors and there is only one ctor/dtor at given
14006         priority.
14007         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
14008         sort; reverse order of constructors.
14009         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
14010         (cgraph_finalize_function): Do not call record_cdtor_fn.
14011         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
14012         (cgraph_build_static_cdtor): Move to ipa.c.
14013         * ipa.c: Include target.h and tree-iterator.h.
14014         (cgraph_build_static_cdtor, static_ctors, static_dtors,
14015         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
14016         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
14017         pass_ipa_cdtor_merge): New.
14018         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
14019         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
14020         bounds access.
14021
14022 2010-08-20  Jan Hubicka  <jh@suse.cz>
14023
14024         PR c++/45307
14025         PR c++/17736
14026         * cgraph.h (cgraph_only_called_directly_p,
14027         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
14028         static cdtors.
14029         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
14030         are not needed.
14031         (cgraph_finalize_function): Static cdtors are reachable.
14032         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
14033
14034 2010-08-20  Jan Hubicka  <jh@suse.cz>
14035
14036         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
14037         flag_wpa.
14038         * lto-streamer-out.c (lto_output): Likewise.
14039         * passes.c (ipa_write_optimization_summaries): Initialize statement
14040         uids.
14041
14042 2010-08-20  Olivier Hainque  <hainque@adacore.com>
14043
14044         * tree.h (alias_diag_flags): New enum.
14045         (alias_pair): Add an 'emitted_diags' field.
14046         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
14047         (assemble_alias): Initialize emitted_diags of new pairs.
14048
14049 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
14050
14051         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
14052         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14053         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14054         (STACK_CHECK_PROTECT): Define.
14055         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
14056         (output_probe_stack_range): Likewise.
14057         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
14058         builtin stack checking is enabled.
14059         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
14060         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
14061         (probe_stack_range): New insn.
14062
14063 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
14064
14065         PR target/45336
14066         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
14067         short first.
14068
14069         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
14070         char first.
14071
14072 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14073
14074         PR target/45336
14075         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
14076         to cover zero extension into 64-bit register.
14077         (*sse2_pextrw): Likewise.
14078         (*sse4_1_pextrd_zext): New insn.
14079
14080 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14081
14082         revert r163410, partially revert r163267.
14083         * config/rs6000/darwin.h (LIB_SPEC): Remove.
14084         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
14085         Darwin versions.
14086
14087 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14088
14089         PR middle-end/44974
14090         * builtins.c (expand_builtin): Don't optimize away
14091         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
14092
14093 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
14094
14095         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
14096         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
14097         alternative 1 of operand 2.
14098
14099 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14100             Paolo Bonzini  <bonzini@gnu.org>
14101
14102         * simplify-rtx.c (simplify_unary_operation_1): Optimize
14103         (sign_extend (zero_extend (...)) and
14104         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
14105
14106 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14107
14108         PR rtl-optimization/45353
14109         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
14110         after bb_note is a BARRIER.
14111
14112 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14113
14114         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
14115         linking libgcc.a.
14116
14117 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14118             Michael Matz  <matz@suse.de>
14119
14120         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
14121
14122 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14123
14124         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
14125         (ggc_mark_roots): ...here.
14126
14127 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14128
14129         * vec.h (FOR_EACH_VEC_ELT): Define.
14130         * c-decl.c: Use it.
14131         * cfgloop.c: Likewise.
14132         * cfgloopmanip.c: Likewise.
14133         * cgraph.c: Likewise.
14134         * cgraphunit.c: Likewise.
14135         * combine.c: Likewise.
14136         * config/bfin/bfin.c: Likewise.
14137         * config/mips/mips.c: Likewise.
14138         * config/rs6000/rs6000.c: Likewise.
14139         * dbxout.c: Likewise.
14140         * df-scan.c: Likewise.
14141         * dominance.c: Likewise.
14142         * dse.c: Likewise.
14143         * dwarf2out.c: Likewise.
14144         * except.c: Likewise.
14145         * expr.c: Likewise.
14146         * function.c: Likewise.
14147         * gcse.c: Likewise.
14148         * genattr.c: Likewise.
14149         * ggc-common.c: Likewise.
14150         * gimplify.c: Likewise.
14151         * graphite-blocking.c: Likewise.
14152         * graphite-clast-to-gimple.c: Likewise.
14153         * graphite-dependences.c: Likewise.
14154         * graphite-interchange.c: Likewise.
14155         * graphite-poly.c: Likewise.
14156         * graphite-scop-detection.c: Likewise.
14157         * graphite-sese-to-poly.c: Likewise.
14158         * graphite.c: Likewise.
14159         * haifa-sched.c: Likewise.
14160         * ifcvt.c: Likewise.
14161         * implicit-zee.c: Likewise.
14162         * ipa-prop.c: Likewise.
14163         * ipa-struct-reorg.c: Likewise.
14164         * ipa.c: Likewise.
14165         * ira-build.c: Likewise.
14166         * ira-color.c: Likewise.
14167         * ira-emit.c: Likewise.
14168         * lambda-code.c: Likewise.
14169         * loop-invariant.c: Likewise.
14170         * loop-unroll.c: Likewise.
14171         * lower-subreg.c: Likewise.
14172         * lto-cgraph.c: Likewise.
14173         * lto-opts.c: Likewise.
14174         * lto-streamer-in.c: Likewise.
14175         * lto-streamer-out.c: Likewise.
14176         * lto-streamer.c: Likewise.
14177         * lto-symtab.c: Likewise.
14178         * matrix-reorg.c: Likewise.
14179         * opts.c: Likewise.
14180         * predict.c: Likewise.
14181         * print-tree.c: Likewise.
14182         * sdbout.c: Likewise.
14183         * sel-sched-dump.c: Likewise.
14184         * sel-sched-ir.c: Likewise.
14185         * sel-sched.c: Likewise.
14186         * sese.c: Likewise.
14187         * stor-layout.c: Likewise.
14188         * tree-cfg.c: Likewise.
14189         * tree-cfgcleanup.c: Likewise.
14190         * tree-chrec.c: Likewise.
14191         * tree-data-ref.c: Likewise.
14192         * tree-emutls.c: Likewise.
14193         * tree-inline.c: Likewise.
14194         * tree-into-ssa.c: Likewise.
14195         * tree-loop-distribution.c: Likewise.
14196         * tree-loop-linear.c: Likewise.
14197         * tree-mudflap.c: Likewise.
14198         * tree-outof-ssa.c: Likewise.
14199         * tree-parloops.c: Likewise.
14200         * tree-predcom.c: Likewise.
14201         * tree-pretty-print.c: Likewise.
14202         * tree-scalar-evolution.c: Likewise.
14203         * tree-ssa-live.c: Likewise.
14204         * tree-ssa-loop-im.c: Likewise.
14205         * tree-ssa-loop-ivcanon.c: Likewise.
14206         * tree-ssa-loop-ivopts.c: Likewise.
14207         * tree-ssa-loop-manip.c: Likewise.
14208         * tree-ssa-loop-niter.c: Likewise.
14209         * tree-ssa-loop-prefetch.c: Likewise.
14210         * tree-ssa-phiprop.c: Likewise.
14211         * tree-ssa-pre.c: Likewise.
14212         * tree-ssa-reassoc.c: Likewise.
14213         * tree-ssa-sccvn.c: Likewise.
14214         * tree-ssa-structalias.c: Likewise.
14215         * tree-ssa.c: Likewise.
14216         * tree-vect-data-refs.c: Likewise.
14217         * tree-vect-loop-manip.c: Likewise.
14218         * tree-vect-loop.c: Likewise.
14219         * tree-vect-patterns.c: Likewise.
14220         * tree-vect-slp.c: Likewise.
14221         * tree-vect-stmts.c: Likewise.
14222         * tree-vrp.c: Likewise.
14223         * tree.c: Likewise.
14224         * value-prof.c: Likewise.
14225         * var-tracking.c: Likewise.
14226         * varasm.c: Likewise.
14227         * vmsdbgout.c: Likewise.
14228
14229 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
14230             Richard Guenther  <richard.guenther@gmail.com>
14231
14232         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
14233         copy the src value and return a copy.
14234         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
14235         (C++ Volatiles): Adjust to describe C++ semantics only.
14236
14237 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
14238
14239         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
14240         be zero or nonzero.
14241         * doc/tm.texi: Regenerate.
14242         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
14243         * df-scan.c (df_get_exit_block_use_set), reginfo.c
14244         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
14245         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
14246         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
14247         to 1.
14248
14249 2010-08-20  Olivier Hainque  <hainque@adacore.com>
14250
14251         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
14252         an extra nop past a sibling call at the very end.
14253
14254 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
14255
14256         PR bootstrap/45350
14257         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
14258         a comment.
14259
14260 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
14261
14262         * target.def (function_arg, function_incoming_arg): Remove const
14263         qualifier on CUMULATIVE_ARGS parameter.
14264         * targhooks.h (default_function_arg, default_function_incoming_arg):
14265         Likewise.
14266         * targhooks.c (default_function_arg, default_function_incoming_arg):
14267         Likewise.
14268         * config/i386/i386.c (ix86_function_arg): Likewise.
14269
14270 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
14271
14272         PR target/45336
14273         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
14274         SIGN_EXTENDs or ZERO_EXTENDs.
14275
14276 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
14277
14278         PR target/42172
14279         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
14280         Take its cost into account if nonnull.
14281         (insn_a_feeds_b): New static function.
14282         (combine_instructions): Look for four-insn combinations.
14283         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
14284         them into account when computing all_adjacent and looking for other
14285         uses.
14286         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
14287         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
14288         (try_combine): New arg I0.  Handle four-insn combinations.
14289         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
14290         like ELIM_I1.
14291
14292 2010-08-19  Jason Merrill  <jason@redhat.com>
14293
14294         PR c++/45307
14295         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
14296         if ctor is empty.
14297         (gimplify_modify_expr_rhs): Adjust.
14298
14299 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
14300
14301         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
14302         bitmap_bit_p.
14303         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
14304         * dominance.c (iterate_fix_dominators): Likewise.
14305         * dse.c (set_usage_bits): Likewise.
14306         (set_position_unneeded, record_store): Likewise.
14307         * gimple-fold.c (get_maxval_strlen): Likewise.
14308         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
14309         * ipa-inline.c (update_caller_keys): Likewise.
14310         * ipa-split.c (verify_non_ssa_vars): Likewise.
14311         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
14312         (close_type_exposed_parameter, close_type_full_escape): Likewise.
14313         (close_addressof_down): Likewise.
14314         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
14315         (setup_allocno_left_conflicts_size): Likewise.
14316         (ira_reassign_conflict_allocnos): Likewise.
14317         (ira_reassign_pseudos): Likewise.
14318         * ira-emit.c (change_loop): Likewise.
14319         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
14320         * lto-streamer-out.c (write_symbol): Likewise.
14321         * predict.c (expr_expected_value_1): Likewise.
14322         * regstat.c (regstat_bb_compute_ri): Likewise.
14323         * sel-sched.c (create_block_for_bookkeeping): Likewise.
14324         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
14325         * stmt.c (expand_case): Likewise.
14326         * tree-eh.c (emit_eh_dispatch): Likewise.
14327         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
14328         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
14329         Likewise.
14330         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
14331         (rdg_build_components): Likewise.
14332         * tree-object-size.c (collect_object_sizes_for): Likewise.
14333         * tree-sra.c (convert_callers): Likewise.
14334         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
14335         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
14336         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
14337
14338 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
14339
14340         * config/i386/i386.md (*lea_1): Use P mode iterator.
14341         (lea add splitter): Also handle DImode operands.
14342         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
14343         predicate.  Do not use ix86_lea_for_add_ok.
14344         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
14345         (lea ashift splitter): Also handle DImode operands.
14346         (DImode lea ashift splitter): Remove splitter.
14347
14348 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
14349
14350         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
14351         ix86_binary_operator_ok.
14352
14353 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
14354
14355         PR rtl-optimization/44691
14356         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
14357         is not a register.
14358
14359 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
14360
14361         PR target/45070
14362         * config/arm/arm.c (arm_output_epilogue): Ensure that return
14363          value of size 1-3 is handled correctly.
14364
14365 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
14366
14367         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
14368         type for the conditional has wide enough range.
14369
14370 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
14371
14372         PR target/45327
14373         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
14374         ix86_binary_operator_ok.
14375
14376 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
14377
14378         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
14379         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
14380         code to output insn mnemonic.  Fix comment.
14381         (*addsi_1_zext): Add r-r-0 alternative 1.
14382         <TYPE_LEA>: Split insn to lea.
14383         <default>: Handle alternative 1.
14384         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
14385         multi-level if_then_else RTX to set "type" attribute.
14386         <default>: Handle alternative 2.
14387         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
14388         Use cond RTX instead of multi-level if_then_else RTX to set
14389         "type" attribute.
14390         <default>: Handle alternatives 2 and 4.
14391         (lea splitters): Update calls to ix86_lea_for_add_ok.
14392
14393         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
14394         argument.
14395         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
14396
14397 2010-08-18  Richard Guenther  <rguenther@suse.de>
14398
14399         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
14400         use operand helpers.
14401
14402 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
14403
14404         PR middle-end/45292
14405         * optabs.c (expand_bool_compare_and_swap): Expand pending
14406         pops before trying the optab.
14407
14408 2010-08-18  Yao Qi  <yao@codesourcery.com>
14409
14410         PR target/45094
14411         * config/arm/arm.c (output_move_double): Fix typo generating
14412         instructions ('ldr'->'str').
14413
14414 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
14415
14416         PR rtl-optimization/42575
14417         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
14418         live ranges.
14419
14420 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14421
14422         * config/arm/arm-protos.h (arm_expand_sync): New.
14423         (arm_output_memory_barrier, arm_output_sync_insn): New.
14424         (arm_sync_loop_insns): New.
14425         * config/arm/arm.c (FL_ARCH7): New.
14426         (FL_FOR_ARCH7): Include FL_ARCH7.
14427         (arm_arch7): New.
14428         (arm_print_operand): Support %C markup.
14429         (arm_legitimize_sync_memory): New.
14430         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
14431         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
14432         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
14433         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
14434         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
14435         (arm_process_output_sync_insn, arm_output_sync_insn): New.
14436         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
14437         * config/arm/arm.h (struct arm_sync_generator): New.
14438         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
14439         (TARGET_HAVE_MEMORY_BARRIER): New.
14440         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
14441         * config/arm/arm.md: Include sync.md.
14442         (UNSPEC_MEMORY_BARRIER): New.
14443         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
14444         (VUNSPEC_SYNC_OP):New.
14445         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
14446         (sync_result, sync_memory, sync_required_value): New attributes.
14447         (sync_new_value, sync_t1, sync_t2): Likewise.
14448         (sync_release_barrier, sync_op): Likewise.
14449         (length): Add logic to length attribute defintion to call
14450         arm_sync_loop_insns when appropriate.
14451         * config/arm/sync.md: New file.
14452
14453 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
14454
14455         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
14456         ENABLE_TREE_CHECKING.
14457         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
14458         and GCC >= 4.3.
14459
14460 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
14461
14462         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
14463         or optimizing for size, always avoid lea if possible.
14464
14465         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
14466
14467 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
14468
14469         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
14470         Dunmmy function with NULL return unless the target is
14471         OSX >= 10.6 (Darwin10).
14472
14473 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
14474
14475         * gcc.c (spec_function): Add remove-outfile.
14476         (remove_outfile_spec_function): New function.
14477         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
14478         * invoke.texi (replace-outfile): Document.
14479
14480 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
14481
14482         PR target/45296
14483         * reginfo.c (globalize_reg): Reject stack registers.
14484
14485 2010-08-17  Richard Guenther  <rguenther@suse.de>
14486
14487         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
14488         list of conditional equivalences.
14489         (free_all_edge_infos): Adjust.
14490         (record_equivalences_from_incoming_edge): Likewise.
14491         (record_cond): Likewise.
14492         (build_and_record_new_cond): Likewise.
14493         (record_conditions): Likewise.
14494         (dom_opt_leave_block): Likewise.
14495
14496 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
14497
14498         * doc/invoke.texi (ms-extension): Add documentation.
14499
14500 2010-08-17  Richard Guenther  <rguenther@suse.de>
14501
14502         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
14503
14504 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
14505
14506         PR c/40563
14507         * c-decl.c (diagnose_uninitialized_cst_member): New function.
14508         (finish_decl): Use it to issue a -Wc++-compat warning about
14509         uninitialized const field in struct or union.
14510
14511         (finish_struct): Use strip_array_types.
14512
14513 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
14514
14515         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
14516         functions.
14517         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
14518         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
14519         call block_nreverse here.
14520         (blocks_nreverse): Rename decl temporary to block.
14521
14522 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
14523
14524         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
14525         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
14526         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
14527         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
14528         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
14529         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
14530         thumb2_iorsi3): Delete.
14531         (orsi_notsi_si): No longer a named pattern.
14532         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
14533         * config/arm/predicates.md (shift_amount_operand): New.
14534         (mult_operator): New.
14535         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
14536         attr enabled): New.
14537         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
14538         arch matches t2.
14539         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
14540         (not_shiftsi_compare0): Likewise, renamed from
14541         arm_notsi_shiftsi_compare0.
14542         (not_shiftsi_compare0_scratch): Likweise, renamed from
14543         arm_notsi_shiftsi_compare0_scratch.
14544         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
14545         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
14546         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
14547         so that the register alternative is disabled when the shift_operator
14548         is MULT.  Use "M" as the constraint for constants.
14549         (arith_shiftsi splitter): Enable for TARGET_32BIT.
14550         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
14551         constraint for constants.
14552         (arith_shiftsi_compare0_scratch): Likewise.
14553         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
14554         Handle Thumb2 alternative.
14555
14556 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
14557
14558         * doc/options.texi (NoDriverArg): Document.
14559         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
14560         -MDX and -MMDX.
14561         * opt-functions.awk (switch_flags): Handle NoDriverArg.
14562         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
14563         marking for CL_NO_DRIVER_ARG options when in the driver.
14564         * opts.h (CL_NO_DRIVER_ARG): Define.
14565         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
14566         CL_COMMON): Update values.
14567
14568 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
14569
14570         * common.opt: Add driver options.
14571         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
14572         * doc/options.texi (Driver, RejectDriver): Document.
14573         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
14574         print_prog_name, print_multi_directory, print_sysroot,
14575         print_multi_os_directory, print_multi_lib,
14576         print_sysroot_headers_suffix, report_times, combine_flag,
14577         use_pipes, wrapper_string): Remove.
14578         (save_switch, driver_unknown_option_callback,
14579         driver_wrong_lang_callback, driver_post_handling_callback,
14580         driver_handle_option): New.
14581         (spec_lang, last_language_n_infiles): Make file-scope static
14582         instead of local to process_command.
14583         (process_command): Use decode_cmdline_options_to_array and
14584         read_cmdline_option for option processing.  Compute have_c in
14585         prescan of decoded options.
14586         * opt-functions.awk (switch_flags): Handle Driver and
14587         RejectDriver.
14588         (var_type, var_type_struct): Handle Separate options as generating
14589         const char * variables.
14590         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
14591         CL_TARGET to be passed by caller if required.
14592         (decode_cmdline_options_to_array): Update comment.
14593         * opts.c (complain_wrong_lang): Handle options only valid for the
14594         driver.
14595         (decode_options): Update call to decode_cmdline_options_to_array.
14596         (print_filtered_help): Ignore driver-only options.
14597         (print_specific_help): Ignore CL_DRIVER.
14598         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
14599         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
14600         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
14601         Update values.
14602
14603 2010-08-16  Richard Guenther  <rguenther@suse.de>
14604
14605         * tree-cfg.c (verify_types_in_gimple_reference): Verify
14606         TARGET_MEM_REF a bit.
14607         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
14608         (create_mem_ref_raw): Always create TMR_OFFSET, store the
14609         alias pointer type via it.
14610         (copy_mem_ref_info): Adjust.
14611         (maybe_fold_tmr): Likewise.
14612         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
14613         (reference_alias_ptr_type): Likewise.
14614         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
14615         adjust documentation of TMR_OFFSET operand.
14616         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
14617         use the alias pointer type.
14618         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
14619         initialize mem attrs but the TMR itself.
14620         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
14621         similar to MEM_REF.
14622         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
14623         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
14624         (unshare_and_remove_ssa_names): Likewise.
14625         (copy_ref_info): Adjust.
14626         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
14627         TARGET_MEM_REF case.
14628         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
14629         at TMR_ORIGINAL.
14630         * tree.h (TMR_ORIGINAL): Remove.
14631         * gimple.c (get_base_address): For TARGET_MEM_REF with a
14632         symbol return that.
14633         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
14634         with a symbol.
14635         (get_addr_base_and_unit_offset): Likewise.
14636         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
14637         TARGET_MEM_REFs.
14638         (indirect_ref_may_alias_decl_p): Likewise.
14639         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
14640
14641 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
14642
14643         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
14644         with GCC version 4.6, the default setting (when not optimizing
14645         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
14646         been changed to -fomit-frame-pointer.
14647
14648 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
14649
14650         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
14651         Darwin10.  Do not link libgcc.a for Darwin >= 9.
14652
14653 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
14654
14655         * doc/invoke.texi (Warning Options): Fix terminology and markup
14656         in the description of how unknown warning options are handled.
14657
14658 2010-08-15  Ira Rosen  <irar@il.ibm.com>
14659
14660         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
14661         in basic blocks.
14662         (vect_supportable_dr_alignment): Check alignment for basic blocks.
14663         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
14664         data references.
14665         (vect_bb_vectorization_profitable_p): New function.
14666         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
14667         check if it's worthwhile to vectorize the basic block.
14668
14669 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
14670
14671         * reload.h (register_move_cost, memory_move_secondary_cost,
14672         secondary_reload_class): Adjust prototype.
14673         * rtl.h (reg_class_subset_p): Adjust prototype.
14674         * reload.c (secondary_reload_class): Change arguments type from
14675         enum reg_class to reg_class_t. Change result type to reg_class_t.
14676         * reginfo.c (register_move_cost, reg_class_subset_p): Change
14677         arguments type from enum reg_class to reg_class_t.
14678         (memory_move_secondary_cost): Change arguments type from
14679         enum reg_class to reg_class_t. Change type of saved_flags to
14680         reg_class_t.
14681
14682         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
14683         Remove macros.
14684         (mips_cost): Remove.
14685         (struct mips_rtx_cost_data): Moved to mips.c.
14686         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
14687         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
14688         (mips_cost): Make static.
14689         (mips_canonicalize_move_class): Change argument type to reg_class_t.
14690         Change result type to reg_class_t.
14691         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
14692         type from enum reg_class to reg_class_t.
14693         (mips_register_move_cost): Make static. Change arguments
14694         type from enum reg_class to reg_class_t.
14695         (mips_memory_move_cost): New function.
14696         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
14697
14698 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
14699
14700         PR rtl-optimization/43358
14701         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
14702         of a single hard register, using simplify_subreg_regno to decide
14703         what that register should be.
14704
14705 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
14706
14707         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
14708         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
14709         (loongson_pmull<V_suffix>): Rename to...
14710         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
14711
14712 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
14713
14714         * configure.ac: Enable -fomit-frame-pointer on darwin
14715         which support dwarf2.
14716         * config/i386/i386.c (override_options): Same.
14717
14718 2010-08-13  Jie Zhang  <jie@codesourcery.com>
14719
14720         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
14721
14722 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
14723
14724         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
14725         -MMD.
14726
14727 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
14728
14729         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
14730         up dot_prod pattern searching if a stmt is outside the loop.
14731
14732 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
14733             Uros Bizjak  <ubizjak@gmail.com>
14734
14735         * config.gcc: Handle --enable-frame-pointer.
14736
14737         * configure.ac: Add --enable-frame-pointer.
14738         * configure: Regenerated.
14739
14740         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
14741         (override_options): If not configured with --enable-frame-pointer,
14742         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
14743         optimizing for size), -fasynchronous-unwind-tables and
14744         -maccumulate-outgoing-args by default.
14745
14746 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
14747
14748         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
14749
14750         PR middle-end/45262
14751         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
14752         -a overflows.  Normalize the range.
14753
14754 2010-08-12  Richard Guenther  <rguenther@suse.de>
14755
14756         PR tree-optimization/45232
14757         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
14758         for types with undefined overflow.
14759         (reassociate_bb): Allow re-associating of bit and min/max
14760         operations for types with undefined overflow.
14761         * tree-ssa-forwprop.c (associate_plusminus): New function.
14762         (tree_ssa_forward_propagate_single_use_vars): Call it.
14763
14764 2010-08-12  Richard Guenther  <rguenther@suse.de>
14765
14766         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
14767         * tree-ssa-alias.c (get_ptr_info): Move ...
14768         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
14769         align and misalign fields conservatively.
14770         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
14771         derive alignment information.
14772         (evaluate_stmt): Derive alignment information from memory
14773         allocation functions.
14774         * tree.h (get_pointer_alignment): Make unsigned.
14775         * builtins.c (get_object_alignment): Use alignment information we
14776         have computed for pointers.
14777         (get_pointer_alignment): Likewise.  Make conservative, return
14778         and unsigned value.
14779         (expand_builtin_strlen): Adjust.
14780         (expand_builtin_memcmp): Likewise.
14781         (expand_builtin_strcmp): Likewise.
14782         (expand_builtin_strncmp): Likewise.
14783         (get_builtin_sync_mem): Use at least mode alignment.
14784         (fold_builtin_memset): Adjust.
14785         (fold_builtin_memory_op): Likewise.
14786         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
14787         information also dump pointer alignment knowledge.
14788         (dump_gimple_stmt): Likewise.
14789
14790 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
14791
14792         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
14793         (EMPTY_FIELD_BOUNDARY): Remove.
14794         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
14795
14796 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
14797
14798         PR debug/45259
14799         * caller-save.c (save_call_clobbered_regs): Only swap notes with
14800         DEBUG_INSNs if n_regs_saved.
14801
14802 2010-08-12  Wei Guozhi  <carrot@google.com>
14803
14804         PR target/44999
14805         * config/arm/arm.md (andsi3): Change to zero extension if possible.
14806         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
14807
14808 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
14809
14810         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
14811
14812         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
14813
14814 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14815
14816         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
14817         the case removed in the previous patch, when the only phi argument
14818         is defined in the same loop as the phi node itself.  Handle it
14819         separately from the invariant case by both propagating it outside
14820         the region and replacing the phi node with an assign.
14821
14822 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14823
14824         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
14825         constant phi nodes with one argument are is_gimple_min_invariant
14826         and SSA_NAME_IS_DEFAULT_DEF.
14827
14828 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14829
14830         * graphite-cloog-util.c (oppose_constraint):
14831         Extend loop counter's value range (CLOOG_ORG).
14832         (cloog_matrix_to_ppl_constraint): Same.
14833         (new_Constraint_System_from_Cloog_matrix): Same.
14834         * graphite-cloog-compat.h (matrix_num_type): New.
14835
14836 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14837
14838         * graphite.c (graphite_initialize): Do not initialize
14839         CLooG and initialize the Parma Polyhedra Library
14840         manually when using CLOOG_ORG.
14841         (graphite_finalize): Do not finalize CLooG and finalize
14842         the Parma Polyhedra Library manually when using CLOOG_ORG.
14843         * graphite-cloog-compat.h (cloog_initialize): Hide function
14844         when using CLOOG_ORG.
14845         (cloog_finalize): Same.
14846
14847 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14848
14849         * graphite-clast-to-gimple.c (free_scattering): Change
14850         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
14851         (CLOOG_ORG).
14852         (build_cloog_prog): Same.
14853         * graphite-cloog-compat.h (cloog_domain): Removed.
14854         (cloog_scattering): New.
14855         (cloog_set_domain): Removed.
14856         (cloog_set_scattering): New.
14857         (cloog_next_domain): Removed.
14858         (cloog_next_scattering): New.
14859         (cloog_set_next_domain): Removed.
14860         (cloog_set_next_scattering): New.
14861         (CloogScatteringList): New.
14862         (CloogScattering): New.
14863         (cloog_scattering_free): New.
14864         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
14865         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
14866         New.
14867
14868 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14869
14870         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
14871         CloogState.
14872         (set_cloog_options): Same.
14873         (print_clast_stmt): Same.
14874         (scop_to_clast): Same.
14875         (print_generated_program): Same.
14876         (gloog): Same.
14877         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
14878         (scop_to_clast): Extend with CloogState.
14879         * graphite-cloog-util.c: Include graphite-cloog-compat.h
14880         (new_Cloog_Domain_from_ppl_Polyhedron):
14881         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
14882         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
14883         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
14884         * graphite-cloog-util.h (build_cloog_prog): Same.
14885         * graphite-cloog-copat.h (build_cloog_prog): New.
14886         (CloogState): New.
14887         (cloog_state_malloc): New.
14888         (cloog_state_free): New.
14889         (cloog_loop_malloc): New.
14890         (cloog_options_malloc): New.
14891         (cloog_statement_alloc): New.
14892         (cloog_domain_from_cloog_matrix): New.
14893         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
14894         (new_Cloog_Domain_from_ppl_Polyhedron): New.
14895
14896 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14897
14898         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
14899         type of NAME now depends on used CLooG version.
14900         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
14901         (gcc_type_for_clast_expr): Same.
14902         (print_clast_stmt): Replace pprint with clast_pprint.
14903         * graphite-cloog-compat.h: Provide compatibility macros for
14904         CLooG Legacy.
14905         (clast_name_p): New.
14906         (clast_expr_term): New.
14907         (clast_expr_red): New.
14908         (clast_expr_bin): New.
14909         (clast_pprint): New.
14910
14911 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14912
14913         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
14914         compatible to newer CLooG releases (CLOOG_ORG).
14915         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
14916         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
14917         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
14918         (build_cloog_prog) : New.
14919         (cloog_program_extract_scalars): New.
14920         (cloog_program_scatter): New.
14921
14922 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14923
14924         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
14925         conditionally (CLOOG_ORG).
14926         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
14927         (cloog_statement_usr): New.
14928         (cloog_domain): Same.
14929         (cloog_set_domain): Same.
14930         (cloog_next_domain): Same.
14931         (cloog_set_next_domain): Same.
14932         (cloog_program_nb_scattdims): Same.
14933         (cloog_program_set_nb_scattdims): Same.
14934         (cloog_program_names): Same.
14935         (cloog_program_set_names): Same.
14936         (cloog_program_set_context): Same.
14937         (cloog_program_set_loop): Same.
14938         (cloog_program_blocklist): Same.
14939         (cloog_program_set_blocklist): Same.
14940         (cloog_program_scaldims): Same.
14941         (cloog_program_set_scaldims): Same.
14942         (cloog_names_nb_parameters): Same.
14943         (cloog_names_set_nb_parameters): Same.
14944         (cloog_names_parameters): Same.
14945         (cloog_names_set_parameters): Same.
14946         (cloog_names_set_nb_iterators): Same.
14947         (cloog_names_set_iterators): Same.
14948         (cloog_names_set_nb_scattering): Same.
14949         (cloog_names_set_scattering): Same.
14950         (cloog_statement_set_usr): Same.
14951         (cloog_loop_set_next): Same.
14952         (cloog_loop_set_domain): Same.
14953         (cloog_loop_set_block): Same.
14954         (cloog_block_list_next): Same.
14955         (cloog_block_list_set_next):
14956         (cloog_block_list_set_block): Same.
14957
14958 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14959
14960         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
14961         a bool.
14962         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
14963         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
14964         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
14965         when something has been changed.
14966         (rewrite_commutative_reductions_out_of_ssa): Same.
14967
14968 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14969
14970         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
14971         handle the case when def is in the sese region.
14972         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
14973         for invariant expressions.
14974         (rewrite_cross_bb_phi_deps): Removed.
14975         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
14976         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
14977         rewrite_cross_bb_phi_deps.
14978
14979 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14980
14981         * graphite-sese-to-poly.c
14982         (rewrite_commutative_reductions_out_of_ssa_loop): Call
14983         scev_analyzable_p only on is_gimple_reg
14984
14985 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14986
14987         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
14988         (rewrite_close_phi_out_of_ssa): Propagate constant values or
14989         parametric expressions outside the scop region.
14990         (rewrite_cross_bb_scalar_deps): Same.
14991         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
14992
14993 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14994
14995         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
14996         SSA_NAME_DEF_STMT only on SSA_NAMEs.
14997
14998 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14999
15000         * tree-scalar-evolution.c (instantiate_scev_name): Do not
15001         instantiate default definitions.
15002
15003 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
15004             Sebastian Pop  <sebastian.pop@amd.com>
15005
15006         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
15007         (loop_exits_from_bb_p): New.
15008         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
15009         (loop_exits_from_bb_p): Declared.
15010         * graphite-scop-detection.c (scopdet_basic_block_info): Call
15011         loop_exits_to_bb_p.
15012
15013 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15014
15015         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
15016         extra parameter for the region.  Call scev_analyzable_p.
15017         (rewrite_reductions_out_of_ssa): Update call to
15018         rewrite_close_phi_out_of_ssa.
15019         (rewrite_cross_bb_phi_deps): Same.
15020         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
15021         parameter for the region.  Call scev_analyzable_p.
15022         (rewrite_commutative_reductions_out_of_ssa): Update call to
15023         rewrite_commutative_reductions_out_of_ssa_loop.
15024
15025 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15026
15027         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
15028
15029 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15030
15031         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
15032         SSA scalar phi nodes that can be scev_analyzable_p.
15033
15034 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15035
15036         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
15037         handle SSA_NAME_IS_DEFAULT_DEF.
15038
15039 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15040
15041         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
15042
15043 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15044
15045         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
15046         case non close-phi nodes with one argument.
15047
15048 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15049
15050         * sese.h (scev_analyzable_p): Scevs could be expressions without
15051         chrecs and still be scev_analyzable_p.
15052
15053 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15054
15055         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
15056
15057 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15058
15059         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
15060         * cfgloop.h (struct loop): Remove single_iv field.
15061         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
15062         (scop_canonicalize_loops): Removed.
15063         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
15064         over all the loop phi nodes in loop->header.
15065         (build_poly_scop): Remove use of scop_canonicalize_loops.
15066
15067 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15068
15069         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
15070         handle GIMPLE_CALL.
15071
15072 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15073
15074         * tree-chrec.c (chrec_apply): Should only apply to the specified
15075         variable.  Also handle multivariate chains of recurrences that
15076         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
15077
15078 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15079
15080         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
15081         (debug_clast_name_indexes_1): Removed.
15082         (debug_clast_name_indexes): Removed.
15083         (pbb_to_depth_to_oldiv): Removed.
15084         (build_iv_mapping): Replace the use of rename_map with iv_map.
15085         (translate_clast_user): Remove uses of rename_map.  Allocate and
15086         free iv_map.
15087         (translate_clast_for_loop): Remove uses of rename_map.
15088         (translate_clast_for): Same.
15089         (translate_clast_guard): Same.
15090         (translate_clast): Same.
15091         (gloog): Same.
15092         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
15093         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
15094         * sese.c (set_rename): Now static.
15095         (rename_variables_in_stmt): Removed.
15096         (rename_uses): New.
15097         (is_parameter): Removed.
15098         (is_iv): Removed.
15099         (expand_scalar_variables_call): Removed.
15100         (expand_scalar_variables_ssa_name): Removed.
15101         (expand_scalar_variables_expr): Removed.
15102         (expand_scalar_variables_stmt): Removed.
15103         (expand_scalar_variables): Removed.
15104         (rename_variables): Removed.
15105         (remove_condition): Removed.
15106         (get_true_edge_from_guard_bb): Removed.
15107         (get_false_edge_from_guard_bb): Removed.
15108         (struct igp): Removed.
15109         (default_before_guard): Removed.
15110         (convert_for_phi_arg): Removed.
15111         (add_guard_exit_phis): Removed.
15112         (insert_guard_phis): Removed.
15113         (graphite_copy_stmts_from_block): Now also uses iv_map and a
15114         region.  Do not copy conditions.  Do not copy induction variables.
15115         Call rename_uses.
15116         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
15117         the translated statement.  Use the iv_map for the induction
15118         variable renaming.
15119         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
15120         (set_rename): Removed declaration.
15121         (scev_analyzable_p): ...here.
15122         * tree-chrec.c (chrec_apply_map): New.
15123         * tree-chrec.h (chrec_apply_map): Declared.
15124
15125 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15126
15127         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
15128         insert_loop_close_phis.
15129         * sese.c (name_defined_in_loop_p): Removed.
15130         (expr_defined_in_loop_p): Removed.
15131         (alive_after_loop): Removed.
15132         (close_phi_not_yet_inserted_p): Removed.
15133         (struct alep): Removed.
15134         (add_loop_exit_phis): Removed.
15135         (insert_loop_close_phis): Removed.
15136
15137 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15138
15139         * graphite-cloog-util.c
15140         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
15141         * graphite-poly.c
15142         (psct_scattering_dim_for_loop_depth): Same.
15143
15144 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15145
15146         * graphite-cloog-util.h: Added cloog.h.
15147         * graphite-blocking.c: Removed cloog.h.
15148         * graphite-dependences.c: Same.
15149         * graphite-interchange.c: Same.
15150         * graphite-poly.c: Same.
15151         * graphite-ppl.c: Same.
15152         * graphite-scop-detection.c: Same.
15153         * graphite-sese-to-poly.c:
15154         Removed cloog.h.
15155         Removed graphite-clast-to-gimple.h.
15156         (check_poly_representation): Removed (unused).
15157         * graphite-sese-to-poly.h
15158         (check_poly_representation): Removed (unused).
15159
15160 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15161
15162         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
15163         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
15164         (graphite-cloog-util.o): New.
15165         (graphite-ppl.o): Added graphite-cloog-util.h.
15166         * graphite-clast-to-gimple.c:
15167         Added graphite-cloog-util.h to include statements.
15168         * graphite-cloog-util.c: New.
15169         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
15170         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15171         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15172         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15173         (insert_constraint_into_matrix): Same.
15174         (ppl_Constrain_System_number_of_constraints): Same.
15175         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
15176         (oppose_constraint): Same.
15177         (cloog_matrix_to_ppl_constraint): Same.
15178         (new_Constraint_System_from_Cloog_Matrix): Same.
15179         * graphite-cloog-util.h: New.
15180         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
15181         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15182         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15183         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15184         (insert_constraint_into_matrix): Same.
15185         * graphite-ppl.c:
15186         Added graphite-cloog-util.h to include statements.
15187         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
15188         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15189         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15190         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15191         (insert_constraint_into_matrix): Same.
15192         (ppl_Constrain_System_number_of_constraints): Same.
15193         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
15194         (oppose_constraint): Same.
15195         (cloog_matrix_to_ppl_constraint): Same.
15196         (new_Constraint_System_from_Cloog_Matrix): Same.
15197         * graphite-ppl.h:
15198         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
15199         graphite-cloog-util.h.
15200         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15201         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15202         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15203         (insert_constraint_into_matrix): Same.
15204
15205 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15206
15207         * graphite-clast-to-gimple.c
15208         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
15209         (precision_for_interval): Same.
15210         (gcc_type_for_interval): Same.
15211         (compute_type_for_level): Same.
15212         * graphite-interchange.c
15213         (lst_interchange_profitable_p): Same.
15214         * graphite-poly.c
15215         (psct_scattering_dim_for_loop_depth): Same.
15216         * graphite-ppl.c
15217         (ppl_max_for_le_pointset): Same.
15218         (ppl_min_for_le_pointset): Same.
15219
15220 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15221
15222         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
15223         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
15224
15225 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15226
15227         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
15228         rewrite_close_phi_out_of_ssa.
15229
15230 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15231
15232         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
15233
15234 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15235
15236         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
15237         rename_map.
15238         * sese.c (debug_rename_map): Same.
15239         (get_rename): Same.
15240         (set_rename): Same.
15241         (rename_variables_in_stmt): Same.
15242         (expand_scalar_variables_call): Same.
15243         (expand_scalar_variables_ssa_name): Same.
15244         (expand_scalar_variables_expr): Same.
15245         (expand_scalar_variables_stmt): Same.
15246         (expand_scalar_variables): Same.
15247         (rename_variables): Same.
15248         (graphite_copy_stmts_from_block): Same.
15249         (copy_bb_and_scalar_dependences): Same.
15250
15251 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15252
15253         * graphite-clast-to-gimple.c (copy_renames): Removed.
15254         (translate_clast_for): Do not call copy_renames.
15255         (translate_clast_guard): Same.
15256
15257 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15258
15259         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
15260         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
15261         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
15262         before rewrite_cross_bb_scalar_deps.
15263
15264 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15265
15266         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
15267         Early return in when flag_associative_math is not set.
15268
15269 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15270
15271         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
15272         of SSA copies on edges except for loop->latch.
15273
15274 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15275
15276         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
15277         Split out of rewrite_reductions_out_of_ssa.
15278         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
15279         Declared.
15280         * graphite.c (graphite_transform_loops): Call it.
15281
15282 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15283
15284         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
15285
15286 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
15287
15288         * dbgcnt.def (graphite_scop): New counter.
15289         * graphite.c: Include dbgcnt.h.
15290         (graphite_transform_loops): Use new counter to limit transformations.
15291         * Makefile.in (graphite.o): Depend on DBGCNT_H.
15292
15293 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15294
15295         * passes.c (init_optimization_passes): Add pass_graphite.
15296         Schedule a pass_copy_prop before pass_graphite_transforms.
15297         * timevar.def (TV_GRAPHITE): Declared.
15298         * tree-pass.h (pass_graphite): Declared.
15299         * tree-ssa-loop.c (pass_graphite): New.
15300
15301 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15302
15303         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
15304         Remove calls to rename_nb_iterations and rename_sese_parameters.
15305         * graphite-clast-to-gimple.h (gloog): Update declaration.
15306         * graphite.c (graphite_transform_loops): Update call to gloog.
15307         * sese.c (rename_variables_in_expr): Removed.
15308         (rename_nb_iterations): Removed.
15309         (rename_sese_parameters): Removed.
15310         * sese.h (rename_nb_iterations): Removed.
15311         (rename_sese_parameters): Removed.
15312
15313 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15314
15315         * graphite-clast-to-gimple.c (gloog): Remove call to
15316         sese_adjust_liveout_phis.
15317         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
15318         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
15319         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
15320         rewrite_phi_out_of_ssa.
15321         * sese.c (get_vdef_before_sese): Removed.
15322         (sese_adjust_vphi): Removed.
15323         (sese_adjust_liveout_phis): Removed.
15324         * sese.h (sese_adjust_liveout_phis): Removed.
15325
15326 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15327
15328         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
15329         argument for the place after which to insert the out of SSA copy.
15330         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
15331         (rewrite_phi_out_of_ssa): Same.
15332         (rewrite_cross_bb_scalar_deps): Same.
15333         (insert_copyout): Removed.
15334         (insert_copyin): Removed.
15335         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
15336         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
15337         insert_copyin.
15338
15339 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15340
15341         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
15342         (rewrite_reductions_out_of_ssa): Same.
15343         (rewrite_commutative_reductions_out_of_ssa): Same.
15344         (build_poly_scop): Do not call these functions.
15345         * graphite-sese-to-poly.h (build_poly_scop): Declared.
15346         (rewrite_reductions_out_of_ssa): Declared.
15347         (rewrite_commutative_reductions_out_of_ssa): Declared.
15348         * graphite.c (graphite_transform_loops): Call on every scop
15349         rewrite_commutative_reductions_out_of_ssa before calling
15350         rewrite_reductions_out_of_ssa and build_scop_bbs.
15351
15352 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15353
15354         * graphite-dependences.c (dot_deps): Make system call to dotty run
15355         in background.
15356         (dot_deps_stmt): Same.
15357         * graphite-poly.c (dot_lst): Same.
15358
15359 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15360
15361         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
15362         phi_arg_in_outermost_loop.
15363         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
15364         (remove_invariant_phi): Same.
15365
15366 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
15367
15368         * target.def (output_addr_const_extra): New hook.
15369         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
15370         * doc/tm.texi: Regenerate.
15371         * targhooks.c (default_asm_output_addr_const_extra): New function.
15372         * targhooks.h (default_asm_output_addr_const_extra): Declare.
15373         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
15374         target hook.
15375
15376         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15377         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
15378         * config/i386/i386.h (output_addr_const_extra): Rename to...
15379         (i386_asm_output_addr_const_extra): ...this. Make static.
15380         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15381
15382 2010-08-11  Richard Henderson  <rth@redhat.com>
15383
15384         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
15385
15386 2010-08-11  Nick Clifton  <nickc@redhat.com>
15387
15388         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
15389         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
15390         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
15391         stormy16-lib2-cmpsi.c.
15392
15393         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
15394         -O2.
15395
15396 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
15397
15398         * opts.h (struct cl_option_handler_func): Make handler take
15399         cl_decoded_option structure as parameter, not individual elements.
15400         (struct cl_option_handlers): Make callbacks take cl_decoded_option
15401         structure as parameter, not individual elements.
15402         (handle_option): Take cl_decoded_option structure as parameter,
15403         not individual elements.
15404         (handle_generated_option): Declare.
15405         * opts-common.c (handle_option): Take cl_decoded_option structure
15406         as parameter, not individual elements.  Update calls to callback
15407         and handler functions.
15408         (handle_generated_option): New.
15409         (read_cmdline_option): Update calls to callback functions and
15410         handle_option.
15411         * opts.c (common_handle_option, complain_wrong_lang,
15412         unknown_option_callback, post_handling_callback,
15413         lang_handle_option, target_handle_option): Take cl_decoded_option
15414         structure as parameter, not individual elements.
15415         (lang_handle_option, target_handle_option, common_handle_option):
15416         Assert option has at most one argument.
15417         (enable_warning_as_error): Call handle_generated_option instead of
15418         handle_option.  Do not pass -Werror argument as argument of
15419         generated option.
15420
15421 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15422
15423         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
15424         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
15425         (SUBWORD_BOOL_CAS): Likewise.
15426         (SUBWORD_SYNC_OP): Likewise.
15427         (SUBWORD_TEST_AND_SET): Likewise.
15428         (FETCH_AND_OP_WORD): Parenthesise INF_OP
15429         (SUBWORD_SYNC_OP): Likewise.
15430         (OP_AND_FETCH_WORD): Likewise.
15431
15432 2010-08-10  Xinliang David Li  <davidxl@google.com>
15433
15434         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
15435         compute max/min offset in address.
15436
15437 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
15438
15439         * ira-live.c: Include sbitmap.h.
15440         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
15441         Compress live ranges even more.
15442
15443 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15444
15445         * coverage.c (ctr_labels): Delete.
15446
15447 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
15448
15449         PR bootstrap/45177
15450         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
15451         test here from arm_gen_load_multiple_1.
15452         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
15453         multiple_operation_profitable_p.
15454
15455 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15456
15457         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
15458         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
15459
15460 2010-08-10  Richard Henderson  <rth@redhat.com>
15461
15462         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
15463         after saving registers.  Assert that SSE registers are only saved
15464         with a sufficiently aligned frame.
15465         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
15466         remove stack_realign_fp handling.
15467         (ix86_expand_prologue): Save int registers before stack_realign_fp,
15468         and do not mark the stack alignment as frame related.
15469         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
15470
15471         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
15472         saves when re-aligning the stack.
15473
15474 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15475
15476         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
15477         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
15478         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
15479
15480 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15481
15482         * dwarf2out.c (struct die_struct): Move die_tag to the end.
15483
15484 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
15485
15486         * config/arm/iterators.md: New file.
15487         * config/arm/arm.md: Include iterators.md.
15488         (QHSI): Move to new file.
15489         (LTUGEU, cnb, optab, ior_xor): Likewise.
15490         * config/arm/iwmmxt.md (VMMX): Move to new file.
15491         (VSHFT, MMX_char): Likewise.
15492         * config/arm/neon.md (VD): Move to new file.
15493         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
15494         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
15495         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
15496         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
15497         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
15498         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
15499         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
15500         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
15501         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
15502         (Is_d_reg, V_mode_nunits): Likewise.
15503         * config/arm/vec-common.md (VALL): Move to new file.
15504         (VALLW, VINT, VINTW): Likewise.
15505
15506 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
15507
15508         PR middle-end/45182
15509         * combine.c (make_compound_operation): Don't try to convert
15510         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
15511
15512 2010-08-10  Richard Guenther  <rguenther@suse.de>
15513
15514         * tree.h (get_object_alignment): Adjust prototype.
15515         * builtins.c (get_object_alignment): Return unsigned int,
15516         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
15517         and TARGET_MEM_REF properly.
15518         (get_pointer_alignment): Adjust.
15519         * emit-rtl.c (get_mem_align_offset): Adjust comment.
15520         (set_mem_attributes_minus_bitpos): Adjust.
15521         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
15522
15523 2010-08-10  Richard Guenther  <rguenther@suse.de>
15524
15525         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
15526         (copy_prop_visit_assignment): Simplify.
15527         (copy_prop_visit_stmt): Also visit assignments from
15528         constants.
15529         (copy_prop_visit_phi_node): Use operand_equal_p.
15530
15531 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15532
15533         * ipa-split.c (find_split_points): Free stack.
15534
15535 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15536
15537         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
15538         * tree.c (tree_node_kind): Delete corresponding entries.
15539
15540 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
15541
15542         * alias.c (may_alias_p): Remove unused ret.
15543
15544 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
15545
15546         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
15547         alias_sets_conflict_p.
15548         (walk_mems_1): Moved from alias.c.
15549         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
15550         in alias.c.
15551         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
15552         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
15553         * alias.c (walk_mems_2): Moved to ddg.c.
15554         (walk_mems_1): Ditto.
15555         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
15556         to ddg.c.
15557         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
15558         disambiguation.
15559         *(may_alias_p): New function to check whether two memory expression
15560         may alias or not. Currently used in buidling inter-iteration memory
15561         dependence.
15562         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
15563         (insn_alias_sets_conflict_p): Removed
15564         *rtl.h (may_alias_p): New function prototype.
15565
15566 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15567
15568         * tree.c (nreverse): Assert that we don't have a BLOCK.
15569
15570 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15571
15572         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
15573         * config/arm/arm.c (arm_get_pcs_model): Likewise.
15574         * config/avr/avr.c (init_cumulative_args): Likewise.
15575         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
15576         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
15577         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
15578         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
15579         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
15580         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
15581         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
15582         * dwarf2out.c (gen_subprogram_die): Likewise.
15583         * function.c (allocate_struct_function): Likewise.
15584         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
15585         (deserves_ellipsis): Delete.
15586
15587 2010-08-09  Richard Guenther  <rguenther@suse.de>
15588
15589         * tree-ssa-copy.c (cached_last_copy_of): Remove.
15590         (valueize_val): New function.
15591         (get_last_copy_of): Remove.
15592         (set_copy_of_val): Simplify.
15593         (dump_copy_of): Likewise.
15594         (copy_prop_visit_cond_stmt): Use valueize_val.
15595         (copy_prop_visit_phi_node): Properly handle unvisited names.
15596         Drop code managing copy-of chains.
15597         (init_copy_prop): Adjust.
15598         (fini_copy_prop): Likewise.
15599         (execute_copy_prop): Remove obsolete comment.
15600
15601 2010-08-09  Richard Guenther  <rguenther@suse.de>
15602
15603         PR middle-end/44632
15604         * function.c (gimplify_parameters): Do not clear addressable
15605         bit of the original parameter.
15606
15607 2010-08-09  Richard Guenther  <rguenther@suse.de>
15608
15609         PR middle-end/45212
15610         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
15611         alignment from MEM_REF offset only if we took it from the
15612         base object.
15613
15614 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
15615
15616         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
15617
15618 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
15619
15620         * c-tree.h (build_arg_info): Declare.
15621         * c-decl.c (build_arg_info): Define.
15622         (get_parm_info): Call it.  Delete initialization code.
15623         * c-parser.c (c_parser_parms_declarator): Likewise.
15624         (c_parser_parms_list_declaractor): Likewise.
15625
15626 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
15627
15628         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
15629         (struct c_arg_info): Change type of tags field.
15630         * c-decl.c (grokdeclarator): Update for changed type of tags field.
15631         (get_parm_info): Likewise.
15632         (store_parm_decls_newstyle): Likewise.
15633
15634 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
15635
15636         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
15637         (branch_island_list): Delete.
15638         (branch_islands): Declare.
15639         (add_compiler_branch_island): Adjust for branch_islands instead of
15640         branch_island_list.
15641         (macho_branch_islands): Likewise.
15642         (no_previous_def): Likewise.
15643         (get_prev_label): Likewise.
15644
15645 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15646
15647         PR boehm-gc/34544
15648         * gthr-posix.h (__gthread_start): Delete.
15649         (__gthread_active_init): Use pthread_default_stacksize_np instead of
15650         pthread_create to determine if hpux pthreads are active.
15651         * gthr-posix95.h (__gthread_start): Delete.
15652         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
15653
15654 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
15655
15656         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
15657         _WIN64 not expanded.
15658
15659 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
15660             H.J. Lu  <hongjiu.lu@intel.com>
15661
15662         PR target/45213
15663         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
15664         to output 32bit SFmode immediate as 8 byte sign extended value.
15665
15666 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
15667
15668         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
15669         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
15670         (SUBWORD_BOOL_CAS): Likewise.
15671         (SUBWORD_SYNC_OP): Likewise.
15672         (SUBWORD_TEST_AND_SET): Likewise.
15673         (FETCH_AND_OP_WORD): Parenthesise INF_OP
15674         (SUBWORD_SYNC_OP): Likewise.
15675         (OP_AND_FETCH_WORD): Likewise.
15676
15677 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15678
15679         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
15680         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
15681         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
15682         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
15683         generic part.
15684         (cortex_a9_sched_adjust_cost): New function.
15685         (xscale_sched_adjust_cost): New function.
15686         * config/arm/arm-protos.h (struct tune_params): New field
15687         sched_adjust_cost.
15688         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
15689
15690 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
15691
15692         PR target/44942
15693         * config/sparc/sparc.c (function_arg_advance): Always take into account
15694         the padding, if any.
15695
15696 2010-08-06  Richard Guenther  <rguenther@suse.de>
15697
15698         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
15699         (dump_lattice_value): Dump it.
15700         (get_default_value): Adjust.
15701         (get_constant_value): Likewise.
15702         (set_value_varying): Likewise.
15703         (set_lattice_value): Make sure to not go up the lattice
15704         with bitwise constant values.
15705         (get_value_for_expr): Handle ADDR_EXPRs.
15706         (value_to_double_int): New function.
15707         (get_value_from_alignment): Likewise.
15708         (do_dbg_cnt): Adjust.
15709         (ccp_lattice_meet): Handle partially constant values.
15710         (bit_value_unop_1): New function.
15711         (bit_value_binop_1): Likewise.
15712         (bit_value_unop): Likewise.
15713         (bit_value_binop): Likewise.
15714         (evaluate_stmt): Track partially constant values if
15715         flag_tree_bit_ccp is set.
15716         (ccp_fold_stmt): Dump if we folded a predicate.
15717         (ccp_visit_stmt): Adjust.
15718         * common.opt (ftree-bit-ccp): New flag.
15719         * doc/invoke.texi (ftree-bit-ccp): Document.
15720         * opts.c (decode_options): Enable bit-CCP at -O1.
15721
15722 2010-08-06  Alan Modra  <amodra@gmail.com>
15723
15724         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
15725         and -mrelocatable-lib description.
15726
15727 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
15728
15729         From Martin Thuresson  <martint@google.com>
15730         * postreload.c (reload_cse_simplify_operands): Use
15731         SET_REGNO_RAW instead of SET_REGNO.
15732         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
15733         SET_REGNO.
15734         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
15735         instead of SET_REGNO.
15736         * rtl.h (SET_REGNO_RAW): New macro.
15737
15738 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
15739
15740         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
15741         computations.  Fix formatting issues.
15742         (num_sign_bit_copies1): Likewise.
15743         (canonicalize_condition): Likewise.
15744
15745 2010-08-05  Richard Henderson  <rth@redhat.com>
15746
15747         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
15748         (floor_log2): Use clz_hwi.
15749         (exact_log2): Use ctz_hwi.
15750         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
15751         * builtins.c (fold_builtin_bitop): Use them.
15752         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
15753         * combine.c (get_pos_from_mask): Use ctz_hwi.
15754         * double-int.c (double_int_ctz): Likewise.
15755         * explow.c (force_reg): Likewise.
15756         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
15757
15758 2010-08-05  Richard Henderson  <rth@redhat.com>
15759
15760         PR target/45189
15761         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
15762         the alignment constant is properly sign-extended.
15763
15764 2010-08-05  Richard Guenther  <rguenther@suse.de>
15765
15766         * expr.c (store_expr): Use emit_block_move only if both
15767         source and target are MEMs.  Use store_bit_field if only
15768         the target is a MEM.
15769
15770 2010-08-05  Richard Henderson  <rth@redhat.com>
15771
15772         PR debug/45188
15773         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
15774         (INCOMING_RETURN_ADDR_RTX): Likewise.
15775         (dwarf2out_do_frame): Remove conditional compilation.
15776         (dwarf2out_frame_init): Likewise.
15777
15778 2010-08-05  Nicolas Setton  <setton@adacore.com>
15779
15780         * gcov.c (flag_display_progress): New static variable.
15781         (main): Display progress info on standard output if requested.
15782         (options): Add -d/--display-progress.
15783         (print_usage): Print them.
15784         (process_args): Handle them.
15785         * doc/gcov.texi: Document them.
15786
15787 2010-08-05  Martin Jambor  <mjambor@suse.cz>
15788
15789         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
15790         (ipcp_insert_stage): Redirect only edges not flagged with
15791         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
15792         discovered constants.
15793
15794 2010-08-05  Martin Jambor  <mjambor@suse.cz>
15795
15796         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
15797         (struct ipa_param_descriptor): New fields types and
15798         cannot_devirtualize.
15799         (ipa_param_cannot_devirtualize_p): New function.
15800         (ipa_param_types_vec_empty): Likewise.
15801         (ipa_make_edge_direct_to_target): Declare.
15802         * ipa-cp.c: Fixed first stage driver name in initial comment,
15803         described devirtualization there too.
15804         (ipcp_analyze_node): Call ipa_analyze_params_uses.
15805         (ipcp_print_all_lattices): Print devirtualization info.
15806         (ipa_set_param_cannot_devirtualize): New function.
15807         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
15808         lattice to BOTTOM.
15809         (ipcp_init_stage): Merged into...
15810         (ipcp_generate_summary): ...its caller.
15811         (ipcp_change_tops_to_bottom): Also process type lists.
15812         (ipcp_add_param_type): New function.
15813         (ipcp_copy_types): Likewise.
15814         (ipcp_propagate_types): Likewise.
15815         (ipcp_propagate_stage): Also propagate types.
15816         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
15817         Also return true if propagated types require it.
15818         (ipcp_update_callgraph): Dump redirection info.
15819         (ipcp_process_devirtualization_opportunities): New function.
15820         (ipcp_const_param_count): Include known type information.
15821         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
15822         on new node.  Fixed formatting.
15823         * ipa-prop.c (make_edge_direct_to_target): Renamed to
15824         ipa_make_edge_direct_to_target and changed all callers.  Made
15825         externally visible.
15826         (ipa_node_duplication_hook): Duplicate types vector.
15827         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
15828         redirect outgoing calls for which we can't get a decl from the
15829         statement.  Check that we can get a decl from the call statement.
15830         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
15831         ipa_analyze_params_uses only when ipa-cp is disabled.
15832         * tree-inline.c (get_indirect_callee_fndecl): Removed.
15833         (expand_call_inline): Do not call get_indirect_callee_fndecl.
15834         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
15835         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
15836
15837 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
15838
15839         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
15840         temporary. Emit move from temporary to accum, so REG_EQUAL note will
15841         be attached to this insn in correct mode.
15842
15843 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
15844
15845         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
15846         using REGNO of base_reg directly.
15847
15848 2010-08-05  Jie Zhang  <jie@codesourcery.com>
15849
15850         PR tree-optimization/45144
15851         * tree-sra.c (type_consists_of_records_p): Return false
15852         if the record contains bit-field.
15853
15854 2010-08-04  Richard Henderson  <rth@redhat.com>
15855
15856         * config/i386/i386.c (struct ix86_frame): Remove padding and
15857         to_allocate members.
15858         (ix86_compute_frame_layout): Don't store them.
15859         (ix86_can_use_return_insn_p): Use a more direct and more obviously
15860         correct condition for the position of the stack pointer.
15861         (ix86_expand_prologue): Compute remaining stack allocation based
15862         on the ultimate stack pointer offset.
15863         (ix86_expand_epilogue): Use more obvious expressions testing for
15864         the stack pointer already pointing to the saved registers.
15865
15866         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
15867         duplication deconstructing the frame pointer.  Simplify
15868         deallocation of the local stack frame.
15869
15870         * reg-notes.def (CFA_EXPRESSION): New.
15871         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
15872         (dwarf2out_frame_debug_cfa_expression): New.
15873         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
15874
15875         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
15876         * config/i386/i386.c (ix86_expand_prologue): Set it.
15877         (ix86_expand_epilogue): Clear it.
15878         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
15879         context, add REG_CFA_EXPRESSION notes.
15880
15881         * config/i386/i386.h (struct machine_frame_state): Rename from
15882         machine_cfa_state.  Add members tracking SP and FP regardless
15883         of the current CFA register.
15884         (ix86_cfa_state): Remove.
15885         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
15886         and sse_reg_save_offset members.
15887         (ix86_compute_frame_layout): Set them.
15888         (gen_push): Increment sp_offset too.
15889         (choose_baseaddr_len, choose_baseaddr): New.
15890         (ix86_emit_save_reg_using_mov): New.
15891         (ix86_emit_save_regs_using_mov): Use it.
15892         (ix86_emit_save_sse_regs_using_mov): Likewise.
15893         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
15894         compare vs the saved red_zone_offset.
15895         (pro_epilogue_adjust_stack): Adjust sp_offset.
15896         (ix86_adjust_stack_and_probe): Likewise.
15897         (ix86_expand_prologue): Set up, use, and validate the new
15898         frame_state_info members.  Use gen_frame_mem.
15899         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
15900         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
15901         new frame_state_info members.
15902         (ix86_emit_leave): Likewise.
15903         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
15904         out-of-range stack pointer offsets here.
15905         (ix86_emit_restore_sse_regs_using_mov): Likewise.
15906         (ix86_expand_epilogue): Use and validate the new frame_state_info
15907         members.  Break up and simplify the logic selecting the
15908         restore_regs_via_mov code path.  Ensure that there will be no
15909         out-of-range stack pointer offsets.
15910
15911         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
15912
15913         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
15914         argument name to reflect the expected tree; fix indentation.
15915         (ix86_asm_output_function_label): Output the entire 32-bit
15916         ms_hook here as bytes ...
15917         (ix86_expand_prologue): ... not here as insns.  Attach the
15918         unwind info for the ms_hook to a blockage insn.
15919         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
15920         (ix86_ms_bitfield_layout_p): Fix indentation.
15921         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
15922
15923         * config/i386/i386.c (ix86_using_red_zone): New.
15924         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
15925         ix86_expand_prologue, ix86_force_to_memory): Use it.
15926
15927         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
15928         saving the int registers.
15929
15930         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
15931         and DWARF2_UNWIND_INFO conditional compilation.
15932
15933 2010-08-04  Richard Henderson  <rth@redhat.com>
15934
15935         PR debug/45171
15936         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
15937         an is_naming_typedef_decl.
15938
15939 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
15940
15941         PR rtl-optimization/45162
15942         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
15943         * dce.c (word_dce_process_block): Likewise.
15944
15945 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
15946
15947         PR target/44583
15948         * config/ia64/constraints.md (Z): New.
15949         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
15950         (xfreg_or_signed_fp01_operand): New.
15951         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
15952         with fr_reg_or_signed_fp01_operand and constraint G with Z.
15953         (subsf3): Ditto.
15954         (*maddsf4): Ditto.
15955         (*msubsf4): Ditto.
15956         (adddf3): Ditto.
15957         (adddf3_trunc): Ditto.
15958         (subdf3): Ditto.
15959         (*subdf3_trunc): Ditto.
15960         (*madddf4): Ditto.
15961         (*madddf4_trunc): Ditto.
15962         (*msubdf4): Ditto.
15963         (*msubdf4_trunc): Ditto.
15964         (addxf3): Replace xfreg_or_fp01_operand with
15965         xfreg_or_signed_fp01_operand and constraint G with Z.
15966         (*addxf3_truncsf): Ditto.
15967         (*addxf3_truncdf): Ditto.
15968         (subxf3): Ditto.
15969         (*subxf3_truncsf): Ditto.
15970         (*subxf3_truncdf): Ditto.
15971         (*maddxf4): Ditto.
15972         (*maddxf4_truncsf): Ditto.
15973         (*maddxf4_truncdf): Ditto.
15974         (*msubxf4): Ditto.
15975         (*msubxf4_truncsf): Ditto.
15976         (*msubxf4_truncdf): Ditto.
15977
15978 2010-08-04  Richard Guenther  <rguenther@suse.de>
15979
15980         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
15981         if either alias-set is zero.
15982
15983 2010-08-04  Richard Guenther  <rguenther@suse.de>
15984
15985         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
15986         * tree-ssa-ccp.c: ... here.
15987         * tree-ssa-copy.c: ... and here.
15988         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
15989         value_range_t): Move ...
15990         * tree-vrp.c: ... here.
15991         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
15992         (substitute_and_fold): Adjust prototype.
15993         * tree-ssa-propagate.c (replace_uses_in): Adjust.
15994         (replace_phi_args_in): Likewise.
15995         (substitute_and_fold): Take callback to query lattice instead
15996         of pointer to lattice.  Replace SSA name defs with lattice
15997         values first.
15998         * tree-ssa-ccp.c (ccp_finalize): Adjust.
15999         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
16000         (get_value): New function.
16001         (fini_copy_prop): Adjust.
16002         * tree-vrp.c (vrp_finalize): Adjust.
16003
16004 2010-08-04  Richard Guenther  <rguenther@suse.de>
16005
16006         PR middle-end/45176
16007         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
16008         points-to set for original MEM_REF.
16009
16010 2010-08-04  Richard Guenther  <rguenther@suse.de>
16011
16012         * tree-ssa-ccp.c (get_constant_value): New function.
16013         (get_rhs_assign_op_for_ccp): Remove.
16014         (valueize_op): New function.
16015         (ccp_fold): Use get_constant_value and valueize_op.
16016         (fold_const_aggregate_ref): Likewise.
16017         (ccp_fold_stmt): Likewise.
16018         (visit_assignment): Simplify.
16019
16020 2010-08-04  Richard Guenther  <rguenther@suse.de>
16021
16022         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
16023         * double-int.h (double_int_ctz): Declare.
16024         * double-int.c (double_int_ctz): New function.
16025
16026 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
16027
16028         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
16029         Define.
16030         picochip_expand_movmemhi : Expand movmem pattern.
16031         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
16032         Declare.
16033         * config/picochip/picochip.md (movmemhi) : New pattern.
16034
16035 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16036
16037         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
16038
16039 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
16040
16041         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
16042         NEG as operand of a MULT by merging it with the other operand.
16043         * combine.c (make_compound_operation): Use trunc_int_for_mode when
16044         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
16045         MULT.
16046         * config/arm/constraints.md (M): Examine only 32 bits of a
16047         HOST_WIDE_INT.
16048         * config/arm/predicates.md (power_of_two_operand): Likewise.
16049
16050 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16051
16052         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
16053         non-NOTE insns.
16054
16055 2010-08-03  Jan Hubicka  <jh@suse.cz>
16056
16057         * ipa-split.c (struct split_point): Add split_part_set_retval.
16058         (find_retval): Forward declare.
16059         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
16060         (consider_split): Compute current->split_part_set_retval.
16061         (visit_bb): Do not look into return value.
16062         (split_function): Handle !split_part_set_retval
16063
16064 2010-08-03  Martin Jambor  <mjambor@suse.cz>
16065
16066         * tree-sra.c (completely_scalarize_record): New parameter REF, create
16067         its own access->expr intead of using build_ref_for_offset.
16068
16069 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
16070
16071         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
16072         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
16073         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
16074         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
16075         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
16076         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
16077         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
16078         DEFAULT_SWITCH_TAKES_ARG.
16079         * config/rx/rx.opt (-patch=): Remove option.
16080         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
16081         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
16082         * doc/invoke.texi (RX Options): Remove -patch=.
16083         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
16084         (option_map): Remove --profile-blocks, --quiet and --silent.
16085
16086 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16087
16088         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
16089         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
16090         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
16091         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16092         Update calls to ix86_expand_compare and ix86_expand_branch.
16093         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
16094         ix86_expand_compare.
16095         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
16096         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16097         Make static.
16098         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
16099         and ix86_compare_op1.  Update calls to ix86_expand_compare.
16100         (ix86_expand_int_movcc): Ditto.
16101         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
16102         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
16103         (ix86_expand_setcc): Ditto.
16104         (ix86_expand_compare): Remove prototype.
16105         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
16106         ix86_compare_op0 and ix86_compare_op1.  Update calls
16107         to ix86_expand_branch to directly pass operands[1] and operands[2].
16108         (cbranchxf4): Ditto.
16109         (cbranch<MODEF:mode>4): Ditto.
16110         (cbranchcc4): Ditto.
16111         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
16112         Update calls to ix86_expand_setcc to directly pass operands[2] and
16113         operands[3].
16114         (cstorexf4): Ditto.
16115         (cstore<MODEF:mode>4): Ditto.
16116         (cstorecc4): Ditto.
16117
16118 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16119
16120         PR target/45063
16121         * caller-save.c (save_call_clobbered_regs): Remove regs from
16122         hard_regs_saved when they are set.
16123
16124 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
16125
16126         PR target/41089
16127         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
16128         as volatile.
16129
16130 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
16131
16132         * common.opt (ftree-loop-distribute-patterns): New.
16133         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
16134         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
16135         at -O3.
16136         * tree-data-ref.c (stores_zero_from_loop): New.
16137         * tree-data-ref.h (stores_zero_from_loop): Declared.
16138         * tree-loop-distribution.c (tree_loop_distribution): Call
16139         stores_zero_from_loop.
16140         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
16141
16142 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16143
16144         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
16145         into account.
16146
16147         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
16148         * config/arm/arm.c (thumb1_code): New variable.
16149         (arm_override_options): Set it.
16150         (thumb1_final_prescan_insn): Keep track of condition code status.
16151         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
16152         jumps that depend on them.
16153         * config/arm/arm.h (thumb1_code): Declare variable.
16154         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
16155         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
16156         thumb1_cc_mode.
16157         (CC_STATUS_INIT): New macro.
16158         * config/arm/constraints.md (Pd): New constraint.
16159         * config/arm/predicates.md (noov_comparison_operator): New predicate.
16160         * config/arm/arm.md (is_thumb1): New define_attr.
16161         (conds): Set default to "clob" when generating Thumb1 code.
16162         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
16163         code are set.  Use two-operand assembly syntax.
16164         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
16165         pattern.
16166         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
16167         codes are set.  Use two-operand assembly syntax.
16168         (zero_extendhisi splitter): Remove constraints.
16169         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
16170         thumb1_movsf_insn): Set conds attribute as appropriate.
16171         (cbranchsi4_insn): Use condition code status from struct
16172         machine_function to determine whether the comparison can be eliminated.
16173         Discourage the alternative using high registers.
16174         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
16175         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
16176         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
16177         subsi3_cbranch): Delete.
16178         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
16179         one subtract and one cbranch insn.
16180
16181         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
16182         thumb2_movdf_soft_insn): Delete patterns.
16183         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
16184         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
16185         (pool_range, neg_pool_range): Use them to define defaults.
16186         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
16187         and allow for TARGET_32BIT.
16188
16189         PR target/40457
16190         * config/arm/arm.h (arm_regs_in_sequence): Declare.
16191         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
16192         load_multiple_sequence, store_multiple_sequence): Delete
16193         declarations.
16194         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
16195         declarations.
16196         * config/arm/ldmstm.md: New file.
16197         * config/arm/arm.c (arm_regs_in_sequence): New array.
16198         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
16199         CHECK_REGS.  All callers changed.
16200         If SAVED_ORDER is nonnull, copy the computed order into it.
16201         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
16202         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
16203         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
16204         If SAVED_ORDER is nonnull, copy the computed order into it.
16205         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
16206         like REGS.  Handle Thumb mode.
16207         (arm_gen_load_multiple_1): New function, broken out of
16208         arm_gen_load_multiple.
16209         (arm_gen_store_multiple_1): New function, broken out of
16210         arm_gen_store_multiple.
16211         (arm_gen_multiple_op): New function, with code from
16212         arm_gen_load_multiple and arm_gen_store_multiple moved here.
16213         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
16214         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
16215         changed.
16216         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
16217         * config/arm/predicates.md (commutative_binary_operator): New.
16218         (load_multiple_operation, store_multiple_operation): Handle more
16219         variants of these patterns with different starting offsets.  Handle
16220         Thumb-1.
16221         * config/arm/arm.md: Include "ldmstm.md".
16222         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
16223         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
16224         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
16225         peepholes): Delete.
16226         * config/arm/ldmstm.md: New file.
16227         * config/arm/arm-ldmstm.ml: New file.
16228
16229         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
16230         if statement which adds extra costs to frame-related expressions.
16231
16232 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16233
16234         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
16235
16236 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
16237
16238         PR target/45142
16239         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
16240         alternative 2.
16241         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
16242         split V4SI operands.
16243
16244 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
16245
16246         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16247         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
16248         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
16249         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
16250
16251 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
16252
16253         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
16254         LOCAL_INCLUDE_DIR.
16255
16256 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
16257
16258         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
16259         used in the call to optab_for_tree_code.  Fix the second
16260         is_widening_mult_p call.  Check that both unwidened operands
16261         have the same sign.
16262
16263 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
16264
16265         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
16266
16267 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
16268
16269         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16270
16271 2010-07-30  DJ Delorie  <dj@redhat.com>
16272
16273         * config/rx/predicates.md (rx_constshift_operand): New.
16274         * config/rx/rx.md (zs_cond): New.
16275         (cbranchsi4): Remove mode.
16276         (*cbranchsi4_<code>): Likewise.
16277         (*tstbranchsi4_<code>): New.
16278         (*tstbranchsi4r_<code>): New.
16279         (*tstbranchsi4m_eq): New.
16280         (*tstbranchsi4m_ne): New.
16281         (cbranchsf4): Remove mode.
16282         (*cbranchsf4_<code>): Likewise.
16283
16284 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
16285
16286         * rtlanal.c (simplify_subreg_regno): Don't treat
16287         HARD_FRAME_POINTER_REGNUM specially.
16288
16289 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
16290
16291         * common.opt (-G): Don't define option here.
16292         * config/g.opt: New.
16293         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
16294         rs6000/powerpc and score targets.
16295         * opts.c (common_handle_option): Don't handle -G here.
16296         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
16297         * config/frv/frv.c (frv_handle_option): Handle -G.
16298         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
16299         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
16300         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
16301         * config/mips/mips.c (mips_handle_option): Handle -G.
16302         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
16303         * config/score/score.c (score_handle_option): Handle -G.
16304
16305 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
16306
16307         * config/mmix/mmix.c: Include basic-block.h.
16308
16309 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
16310
16311         PR debug/45055
16312         PR rtl-optimization/45137
16313         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
16314         prototypes.
16315         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
16316         New functions.
16317         * combine.c (next_nonnote_nondebug_insn): Removed.
16318         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
16319         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
16320         * sched-deps.c (sched_analyze_insn): Likewise.
16321         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
16322         * rtlanal.c (canonicalize_condition): Likewise.
16323         * postreload.c (reload_combine_recognize_pattern): Likewise.
16324         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
16325
16326 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
16327
16328         * config/i386/i386.md (int_cond): Remove code iterator.
16329         (fp_cond): Ditto.
16330         (cbranch<mode>4): Use ordered_comparison_operator predicate
16331         for operator0.
16332         (cstore<mode>4): Ditto for operator1.
16333         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
16334         (add<mode>cc): ditto.
16335
16336 2010-07-30  Richard Guenther  <rguenther@suse.de>
16337
16338         PR middle-end/45141
16339         * expr.c (expand_expr_real_1): Check for not handled base address.
16340
16341 2010-07-30  Richard Guenther  <rguenther@suse.de>
16342
16343         * ipa-prop.c (ipa_modify_formal_parameters): Use
16344         build_distinct_type_copy.
16345
16346 2010-07-30  Anthony Green  <green@moxielogic.com>
16347
16348         * config/moxie/rtems.h: New file.
16349         * config.gcc: Add moxie-rtems support.
16350
16351 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
16352
16353         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
16354         df flags as in run_fast_df_dce.
16355
16356 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
16357
16358         Revert:
16359         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16360
16361         * rtl.def (NOTE): Swap operands 4 and 5.
16362         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
16363         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
16364         Adjust accordingly.
16365         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
16366
16367 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
16368
16369         PR debug/45110
16370         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
16371         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
16372         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
16373         formal parameters.
16374         (gen_decl_die): Change return type to dw_die_ref, return what
16375         gen_formal_parameter_die returned.
16376
16377 2010-07-29  Martin Jambor  <mjambor@suse.cz>
16378
16379         * dbgcnt.def (eipa_sra): New counter.
16380         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
16381
16382 2010-07-29  Xinliang David Li  <davidxl@google.com>
16383
16384         PR bootstrap/45119
16385         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
16386         in revision 162652.
16387
16388 2010-07-29  Richard Guenther  <rguenther@suse.de>
16389
16390         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
16391         (TV_TREE_STORE_CCP): Likewise.
16392         (TV_TREE_REDPHI): Likewise.
16393
16394 2010-07-29  Richard Guenther  <rguenther@suse.de>
16395
16396         * double-int.h (double_int_and_not): New function.
16397         * combine.c (try_combine): Use it.
16398         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
16399
16400 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
16401
16402         PR rtl-optimization/42575
16403         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
16404         Argument AU removed.  All callers changed.  Ignore artificial refs.
16405         Use return value of df_word_lr_simulate_defs to decide whether an insn
16406         is necessary.
16407         (fast_dce): Rename arg to WORD_LEVEL.
16408         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
16409         static.
16410         (pass_fast_rtl_byte_dce): Delete.
16411         * dce.h (run_word_dce): Declare.
16412         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
16413         All callers changed.  Simplify code to only deal with two-word regs.
16414         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
16415         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
16416         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
16417         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
16418         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
16419         (df_word_lr_mark_ref): Declare.
16420         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
16421         df_word_lr_simulate_uses): Declare or rename from byte variants.
16422         (df_byte_lr_simulate_artificial_refs_at_top,
16423         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
16424         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
16425         declarations.
16426         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
16427         (enum df_mm): Delete.
16428         * df-byte-scan.c: Delete file.
16429         * df-problems.c (df_word_lr_problem_data): Renamed from
16430         df_byte_lr_problem_data, all members deleted except for
16431         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
16432         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
16433         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
16434         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
16435         df_byte_lr_confluence_0): Delete functions.
16436         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
16437         callers changed.
16438         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
16439         Don't initialize members that were deleted, don't try to discover data
16440         about registers.  Ignore hard regs.
16441         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
16442         (df_word_lr_mark_ref): New function.
16443         (df_word_lr_bb_local_compute): Renamed from
16444         df_byte_bb_lr_local_compute; all callers changed.  Use
16445         df_word_lr_mark_ref.  Assert that artificial refs don't include
16446         pseudos.  Ignore hard registers.
16447         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
16448         Assert that exit block uses don't contain pseudos.
16449         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
16450         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
16451         callers changed.  Ignore hard regs.
16452         (df_word_lr_transfer_function): Renamed from
16453         df_byte_lr_transfer_function; all callers changed.
16454         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
16455         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
16456         changed.
16457         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
16458         callers changed.
16459         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
16460         confluence operator 0 set to NULL.
16461         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
16462         callers changed.
16463         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
16464         Return bool, true if bitmap changed or insn otherwise necessary.
16465         All callers changed.  Simplify using df_word_lr_mark_ref.
16466         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
16467         all callers changed.  Simplify using df_word_lr_mark_ref.
16468         * lower-subreg.c: Include "dce.h"
16469         (decompose_multiword_subregs): Call run_word_dce if df available.
16470         * Makefile.in (lower-subreg.o): Adjust dependencies.
16471         (df-byte-scan.o): Delete.
16472         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
16473
16474 2010-07-29  Richard Guenther  <rguenther@suse.de>
16475
16476         * tree.c (build_vector): Assert that the vector constant
16477         has enough elements.
16478         (build_vector_from_ctor): Pad with trailing zeros.
16479
16480 2010-07-29  Richard Guenther  <rguenther@suse.de>
16481
16482         PR tree-optimization/45120
16483         * tree-ssa-structalias.c (get_constraint_for_component_ref):
16484         Handle offset in DEREFs properly.
16485         (get_constraint_for_1): Handle MEM_REF offset properly.
16486
16487 2010-07-29  Richard Guenther  <rguenther@suse.de>
16488
16489         PR middle-end/45034
16490         * convert.c (convert_to_integer): Always use an unsigned
16491         type for narrowed negate and bitwise not.
16492
16493 2010-07-29  Ira Rosen  <irar@il.ibm.com>
16494
16495         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
16496         to outer loop when creating reduction epilogue for double reduction,
16497         and switch back to the inner loop when updating the phi nodes.
16498         Update uses of outer loop exit phi nodes in double reduction (instead
16499         of uses of reduction).
16500
16501 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
16502
16503         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
16504         popcount on power7 and parity on power6 systems.
16505         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
16506         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
16507         instructions.
16508
16509         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
16510         (UNSPEC_PARITY): Ditto.
16511         (SFDF): New iterator for SF/DF.
16512         (rreg2): New mode attribute for floating register constraint.
16513         (TARGET_FLOAT): New mode attribute for whether single/double float
16514         is supported.
16515         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
16516         pattern.
16517         (parity<mode>2_cmpb): New insn for parity on power6 and newer
16518         machines.
16519         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
16520         pattern.  Add support for fcpsgn instruction added in power6.
16521         (copysignsf3): Delete.
16522         (copysigndf3): Delete.
16523         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
16524         instead of if_then_else in RTL to avoid problems with -0.
16525
16526         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
16527         of if_then_else to mirror scalar code.
16528         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
16529         rs6000.md.
16530
16531         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
16532         instead of if_then_else.
16533
16534 2010-07-28  Xinliang David Li  <davidxl@google.com>
16535
16536         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
16537         (dump_cand): Dump var_before/after.
16538         (htab_inv_expr_eq): New function.
16539         (htab_inv_expr_hash): New function.
16540         (tree_ssa_iv_optimize_init): Support pseudo invariants.
16541         (add_candidate_1): consider base type precision.
16542         (set_use_iv_cost): New parameter.
16543         (adjust_setup_cost): Use profile information.
16544         (get_address_cost): Do not hard code width in computing address
16545         offset limits.
16546         (compare_aff_trees): New function.
16547         (get_loop_invariant_expr_id): New function.
16548         (get_computation_cost_at): New parameter and use profile information.
16549         (get_computation_cost): New parameter.
16550         (determine_use_iv_cost_generic): Pass new parameter.
16551         (determine_use_iv_cost_address): Ditto.
16552         (determine_use_iv_cost_condition): Ditto.
16553         (autoinc_possible_for_pair): Ditto.
16554         (determine_use_iv_costs): More dumps.
16555         (iv_ca_get_num_inv_exprs): New function.
16556         (iv_ca_recount_cost): Consider loop invariants in register pressure
16557         cost.
16558         (iv_ca_add_use): New parameter.
16559         (iv_ca_dump): Better dumping.
16560         (iv_ca_extend): New parameter.
16561         (try_add_cand_for): Attempt to get better partial solution.
16562         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
16563         (create_new-ivs): More dumps.
16564         (rewrite_use_compare): Ditto.
16565         (free_loop_data): More cleanup.
16566         (treee_ssa_iv_optimize_finalize): Ditto.
16567
16568 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
16569
16570         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
16571         * config/i386/i386.c (ix86_profile_before_prologue): New.
16572         (override_options): Add special handling for -mfentry.
16573         (ix86_function_regparm): Likewise.
16574         (ix86_function_sseregparm): Likewise.
16575         (ix86_frame_pointer_required): Likewise.
16576         (ix86_expand_prologue): Check for ms_hook_prologue.
16577         (x86_function_profiler): Adjust mcount output.
16578         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
16579         * config/i386/i386.opt (mfentry): New.
16580         * doc/invoke.texi (mfentry): Add documentation.
16581         * doc/tm.texi: Regenerated..
16582         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
16583         * final.c (final_start_function): Replace macro
16584         PROFILE_BEFORE_PROLOGUE by target hook.
16585         * function.c (thread_prologue_and_epilogue_insns): Likewise.
16586         * target.def (profile_before_prologue): New hook.
16587         * targhooks.c (default_profile_before_prologue): New.
16588         * targhooks.h (default_profile_before_prologue): New.
16589
16590 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
16591
16592         PR debug/45105
16593         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
16594
16595         PR debug/45103
16596         * dwarf2out.c (dwarf2out_var_location): Always consider
16597         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
16598
16599 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
16600
16601         PR rtl-optimization/45107
16602         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
16603
16604 2010-07-28  Richard Guenther  <rguenther@suse.de>
16605
16606         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
16607         (set_lattice_value): Do not query an old default value.
16608         (get_value_for_expr): New function.  Properly canonicalize
16609         float values.
16610         (ccp_visit_phi_node): Use it.
16611
16612 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
16613
16614         * config/arm/arm.c (arm_pcs_default): Remove static.
16615         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
16616         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
16617         (arm_pcs_default): Declare.
16618
16619 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
16620
16621         * config/rs6000/rs6000.c (rs6000_override_options):
16622         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
16623         ... to darwin_rs6000_override_options.
16624         (rs6000_return_in_memory): Update preceding comment for darwin
16625         64 bit ABI.  Use TARGET_MACHO inline.
16626         (rs6000_darwin64_struct_check_p): New.
16627         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
16628         (function_arg): Likewise.
16629         (rs6000_arg_partial_bytes): Likewise.
16630         (rs6000_function_value): Likewise.
16631
16632 2010-07-28  Andi Kleen  <ak@linux.intel.com>
16633
16634         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
16635
16636 2010-07-28  Richard Guenther  <rguenther@suse.de>
16637
16638         PR middle-end/44903
16639         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
16640         targets try harder to not generate unaligned accesses.
16641
16642 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
16643
16644         PR rtl-optimization/45101
16645         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
16646         for gcse-las.
16647
16648 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
16649
16650         PR tree-optimization/44885
16651         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
16652         with non-aliased component.
16653
16654 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
16655
16656         * config/darwin-driver.c (SWITCH_TAKES_ARG,
16657         WORD_SWITCH_TAKES_ARG): Remove.
16658         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
16659         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
16660         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
16661         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
16662         definitions from gcc.c.
16663         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
16664         defaults.h.
16665         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
16666         Move to defaults.h.
16667         * opts-common.c: Include tm.h.
16668         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
16669         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
16670         Handle more than one argument.  Set canonical_option_num_elements.
16671         (decode_cmdline_options_to_array): Set
16672         canonical_option_num_elements and trailing elements of
16673         canonical_option.
16674         * opts.h (struct cl_decoded_option): Allow four elements in
16675         canonical_option.  Add field canonical_option_num_elements.
16676         * Makefile.in (opts-common.o): Update dependencies.
16677
16678 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
16679
16680         PR middle-end/44790
16681         PR middle-end/44993
16682         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
16683         sure the base has address_mode before adding the offset.
16684
16685 2010-07-27  Xinliang David Li  <davidxl@google.com>
16686
16687         * tree-flow.h (create_mem_ref): Add one new parameter.
16688         * tree-ssa-address.c (create_mem_ref): New parameter.
16689         (addr_to_parts): Ditto.
16690         (move_variant_to_index): New function.
16691         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
16692
16693 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16694
16695         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
16696         4 and 5.
16697         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
16698         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
16699         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
16700         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
16701         CODE_LABELs and NOTEs.
16702         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
16703         * combine.c (try_combine): Likewise.
16704         * ira.c (setup_prohibited_mode_move_regs): Likewise.
16705         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
16706
16707 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
16708
16709         * coretypes.h (struct cl_option_handlers): Declare.
16710         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
16711         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
16712         * langhooks-def.h (lhd_handle_option): Declare.
16713         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
16714         * langhooks.c (lhd_handle_option): New.
16715         * langhooks.h (struct lang_hooks): Update prototype and return
16716         value type of handle_option hook.
16717         * optc-gen.awk: Generate target_flags_explicit definition for the
16718         driver.
16719         * opts-common.c: Include diagnostic.h.
16720         (handle_option): Move from opts.c.  Update prototype and return
16721         value type.  Use handlers structure.
16722         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
16723         handlers structure.
16724         (set_option): Move from opts.c.
16725         * opts.c (common_handle_option): Update prototype and return value
16726         type.  Update calls to handle_option and enable_warning_as_error.
16727         (unknown_option_callback, post_handling_callback,
16728         lang_handle_option, target_handle_option): New.
16729         (handle_option, read_cmdline_option): Move to opts-common.c.
16730         (read_cmdline_options): Update prototype.  Update call to
16731         read_cmdline_option.
16732         (decode_options): Initialize and use handlers structure.
16733         (set_option): Move to opts-common.c.
16734         (enable_warning_as_error): Update prototype.  Update call to
16735         handle_option.
16736         * opts.h (struct cl_option_handler_func, struct
16737         cl_option_handlers): New.
16738         (handle_option, enable_warning_as_error): Update prototypes.
16739         (read_cmdline_option): Declare.
16740         * Makefile.in (opts-common.o): Update dependencies.
16741
16742 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16743
16744         * config/arm/arm.c (params.h): Include.
16745         (arm_override_options): Tune gcse-unrestricted-cost.
16746         * config/arm/t-arm (arm.o): Define dependencies.
16747
16748 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16749
16750         PR target/42495
16751         PR middle-end/42574
16752         * basic-block.h (get_dominated_to_depth): Declare.
16753         * dominance.c (get_dominated_to_depth): New function, use
16754         get_all_dominated_blocks as a base.
16755         (get_all_dominated_blocks): Use get_dominated_to_depth.
16756
16757         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
16758         (hoist_exprs): Remove.
16759         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
16760         (compute_code_hoist_vbeinout): Add debug print outs.
16761         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
16762
16763         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
16764         quadratic behavior.
16765         * params.h (MAX_HOIST_DEPTH): New macro.
16766         * doc/invoke.texi (max-hoist-depth): Document.
16767
16768 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16769
16770         PR rtl-optimization/40956
16771         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
16772         constants.
16773
16774 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16775
16776         PR target/42495
16777         PR middle-end/42574
16778         * config/arm/arm.c (legitimize_pic_address): Use
16779         gen_calculate_pic_address pattern to emit calculation of PIC address.
16780         (will_be_in_index_register): New function.
16781         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
16782         (thumb1_legitimate_address_p): Use it provided !strict_p.
16783         * config/arm/arm.md (calculate_pic_address): New expand and split.
16784
16785 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16786
16787         PR target/42495
16788         PR middle-end/42574
16789         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
16790         * config/arm/arm.md (define_split "J", define_split "K"): Make
16791         IRA/reload friendly.
16792
16793 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16794
16795         * gcse.c (insert_insn_end_basic_block): Update signature, remove
16796         unused checks.
16797         (pre_edge_insert, hoist_code): Update.
16798
16799 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16800
16801         PR target/42495
16802         PR middle-end/42574
16803         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
16804
16805 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16806
16807         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
16808
16809 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16810
16811         PR rtl-optimization/40956
16812         PR target/42495
16813         PR middle-end/42574
16814         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
16815         for hoisting.
16816         (hoist_code): Count occurences in current block too.
16817
16818 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16819
16820         * gcse.c (struct expr:max_distance): New field.
16821         (doing_code_hoisting_p): New static variable.
16822         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
16823         simple expressions, don't change behavior for PRE.  Set max_distance.
16824         (insert_expr_in_table): Set new max_distance field.
16825         (hash_scan_set): Update.
16826         (hoist_expr_reaches_here_p): Stop search after max_distance
16827         instructions.
16828         (find_occr_in_bb): New static function.  Use it in ...
16829         (hoist_code): Calculate sizes of basic block before any changes are
16830         done.  Pass max_distance to hoist_expr_reaches_here_p.
16831         (one_code_hoisting_pass): Set doing_code_hoisting_p.
16832
16833         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
16834         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
16835         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
16836         macros.
16837         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
16838         Document.
16839
16840 2010-07-27  Jeff Law  <law@redhat.com>
16841             Maxim Kuvyrkov  <maxim@codesourcery.com>
16842
16843         * gcse.c (compute_transpout, transpout): Remove, move logic
16844         to prune_expressions.
16845         (compute_pre_data): Move pruning of trapping expressions ...
16846         (prune_expressions): ... here.  New static function.
16847         (compute_code_hoist_data): Use it.
16848         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
16849
16850 2010-07-27  Xinliang David Li  <davidxl@google.com>
16851
16852         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
16853         (rewrite_use_address): Adjust iv update position when needed.
16854
16855 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16856
16857         * dbgcnt.def (hoist_insn): New debug counter.
16858         * gcse.c (hoist_code): Use it.
16859
16860 2010-07-27  Xinliang David Li  <davidxl@google.com>
16861
16862         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
16863         (niter_for_single_dom_exit): Passes additional parameter.
16864         (iv_period): Fix comments.
16865         (may_eliminate_iv): Handles multiple exit loops properly.
16866         (free_tree_niter_desc): New function.
16867         (free_loop_data): Frees up loop iteration descriptors.
16868
16869 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
16870
16871         PR target/44542
16872         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
16873         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
16874         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
16875         (expand_one_var): Don't consider DECL_ALIGN for variables for
16876         which expand_one_stack_var_at has been already called.
16877
16878         PR testsuite/44701
16879         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
16880         constraints on IA-64.
16881
16882 2010-07-27  Jie Zhang  <jie@codesourcery.com>
16883
16884         PR target/44290
16885         Revert:
16886         2010-07-23  Jie Zhang  <jie@codesourcery.com>
16887
16888         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
16889         false if ! tree_versionable_function_p.
16890
16891 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
16892
16893         * dwarf2out.c (add_data_member_location_attribute): Use
16894         add_AT_unsigned instead of add_AT_int if offset is non-negative.
16895
16896 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16897
16898         * postreload.c (try_replace_in_use): New static function.
16899         (reload_combine_recognize_const_pattern): Use it here.  Allow
16900         substituting into a final add insn, and substituting into a memory
16901         reference in an insn that sets the reg.
16902
16903 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
16904
16905         * common.opt (o): Add MissingArgError.
16906         * doc/options.texi (MissingArgError): Document.
16907         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
16908         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
16909         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
16910         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
16911         * langhooks.h (struct lang_hooks): Remove missing_argument.
16912         * optc-gen.awk: Handle MissingArgError and output new structure
16913         field initializers.
16914         * opts.c (read_cmdline_option): Use missing_argument_error field
16915         instead of missing_argument langhook.
16916         * opts.h (struct cl_option): Add missing_argument_error field.
16917         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
16918
16919 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
16920
16921         PR target/29090
16922         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
16923         Darwin64 ABI, for zero-sized objects.
16924
16925 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
16926
16927         PR target/35491
16928         PR target/29090
16929
16930         Merge from Apple local 4.2.1.
16931         2005-05-11  Stan Shebs  <shebs@apple.com>
16932         Fix 64-bit varargs for Darwin (Radar 4028089).
16933         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
16934         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
16935         Add argument, add case for 8-byte register half-filled with a float.
16936         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
16937         single-precision floats specially.
16938
16939 2010-07-27  Ira Rosen  <irar@il.ibm.com>
16940
16941         PR tree-optimization/44152
16942         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
16943         complex numbers for further check.
16944         (vect_supported_load_permutation_p): Check nodes with
16945         complex numbers.
16946
16947 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
16948
16949         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
16950         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
16951         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
16952         (LANG_HOOKS_INITIALIZER): Add new hooks.
16953         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
16954         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
16955         and complain_wrong_lang_p.  Update init_options prototype.
16956         * c-objc-common.c (c_initialize_diagnostics): First call
16957         c_common_initialize_diagnostics.
16958         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
16959         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
16960         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
16961         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
16962         (hook_uint_void_0): New.
16963         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
16964         (hook_uint_void_0): New.
16965         * opts-common.c (decode_cmdline_option,
16966         decode_cmdline_options_to_array): Also fill in canonical_option field.
16967         * opts.c (complain_wrong_lang): Use langhook to determine whether
16968         to complain instead of special-casing LTO.
16969         (decode_options): Separate lang_mask determination with
16970         option_lang_mask hook from call of init_options hook.
16971         * opts.h (struct cl_decoded_option): Add canonical_option.
16972
16973 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
16974
16975         PR tree-optimization/45083
16976         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
16977
16978 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16979
16980         * postreload.c (reload_combine_recognize_const_pattern): Move test
16981         for limiting the insn movement to the right scope.
16982
16983         PR rtl-optimization/45051
16984         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
16985         than reg_mentioned_p.
16986
16987 2010-07-26  Richard Henderson  <rth@redhat.com>
16988
16989         PR target/44132
16990         * tree-emutls.c: New file.
16991         * Makefile.in (OBJS-common): Add it.
16992         * tree-pass.h (pass_ipa_lower_emutls): Declare.
16993         * passes.c (init_optimization_passes): Add it.
16994
16995         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
16996         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
16997         * expr.c (emutls_var_address): Delete.
16998         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
16999         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
17000         (emutls_finish): Delete.
17001         * toplev.c (compile_file): Don't call it.
17002         * tree.h (emutls_decl): Delete.
17003         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
17004         (emutls_finish, emutls_finalize_control_var): Delete.
17005         (emutls_object_type): Move to tree-emutls.c.
17006         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
17007         default_emutls_var_fields, get_emutls_object_type,
17008         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
17009         default_emutls_var_init): Likewise.
17010         (get_variable_section): Don't special case emutls.
17011         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
17012         default_elf_select_section, default_unique_section,
17013         default_encode_section_info): Likewise.
17014         * varpool.c (decide_is_variable_needed): Likewise.
17015         * gimple-iterator.c (update_call_edge_frequencies): New
17016         (gsi_insert_on_edge_immediate): Use it.
17017         (gsi_insert_seq_on_edge_immediate): Likewise.
17018         (gsi_commit_one_edge_insert): Likewise.
17019
17020         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
17021         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
17022         (x86_64_elf_unique_section): Likewise.
17023
17024 2010-07-26  Jan Hubicka  <jh@suse.cz>
17025
17026         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
17027         GTY((skip)).
17028
17029 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
17030
17031         * target.def (output_source_filename): New hook.
17032         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
17033         * doc/tm.texi: Regenerate.
17034         * toplev.c (output_file_directive) Remove function.
17035         * toplev.h (output_file_directive) Remove.
17036         * output.h (default_asm_output_source_filename,
17037         output_file_directive): Declare.
17038         * varasm.h (default_asm_output_source_filename,
17039         output_file_directive): New functions.
17040
17041         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17042         * config/mips/mips-protos.h (mips_output_filename): Remove.
17043         * config/mips/mips.c (mips_output_filename): Make Static.
17044         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
17045
17046 2010-07-26  Richard Guenther  <rguenther@suse.de>
17047
17048         PR tree-optimization/43784
17049         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
17050         if the destination is used by the call.
17051
17052 2010-07-26  Richard Guenther  <rguenther@suse.de>
17053
17054         PR middle-end/45073
17055         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
17056         SSA updating on being in SSA form.
17057
17058 2010-07-26  Richard Guenther  <rguenther@suse.de>
17059
17060         PR middle-end/45056
17061         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
17062
17063 2010-07-26  Richard Guenther  <rguenther@suse.de>
17064
17065         PR tree-optimization/45071
17066         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
17067         adjust op->opcode.
17068
17069 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
17070
17071         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
17072         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
17073         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
17074         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
17075         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
17076         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
17077         save_r31, return_r31, save_interrupt, return_interrupt,
17078         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
17079         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
17080         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
17081         new ABI requirements.
17082         (save_r6_r9, L_callt_save_r6_r9): Remove.
17083         * config/v850/predicates.md (even_reg_operand, disp23_operand,
17084         const_float_1_operand const_float_0_operand): New Predicates.
17085         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
17086         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
17087         * config/v850/t-v850: Update multilibs for new target variants.
17088         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
17089         * config/v850/t-v850e: Likewise.
17090         * config/v850/v850.c (v850_issue_rate): New.
17091         (v850_strict_argument_naming): New.
17092         (function_arg): Modify to generate a different ABI.
17093         (print_operand): Update case 'z' to support float modes.
17094         (output_move_single): Modify to generate appropriate and better
17095         assembly.
17096         (v850_float_z_comparison_operator, v850_select_cc_mode,
17097         v850_float_nz_comparison_operator,  v850_gen_float_compare,
17098         v850_gen_compare): New functions to support comparison of float values.
17099         (ep_memory_offset): Add support for V850E2 targets.
17100         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
17101         (INTERRUPT_REGPARM_NUM): Remove.
17102         (compute_register_save_size): Add extra case to save/restore long call.
17103         (use_prolog_function): New function to support prologue.
17104         (expand_prologue): Add support for V850E2 targets and modified
17105         as per the current ABI requirements.
17106         (expand_epilogue): Likewise.
17107         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
17108         (construct_save_jarl): Likewise.
17109         (construct_dispose_instruction): Update as per the current ABI
17110         requirements.
17111         (construct_prepare_instruction): Likewise.
17112         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
17113         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
17114         (CPP_SPEC): Updated to support v850e2 targets.
17115         (STRICT_ALIGNMENT): Modified.
17116         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
17117         (FIXED_REGISTERS): Likewise.
17118         (CALL_USED_REGISTERS): Likewise.
17119         (CONDITIONAL_REGISTER_USAGE): Updated.
17120         (HARD_REGNO_MODE_OK): Updated.
17121         (reg_class): Updated to add even registers.
17122         (REG_CLASS_NAMES): Likewise.
17123         (REG_CLASS_CONTENTS): Likewise.
17124         (REGNO_REG_CLASS): Updated for CC registers.
17125         (REG_CLASS_FROM_LETTER): Added support for even registers.
17126         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
17127         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
17128         ARG_POINTER_REGNUM): Updated.
17129         (FUNCTION_ARG_ADVANCE): Define.
17130         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
17131         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
17132         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
17133         (GO_IF_LEGITIMATE_ADDRESS): Updated.
17134         (SELECT_CC_MODE): Define.
17135         (REGISTER_NAMES): Updated to add psw and fcc registers.
17136         (ADDITIONAL_REGISTER_NAMES): Updated.
17137         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
17138         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
17139         * config/v850/v850.md (define_constants): Define new constants.
17140         (type): Update store,bit1,macc,div,fpu and single attributes.
17141         (cpu): New attribute.
17142         (cc): Add set_z attribute.
17143         (unsign23byte_load, sign23byte_load, unsign23hword_load,
17144         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
17145         23word_store): New instructions for 23-bit displacement load and store.
17146         (movqi_internal, movhi_internal): Update the attributes.
17147         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
17148         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
17149         the attributes.
17150         (v850_tst1): Modified using CC_REGNUM.
17151         (tstsi): Remove.
17152         (cmpsi): Modified as define_expand from define_insn.
17153         (cmpsi_insn, cmpsf, cmpdf): New instructions.
17154         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
17155         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
17156         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
17157         one_cmplsi2): Clobber the CC_REGNUM register.
17158         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
17159         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
17160         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
17161         (setf_insn, set_z_insn, set_nz_insn): New instructions for
17162         v850e2v3 target.
17163         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
17164         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
17165         targets.
17166         (sasf_1, sasf_2): Remove.
17167         (sasf): New instruction.
17168         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
17169         targets. CC_REGNUM register is clobbered and attributes are
17170         updated.
17171         (branch_z_normal, branch_z_invert, branch_nz_normal,
17172         branch_nz_invert): New branch related instructions.
17173         (jump): Updated the attributes.
17174         (switch): Update to support new targets. CC_REGNUM register is
17175         clobbered and attributes are updated.
17176         (call_internal_short, call_internal_long, call_value_internal_short,
17177         call_value_internal_long): Updated the attributes.
17178         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
17179         clobbered and attributes are updated.
17180         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
17181         Update to support new targets. CC_REGNUM register is clobbered.
17182         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
17183         instructions.
17184         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
17185         are updated.
17186         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
17187         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
17188         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
17189         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
17190         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
17191         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
17192         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
17193         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
17194         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
17195         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
17196         point instructions defined for V850e2v3 target.
17197         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
17198         Add support for V850E2 targets and CC_REGNUM register is clobbered.
17199         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
17200         support for new targets.
17201         * config/v850/v850-modes.def: New file.
17202         * config/v850/v850.opt(mstrict-align): Remove.
17203         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
17204         mv850e2v3): New command line options for V850.
17205         * config.gcc: Update the newly added files.
17206         * doc/invoke.texi: Update the newly added command line options for
17207         V850 target.
17208
17209 2010-07-26  Richard Guenther  <rguenther@suse.de>
17210
17211         PR tree-optimization/45052
17212         * ipa-pure-const.c (check_stmt): Check volatileness.
17213
17214 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
17215
17216         PR target/44707
17217         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
17218         * config/sparc/sparc.c: Include reload.h.
17219         (legitimize_tls_address): Rename into...
17220         (sparc_legitimize_tls_address): ...this.
17221         (legitimize_pic_address): Rename into...
17222         (sparc_legitimize_pic_address): ...this.
17223         (sparc_expand_move): Adjust to above renaming.
17224         (sparc_tls_referenced_p): Likewise.
17225         (sparc_legitimize_tls_address): Likewise.
17226         (sparc_legitimize_pic_address): Likewise.
17227         (sparc_legitimize_address): Likewise.
17228         (sparc_output_mi_thunk): Likewise.
17229         (sparc_legitimize_reload_address): New global function.  Recognize
17230         (lo_sum (high ...) ...) patterns generated by earlier passes.
17231         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
17232
17233 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
17234
17235         PR target/44484
17236         * config/sparc/predicates.md (memory_reg_operand): Delete.
17237         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
17238         (*sync_compare_and_swap): Encode the address form in the pattern.
17239         (*sync_compare_and_swapdi_v8plus): Likewise.
17240
17241 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
17242
17243         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
17244         Streamline paragraph on compatibility with the system compiler.
17245
17246 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
17247
17248         PR middle-end/45035
17249         * alias.c (true_dependence_1): Fix thinko in merge of old
17250         true_dependence and canon_true_dependence.
17251
17252 2010-07-23  Jan Hubicka  <jh@suse.cz>
17253
17254         * lto-streamer-out.c (write_symbol): Fix visibilities of external
17255         references.
17256
17257 2010-07-23  Le-Chun Wu  <lcwu@google.com>
17258
17259         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
17260         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
17261         and an unnecessary assignment.
17262         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
17263         self-assign warning.
17264         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
17265         unnecessary self-init.
17266
17267 2010-07-23  Richard Guenther  <rguenther@suse.de>
17268
17269         PR lto/43071
17270         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
17271         for -flto and -fwhopr.
17272
17273 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
17274
17275         PR target/41943
17276         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
17277         (stmp-int-hdrs): Prefix/postfix headers by include_next.
17278         * config.gcc (user_headers_inc_next_pre): New.
17279         (user_headers_inc_next_post): Likewise.
17280         (*-w64-mingw*): Use for float.h post-fixing, and for
17281         stddef.h/stdarg.h pre-fixing by include_next.
17282         * configure.ac (user_headers_inc_next_post): New.
17283         (user_headers_inc_next_pre): New.
17284         * configure: Regenerated.
17285
17286 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17287
17288         * configure.ac: Don't disable TLS on Solaris 8/9 by default
17289         Set tga_func for Solaris 2/x86 resp. SPARC.
17290         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
17291         (LIB_THREAD_LDFLAGS_SPEC): Define.
17292         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
17293         * configure: Regenerate.
17294         * config.in: Regenerate.
17295         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
17296         -pthread, -threads, LIB_TLS_SPEC with -pthread.
17297         * doc/install.texi (Specific, *-*-solaris2*): Document use of
17298         alternate thread libraries on Solaris 8.
17299         Document TLS patch requirements.
17300         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
17301         Document tls.
17302
17303         PR target/18788
17304         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
17305         -shared.
17306
17307 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
17308
17309         * tree.h (struct tree_base): Add nameless_flag bitfield.
17310         (TYPE_NAMELESS, DECL_NAMELESS): Define.
17311         * omp-low.c (create_omp_child_function, scan_omp_parallel,
17312         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
17313         DECL_ARTIFICIAL where needed.
17314         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
17315         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
17316         has DECL_NAMELESS set.
17317
17318 2010-07-23  Martin Jambor  <mjambor@suse.cz>
17319
17320         PR tree-optimization/44915
17321         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
17322         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
17323         (analyze_function): Likewise.
17324
17325 2010-07-23  Martin Jambor  <mjambor@suse.cz>
17326
17327         PR tree-optimization/44914
17328         * tree-sra.c (sra_modify_function_body): Return true if CFG was
17329         changed, add purging dead eh edges.
17330         (ipa_sra_modify_function_body): Return true if CFG was changed,
17331         simplify purging dead eh edges.
17332         (modify_function): Return true if CFG was changed.
17333         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
17334         was changed.
17335         (ipa_early_sra): Likewise.
17336
17337 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17338
17339         PR target/44290
17340         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
17341         if "naked".
17342         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
17343         false if ! tree_versionable_function_p.
17344
17345 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
17346
17347         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
17348         * ipa-pure-const.c (special_builtlin_state): Remove
17349         BUILT_IN_ARGS_INFO case.
17350         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
17351         * builtins.c (expand_builtin): Likewise.
17352         (expand_builtin_args_info): Remove.
17353         * doc/tm.texi (__builtin_args_info): Remove.
17354         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
17355         * doc/tm.text.in: Likewise.
17356
17357 2010-07-23  Richard Guenther  <rguenther@suse.de>
17358
17359         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
17360         (lto_symtab_merge_decls_2): Likewise.
17361         * tree-ssa.c (useless_type_conversion_p): Likewise.
17362         * lto-streamer-in.c (input_gimple_stmt): Likewise.
17363         * gimple.c (gtc_visited2, gtc_ob2): Remove.
17364         (struct type_pair_d): Make same_p an array indexed by mode.
17365         Update comment.
17366         (lookup_type_pair): Update initialization.
17367         (struct sccs): Adjust same_p type.
17368         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
17369         Adjust.
17370         (print_gimple_types_stats): Likewise.
17371         * gimple.h (enum gtc_mode): New.
17372         (gimple_types_compatible_p): Adjust prototype.
17373
17374 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
17375
17376         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
17377         again after processing insn.
17378
17379 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17380
17381         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
17382         proper words when !tree_versionable_function_p.
17383
17384 2010-07-23  Richard Guenther  <rguenther@suse.de>
17385
17386         PR tree-optimization/45037
17387         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
17388
17389 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17390
17391         * doc/extend.texi: Remove IP2K from the description of naked attribute.
17392         Add MCORE instead.
17393
17394 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17395
17396         PR lto/44992
17397         * lto-opts.c (lto_write_options): Add NULL file_data argument to
17398         lto_get_section_name.
17399         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
17400         * lto-streamer-out.c (produce_asm): Likewise.
17401         (copy_function): Likewise.
17402         (produce_symtab): Likewise.
17403         (produce_asm_for_decls): Likewise.
17404         * lto-streamer.c (lto_get_section_name): Add file_data argument.
17405         Rewrite to add random postfix to LTO sections.
17406         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
17407         (lto_get_section_name): Add file_data argument to prototype.
17408
17409 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17410
17411         * lto-section-in.c (lto_section_name): Synchronize names
17412         with lto_get_section_name.
17413
17414 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17415
17416         * lto-opts.c (lto_read_file_options): Check for missing section.
17417
17418 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17419
17420         * ira.c (check_allocation): Correctly handle the case where an allocno
17421         with two objects was allocated to a single reg.
17422
17423 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
17424
17425         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
17426         (is_widening_mult_p): Likewise.
17427         (convert_to_widen): Use them.
17428         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
17429         well as integer ones.
17430
17431 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
17432
17433         * alias.c (true_dependence_1): New function, merged version of
17434         true_dependence and canon_true_dependence.
17435         (true_dependence): Simplify.
17436         (canon_true_dependence): Simplify.
17437
17438 2010-07-22  Richard Henderson  <rth@redhat.com>
17439
17440         PR target/45027
17441         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
17442         of V4SFmode for the SSE saves; increase stack alignment if needed.
17443         (ix86_gimplify_va_arg): Don't increase stack alignment here.
17444
17445 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
17446
17447         PR bootstrap/45028
17448         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
17449         call cprop_find_used_regs again via note_uses.
17450
17451 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
17452
17453         * alias.c (get_alias_set): Fix formatting issues.
17454
17455 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
17456
17457         PR middle-end/44878
17458         * stmt.c (expand_value_return):  Call promote_function_mode with
17459         a for_return argument of 2 when returning by reference.
17460
17461 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
17462
17463         PR debug/45024
17464         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
17465         unit DIE if we can find the scope DIE.
17466
17467 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17468
17469         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
17470         changed.  Initialize OBJECT_SUBWORD.
17471         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
17472         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
17473         all callers changed.
17474         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
17475         (finish_allocno): Likewise.
17476         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
17477         (remove_low_level_allocnos): Likewise.
17478         (update_bad_spill_attribute): Likewise.
17479         (setup_min_max_allocno_live_range_point): Likewise.
17480         (sort_conflict_id_map): Likewise.
17481         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
17482         (ior_hard_reg_conflicts): New function.
17483         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
17484         (compress_conflict_vecs): Iterate over objects, not allocnos.
17485         (ira_add_live_range_to_object): New function.
17486         (object_range_compare_func): Renamed from allocno_range_compare_func.
17487         All callers changed.
17488         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
17489         subobjects, widen the min/max range of the lowest-order object to
17490         potentially include all other such low-order objects.
17491         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
17492         (check_allocation): Likewise.  Use more fine-grained tests for register
17493         conflicts.
17494         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
17495         allocno subobjects.
17496         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
17497         choices about which bits to set in each set.  Don't use
17498         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
17499         using the multiple sets we computed.
17500         (push_allocno_to_stack): Iterate over allocno subobjects.
17501         (all_conflicting_hard_regs_coalesced): New static function.
17502         (setup_allocno_available_regs_num): Use it.
17503         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
17504         subobjects.
17505         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
17506         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
17507         by ALLOCNO_NUM_OBJECTS.
17508         (calculate_spill_cost): Likewise.
17509         (color_pass): Express if statement in a more normal way.
17510         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
17511         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
17512         (setup_slot_coalesced_allocno_live_ranges): Likewise.
17513         (allocno_reload_assign): Likewise.
17514         (ira_reassign_pseudos): Likewise.
17515         (fast_allocation): Likewise.
17516         * ira-conflicts.c (build_conflict_bit_table): Likewise.
17517         (print_allocno_conflicts): Likewise.
17518         (ira_build_conflicts): Likewise.
17519         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
17520         callers changed.  Test subword 0 of each allocno for conflicts.
17521         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
17522         callers changed.  Iterate over allocno subobjects.
17523         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
17524         * ira-int.h (struct ira_allocno): New member: num_objects.
17525         Rename object to objects and change it into an array.
17526         (ALLOCNO_OBJECT): Add new argument N.
17527         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
17528         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
17529         (ior_hard_reg_conflicts): Declare.
17530         (ira_add_live_range_to_object): Declare.
17531         (ira_allocno_object_iterator): New.
17532         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
17533         (FOR_EACH_ALLOCNO_OBJECT): New macro.
17534         * ira-lives.c (objects_live): Renamed from allocnos_live; all
17535         uses changed.
17536         (allocnos_processed): New sparseset.
17537         (make_object_born): Renamed from make_allocno_born; take an
17538         ira_object_t argument.  All callers changed.
17539         (make_object_dead): Renamed from make_allocno_dead; take an
17540         ira_object_t argument.  All callers changed.
17541         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
17542         All callers changed.
17543         (mark_pseudo_regno_live): Iterate over allocno subobjects.
17544         (mark_pseudo_regno_dead): Likewise.
17545         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
17546         functions.
17547         (mark_ref_live): Detect subword accesses and call
17548         mark_pseudo_regno_subword_live as appropriate.
17549         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
17550         (process_bb_nodes_live): Deal with object-related updates first; set
17551         and test bits in allocnos_processed to avoid computing allocno
17552         statistics more than once.
17553         (create_start_finish_chains): Iterate over objects, not allocnos.
17554         (print_object_live_ranges): New function.
17555         (print_allocno_live_ranges): Use it.
17556         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
17557         and objects_live.
17558
17559 2010-07-22  Richard Guenther  <rguenther@suse.de>
17560
17561         PR lto/42451
17562         * gimple.c (gtc_next_dfs_num): New global.
17563         (struct sccs): Make value a union, add integer same_p member.
17564         (gtc_visit): New function.
17565         (gimple_types_compatible_p_1): New function, split out from ...
17566         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
17567         (iterative_hash_gimple_type): Adjust for sccs change.
17568
17569 2010-07-22  Martin Jambor  <mjambor@suse.cz>
17570
17571         PR tree-optimization/44891
17572         * tree-sra.c: Include gimple-pretty-print.h.
17573         (replace_uses_with_default_def_ssa_name): Renamed to
17574         get_repl_default_def_ssa_name, return the new SSA name instead of
17575         replacing the old one.
17576         (sra_modify_assign): Dump a message when removing a load, if the LHS
17577         is an SSA_NAME, do not do any propagation, just set the RHS to a
17578         default definition SSA NAME, type convert if necessary.
17579         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
17580
17581 2010-07-22  Richard Guenther  <rguenther@suse.de>
17582
17583         PR tree-optimization/45017
17584         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
17585         TYPE_PRECISION of integral types in addition to size.
17586
17587 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
17588
17589         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
17590         when no C library is specified.
17591
17592 2010-07-22  Martin Jambor  <mjambor@suse.cz>
17593
17594         * ipa-prop.h (struct ipa_node_params): Updated comment.
17595         (struct ipa_edge_args): Likewise.
17596         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
17597
17598 2010-07-22  Martin Jambor  <mjambor@suse.cz>
17599
17600         * cgraphunit.c (verify_edge_count_and_frequency): New function.
17601         (verify_cgraph_node): Verify frequencies of indirect edges.
17602         * tree-inline.c (tree_function_versioning): Update frequencies of
17603         indirect edges.
17604
17605 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17606
17607         PR target/43698
17608         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
17609         Set *arm_rev to be predicable.
17610
17611 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
17612
17613         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
17614         (LINK_COMMAND_SPEC_A): New.
17615         (DSYMUTIL): New.
17616         (DSYMUTIL_SPEC): New.
17617         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
17618         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
17619
17620 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
17621
17622         * calls.c (load_register_parameters): Move check for zero
17623         sized items so that only the call to
17624         mem_overlaps_already_clobbered_arg_p () is protected.
17625
17626 2010-07-22  Jan Hubicka  <jh@suse.cz>
17627
17628         * ipa-pure-const.c (varying_state): Break out from ...
17629         (get_function_state): ... here; always return varying_state
17630         when state would be NULL otherwise.
17631         (remove_node_data): Do not free varying state.
17632
17633 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17634
17635         PR bootstrap/44970
17636         PR middle-end/45009
17637         * postreload.c: Include "target.h".
17638         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
17639         into account.
17640         (fixup_debug_insns): Don't copy the rtx.
17641         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
17642         Don't copy when replacing.  Call fixup_debug_insns in the case where
17643         we merged one add with another.
17644         (reload_combine_recognize_pattern): Fail if there aren't any uses.
17645         Try harder to determine whether we're picking a valid index register.
17646         Don't set store_ruid for an insn we're going to scan in the
17647         next iteration.
17648         (reload_combine): Remove unused code.
17649         (reload_combine_note_use): When updating use information for
17650         an old insn, ignore a use that occurs after store_ruid.
17651         * Makefile.in (postreload.o): Update dependencies.
17652
17653         * function.c (record_hard_reg_sets): Restrict the previous change
17654         to cases where the incoming nominal mode is the same as the
17655         incoming promoted mode and everything happens in MODE_INT.
17656
17657 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
17658
17659         PR debug/45015
17660         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
17661         ASM_OPERANDS_OUTPUT_IDX.
17662         (adjust_insn): For inline asm with multiple sets ensure first
17663         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
17664         the insn.
17665
17666 2010-07-21  Richard Henderson  <rth@redhat.com>
17667
17668         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
17669         comparison for avoiding xmm register saves.  Emit the xmm register
17670         saves explicitly.
17671         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
17672         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
17673         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
17674         Remove patterns and the associated splitters.
17675
17676 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
17677
17678         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
17679         and imagine parts of a complex, so that they can have the same
17680         base and fall into the same group.
17681
17682 2010-07-21  Richard Guenther  <rguenther@suse.de>
17683
17684         PR lto/45018
17685         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
17686         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
17687         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
17688
17689 2010-07-21  Martin Jambor  <mjambor@suse.cz>
17690
17691         PR tree-optimization/44900
17692         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
17693         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
17694
17695 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
17696
17697         PR middle-end/44738
17698         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
17699
17700 2010-07-21  Richard Guenther  <rguenther@suse.de>
17701
17702         PR middle-end/45013
17703         * tree-ssa.c (useless_type_conversion_p): Dispatch to
17704         gimple_types_compatible_p only when in lto.
17705         * gimple.c (gimple_types_compatible_p): Use canonical types
17706         to speed up comparison.
17707
17708 2010-07-21  Richard Guenther  <rguenther@suse.de>
17709
17710         * tree-flow.h (referenced_var): Move define ...
17711         * tree-flow-inline.h (referenced_var): ... here as an inline
17712         function.  Assert here ...
17713         * tree-dfa.c (referenced_var_lookup): ... instead of here.
17714         * tree-ssa.c (maybe_optimize_var): Check if the variable
17715         is in referenced vars.
17716         (execute_update_addresses_taken): Remove old broken check.
17717         * gimple-pretty-print.c (pp_points_to_solution): Use
17718         referenced_var_lookup.
17719         * tree-into-ssa.c (dump_decl_set): Likewise.
17720
17721 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
17722
17723         PR debug/45003
17724         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
17725         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
17726         ZERO_EXTEND here.
17727
17728 2010-07-20  Richard Henderson  <rth@redhat.com>
17729
17730         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
17731
17732 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
17733
17734         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
17735         computing the sum of the stack pointer and a large constant.
17736         * config/arm/constraints.md (M): Remove superfluous parentheses.
17737         (Pc): New constraint.
17738
17739 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
17740
17741         PR debug/45006
17742         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
17743         operand's type if exp is tcc_unary class tree.
17744
17745 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
17746
17747         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
17748         Reverse sense of if_then_else condition.
17749
17750 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
17751
17752         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
17753         * config/rs6000/rs6000.c (rs6000_override_options): Set
17754         rs6000_block_move_inline_limit appropriately.
17755         (expand_block_move): Use rs6000_block_move_inline_limit.
17756         * doc/invoke.texi (mblock-move-inline-limit): Document.
17757
17758 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
17759
17760         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
17761         FROM and TO.  All callers changed.  Don't look for tracked uses,
17762         just scan the RTL for DEBUG_INSNs and substitute.
17763         (reload_combine_recognize_pattern): Call fixup_debug_insns.
17764         (reload_combine): Ignore DEBUG_INSNs.
17765
17766 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
17767
17768         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
17769         depth to 8 from 5.
17770
17771         PR debug/45003
17772         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
17773         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
17774         instead of the result's type.
17775
17776 2010-07-20  Richard Guenther  <rguenther@suse.de>
17777
17778         PR tree-optimization/44977
17779         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
17780         SSA form.
17781
17782 2010-07-20  Richard Guenther  <rguenther@suse.de>
17783
17784         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
17785         (lto_symtab_merge_decls_2): Likewise.
17786         * gimple.h (gimple_types_compatible_p): Declare.
17787         * gimple.c (gimple_queue_type_fixup): Remove.
17788         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
17789         (gimple_compatible_complete_and_incomplete_type_p): New function.
17790         (gimple_types_compatible_p): Adjust.
17791         (gimple_register_type): Remove type fixup code.
17792         (print_gimple_types_stats): Adjust.
17793         (free_gimple_type_tables): Likewise.
17794         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
17795         * tree-ssa.c (useless_type_conversion_p): Likewise.
17796
17797 2010-07-20  Richard Guenther  <rguenther@suse.de>
17798
17799         PR middle-end/44971
17800         PR middle-end/44988
17801         * tree-ssa.c (maybe_optimize_var): New function split out from ...
17802         (execute_update_addresses_taken): ... here.
17803         (non_rewritable_mem_ref_base): Likewise.
17804         (execute_update_addresses_taken): Do not iterate over all referenced
17805         vars but just all local decls and parms.
17806         Properly check call and asm arguments and rewrite call arguments.
17807
17808 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
17809
17810         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
17811         to top level.
17812         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
17813         definitions ...
17814         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
17815         New macro.
17816         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
17817
17818 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
17819
17820         * gengtype.c (start_root_entry): New function, split out from
17821         write_root.  Check whether V is null and raise an error if so.
17822         (write_field_root): Check for V being null.  Don't raise an error here;
17823         set V to null instead.
17824         (write_root): Update comment above function.  Use start_root_entry.
17825
17826 2010-07-19  Xinliang David Li  <davidxl@google.com>
17827
17828         PR testsuite/44932
17829         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
17830         def edges.
17831         (find_uninit_use): Add dump.
17832         (is_use_properly_guarded): Ditto.
17833         (warn_uninitialized_phi): Ditto.
17834         (execute_late_warn_uninitialized): Ditto.
17835
17836 2010-07-19  Richard Guenther  <rguenther@suse.de>
17837
17838         PR middle-end/44941
17839         * expr.c (emit_block_move_hints): Move zero size check first.
17840         Move asserts to more useful places.
17841         * calls.c (load_register_parameters): Check for zero size.
17842
17843 2010-07-19  Richard Henderson  <rth@redhat.com>
17844
17845         * tree-optimize.c (execute_all_early_local_passes): New.  Change
17846         cgraph_state here ...
17847         (execute_early_local_optimizations): ... not here.  Remove.
17848         (pass_early_local_passes, pass_all_early_optimizations): Update.
17849
17850 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
17851
17852         * postreload.c (reload_combine_closest_single_use): Ignore the
17853         number of uses for DEBUG_INSNs.
17854         (fixup_debug_insns): New static function.
17855         (reload_combine_recognize_const_pattern): Use it.  Don't let the
17856         main loop be affected by DEBUG_INSNs.
17857         Really disallow moving adds past a jump insn.
17858         (reload_combine_recognize_pattern): Don't update use_ruid here.
17859         (reload_combine_note_use): Do it here.
17860         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
17861
17862 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
17863
17864         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
17865         of a loop.
17866         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
17867
17868 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
17869
17870         * config/i386/darwin.h: Define darwin_emit_branch_islands.
17871         (TARGET_MACHO_BRANCH_ISLANDS): New.
17872         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
17873         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
17874         default value.
17875         * config/i386/i386.c (output_pic_addr_const): Do not emit
17876         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
17877         (x86_output_mi_thunk): Adjust symbol creation.
17878         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
17879         Remove out of date comment.
17880         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
17881         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
17882         (DARWIN_GENERATE_ISLANDS): Ditto.
17883         (output_call):  Do not emit branch islands unless
17884         darwin_emit_branch_islands is set.
17885         * config/darwin.c: Declare darwin_emit_branch_islands.
17886         (machopic_indirect_data_reference): Do not emit unless
17887         darwin_emit_branch_islands is set.
17888         (darwin_override_options): Set darwin_emit_branch_islands
17889         where it is needed.
17890         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
17891
17892 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17893
17894         * doc/sourcebuild.texi (Effective-Target Keywords): Document
17895         sse_runtime, sse2_runtime.
17896
17897 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
17898
17899         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
17900         low half of a single-register SCmode return value before ORing
17901         it with the high half.
17902         * config/mips/mips16.S (MERGE_GPRf): Likewise.
17903
17904 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17905
17906         PR target/44805
17907         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
17908         on all targets.
17909
17910 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
17911
17912         PR target/42235
17913         * postreload.c (reload_cse_move2add): Return bool, true if anything.
17914         changed.  All callers changed.
17915         (move2add_use_add2_insn): Likewise.
17916         (move2add_use_add3_insn): Likewise.
17917         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
17918         reload_combine.
17919         (RELOAD_COMBINE_MAX_USES): Bump to 16.
17920         (last_jump_ruid): New static variable.
17921         (struct reg_use): New members CONTAINING_MEM and RUID.
17922         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
17923         (reload_combine_split_one_ruid, reload_combine_split_ruids,
17924         reload_combine_purge_insn_uses, reload_combine_closest_single_use
17925         reload_combine_purge_reg_uses_after_ruid,
17926         reload_combine_recognize_const_pattern): New static functions.
17927         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
17928         is true for our reg and that we have available index regs.
17929         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
17930         callers changed.  Use them to initialize fields in struct reg_use.
17931         (reload_combine): Initialize last_jump_ruid.  Be careful when to
17932         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
17933         Call reload_combine_recognize_const_pattern.
17934         (reload_combine_note_store): Update REAL_STORE_RUID field.
17935
17936 2010-07-16  Jason Merrill  <jason@redhat.com>
17937
17938         * Makefile.in (opts-common.o): Depend on options.h.
17939
17940 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
17941
17942         * tree.c (build_common_builtin_nodes): Use build_function_type_list
17943         instead of build_function_type.
17944         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
17945         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
17946
17947 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
17948
17949         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
17950         do all the work.
17951         (rs6000_emit_int_cmove): Use function pointers for insn generation.
17952         Don't force values into registers unnecessarily.
17953         (output_isel): Assert that we're not given conditions we can't handle.
17954         Delete corresponding code.
17955         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
17956         scc_comparison_operator constraint.  Permit 0 for the consequent
17957         operand.  Permit any GPR for the alternative operand.
17958         (isel_unsigned_<mode>): Likewise.
17959
17960 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
17961
17962         PR target/44942
17963         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
17964         argument to const_tree.
17965         * config/i386/i386.c (function_arg_advance): If padding needs to be
17966         inserted before argument, increment cum->words by number of padding
17967         words as well.
17968         (contains_aligned_value_p): Change argument to const_tree.
17969         (ix86_function_arg_boundary): Change second argument to const_tree.
17970
17971 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
17972
17973         PR target/42235
17974         * function.c (record_hard_reg_sets): New static function.
17975         (assign_parm_setup_reg): If an optab for extending exists and the
17976         generated code clobbbers no hard regs, emit the insn directly and
17977         create a REG_EQUIV note.
17978
17979 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
17980
17981         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
17982         TREE_CHAIN.
17983         * c-typeck.c (push_init_level): Likewise.
17984         (process_init_element): Likewise.
17985
17986 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
17987
17988         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
17989         (integer_three_node): Add.
17990         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
17991         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
17992         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
17993         of call build_int_cst.
17994         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
17995         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
17996         (find_interesting_uses_address): Ditto.
17997         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
17998         * tree-eh.c (lower_eh_constructs_2): Ditto.
17999         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
18000         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
18001         * expmed.c (expand_divmod): Ditto.
18002         * tree-mudflap.c (mx_register_decls): Ditto.
18003         * varasm.c (array_size_for_constructor): Ditto.
18004         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
18005         * c-parser.c (c_parser_postfix_expression): Ditto.
18006
18007 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
18008
18009         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
18010         New static variables.
18011         (reload_combine_recognize_pattern): New static function, broken out
18012         of reload_combine.
18013         (reload_combine): Use it.  Only initialize first_index_reg and
18014         last_index_reg once.
18015
18016 2010-07-15  Richard Henderson  <rth@redhat.com>
18017
18018         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
18019         when done.
18020
18021 2010-07-15  Jan Hubicka  <jh@suse.cz>
18022
18023         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
18024         comdats for broken gold.
18025         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
18026
18027 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18028
18029         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
18030
18031 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18032
18033         * tree.h (DECL_CHAIN): Define.
18034         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
18035         * c-decl.c: Likewise.
18036         * c-parser.c: Likewise.
18037         * c-typeck.c: Likewise.
18038         * cfgexpand.c: Likewise.
18039         * cgraph.c: Likewise.
18040         * cgraphunit.c: Likewise.
18041         * combine.c: Likewise.
18042         * config/alpha/alpha.c: Likewise.
18043         * config/arm/arm.c: Likewise.
18044         * config/frv/frv.c: Likewise.
18045         * config/i386/i386.c: Likewise.
18046         * config/i386/winnt-cxx.c: Likewise.
18047         * config/ia64/ia64.c: Likewise.
18048         * config/iq2000/iq2000.c: Likewise.
18049         * config/mep/mep.c: Likewise.
18050         * config/mips/mips.c: Likewise.
18051         * config/pa/som.h: Likewise.
18052         * config/rs6000/rs6000.c: Likewise.
18053         * config/s390/s390.c: Likewise.
18054         * config/sh/sh.c: Likewise.
18055         * config/sh/symbian-cxx.c: Likewise.
18056         * config/sparc/sparc.c: Likewise.
18057         * config/spu/spu.c: Likewise.
18058         * config/stormy16/stormy16.c: Likewise.
18059         * config/vxworks.c: Likewise.
18060         * config/xtensa/xtensa.c: Likewise.
18061         * coverage.c: Likewise.
18062         * dbxout.c: Likewise.
18063         * dwarf2out.c: Likewise.
18064         * emit-rtl.c: Likewise.
18065         * expr.c: Likewise.
18066         * function.c: Likewise.
18067         * gimple-low.c: Likewise.
18068         * gimple-pretty-print.c: Likewise.
18069         * gimplify.c: Likewise.
18070         * integrate.c: Likewise.
18071         * ipa-inline.c: Likewise.
18072         * ipa-prop.c: Likewise.
18073         * ipa-split.c: Likewise.
18074         * ipa-struct-reorg.c: Likewise.
18075         * ipa-type-escape.c: Likewise.
18076         * langhooks.c: Likewise.
18077         * lto-cgraph.c: Likewise.
18078         * omp-low.c: Likewise.
18079         * stor-layout.c: Likewise.
18080         * tree-cfg.c: Likewise.
18081         * tree-complex.c: Likewise.
18082         * tree-dfa.c: Likewise.
18083         * tree-dump.c: Likewise.
18084         * tree-inline.c: Likewise.
18085         * tree-mudflap.c: Likewise.
18086         * tree-nested.c: Likewise.
18087         * tree-object-size.c: Likewise.
18088         * tree-pretty-print.c: Likewise.
18089         * tree-sra.c: Likewise.
18090         * tree-ssa-live.c: Likewise.
18091         * tree-ssa-loop-niter.c: Likewise.
18092         * tree-ssa-math-opts.c: Likewise.
18093         * tree-ssa-reassoc.c: Likewise.
18094         * tree-ssa-sccvn.c: Likewise.
18095         * tree-ssa-structalias.c: Likewise.
18096         * tree-tailcall.c: Likewise.
18097         * tree-vrp.c: Likewise.
18098         * tree.c: Likewise.
18099         * var-tracking.c: Likewise.
18100         * varasm.c: Likewise.
18101
18102 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18103
18104         PR target/44877
18105         * config/spu/spu.c (spu_expand_builtin_1): Allow references
18106         (as well as pointers) as argument to mask_for_load builtins.
18107
18108 2010-07-15  Richard Guenther  <rguenther@suse.de>
18109
18110         PR tree-optimization/44946
18111         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
18112         with accessing only padding properly.
18113
18114 2010-07-15  Jan Hubicka  <jh@suse.cz>
18115
18116         * ipa.c (function_and_variable_visibility): Variables marked as used
18117         should not be localized.
18118
18119 2010-07-15  Jan Hubicka  <jh@suse.cz>
18120
18121         * cgraph.c: Include lto-streamer.h
18122         (change_decl_assembler_name): Work when assembler name hash is at place.
18123         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
18124         be sure to rename it to avoid name clash.
18125         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
18126         Localize hidden symbols only when locally defined.
18127
18128 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
18129
18130         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
18131
18132 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
18133             Kevin F. Quinn  <kevquinn@gentoo.org>
18134
18135         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
18136         * common.opt: Add -Wtrampolines.
18137         * doc/invoke.texi: Add -Wtrampolines.
18138
18139 2010-07-15  Jie Zhang  <jie@codesourcery.com>
18140
18141         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
18142         cortex_a8_issue_ls.
18143
18144 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
18145
18146         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
18147         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
18148
18149 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18150
18151         * config/spu/spu.c (reg_names): Remove prototype.
18152         (call_used_regs): Likewise.
18153
18154 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
18155
18156         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
18157         "unused" with attribute "used".
18158         (__JCR_END__): Likewise.
18159         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
18160         "used" attribute.
18161         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
18162
18163 2010-07-14  Richard Guenther  <rguenther@suse.de>
18164
18165         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
18166         (maybe_fixup_decls): Likewise.
18167         (input_gimple_stmt): Do not fixup anything.
18168         * lto-streamer-out.c (output_gimple_stmt): Make sure all
18169         non-automatic variable uses are wrapped inside a MEM_REF.
18170
18171 2010-07-14  Richard Henderson  <rth@redhat.com>
18172
18173         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
18174         for functions.
18175         * varasm.c (assemble_variable): Remove early exit for functions;
18176         assert that we're given a variable.
18177
18178 2010-07-14  Jie Zhang  <jie@codesourcery.com>
18179
18180         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
18181         cortex_a8_default when neon_type is not none.
18182
18183 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18184
18185         * lower-subreg.c (subreg_context): New static bitmap.
18186         (decompose_multiword_subregs): Allocate and free it.
18187         (find_decomposable_subregs): Set a bit in it for a register that
18188         occurs in a subreg that changes mode but not size.
18189         (can_decompose_p): Test it instead of non_decomposable_context.
18190
18191 2010-07-14  Richard Guenther  <rguenther@suse.de>
18192
18193         PR tree-optimization/44824
18194         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
18195         is_gimple_mem_ref_addr.
18196         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
18197         non-decl_address_invariant_p addresses.
18198
18199 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18200
18201         * reload.c (find_reloads): Revert code to penalize small register
18202         classes that was brought in with the IRA merge.
18203
18204 2010-07-14  Richard Guenther  <rguenther@suse.de>
18205
18206         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
18207         as base of ARRAY_REFs.
18208
18209 2010-07-14  Richard Guenther  <rguenther@suse.de>
18210
18211         PR middle-end/44930
18212         * tree-pretty-print.c (do_niy): Do not print a newline.
18213
18214 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18215
18216         * ira-int.h (struct ira_object): New.
18217         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
18218         (struct ira_allocno): Remove members min, max,
18219         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
18220         conflict_allocnos_num and conflict_vec_p.  Add new member object.
18221         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
18222         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
18223         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
18224         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
18225         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
18226         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
18227         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
18228         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
18229         an ira_object_t rather than ira_allocno_t.  All uses changed.
18230         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
18231         contains a vector of ira_object_t; all uses changed.
18232         (ira_objects_num): Declare variable.
18233         (ira_create_allocno_object): Declare function.
18234         (ira_conflict_vector_profitable_p): Adjust prototype.
18235         (ira_allocate_conflict_vec): Renamed from
18236         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
18237         (ira_allocate_object_conflicts): Renamed from
18238         ira_allocate_allocno_conflicts; first arg now ira_object_t.
18239         (struct ira_object_iterator): New.
18240         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
18241         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
18242         to conflict_vec_p.  All uses changed.
18243         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
18244         Changed to take into account that conflicts are now tracked for
18245         objects.
18246         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
18247         Args changed to accept ira_object_t.  All uses changed.
18248         (allocnos_conflict_p): New static function.
18249         (collected_conflict_objects): Renamed from collected_allocno_objects;
18250         now a vector of ira_object_t.  All uses changed.
18251         (build_conflict_bit_table): Changed to take into account that
18252         conflicts are now tracked for objects.
18253         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
18254         (print_allocno_conflicts, ira_build_conflicts): Likewise.
18255         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
18256         setup_allocno_left_conflicts_size, allocno_reload_assign,
18257         fast_allocation): Likewise.
18258         * ira-lives.c (make_hard_regno_born, make_allocno_born)
18259         process_single_reg_class_operands, process_bb_node_lives): Likewise.
18260         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
18261         Likewise.
18262         * ira-build.c (ira_objects_num): New variable.
18263         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
18264         contains a vector of ira_object_t; all uses changed.
18265         (ira_object_id_map_vec): Corresponding change.
18266         (object_pool): New static variable.
18267         (initiate_allocnos): Initialize it.
18268         (finish_allocnos): Free it.
18269         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
18270         New functions.
18271         (ira_create_allocno): Don't set members that were removed.
18272         (ira_set_allocno_cover_class): Don't change conflict hard regs.
18273         (merge_hard_reg_conflicts): Changed to take into account that
18274         conflicts are now tracked for objects.
18275         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
18276         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
18277         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
18278         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
18279         setup_min_max_conflict_allocno_ids, ):  Likewise.
18280         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
18281         to ira_object_t; all callers changed.
18282         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
18283         to ira_object_t, all callers changed.
18284         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
18285         to ira_object_t, all callers changed.
18286         (conflict_check, curr_conflict_check_tick): Renamed from
18287         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
18288         changed.
18289         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
18290         arg changed to ira_object_t, all callers changed.
18291         (create_cap_allocno): Call ira_create_allocno_object.
18292         (finish_allocno): Free the corresponding object.
18293         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
18294         callers changed.  Adjusted for dealing with objects.
18295         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
18296         dealing with objects.
18297         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
18298
18299         * ira-int.h (struct live_range): Rename allocno member to object
18300         and change type to ira_object_t.
18301         (struct ira_object): New member live_ranges.
18302         (struct ira_allocno): Remove member live_ranges.
18303         (ALLOCNO_LIVE_RANGES): Remove.
18304         (OBJECT_LIVE_RANGES): New macro.
18305         (ira_create_live_range, ira_copy_live_range_list,
18306         ira_merge_live_range_list, ira_live_ranges_intersect_p,
18307         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
18308         * ira-build.c (ira_create_object): Initialize live ranges here.
18309         (ira_create_allocno): Not here.
18310         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
18311         changed to ira_object_t, all callers changed.
18312         (copy_live_range): Rename from copy_allocno_live_range, all callers
18313         changed.
18314         (ira_copy_live_range_list): Rename from
18315         ira_copy_allocno_live_range_list, all callers changed.
18316         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
18317         all callers changed.
18318         (ira_live_ranges_intersect_p): Rename from
18319         ira_allocno_live_ranges_intersect_p, all callers changed.
18320         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
18321         callers changed.
18322         (ira_finish_live_range_list): Rename from
18323         ira_finish_allocno_live_range_list, all callers changed.
18324         (change_object_in_range_list): Rename from change_allocno_in_range_list,
18325         last arg changed to ira_object_t, all callers changed.
18326         (finish_allocno): Changed to expect live ranges in the allocno's object.
18327         (move_allocno_live_ranges, copy_allocno_live_ranges,
18328         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
18329         ira_flattening, ira_build): Likewise.
18330         * ira-color.c (allocnos_have_intersected_live_ranges_p,
18331         slot_coalesced_allocno_live_ranges_intersect,
18332         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
18333         * ira-conflicts.c (build_conflict_bit_table): Likewise.
18334         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
18335         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
18336         make_allocno_dead, create_start_finish_chains,
18337         remove_some_program_points_and_update_live_ranges,
18338         ira_debug_live_range_list): Likewise.
18339
18340         * ira-int.h (ira_object_conflict_iterator): Rename from
18341         ira_allocno_conflict_iterator.
18342         (ira_object_conflict_iter_init): Rename from
18343         ira_allocno_conflict_iter_init, second arg changed to
18344         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
18345         FOR_EACH_ALLOCNO_CONFLICT.
18346         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
18347         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
18348         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
18349         * ira-conflicts.c (print_allocno_conflicts): Likewise.
18350
18351 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
18352
18353         PR other/44874
18354         * tree-dump.c (dump_options): Add enumerate_locals entry.
18355         Add TDF_NOID exclusion to all entry.
18356         * tree-dump.h (dump_enumerated_decls): Declare.
18357         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
18358         Don't display type uid.
18359         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
18360         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
18361         * tree-ssa-live.c: Include gimple.h.
18362         (numbered_tree_d): New struct.
18363         (numbered_tree): New typedef.
18364         (DEF_VEC_O (numbered_tree): New.
18365         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
18366         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
18367         (dump_enumerated_decls): Likewise.
18368         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
18369         debug info and flag_dump_final_insns, call dump_enumerated_decls.
18370         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
18371         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
18372
18373 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
18374
18375         * expmed.h (MAX_BITS_PER_WORD): Move to...
18376         * defaults.h (MAX_BITS_PER_WORD): ...here.
18377
18378 2010-07-13  DJ Delorie  <dj@redhat.com>
18379
18380         * config/h8300/h8300.c (h8300_init_once): Default to
18381         -fstrict_volatile_bitfields.
18382
18383         * config/sh/sh.c (sh_override_options): Default to
18384         -fstrict_volatile_bitfields.
18385
18386         * config/rx/rx.c (rx_option_override): New.
18387
18388         * config/m32c/m32c.c (m32c_override_options): Default to
18389         -fstrict_volatile_bitfields.
18390
18391 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
18392
18393         * tree.h (build_function_call_expr): Delete.
18394         (build_call_expr_loc_array): New function.
18395         (build_call_expr_loc_vec): New function.
18396         * tree-flow.h (struct omp_region): Change type of ws_args field
18397         to a VEC.
18398         * builtins.c (build_function_call_expr): Delete.
18399         (build_call_expr_loc_array): New function.
18400         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
18401         (build_call_expr): Likewise.
18402         (build_call_expr_loc_vec): New function.
18403         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
18404         build_function_call_expr.
18405         * expr.c (emutls_var_address): Likewise.
18406         * varasm.c (emutls_common_1): Likewise.
18407         * omp-low.c (expand_omp_atomic_mutex): Likewise.
18408         (expand_omp_taskreg): Adjust for new type of region->ws_args.
18409         (get_ws_args_for): Return a VEC instead of a tree.
18410         (expand_parallel_call): Call build_call_expr_loc_vec instead of
18411         build_function_call_expr.
18412         * stor-layout.c (self_referential_size): Likewise.
18413
18414 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
18415
18416         PR testsuite/44701
18417         * recog.c (constrain_operands): Allow side-effects in memory
18418         operands if either < or > constraint is used, rather than if
18419         both < and > is used.
18420
18421 2010-07-13  Richard Guenther  <rguenther@suse.de>
18422
18423         PR middle-end/44911
18424         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
18425         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
18426         without name.
18427
18428 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
18429
18430         PR target/44761
18431         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
18432         to variable emited.
18433         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
18434         * config/sh/sh.md (symGOT_load): Likewise.
18435         (symDTPOFF2reg): Likewise.
18436         (symTPOFF2reg): Likewise.
18437
18438 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18439
18440         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
18441         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
18442
18443 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18444
18445         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
18446         explanation.
18447         Find ucontext_t * on Solaris 11.
18448         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
18449         Handle new Solaris 11 __sighndlr patterns.
18450
18451 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
18452
18453         PR debug/44901
18454         * vec.h (VEC_block_remove): Fix comment.
18455         * tree-ssa-live.c (remove_unused_locals): Don't use
18456         VEC_unordered_remove on local_decls, instead replace a single
18457         vector element in each iteration if at least one element had
18458         to be removed and VEC_truncate at the end.
18459         * omp-low.c (expand_omp_taskreg): Likewise.
18460
18461 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18462
18463         * c-decl.c (finish_function): Fix typo in comment.
18464
18465 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
18466
18467         PR bootstrap/44921
18468         * postreload.c (move2add_use_add3_insn): Silence gcc warning
18469         on min_regno.
18470
18471 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
18472
18473         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
18474         (simplify_stmt_using_ranges): Use it.
18475
18476 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18477
18478         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
18479         member.  Do not mark as GTY(()).
18480         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
18481         (spu_builtin_decls): New static variable.
18482         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
18483         (spu_init_builtins): Likewise.
18484         (spu_builtin_mul_widen_even): Likewise.
18485         (spu_builtin_mul_widen_odd): Likewise.
18486         (spu_builtin_mask_for_load): Likewise.
18487         (spu_builtin_vec_perm): Likewise.
18488         * config/spu/spu-c.c: Include "target.h".
18489         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
18490         of using spu_builtins[].fndecl.
18491
18492 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18493
18494         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
18495         imply -minterlink-mips16.
18496
18497 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18498
18499         * config/mips/mips.h (mips16_globals): Declare.
18500         (SWITCHABLE_TARGET): Define.
18501         * config/mips/mips.c: Include target-globals.h.
18502         (mips16_globals): New variable.
18503         (mips_set_mips16_mode): Use save_target_globals and
18504         restore_target_globals instead of target_reinit.
18505
18506 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18507
18508         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
18509         to say that the function can be called more than once.
18510         * target-globals.c (save_target_globals): Call init_reg_sets.
18511
18512 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18513
18514         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
18515         * bb-reorder.h: New file.
18516         * bb-reorder.c (default_target_bb_reorder): New variable.
18517         (this_target_bb_reorder): New conditional variable.
18518         (uncond_jump_length): Redefine as a macro.
18519         * target-globals.h (this_target_bb_reorder): Declare.
18520         (target_globals): Add a bb_reorder field.
18521         (restore_target_globals): Copy the bb_reorder field to
18522         this_target_bb-reorder.
18523         * target-globals.c: Include bb-reorder.h.
18524         (default_target_globals): Initialize the bb_reorder field.
18525         (save_target_globals): Likewise.
18526
18527 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18528
18529         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
18530         * gcse.h: New file.
18531         * gcse.c: Include gcse.h.
18532         (default_target_gcse): New variable.
18533         (this_target_gcse): New conditional variable.
18534         (can_copy): Redefine as a macro.
18535         (can_copy_init_p): New macro.
18536         (can_copy_p): Remove can_copy_init_p.
18537         * target-globals.h (this_target_gcse): Declare.
18538         (target_globals): Add a gcse field.
18539         (restore_target_globals): Copy the gcse field to this_target_gcse.
18540         * target-globals.c: Include gcse.h.
18541         (default_target_globals): Initialize the gcse field.
18542         (save_target_globals): Likewise.
18543
18544 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18545
18546         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
18547         and x_ira_prohibited_mode_move_regs_initialized_p.
18548         (ira_prohibited_mode_move_regs): Redefine as a macro.
18549         * ira.c (ira_prohibited_mode_move_regs): Delete.
18550         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
18551
18552 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18553
18554         * reload.h (target_reload): Add x_cached_reg_save_code and
18555         x_cached_reg_restore_code.
18556         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
18557         Redefine as macros.
18558
18559 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18560
18561         * Makefile.in (target-globals.o): Depend on builtins.h.
18562         * builtins.h: New file.
18563         * builtins.c: Include builtins.h.
18564         (default_target_builtins): New variable.
18565         (this_target_builtins): New conditional variable.
18566         (apply_args_mode, apply_result_mode): Redefine as macros.
18567         * target-globals.h (this_target_builtins): Declare.
18568         (target_globals): Add a builtins field.
18569         (restore_target_globals): Copy the builtins field to
18570         this_target_builtins.
18571         * target-globals.c: Include builtins.h.
18572         (default_target_globals): Initialize the builtins field.
18573         (save_target_globals): Likewise.
18574
18575 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18576
18577         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
18578         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
18579         from expmed.c.
18580         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
18581         (alg_hash, alg_hash_used_p): New macros.
18582         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
18583         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
18584         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
18585
18586 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18587
18588         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
18589         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
18590         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
18591         (this_op_costs, costs_classes): Redefine as macros.
18592         (record_reg_classes): Don't take op_costs as a parameter.
18593         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
18594         (scan_one_insn): Update call to record_operand_costs.
18595
18596 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18597
18598         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
18599         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
18600         (target_ira_int): New structure.
18601         (default_target_ira_int): Declare.
18602         (this_target_ira_int): Declare as a variable or define as a macro.
18603         (ira_reg_mode_hard_regset, ira_register_move_cost)
18604         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
18605         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
18606         (prohibited_class_mode_regs, ira_important_classes_num)
18607         (ira_important_classes, ira_reg_class_intersect)
18608         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
18609         (ira_reg_class_union): Redefine as macros.
18610         * ira.h (target_ira): New structure.
18611         (default_target_ira): Declare.
18612         (this_target_ira): Declare as a variable or define as a macro.
18613         (ira_available_class_regs, ira_hard_regno_cover_class)
18614         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
18615         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
18616         (ira_class_hard_regs_num): Redefine as macros.
18617         * ira.c (default_target_ira, default_target_ira_int): New variables.
18618         (this_target_ira, this_target_ira_int): New conditional variables.
18619         (ira_reg_mode_hard_regset, ira_memory_move_cost)
18620         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
18621         (ira_class_subset_p): Delete.
18622         (no_unit_alloc_regs): Redefine as a macro.
18623         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
18624         (ira_class_hard_regs_num, ira_class_hard_reg_index)
18625         (ira_available_class_regs): Delete.
18626         (alloc_reg_class_subclasses): Redefine as a macro.
18627         (ira_reg_class_cover_size, ira_reg_class_cover)
18628         (ira_important_classes_num, ira_important_classes)
18629         (ira_important_class_nums, ira_class_translate): Delete.
18630         (cover_class_order): Document the variable's lifetime.
18631         (reorder_important_classes): Don't set ira_important_class_nums.
18632         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
18633         (ira_reg_class_super_classes, ira_reg_class_union)
18634         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
18635         Delete.
18636         (setup_reg_class_nregs): Don't set ira_max_regs.
18637         (prohibited_class_mode_regs): Delete.
18638         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
18639         (target_globals): Add ira and ira_int fields.
18640         (restore_target_globals): Copy the ira field to this_target_ira
18641         and the ira_int field to this_target_ira_int.
18642         * target-globals.c: Include ira-int.h.
18643         (default_target_globals): Initialize the ira and ira_int fields.
18644         (save_target_globals): Likewise.
18645
18646 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18647
18648         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
18649         * cfgloop.h (target_cfgloop): New structure.
18650         (default_target_cfgloop): Declare.
18651         (this_target_cfgloop): Declare as a variable or define as a macro.
18652         (target_avail_regs, target_clobbered_regs, target_res_regs)
18653         (target_reg_cost, target_spill_cost): Redefine as macros.
18654         * cfgloopanal.c (default_target_cfgloop): New variable.
18655         (this_target_cfgloop): New conditional variable.
18656         (target_avail_regs, target_clobbered_regs, target_res_regs)
18657         (target_reg_cost, target_spill_cost): Delete.
18658         * target-globals.h (this_target_cfgloop): Declare.
18659         (target_globals): Add a cfgloop field.
18660         (restore_target_globals): Copy the cfgloop field to
18661         this_target_cfgloop.
18662         * target-globals.c: Include cfgloop.h.
18663         (default_target_globals): Initialize the cfgloop field.
18664         (save_target_globals): Likewise.
18665
18666 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18667
18668         * regs.h (target_regs): Add x_direct_load, x_direct_store and
18669         x_float_extend_from_mem.
18670         (direct_load, direct_store, float_extend_from_mem): New macros.
18671         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
18672
18673 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18674
18675         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
18676         (target-globals.o): Depend on $(LIBFUNCS_H).
18677         * libfuncs.h: Include hashtab.h.
18678         (libfunc_entry): Moved from optabs.c.
18679         (target_libfuncs): New structure.
18680         (default_target_libfuncs): Declare.
18681         (this_target_libfuncs): Declare as a variable or define as a macro.
18682         (libfunc_table): Redefine as a macro.
18683         * optabs.c (default_target_libfuncs): New variable.
18684         (this_target_libfuncs): New conditional variable.
18685         (libfunc_table): Delete.
18686         (libfunc_entry): Moved to optabs.h.
18687         (libfunc_hash): Redefine as a macro.
18688         (hash_libfunc, eq_libfunc): Fix comments.
18689         (init_optabs): Use libfunc_hash to detect cases where the function
18690         has already been called.  Clear the hash table instead of
18691         recreating it.
18692         * target-globals.h (this_target_libfuncs): Declare.
18693         (target_globals): Add a libfuncs field.
18694         (restore_target_globals): Copy the libfuncs field to
18695         this_target_libfuncs.
18696         * target-globals.c: Include libfuncs.h.
18697         (default_target_globals): Initialize the libfuncs field.
18698         (save_target_globals): Likewise.
18699
18700 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18701
18702         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
18703         in all dependency lists.
18704
18705 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18706
18707         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
18708         * optabs.h (target_optabs): New structure.
18709         (default_target_optabs): Declare.
18710         (this_target_optabs): Declare as a variable or define as a macro.
18711         (optab_table, convert_optab_table, direct_optab_table): Redefine
18712         as macros.
18713         * optabs.c (default_target_optabs): New variable.
18714         (this_target_optabs): New conditional variable.
18715         (optab_table, convert_optab_table, direct_optab_table): Delete.
18716         * target-globals.h (this_target_optabs): Declare.
18717         (target_globals): Add a optabs field.
18718         (restore_target_globals): Copy the optabs field to
18719         this_target_optabs.
18720         * target-globals.c: Include expr.h and optabs.h.
18721         (default_target_globals): Initialize the optabs field.
18722         (save_target_globals): Likewise.
18723
18724 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18725
18726         * flags.h (target_flagstate): Add x_flag_excess_precision.
18727         (flag_excess_precision): Redefine as a macro.
18728         * toplev.c (flag_excess_precision): Delete.
18729
18730 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18731
18732         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
18733         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
18734         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
18735         (no_caller_save_reg_set): Redefine as a macro.
18736         * reload.h (target_reload): Add x_caller_save_initialized_p and
18737         x_regno_save_mode.
18738         (caller_save_initialized_p): Redefine as a macro.
18739         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
18740         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
18741         (regno_save_mode): Redefine as a macro.
18742
18743 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18744
18745         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
18746         * expmed.h: New file.
18747         * expmed.c (default_target_costs): New variable.
18748         (this_target_costs): New conditional variable.
18749         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
18750         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
18751         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
18752         * target-globals.h (this_target_expmed): Declare.
18753         (target_globals): Add a expmed field.
18754         (restore_target_globals): Copy the expmed field to
18755         this_target_expmed.
18756         * target-globals.c: Include expmed.h.
18757         (default_target_globals): Initialize the expmed field.
18758         (save_target_globals): Likewise.
18759
18760 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18761
18762         * Makefile.in (target-globals.o): Depend on reload.h.
18763         * reload.h (target_reload): New structure.
18764         (default_target_reload): Declare.
18765         (this_target_reload): Declare as a variable or define as a macro.
18766         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
18767         * reload1.c (default_target_reload): New variable
18768         (this_target_reload): New conditional variable.
18769         (indirect_symref_ok, double_reg_address_ok): Delete.
18770         (spill_indirect_levels): Redefine as a macro.
18771         * target-globals.h (this_target_reload): Declare.
18772         (target_globals): Add a reload field.
18773         (restore_target_globals): Copy the reload field to
18774         this_target_reload.
18775         * target-globals.c: Include hard-reg-set.h.
18776         (default_target_globals): Initialize the reload field.
18777         (save_target_globals): Likewise.
18778
18779 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18780
18781         * rtl.h (target_rtl): Add x_static_reg_base_value.
18782         * alias.c (static_reg_base_value): Redefine as a macro.
18783
18784 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18785
18786         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
18787         (GTFILES): Remove reginfo.c.
18788         * rtl.h (target_rtl): Add x_top_of_stack.
18789         (top_of_stack): New macro.
18790         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
18791         (top_of_stack): Delete.
18792
18793 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18794
18795         * regs.h (target_regs): Add x_hard_regs_of_mode,
18796         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
18797         x_may_move_out_cost and x_last_mode_for_init_move_cost.
18798         (have_regs_of_mode, contains_reg_of_mode, move_cost)
18799         (may_move_in_cost, may_move_out_cost): Redefine as macros.
18800         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
18801         (may_move_in_cost, may_move_out_cost): Delete.
18802         (last_mode_for_init_move_cost): Redefine as a macro.
18803
18804 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18805
18806         * hard-reg-set.h (target_hard_regs): New structure.
18807         (default_target_hard_regs): Declare.
18808         (this_target_hard_regs): Declare as a variable or define as a macro.
18809         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
18810         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
18811         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
18812         (reg_class_size, reg_class_subclasses, reg_class_subunion)
18813         (reg_class_superunion, reg_names): Redefine as macros.
18814         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
18815         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
18816         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
18817         (reg_class_contents, reg_class_size, reg_class_subclasses)
18818         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
18819         (default_target_hard_regs): New variable
18820         (this_target_hard_regs, initial_call_really_used_regs)
18821         (initial_reg_alloc_order): New conditional variables.
18822         (initial_reg_names): New variable.
18823         (init_reg_sets): Assert that initial_call_really_used_regs,
18824         initial_reg_alloc_order and initial_reg_names
18825         are all the same size as their variable counterparts.  Use them to
18826         initialize those counterparts.
18827         * target-globals.h (this_target_hard_regs): Declare.
18828         (target_globals): Add a hard_regs field.
18829         (restore_target_globals): Copy the hard_regs field to
18830         this_target_hard_regs.
18831         * target-globals.c: Include hard-reg-set.h.
18832         (default_target_globals): Initialize the hard_regs field.
18833         (save_target_globals): Likewise.
18834
18835 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18836
18837         * Makefile.in (target-globals.o): Depend on $(RTL_H).
18838         * rtl.h (target_rtl): New structure.
18839         (default_target_rtl): Declare.
18840         (this_target_rtl): Declare as a variable or define as a macro.
18841         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
18842         Redefine as macros.
18843         * emit-rtl.c (default_target_rtl): New variable.
18844         (this_target_rtl): New conditional variable.
18845         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
18846         (return_address_pointer_rtx): Delete.
18847         (initial_regno_reg_rtx): New macro.
18848         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
18849         (init_emit_regs): Likewise.
18850         * target-globals.h (this_target_rtl): Declare.
18851         (target_globals): Add a rtl field.
18852         (restore_target_globals): Copy the rtl field to this_target_rtl.
18853         * target-globals.c: Include rtl.h.
18854         (default_target_globals): Initialize the rtl field.
18855         (save_target_globals): Likewise.
18856
18857 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18858
18859         * Makefile.in (target-globals.o): Depend on $(REGS_H).
18860         * regs.h (target_reg_modes): New structure.
18861         (default_target_reg_modes): Declare.
18862         (this_target_reg_modes): Declare as a variable or define as a macro.
18863         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
18864         * reginfo.c (default_target_reg_modes): New variable.
18865         (this_target_reg_modes): New conditional variable.
18866         (hard_regno_nregs, reg_raw_mode): Delete.
18867         * target-globals.h (this_target_regs): Declare.
18868         (target_globals): Add a regs field.
18869         (restore_target_globals): Copy the regs field to this_target_regs.
18870         * target-globals.c: Include regs.h.
18871         (default_target_globals): Initialize the regs field.
18872         (save_target_globals): Likewise.
18873
18874 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18875
18876         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
18877         * doc/tm.texi: Regenerate.
18878         * Makefile.in (OBJS-common): Add target-globals.o.
18879         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
18880         and target-globals.h.
18881         (target-globals.o): New rule.
18882         (GTFILES): Include $(srcdir)/target-globals.h.
18883         * defaults.h (SWITCHABLE_TARGET): Define.
18884         * gengtype.c (open_base_files): Add target-globals.h to the
18885         list of includes.
18886         * target-globals.h: New file.
18887         * target-globals.c: Likewise.
18888
18889         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
18890         * flags.h (target_flag_state): New structure.
18891         (default_target_flag_state): Declare.
18892         (this_target_flag_state): Declare as a variable or define as a macro.
18893         (align_loops_log): Redefine as a macro.
18894         (align_loops_max_skip, align_jumps_log): Likewise.
18895         (align_jumps_max_skip, align_labels_log): Likewise.
18896         (align_labels_max_skip, align_functions_log): Likewise.
18897         * toplev.c (default_target_flag_state): New variable.
18898         (this_target_flag_state): New conditional variable.
18899         (align_loops_log): Delete.
18900         (align_loops_max_skip, align_jumps_log): Likewise.
18901         (align_jumps_max_skip, align_labels_log): Likewise.
18902         (align_labels_max_skip, align_functions_log): Likewise.
18903         * target-globals.h (this_target_flag_state): Declare.
18904         (target_globals): Add a flag_state field.
18905         (restore_target_globals): Copy the flag_state field to
18906         this_target_flag_state.
18907         * target-globals.c: Include flags.h.
18908         (default_target_globals): Initialize the flag_state field.
18909         (save_target_globals): Likewise.
18910
18911 2010-07-12  Jie Zhang  <jie@codesourcery.com>
18912
18913         * postreload.c (reg_symbol_ref[]): New.
18914         (move2add_use_add2_insn): New.
18915         (move2add_use_add3_insn): New.
18916         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
18917         (move2add_note_store): Likewise.
18918
18919 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
18920
18921         PR rtl-optimization/44752
18922         * genautomata.c (main): Don't emit an empty file even if there
18923         is no automaton.
18924
18925 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18926
18927         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
18928         ix86_solaris_return_in_memory.
18929         * config/i386-protos.h: Reflect this.
18930         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
18931         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
18932         Move ...
18933         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
18934
18935 2010-07-12  Jie Zhang  <jie@codesourcery.com>
18936
18937         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
18938         align the stack when it's going to be saved.
18939
18940 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18941
18942         PR pch/14940
18943         * config/host-solaris.c (mmap_fixed): New function.
18944         (sol_gt_pch_get_address): Use it.
18945         (sol_gt_pch_use_address): Likewise.
18946
18947 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18948
18949         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
18950         pentiumpro on Solaris 8 and 9/x86.
18951         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
18952         Document SSE/SSE2 support.
18953         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
18954
18955 2010-07-12  Andi Kleen  <ak@linux.intel.com>
18956
18957         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
18958         instead of gcc_assert to print better error message for multiple
18959         prevailing defs.
18960
18961 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
18962
18963         * config/i386/i386.c (ix86_asm_output_function_label): Change format
18964         string placeholder from 0x%x to %#x.
18965         (ix86_code_end): Use putc to output '\n'.
18966         (ix86_print_operand) <case ';'>: Use putc to output ';'.
18967
18968 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
18969
18970         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
18971         in directive -export.
18972
18973 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
18974
18975         * reginfo.h (reg_classes_intersect_p): Change arguments type to
18976         reg_class_t.
18977         * rtl.h (reg_classes_intersect_p): Adjust prototype.
18978
18979         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
18980         Remove macros.
18981         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
18982         rs6000_memory_move_cost): Remove
18983         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
18984         TARGET_MEMORY_MOVE_COST): Define.
18985         (rs6000_register_move_cost): Make static. Change arguments type from
18986         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
18987         (rs6000_memory_move_cost): Make static. Change arguments type from
18988         'enum reg_class' to reg_class_t.
18989
18990 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
18991
18992         PR middle-end/42505
18993         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
18994         lookup code into....
18995         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
18996         new functions.
18997         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
18998         * cfgloopanal.c (target_clobbered_regs): Define.
18999         (init_set_costs): Initialize target_clobbered_regs.
19000         (estimate_reg_pressure_cost): Add call_p argument.  When true,
19001         adjust the number of available registers to exclude the
19002         call-clobbered registers.
19003         * cfgloop.h (target_clobbered_regs): Declare.
19004         (estimate_reg_pressure_cost): Adjust declaration.
19005         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
19006         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
19007         (determine_set_costs): Dump target_clobbered_regs.
19008         (loop_body_includes_call): New function.
19009         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
19010         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
19011         call_p flag through.
19012         (best_gain_for_invariant): Likewise.
19013         (find_invariants_to_move): Likewise.
19014         (move_single_loop_invariants): Likewise, using already-computed
19015         has_call field.
19016
19017 2010-07-10  Richard Guenther  <rguenther@suse.de>
19018             Joern Rennecke  <joern.rennecke@embecosm.com>
19019
19020         PR debug/44832
19021         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
19022         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
19023         unless they have DECL_IGNORED_P set.
19024
19025 2010-07-10  Richard Guenther  <rguenther@suse.de>
19026
19027         PR lto/44889
19028         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
19029         helper function.
19030         (gimple_types_compatible_p): Similar to pointed-to
19031         types allow and merge a mix of complete and incomplete aggregate.
19032         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
19033         (iterative_hash_gimple_type): Adjust for that.
19034
19035 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
19036
19037         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
19038
19039 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
19040
19041         PR objc/44140
19042         * config/darwin.c (output_objc_section_asm_op): Save and restore
19043         section when outputting ObjC section list.
19044
19045 2010-07-09  Jan Hubicka  <jh@suse.cz>
19046
19047         * lto-streamer-out.c (produce_symtab): Do not write alias
19048         cgraph/varpool nodes.
19049
19050 2010-07-09  Jan Hubicka  <jh@suse.cz>
19051
19052         * tree-inline.c (declare_return_variable): Fix ICE while
19053         inlining DECL_BY_VALUE function not in SSA form
19054
19055 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
19056
19057         PR tree-optimization/44576
19058         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
19059         New.  Pull out from is_loop_prefetching_profitable to implement
19060         the trip count to ahead ratio heuristic.
19061         (mem_ref_count_reasonable_p): New.  Pull out from
19062         is_loop_prefetching_profitable to implement the instruction to
19063         memory reference ratio heuristic.  Also consider not reasonable if
19064         the memory reference count is above a threshold (to avoid
19065         explosive compilation time.
19066         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
19067         is_loop_prefetching_profitable to implement the instruction to
19068         prefetch ratio heuristic.
19069         (is_loop_prefetching_profitable): Removed.
19070         (loop_prefetch_arrays): Distribute the cost analysis across the
19071         function to allow early exit of the prefetch analysis.
19072         is_loop_prefetching_profitable is splitted into three functions,
19073         with each one called as early as possible.
19074         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
19075         number of memory references in a loop is considered too many.
19076
19077 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
19078
19079         * reload.c (find_reloads): Don't clear badop if we have a winreg
19080         alternative, but not win, and the class only has fixed regs.
19081         * hard-reg-set.h (class_only_fixed_regs): Declare.
19082         * reginfo.c (class_only_fixed_regs): New array.
19083         (init_reg_sets_1): Initialize it.
19084         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
19085         discourage alternatives using the stack pointer.
19086
19087         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
19088
19089         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
19090
19091         * config/arm/arm.md (cbranchqi4): Fix array size.
19092         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
19093         calculating length.
19094
19095 2010-07-09  Richard Guenther  <rguenther@suse.de>
19096
19097         * gimple.c (struct type_fixup_s): New struct and VEC type.
19098         (gimple_register_type_fixups): New static global.
19099         (gimple_queue_type_fixup): New function.
19100         (gimple_types_compatible_p): Queue type fixups instead of
19101         applying them here.
19102         (gimple_register_type): Apply queued fixups for the
19103         canonical type.  Empty the type fixup queue.
19104
19105 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19106
19107         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
19108         * configure: Regenerate.
19109         * config.in: Ditto.
19110
19111 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19112             Denys Vlasenko  <dvlasenk@redhat.com>
19113             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19114
19115         PR tree-optimization/28632
19116         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
19117         (extract_range_from_binary_expr): Further optimize
19118         BIT_AND_EXPR and BIT_IOR_EXPR.
19119
19120 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
19121
19122         * tree-if-conv.c (fold_or_predicates): New.
19123         (add_to_predicate_list): Call it.
19124
19125 2010-07-09  Richard Guenther  <rguenther@suse.de>
19126
19127         PR middle-end/44890
19128         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
19129         if base is a pointer.
19130         * tree-cfg.c (verify_expr): Update MEM_REF checking.
19131
19132 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
19133
19134         PR target/44877
19135         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
19136         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
19137         builtin mask for load/store builtins.
19138
19139 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19140
19141         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
19142         for "lock addl".
19143         * configure: Regenerate.
19144         * config/i386/i386.c (ix86_print_operand) <case ';'>:
19145         Remove TARGET_MACHO.
19146
19147 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
19148
19149         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
19150         default ISA flags.
19151         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
19152
19153 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
19154
19155         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
19156
19157 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
19158
19159         * config/picochip/picochip.md (commsTestPort): Emit more
19160         efficient sequence for tstport instruction.
19161
19162 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19163
19164         * config/i386/i386.c (ix86_veclib_handler): Make static.
19165
19166 2010-07-09  Richard Guenther  <rguenther@suse.de>
19167
19168         PR tree-optimization/44852
19169         * tree-ssa-alias.c: Include toplev.h for exact_log2.
19170         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
19171         in MEM_REF.
19172         (indirect_refs_may_alias_p): Likewise.
19173         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
19174
19175 2010-07-09  Richard Guenther  <rguenther@suse.de>
19176
19177         PR tree-optimization/44882
19178         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
19179         sets do conflict.
19180         (vectorizable_load): Likewise.
19181
19182 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
19183
19184         PR target/40657
19185         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
19186         All callers changed.
19187         Handle the case when we're called for the epilogue.
19188         (thumb_unexpanded_epilogue): Use it.
19189         (thumb1_expand_epilogue): Likewise.
19190
19191 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19192
19193         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
19194         both ranges are range_int_cst_p with non-negative minimum,
19195         try harder to derive smaller range.
19196
19197 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19198
19199         * genrecog.c: Include diagnostic-core.h before toplev.h.
19200         * genoutput.c: Likewise.
19201         * genextract.c: Likewise.
19202         * genautomata.c: Likewise.
19203         * genemit.c: Likewise.
19204         * genpeep.c: Likewise.
19205         * genattrtab.c: Likewise.
19206         * genconditions.c: Likewise.
19207         * genpreds.c: Likewise.
19208
19209 2010-07-08  Andi Kleen  <ak@linux.intel.com>
19210
19211         * lto-section-in.c (lto_section_name): Add missing comma.
19212
19213 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
19214
19215         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
19216         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
19217         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
19218         (ia64_override_options): Rename to...
19219         (ia64_option_override): ... this one. Make static.
19220
19221 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19222
19223         PR middle-end/44843
19224         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
19225         pointed-to type of the offset in a MEM_REF to compute the alignment.
19226
19227 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
19228
19229         * final.c (final_scan_insn): Replace
19230         TARGET_UNWIND_INFO macro check by unwind_emit
19231         hook NULL check.
19232         * targhooks.c (default_unwind_emit): Removed.
19233         * targhooks.h (default_unwind_emit): Likewise.
19234         * target.def (unwind_emit): Set default value to NULL.
19235
19236         * config/i386/i386-protos.h (ix86_asm_output_function_label):
19237         New prototype.
19238         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
19239         for NULL fntype argument and allow 64-bit targets.
19240         (ix86_asm_output_function_label): New function.
19241         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
19242         (ix86_handle_fndecl_attribute): Likewise.
19243         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
19244         * doc/doc/tm.texi: Regenerated.
19245         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
19246         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
19247         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
19248         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
19249         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
19250         * config/elfos.h: Likewise.
19251         * config/i386/cygming.h: Likewise.
19252         * config/netbsd-aout.h: Likewise.
19253         * config/openbsd.h: Likewise.
19254         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
19255         by ix86_asm_output_function_label function call.
19256         * varasm.c (assemble_start_function): Use
19257         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
19258
19259 2010-07-08  Jan Hubicka  <jh@suse.cz>
19260
19261         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
19262         New function.
19263         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
19264         Declare.
19265         * ipa-cp.c (ipcp_estimate_growth): Use it.
19266         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
19267         Likewise.
19268
19269 2010-07-08  Jan Hubicka  <jh@suse.cz>
19270
19271         * tree-inline.c (declare_return_variable): Allocate annotation for new
19272         temporary.
19273
19274 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
19275
19276         PR tree-optimization/44710
19277         * tree-if-conv.c (parse_predicate): New.
19278         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
19279         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
19280
19281 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
19282
19283         * common.opt (ftree-loop-if-convert): New flag.
19284         * doc/invoke.texi (ftree-loop-if-convert): Documented.
19285         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
19286         when flag_tree_loop_if_convert is set.
19287
19288 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
19289
19290         * config/i386/i386.c: Use short syntax for function calls
19291         through function pointers.
19292         * config/i386/i386.md: Ditto.
19293
19294 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19295
19296         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
19297
19298 2010-07-08  Richard Guenther  <rguenther@suse.de>
19299
19300         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
19301         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
19302
19303 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
19304
19305         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
19306         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
19307         (loc_list_from_tree): Likewise.
19308         (output_loc_operands): Handle outputting DW_OP_const[48]u
19309         with loc->dtprel set.
19310         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
19311
19312 2010-07-08  Jan Hubicka  <jh@suse.cz>
19313
19314         * ipa.c: Include pointer-set.h
19315         (cgraph_externally_visible_p): New attribute ALIASED;
19316         when in LTO, hidden symbols are local unless they are aliased.
19317         (function_and_variable_visibility): Compute aliased nodes;
19318         handle LTO and hidden symbol on functions and vars.
19319         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
19320         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
19321
19322 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19323
19324         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
19325         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19326         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19327         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19328         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19329         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
19330         (ix86_gen_probe_stack_range): Likewise.
19331         (override_options): Set them.
19332         (ix86_target_stack_probe): New function.
19333         (ix86_compute_frame_layout): Force use of push instructions to
19334         save registers if stack checking with probes is enabled.
19335         (get_scratch_register_on_entry): New function.
19336         (release_scratch_register_on_entry): Likewise.
19337         (ix86_adjust_stack_and_probe): Likewise.
19338         (output_adjust_stack_and_probe): Likewise.
19339         (ix86_emit_probe_stack_range): Likewise.
19340         (output_probe_stack_range): Likewise.
19341         (ix86_expand_prologue): Emit stack checking code if static built-in
19342         stack checking is enabled.
19343         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
19344         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
19345         (output_adjust_stack_and_probe): Likewise.
19346         (output_probe_stack_range): Likewise.
19347         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
19348         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
19349         TARGET_STACK_PROBE.
19350         (allocate_stack_worker_64): Likewise.
19351         (allocate_stack): Likewise.
19352         (adjust_stack_and_probe): New insn.
19353         (probe_stack_range): Likewise.
19354
19355 2010-07-08  Richard Guenther  <rguenther@suse.de>
19356
19357         PR tree-optimization/44831
19358         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
19359         a MEM_REF preserving TBAA info of the original dereference.
19360         Dereference the original pointer if the address is not invariant.
19361         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
19362         at least one invariant address that we are going to dereference.
19363
19364 2010-07-08  Richard Guenther  <rguenther@suse.de>
19365
19366         PR tree-optimization/44861
19367         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
19368         information when building MEM_REFs.
19369         (vectorizable_load): Likewise.
19370         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
19371
19372 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19373
19374         * config/sol2-c.c: Do not include diagnostic-core.h.
19375
19376 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19377
19378         PR bootstrap/44768
19379         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
19380         with respect to current_function_decl. Pass decl of the function.
19381         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
19382         * ipa-inline.c (compute_inline_parameters): Pass decl to
19383         estimated_stack_frame_size.
19384
19385 2010-07-08  Richard Guenther  <rguenther@suse.de>
19386
19387         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
19388         New function.
19389         (valueize_refs): Call it.
19390
19391 2010-07-08  Richard Guenther  <rguenther@suse.de>
19392
19393         PR rtl-optimization/44838
19394         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
19395         SSA form do not use pointer equivalence.
19396
19397 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19398
19399         * dwarf2out.c (AT_linkage_name): Delete.
19400         (add_linkage_attr): New function.
19401         (add_linkage_name): Call it to emit the linkage attribute.
19402         (dwarf2out_finish): Likewise.
19403         (move_linkage_attr): Explicitly accept both attribute variants.
19404
19405 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19406
19407         * toplev.h: Do not include diagnostic-core.h.
19408         Include diagnostic-core.h in every file that includes toplev.h.
19409         * c-tree.h: Do not include toplev.h.
19410         * pretty-print.h: Update comment.
19411         * Makefile.in: Update dependencies.
19412         * alias.c: Include diagnostic-core.h in every file that includes
19413         toplev.h.
19414         * attribs.c: Likewise.
19415         * auto-inc-dec.c: Likewise.
19416         * bb-reorder.c: Likewise.
19417         * bt-load.c: Likewise.
19418         * caller-save.c: Likewise.
19419         * calls.c: Likewise.
19420         * cfg.c: Likewise.
19421         * cfganal.c: Likewise.
19422         * cfgbuild.c: Likewise.
19423         * cfgcleanup.c: Likewise.
19424         * cfghooks.c: Likewise.
19425         * cfgloop.c: Likewise.
19426         * combine.c: Likewise.
19427         * config/alpha/alpha.c: Likewise.
19428         * config/arc/arc.c: Likewise.
19429         * config/arm/arm.c: Likewise.
19430         * config/arm/pe.c: Likewise.
19431         * config/avr/avr.c: Likewise.
19432         * config/bfin/bfin.c: Likewise.
19433         * config/cris/cris.c: Likewise.
19434         * config/crx/crx.c: Likewise.
19435         * config/darwin-c.c: Likewise.
19436         * config/darwin.c: Likewise.
19437         * config/fr30/fr30.c: Likewise.
19438         * config/frv/frv.c: Likewise.
19439         * config/h8300/h8300.c: Likewise.
19440         * config/host-darwin.c: Likewise.
19441         * config/i386/i386.c: Likewise.
19442         * config/i386/netware.c: Likewise.
19443         * config/i386/nwld.c: Likewise.
19444         * config/i386/winnt-cxx.c: Likewise.
19445         * config/i386/winnt-stubs.c: Likewise.
19446         * config/i386/winnt.c: Likewise.
19447         * config/ia64/ia64-c.c: Likewise.
19448         * config/ia64/ia64.c: Likewise.
19449         * config/iq2000/iq2000.c: Likewise.
19450         * config/lm32/lm32.c: Likewise.
19451         * config/m32c/m32c-pragma.c: Likewise.
19452         * config/m32c/m32c.c: Likewise.
19453         * config/m32r/m32r.c: Likewise.
19454         * config/m68hc11/m68hc11.c: Likewise.
19455         * config/m68k/m68k.c: Likewise.
19456         * config/mcore/mcore.c: Likewise.
19457         * config/mep/mep-pragma.c: Likewise.
19458         * config/mep/mep.c: Likewise.
19459         * config/mmix/mmix.c: Likewise.
19460         * config/mn10300/mn10300.c: Likewise.
19461         * config/moxie/moxie.c: Likewise.
19462         * config/pa/pa.c: Likewise.
19463         * config/pdp11/pdp11.c: Likewise.
19464         * config/picochip/picochip.c: Likewise.
19465         * config/rs6000/rs6000-c.c: Likewise.
19466         * config/rs6000/rs6000.c: Likewise.
19467         * config/rx/rx.c: Likewise.
19468         * config/s390/s390.c: Likewise.
19469         * config/score/score.c: Likewise.
19470         * config/score/score3.c: Likewise.
19471         * config/score/score7.c: Likewise.
19472         * config/sh/sh.c: Likewise.
19473         * config/sh/symbian-base.c: Likewise.
19474         * config/sh/symbian-c.c: Likewise.
19475         * config/sh/symbian-cxx.c: Likewise.
19476         * config/sol2-c.c: Likewise.
19477         * config/sol2.c: Likewise.
19478         * config/sparc/sparc.c: Likewise.
19479         * config/spu/spu.c: Likewise.
19480         * config/stormy16/stormy16.c: Likewise.
19481         * config/v850/v850-c.c: Likewise.
19482         * config/v850/v850.c: Likewise.
19483         * config/vax/vax.c: Likewise.
19484         * config/vxworks.c: Likewise.
19485         * config/xtensa/xtensa.c: Likewise.
19486         * convert.c: Likewise.
19487         * cse.c: Likewise.
19488         * cselib.c: Likewise.
19489         * dbgcnt.c: Likewise.
19490         * dbxout.c: Likewise.
19491         * ddg.c: Likewise.
19492         * dominance.c: Likewise.
19493         * emit-rtl.c: Likewise.
19494         * explow.c: Likewise.
19495         * expmed.c: Likewise.
19496         * fixed-value.c: Likewise.
19497         * fold-const.c: Likewise.
19498         * fwprop.c: Likewise.
19499         * gcse.c: Likewise.
19500         * ggc-common.c: Likewise.
19501         * ggc-page.c: Likewise.
19502         * ggc-zone.c: Likewise.
19503         * gimple-low.c: Likewise.
19504         * gimplify.c: Likewise.
19505         * graph.c: Likewise.
19506         * haifa-sched.c: Likewise.
19507         * ifcvt.c: Likewise.
19508         * implicit-zee.c: Likewise.
19509         * integrate.c: Likewise.
19510         * ira-build.c: Likewise.
19511         * ira-color.c: Likewise.
19512         * ira-conflicts.c: Likewise.
19513         * ira-costs.c: Likewise.
19514         * ira-lives.c: Likewise.
19515         * ira.c: Likewise.
19516         * lists.c: Likewise.
19517         * loop-doloop.c: Likewise.
19518         * loop-iv.c: Likewise.
19519         * lto-opts.c: Likewise.
19520         * lto-symtab.c: Likewise.
19521         * main.c: Likewise.
19522         * modulo-sched.c: Likewise.
19523         * optabs.c: Likewise.
19524         * params.c: Likewise.
19525         * plugin.c: Likewise.
19526         * postreload-gcse.c: Likewise.
19527         * postreload.c: Likewise.
19528         * predict.c: Likewise.
19529         * profile.c: Likewise.
19530         * real.c: Likewise.
19531         * regcprop.c: Likewise.
19532         * reginfo.c: Likewise.
19533         * regmove.c: Likewise.
19534         * reorg.c: Likewise.
19535         * resource.c: Likewise.
19536         * rtl.c: Likewise.
19537         * rtlanal.c: Likewise.
19538         * sched-deps.c: Likewise.
19539         * sched-ebb.c: Likewise.
19540         * sched-rgn.c: Likewise.
19541         * sdbout.c: Likewise.
19542         * sel-sched-dump.c: Likewise.
19543         * sel-sched-ir.c: Likewise.
19544         * simplify-rtx.c: Likewise.
19545         * stmt.c: Likewise.
19546         * stor-layout.c: Likewise.
19547         * store-motion.c: Likewise.
19548         * targhooks.c: Likewise.
19549         * tree-cfg.c: Likewise.
19550         * tree-cfgcleanup.c: Likewise.
19551         * tree-dump.c: Likewise.
19552         * tree-eh.c: Likewise.
19553         * tree-inline.c: Likewise.
19554         * tree-nomudflap.c: Likewise.
19555         * tree-object-size.c: Likewise.
19556         * tree-optimize.c: Likewise.
19557         * tree-outof-ssa.c: Likewise.
19558         * tree-phinodes.c: Likewise.
19559         * tree-profile.c: Likewise.
19560         * tree-ssa-ccp.c: Likewise.
19561         * tree-ssa-coalesce.c: Likewise.
19562         * tree-ssa-live.c: Likewise.
19563         * tree-ssa-loop-niter.c: Likewise.
19564         * tree-ssa-loop-prefetch.c: Likewise.
19565         * tree-ssa-loop.c: Likewise.
19566         * tree-ssa-structalias.c: Likewise.
19567         * tree-ssa-uninit.c: Likewise.
19568         * tree-ssa.c: Likewise.
19569         * tree-vect-data-refs.c: Likewise.
19570         * tree-vect-loop-manip.c: Likewise.
19571         * tree-vect-loop.c: Likewise.
19572         * tree-vect-patterns.c: Likewise.
19573         * tree-vect-stmts.c: Likewise.
19574         * tree-vrp.c: Likewise.
19575         * varasm.c: Likewise.
19576         * vec.c: Likewise.
19577         * web.c: Likewise.
19578         * xcoffout.c: Likewise.
19579
19580 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
19581
19582         * gengtype.c (write_field_root): New function.
19583         (write_root): Use it.
19584
19585 2010-07-07  Wei Guozhi  <carrot@google.com>
19586
19587         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
19588         of lowest bits to lshift/compare): Add a missing line.
19589
19590 2010-07-07  Wei Guozhi  <carrot@google.com>
19591
19592         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
19593         of lowest bits to lshift/compare): New.
19594
19595 2010-07-07  Tom Tromey  <tromey@redhat.com>
19596
19597         * doc/tm.texi: Update.
19598         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
19599         Add @hook.
19600         * target.def (want_debug_pub_sections): New hook.
19601         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
19602         * dwarf2out.c (add_pubname_string): Check
19603         targetm.want_debug_pub_sections.
19604         (add_pubname): Likewise.
19605         (add_pubtype): Likewise.
19606
19607 2010-07-07  Jie Zhang  <jie@codesourcery.com>
19608
19609         * genautomata.c (output_automata_list_min_issue_delay_code):
19610         Correctly decompress min_issue_delay.
19611
19612 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
19613
19614         PR rtl-optimization/44404
19615         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
19616         possible, use reg_overlap_mentioned_p instead.
19617
19618 2010-07-07  Duncan Sands  <baldrick@free.fr>
19619
19620         PR middle-end/41355
19621         * tree.c (build_function_type_skip_args): Copy the original type using
19622         build_distinct_type_copy rather than copy_node.
19623
19624 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
19625
19626         PR target/44850
19627         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
19628         revision 161876.
19629         (ix86_expand_prologue): Likewise.
19630         (ix86_handle_fndecl_attribute): Likewise.
19631         (ix86_asm_declare_function_name): Likewise.
19632         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
19633         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
19634         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
19635         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
19636         * doc/extend.texi: Likewise.
19637
19638 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
19639
19640         PR target/44844
19641         * config/i386/i386.md (rdrand<mode>): Changed to expand to
19642         retry if the carry flag isn't valid.
19643         (rdrand<mode>_1): New.
19644
19645 2010-07-07  Richard Guenther  <rguenther@suse.de>
19646
19647         PR middle-end/44790
19648         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
19649         for expanding the constant offset for MEM_REFs.
19650
19651 2010-07-07  Richard Guenther  <rguenther@suse.de>
19652
19653         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
19654         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
19655         * gimple.h (is_gimple_operand): Remove.
19656         * gimple.c (is_gimple_operand): Likewise.
19657         (walk_gimple_op): Fix wi->val_only setting for calls.
19658         * tree-cfg.c (verify_gimple_call): Fix argument validation.
19659         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
19660         invalid gimple calls.
19661
19662 2010-07-06  Jan Hubicka  <jh@suse.cz>
19663
19664         * lto-cgraph.c (output_cgraph): Add missing declaration.
19665
19666 2010-07-06  Jan Hubicka  <jh@suse.cz>
19667
19668         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
19669         partition.
19670
19671 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
19672
19673         * doc/gimple.texi (GIMPLE_DEBUG): Document.
19674         * doc/rtl.texi (Debug Information): New node.
19675         (NOTE_INSN_VAR_LOCATION): Document.
19676         (debug_insn): Likewise.
19677         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
19678
19679 2010-07-07  Jan Hubicka  <jh@suse.cz>
19680
19681         With parts by Richard Guenther.
19682
19683         PR middle-end/44813
19684         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
19685         for functions passed by reference.
19686         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
19687         in memory when passed by reference.
19688         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
19689         beggining.
19690         * ipa-split.c (split_function): Cleanup way return value is passed;
19691         handle SSA DECL_BY_REFERENCE retvals.
19692         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
19693         DECL_BY_REFERENCE is set.
19694         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
19695         find_what_p_points_to): Handle RESULT_DECL.
19696         * tree-inline.c (declare_return_variable): Get new entry_block argument;
19697         when passing by reference ensure that RESULT_DECL is gimple_val.
19698         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
19699         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
19700
19701 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
19702
19703         PR rtl-optimization/44787
19704         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
19705         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
19706
19707 2010-07-06  Jan Hubicka  <jh@suse.cz>
19708
19709         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
19710         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
19711         with body can prevail.
19712         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
19713         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
19714         * cgraph.c (cgraph_get_node_or_alias): New function.
19715         * cgraph.h (cgraph_get_node_or_alias): Declare.
19716
19717 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
19718
19719         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
19720         support.
19721         (ix86_expand_prologue): Likewise.
19722         (ix86_handle_fndecl_attribute): Likewise.
19723         (ix86_asm_declare_function_name): New function for
19724         ASM_DECLARE_FUNCTION_NAME.
19725         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
19726         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
19727         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
19728         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
19729         * doc/extend.texi: Adjust documentation about ms_hook_prologue
19730         attribute.
19731
19732 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
19733
19734         * config/i386/i386.md (immediate_operand): New mode attribute.
19735
19736         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
19737         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
19738         using P mode iterator.
19739         (pro_epilogue_adjust_stack_di_2): Rename from
19740         pro_epilogue_adjust_stack_rex64_2.
19741
19742         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
19743
19744 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
19745
19746         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
19747         through gen_mov_insv_1 function pointer.
19748         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
19749         gen_truncxf<mode>2 through gen_truncxf function pointer.
19750         (remainder<mode>3): Ditto.
19751         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
19752         (allocate_stack): Call gen_allocate_stack_worker_64 or
19753         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
19754         function pointer.
19755         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
19756         function pointer.
19757
19758 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
19759
19760         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
19761         operand constraint instead of <r><i>m.
19762
19763 2010-07-06  Richard Guenther  <rguenther@suse.de>
19764
19765         PR middle-end/44828
19766         * convert.c (convert_to_integer): Watch out for overflowing
19767         MULT_EXPR as well.
19768
19769 2010-07-05  Jan Hubicka  <jh@suse.cz>
19770
19771         * lto-streamer.c (write_symbol_vec): Rename to ...
19772         (write_symbol) ... this one; write only symbol given and when
19773         present in cache. Sanity check that what is defined is present
19774         in cgraph/varpool with body/finalized decl.
19775         (write_symbols_of_kind): Remove.
19776         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
19777         pairs to produce symtab.
19778         (produce_asm_for_decls): Update call of produce_symtab; don't do so
19779         when doing WPA streaming.
19780
19781 2010-07-05  Jan Hubicka  <jh@suse.cz>
19782
19783         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
19784         function is still available to fold into.
19785
19786 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
19787
19788         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
19789         * function.h (struct_function): Change type of local_decls field
19790         to a VEC.
19791         (add_local_decl): New function.
19792         (FOR_EACH_LOCAL_DECL): New macro.
19793         * cfgexpand.c (init_vars_expansion): Adjust for new type of
19794         cfun->local_decls.
19795         (estimated_stack_frame_size): Likewise.
19796         (expand_used_vars): Likewise.
19797         * cgraphbuild.c (build_cgraph_edges): Likewise.
19798         * function.c (instantiate_decls_1): Likewise.
19799         * ipa-struct-reorg.c (build_data_structure): Likewise.
19800         * ipa-type-escape.c (analyze_function): Likewise.
19801         * lto-streamer-in.c (input_function): Likewise.
19802         * lto-streamer-out.c (output_function): Likewise.
19803         * tree-ssa-live.c (remove_unused_locals): Likewise.
19804         * tree.c (free_lang_data_in_decl): Likewise.
19805         (find_decls_types_in_node): Likewise.
19806         * omp-low.c (remove_exit_barrier): Likewise.
19807         (expand_omp_taskreg): Likewise.
19808         (list2chain): Rename to...
19809         (vec2chain): ...this.  Adjust.
19810         * cgraphunit.c (assemble_thunk): Call add_local_decl.
19811         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
19812         * gimple-low.c (record_vars_into): Likewise.
19813         * tree-inline.c (remap_decls): Likewise.
19814         (declare_return_variable): Likewise.
19815         (declare_inline_vars): Likewise.
19816         (copy_forbidden): Adjust for new type of cfun->local_decls.
19817         (add_local_variables): New function.
19818         (expand_call_inline): Call it.
19819         (tree_function_versioning): Likewise.
19820
19821 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
19822
19823         AVX Programming Reference (June, 2010)
19824         * config/i386/cpuid.h (bit_F16C): New.
19825         (bit_RDRND): Likewise.
19826         (bit_FSGSBASE): Likewise.
19827
19828         * config/i386/i386-builtin-types.def: Add
19829         "DEF_FUNCTION_TYPE (UINT16)", function types for
19830         float16 <-> float conversions and
19831         "DEF_FUNCTION_TYPE (VOID, UINT64)".
19832
19833         * config/i386/i386-c.c (ix86_target_macros_internal): Support
19834         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
19835         OPTION_MASK_ISA_F16C.
19836
19837         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
19838         (OPTION_MASK_ISA_RDRND_SET): Likewise.
19839         (OPTION_MASK_ISA_F16C_SET): Likewise.
19840         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
19841         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
19842         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
19843         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
19844         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
19845         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
19846         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
19847         (override_options): Handle them.
19848         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
19849         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
19850         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
19851         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
19852         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
19853         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
19854         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
19855         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
19856         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
19857         (bdesc_args): Likewise.
19858         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
19859         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
19860         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
19861         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
19862         Handle non-memory store.
19863
19864         * config/i386/i386.h (TARGET_FSGSBASE): New.
19865         (TARGET_RDRND): Likewise.
19866         (TARGET_F12C): Likewise.
19867
19868         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
19869         (UNSPEC_VCVTPS2PH): Likewise.
19870         (UNSPECV_RDFSBASE): Likewise.
19871         (UNSPECV_RDGSBASE): Likewise.
19872         (UNSPECV_WRFSBASE): Likewise.
19873         (UNSPECV_WRGSBASE): Likewise.
19874         (UNSPECV_RDRAND): Likewise.
19875         (rdfsbase<mode>): Likewise.
19876         (rdgsbase<mode>): Likewise.
19877         (wrfsbase<mode>): Likewise.
19878         (wrgsbase<mode>): Likewise.
19879         (rdrand<mode>): Likewise.
19880
19881         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
19882
19883         * config/i386/immintrin.h (_rdrand_u16): New.
19884         (_rdrand_u32): Likewise.
19885         (_readfsbase_u32): Likewise.
19886         (_readfsbase_u64): Likewise.
19887         (_readgsbase_u32): Likewise.
19888         (_readgsbase_u64): Likewise.
19889         (_writefsbase_u32): Likewise.
19890         (_writefsbase_u64): Likewise.
19891         (_writegsbase_u32): Likewise.
19892         (_writegsbase_u64): Likewise.
19893         (_rdrand_u64): Likewise.
19894         (_cvtsh_ss): Likewise.
19895         (_mm_cvtph_ps): Likewise.
19896         (_mm256_cvtph_ps): Likewise.
19897         (_cvtss_sh): Likewise.
19898         (_mm_cvtps_ph): Likewise.
19899         (_mm256_cvtps_ph): Likewise.
19900
19901         * config/i386/sse.md (vcvtph2ps): New.
19902         (*vcvtph2ps_load): Likewise.
19903         (vcvtph2ps256): Likewise.
19904         (vcvtps2ph): Likewise.
19905         (*vcvtps2ph): Likewise.
19906         (*vcvtps2ph_store): Likewise.
19907         (vcvtps2ph256): Likewise.
19908
19909         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
19910
19911         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
19912
19913 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
19914
19915         PR bootstrap/44512
19916         * genenums.c (main): Output include of insn-constants.h
19917         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
19918
19919 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
19920
19921         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
19922         (override_options): Initialize it.
19923         (ix86_expand_prologue): Use it.
19924
19925 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
19926
19927         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
19928
19929 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
19930
19931         * double-int.h (fit_double_type): Remove declaration.
19932         * double-int.c (fit_double_type): Remove function.
19933         * tree.h (int_fits_type_p): Adjust prototype.
19934         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
19935         instead of fit_double_type.
19936         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
19937         instead of fit_double_type and build_int_cst_wide.
19938         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
19939         instead of fit_double_type and build_int_cst_wide.
19940         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
19941         of fit_double_type.
19942
19943 2010-07-05  Jan Hubicka  <jh@suse.cz>
19944
19945         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
19946         in_other_partition.
19947         * lto-cgraph.c (referenced_from_other_partition_p,
19948         reachable_from_other_partition_p): Use in_other_partition flags.
19949         (output_node, output_varpool_node): COMDAT nodes always have private
19950         copies and thus are never used from other partition.
19951
19952 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
19953
19954         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
19955         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
19956         * config/ia64/ia64.c Include reload.h.
19957         (ia64_memory_move_cost): New function.
19958         (TARGET_MEMORY_MOVE_COST): Define.
19959         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
19960         memory_move_cost.
19961
19962 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
19963
19964         PR middle-end/42505
19965         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
19966         comments about cost model.
19967         (try_add_cand_for):  Add second strategy for choosing initial set
19968         based on original IVs, controlled by ORIGINALP argument.
19969         (get_initial_solution): Add ORIGINALP argument.
19970         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
19971         (find_optimal_iv_set): Try two different strategies for choosing
19972         the IV set, and return the one with lower cost.
19973
19974 2010-07-05  Richard Guenther  <rguenther@suse.de>
19975
19976         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
19977
19978 2010-07-05  Richard Guenther  <rguenther@suse.de>
19979
19980         * tree.c (reference_alias_ptr_type): New function.
19981         * tree.h (reference_alias_ptr_type): Declare.
19982         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
19983         allow non-TARGET_MEM_REF new refs.
19984         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
19985         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
19986         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
19987         (create_mem_ref): Get alias pointer type.  Adjust calls to
19988         create_mem_ref_raw.
19989         (maybe_fold_tmr): Likewise.
19990         * tree-flow.h (create_mem_ref): Adjust prototype.
19991
19992 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
19993
19994         PR c++/44808
19995         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
19996         *from_p is VAR_DECL.
19997
19998 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
19999
20000         * tree.h (build_call_list): Remove.
20001         * tree.c (build_call_list): Remove.
20002
20003 2010-07-05  Richard Guenther  <rguenther@suse.de>
20004
20005         * double-int.h (double_int_sub): Declare.
20006         * double-int.c (double_int_sub): New function.
20007         * dwarf2out.c (field_byte_offset): Use it.
20008         * fixed-value.c (do_fixed_add): Likewise.
20009         (do_fixed_multiply): Likewise.
20010         (do_fixed_divide): Likewise.
20011         * tree-predcom.c (add_ref_to_chain): Likewise.
20012         (determine_roots_comp): Likewise.
20013         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
20014
20015 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20016
20017         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
20018         implementations.
20019
20020 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
20021
20022         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
20023         * arm-modes.def (CC_NOTB): Don't define.
20024         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
20025         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
20026         (LTUGEU): New code_iterator.
20027         (cnb, optab): New corresponding code_attrs.
20028         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
20029         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
20030         using LTUGEU.
20031         (addsi3_carryin_shift_<optab>): Likewise.
20032         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
20033         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
20034         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
20035         (subsi3_compare): Renamed from subsi3_compare0_c.
20036         Change CC_NOTB to CC.
20037         (arm_subsi3_insn): Allow constants for operand 0.
20038         (compare_scc peephole for eq case): New.
20039         (compare_scc splitters): Change CC_NOTB to CC.
20040
20041 2010-07-05  Richard Guenther  <rguenther@suse.de>
20042
20043         * tree-ssa-loop-im.c (for_each_index): Do not handle
20044         ALIGN_INDIRECT_REF.
20045         (gen_lsm_tmp_name): Likewise.
20046         * tree-dump.c (dequeue_and_dump): Likewise.
20047         * tree-pretty-print.c (dump_generic_node): Likewise.
20048         (op_code_prio): Likewise.
20049         (op_symbol_code): Likewise.
20050         * tree.c (staticp): Likewise.
20051         (build1_stat): Likewise.
20052         * tree.h (INDIRECT_REF_P): Likewise.
20053         * fold-const.c (maybe_lvalue_p): Likewise.
20054         (operand_equal_p): Likewise.
20055         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
20056         (ao_ref_init_from_vn_reference): Likewise.
20057         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
20058         (find_interesting_uses_address): Likewise.
20059         * dwarf2out.c (loc_list_from_tree): Likewise.
20060         * gimplify.c (gimplify_expr): Likewise.
20061         * tree-eh.c (tree_could_trap_p): Likewise.
20062         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
20063         * cfgexpand.c (expand_debug_expr): Likewise.
20064         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
20065         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
20066         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
20067         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
20068         * tree-ssa-operands.c (get_expr_operands): Likewise.
20069         * expr.c (safe_from_p): Likewise.
20070         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
20071         * tree-vect-data-refs.c (vect_setup_realignment): Build
20072         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
20073         * tree-vect-stmts.c (vectorizable_load): Likewise.
20074         * tree.def (ALIGN_INDIRECT_REF): Remove.
20075
20076 2010-07-05  Richard Guenther  <rguenther@suse.de>
20077
20078         PR tree-optimization/44784
20079         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
20080         for inserted stmts.
20081         (find_or_generate_expression): Fix SCCVN insertion check.
20082
20083 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
20084
20085         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
20086         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
20087         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
20088         directives.
20089
20090 2010-07-05  Ira Rosen  <irar@il.ibm.com>
20091
20092         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
20093         statements that are not vectorized.
20094         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
20095         in INSIDE_COST.
20096
20097 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
20098
20099         PR bootstrap/44820
20100         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
20101
20102 2010-07-05  Richard Guenther  <rguenther@suse.de>
20103
20104         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
20105         RESULT_DECLs properly.
20106
20107 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
20108
20109         PR rtl-optimization/44695
20110         * config/i386/i386.md (extract_code): Removed.
20111         (<u>divmodqi4): Likewise.
20112         (divmodqi4): New.
20113         (udivmodqi4): Likewise.
20114         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
20115         (udivmodhiqi3): Likewise.
20116
20117 2010-07-04  Jan Hubicka  <jh@suse.cz>
20118
20119         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
20120
20121 2010-07-04  Jan Hubicka  <jh@suse.cz>
20122
20123         * cgraphunit.c (init_cgraph): Only initialize dump file if it
20124         is not already initialized.
20125
20126 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20127
20128         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
20129         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
20130         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
20131         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
20132         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
20133         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
20134         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
20135         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
20136         (sync_new_nand_optab): Redefine as macros.
20137         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
20138         Delete.
20139         (direct_optab_index): New enum.
20140         (direct_optab_d): New structure.
20141         (direct_optab): New typedef.
20142         (direct_optab_table): Declare.
20143         (direct_optab_handler, set_direct_optab_handler): New functions.
20144         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
20145         (sync_lock_release_optab): New macros.
20146         * optabs.c (direct_optab_table): New variable.
20147         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
20148         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
20149         cmpstr_optab and cmpstrn_optab.
20150         (emit_conditional_move): Likewise for movcc_optab.
20151         (can_conditionally_move_p): Likewise for movcc_gen_code.
20152         (init_insn_codes): Clear direct_optab_table.
20153         (init_optabs): Don't initialize the new "direct optabs" here.
20154         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
20155         vcond_gen_code.
20156         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
20157         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
20158         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
20159         (expand_sync_operation): Likewise other sync_*_optabs.
20160         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
20161         to sync_compare_and_swap_optab.
20162         (expand_sync_lock_test_and_set): Use direct_optab_handler for
20163         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
20164         to the names of both.
20165         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
20166         cmpstr_optab and cmpstrn_optab.
20167         (expand_builtin_lock_release): Likewise sync_lock_release.
20168         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
20169         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
20170         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
20171         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
20172         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
20173         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
20174         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
20175         (sync_lock_test_and_set, sync_lock_release): Delete.
20176         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
20177         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
20178         * genopinit.c (optabs): Use set_direct_optab_handler for the new
20179         macro optabs.
20180         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
20181         the "optab" local variable.  Use direct_optab_handler for optab and
20182         sync_compare_and_swap_optab.
20183         * reload1.c (reload_in_optab, reload_out_optab): Delete.
20184         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
20185         reload_in_optab and reload_out_optab.
20186         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
20187         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
20188         * config/pa/pa.c (pa_secondary_reload): Likewise.
20189         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
20190         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
20191         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
20192         (VMSupportsCS8_builtin): Likewise.
20193
20194 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20195
20196         * optabs.h (optab_handlers): Change type of insn_code to int.
20197         (optab_handler, set_optab_handler, convert_optab_handler)
20198         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
20199         CODE_FOR_nothing".
20200         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
20201         (init_insn_codes): Zero both the above arrays.
20202         (init_optabs): Never call init_insn_codes first time around.
20203
20204 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20205
20206         * optabs.h (optab_handler, convert_optab_handler): Turn into
20207         inline functions that return an insn code.
20208         (set_optab_handler, set_convert_optab_handler): New functions.
20209         * builtins.c: Replace optab_handler(X)->insn_code with
20210         optab_handler or set_optab_handler thoughout.  Likewise
20211         convert_optab_handler(X)->insn_code with convert_optab_handler
20212         and set_convert_optab_handler.
20213         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
20214         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
20215         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
20216         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
20217         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
20218         config/spu/spu.c: Likewise.
20219
20220 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
20221
20222         PR target/44531
20223         * config.gcc (sh*-*-*): Use regular expressions instead of
20224         the 'i' modifier for sed substitutions.
20225
20226 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
20227
20228         * gimple.c (gimple_body): Comments added.
20229
20230 2010-07-04  Richard Guenther  <rguenther@suse.de>
20231
20232         PR middle-end/44809
20233         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
20234         of an INDIRECT_REF.
20235
20236 2010-07-04  Richard Guenther  <rguenther@suse.de>
20237
20238         PR tree-optimization/44479
20239         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
20240         extra SSA name copy statements which preserves points-to
20241         information.
20242         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
20243         Copy points-to information for all pointers.  Properly handle
20244         MEM_REFs.
20245         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
20246         copy statements.
20247         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
20248         dependency.
20249
20250 2010-07-04  Richard Guenther  <rguenther@suse.de>
20251
20252         PR middle-end/44785
20253         * tree-inline.c (initialize_inlined_parameters): Do not
20254         re-use pointer-map slot over remap_type call.
20255
20256 2010-07-04  Richard Guenther  <rguenther@suse.de>
20257
20258         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
20259
20260 2010-07-04  Richard Guenther  <rguenther@suse.de>
20261
20262         PR tree-optimization/44656
20263         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
20264         again after value-replacing in the defintions lhs.
20265
20266 2010-07-04  Ira Rosen  <irar@il.ibm.com>
20267             Revital Eres  <eres@il.ibm.com>
20268
20269         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
20270         Document new arguments.
20271         * doc/tm.texi: Regenerate.
20272         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
20273         Handle unaligned store.
20274         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
20275         * target.def (builtin_vectorization_cost): Add new arguments.
20276         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
20277         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
20278         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
20279         (vect_vfa_segment_size): Fix indentation.
20280         * tree-vectorizer.h (struct _vect_peel_info): New.
20281         (struct _vect_peel_extended_info): New.
20282         (struct _loop_vec_info): Add new field for peeling hash table and a
20283         macro for its access.
20284         (VECT_MAX_COST): Define.
20285         (vect_get_load_cost): Declare.
20286         (vect_get_store_cost, vect_get_known_peeling_cost,
20287         vect_get_single_scalar_iteraion_cost): Likewise.
20288         (vect_supportable_dr_alignment): Add new argument.
20289         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
20290         field.
20291         (destroy_loop_vec_info): Free peeling hash table.
20292         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
20293         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
20294         vect_analyze_slp. Fix indentation.
20295         (vect_get_single_scalar_iteraion_cost): New function.
20296         (vect_get_known_peeling_cost): Likewise.
20297         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
20298         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
20299         statement. Move outside cost calculation inside unknown peeling case.
20300         Call vect_get_known_peeling_cost for known amount of peeling.
20301         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
20302         reference to the print message of forced alignment.
20303         (vect_verify_datarefs_alignment): Update call to
20304         vect_supportable_dr_alignment.
20305         (vect_get_data_access_cost): New function.
20306         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
20307         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
20308         vect_peeling_hash_choose_best_peeling): Likewise.
20309         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
20310         to store all the accesses in the loop and find best possible access to
20311         align using peeling for known alignment case. For unknown alignment
20312         check if stores are preferred or if peeling is worthy.
20313         (vect_find_same_alignment_drs): Analyze pairs of loads too.
20314         (vect_supportable_dr_alignment): Add new argument and check aligned
20315         accesses according to it.
20316         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
20317         (cost_for_stmt): Call vect_get_stmt_cost.
20318         (vect_model_simple_cost): Likewise.
20319         (vect_model_store_cost): Call vect_get_stmt_cost. Call
20320         vect_get_store_cost to calculate the cost of the statement.
20321         (vect_get_store_cost): New function.
20322         (vect_model_load_cost): Call vect_get_stmt_cost. Call
20323         vect_get_load_cost to calculate the cost of the statement.
20324         (vect_get_load_cost): New function.
20325         (vectorizable_store): Update call to vect_supportable_dr_alignment.
20326         (vectorizable_load): Likewise.
20327         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
20328         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
20329         arguments. Handle unaligned store.
20330         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
20331         (rs6000_builtin_support_vector_misalignment): Return true for word and
20332         double word alignments for VSX.
20333         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
20334         vect_supportable_dr_alignment and builtin_vectorization_cost.
20335
20336 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20337
20338         PR target/44597
20339         * config/pa/predicates.md (prefetch_cc_operand): Remove.
20340         (prefetch_nocc_operand): Likewise.
20341         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
20342         (prefetch_20): New insn.
20343         (prefetch_cc): Remove.
20344         (prefetch_nocc): Likewise.
20345
20346 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20347
20348         * expr.c (vector_mode_valid_p): Move to c-common.c.
20349         * expr.h (vector_mode_valid_p): Do not declare here.
20350         * system.h: Poison GCC_EXPR_H in front-ends.
20351         * Makefile.in: Update dependencies.
20352
20353 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20354
20355         PR target/44705
20356         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
20357
20358 2010-07-03  Jan Hubicka  <jh@suse.cz>
20359
20360         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
20361         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
20362         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
20363         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
20364         Likewise.
20365
20366         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
20367         Update timevars.V
20368         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
20369         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
20370         TV_IPA_LTO_DECL_OUT): New.
20371         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
20372
20373 2010-07-03  Jan Hubicka  <jh@suse.cz>
20374
20375         * ipa-inline.c (update_edge_key): Break out from ...
20376         update_callers_keys): ... here;
20377         (update_callee_keys): Update only the edges from caller to callee.
20378         (update_all_calle_keys): Do what update_calle_keys did.
20379         (decide_inlining_of_small_functions): Avoid recomputing of all
20380         callees when badness increase.
20381
20382 2010-07-03  Jie Zhang  <jie@codesourcery.com>
20383
20384         * config/arm/arm.c (arm_attr_length_move_neon): New.
20385         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
20386         * config/arm/neon.md (define_mode_attr V_slen): Remove.
20387         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
20388         to compute length attribute.
20389
20390 2010-07-03  Jie Zhang  <jie@codesourcery.com>
20391
20392         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
20393         as predicate for operand 1 and remove its constraint.
20394         * config/arm/predicates.md (vfp_register_operand): New.
20395         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
20396         (*push_fp_multi): Likewise.
20397
20398 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
20399
20400         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
20401
20402 2010-07-03  Jan Hubicka  <jh@suse.cz>
20403
20404         * config/i386/i386.c (override_options): Revert accidental commit.
20405
20406 2010-07-02  Le-Chun Wu  <lcwu@google.com>
20407
20408         PR c++/44128
20409         * doc/invoke.texi: Update documentation of -Wshadow.
20410
20411 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
20412             Julian Brown  <julian@codesourcery.com>
20413             Sandra Loosemore  <sandra@codesourcery.com>
20414
20415         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
20416         comparisons.  Adjust to take both operands.
20417         (arm_select_cc_mode): Handle DImode comparisons.
20418         (arm_gen_compare_reg): Generate a scratch register for DImode
20419         comparisons which require one.  Use xor for Thumb equality checks.
20420         (arm_const_double_by_immediates): New.
20421         (arm_print_operand): Allow 'Q' and 'R' for constants.
20422         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
20423         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
20424         arm_canonicalize_comparison.
20425         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
20426         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
20427         prototype.
20428         (arm_const_double_by_immediates): Declare.
20429         * config/arm/constraints.md (Di): New constraint.
20430         * config/arm/predicates.md (arm_immediate_di_operand)
20431         (arm_di_operand, cmpdi_operand): New.
20432         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
20433         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
20434         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
20435         (cstoredi4): Handle non-Cirrus also.
20436
20437 2010-07-02  Julian Brown  <julian@codesourcery.com>
20438             Sandra Loosemore  <sandra@codesourcery.com>
20439
20440         PR target/43703
20441         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
20442         (smax<mode>3): Disable for NEON float modes when
20443         flag_unsafe_math_optimizations is false.
20444         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
20445         (*mul<mode>3_neon)
20446         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
20447         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
20448         for NEON float modes when flag_unsafe_math_optimizations is false.
20449         (quad_halves_<code>v4sf): Only enable if
20450         flag_unsafe_math_optimizations is true.
20451         * doc/invoke.texi (ARM Options): Add note about floating point
20452         vectorization requiring -funsafe-math-optimizations.
20453
20454 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20455             Julian Brown  <julian@codesourcery.com>
20456
20457         * config/arm/neon.md (UNSPEC_VABA): Delete.
20458         (UNSPEC_VABAL): Delete.
20459         (UNSPEC_VABS): Delete.
20460         (UNSPEC_VMUL_N): Delete.
20461         (adddi3_neon): New.
20462         (subdi3_neon): New.
20463         (mul<mode>3add<mode>_neon): Make the pattern named.
20464         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
20465         (neon_vadd<mode>): Replace with define_expand, and move the remaining
20466         unspec parts...
20467         (neon_vadd<mode>_unspec): ...to this.
20468         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
20469         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
20470         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
20471         (neon_vaba<mode>): Rewrite in terms of vabd.
20472         (neon_vabal<mode>): Rewrite in terms of vabdl.
20473         (neon_vabs<mode>): Rewrite without unspec.
20474         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
20475         (*arm_subdi3): Likewise.
20476         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
20477         No_op attribute to disable assembly output checks.
20478         * config/arm/arm_neon.h: Regenerated.
20479         * doc/arm-neon-intrinsics.texi: Regenerated.
20480
20481 2010-07-02  Jan Hubicka  <jh@suse.cz>
20482
20483         * ipa-split.c (split_function): For aggregate values, set the return
20484         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
20485         *<retval> = fncall.part ().
20486         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
20487
20488 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20489
20490         * config/arm/neon.md (UNSPEC_VAND): Delete.
20491         (UNSPEC_VBIC): Delete.
20492         (UNSPEC_VCLZ): Delete.
20493         (UNSPEC_VCNT): Delete.
20494         (UNSPEC_VEOR): Delete.
20495         (UNSPEC_VORN): Delete.
20496         (UNSPEC_VORR): Delete.
20497         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
20498         core registers too.
20499         (anddi3_neon): Likewise.
20500         (orndi3_neon): Likewise.
20501         (bicdi3_neon): Likewise.
20502         (xordi3_neon): Likewise.
20503         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
20504         rid of unspec and handle unused operand.
20505         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
20506         * config/arm/predicates.md (imm_for_neon_logic_operand):
20507         Require TARGET_NEON.
20508         (imm_for_neon_inv_logic_operand): Likewise.
20509         * config/arm/arm.md (define_split for logical_binary_operator):
20510         Disable for NEON registers.
20511         (anddi3): Add new define_expand, and rename the insn.  Disable
20512         this insn for NEON, where anddi3_neon now applies.
20513         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
20514         (iordi3): As for anddi3.
20515         (xordi3): Likewise.
20516         * config/arm/neon.ml (Vand): Split DImode variants and mark them
20517         as No_op to disable testing for exact instruction match.
20518         (Vorr): Likewise.
20519         (Veor): Likewise.
20520         (Vbic): Likewise.
20521         (Vorn): Likewise.
20522         * config/arm/arm_neon.h: Regenerated.
20523         * doc/arm-neon-intrinsics.texi: Regenerated.
20524
20525 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
20526
20527         * expr.h (emit_stack_probe): Declare.
20528         * explow.c (emit_stack_probe): Make global.
20529         (anti_adjust_stack_and_probe): Fix comments.
20530         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
20531         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20532         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20533         * config/sparc/sparc.c: Include except.h.
20534         (sparc_emit_probe_stack_range): New function.
20535         (output_probe_stack_range): Likewise.
20536         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
20537         built-in stack checking is enabled.
20538         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
20539         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
20540         (probe_stack_range): New insn.
20541
20542 2010-07-02  Richard Guenther  <rguenther@suse.de>
20543
20544         PR target/43958
20545         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
20546         for argument alignment.
20547
20548 2010-07-02  Jan Hubicka  <jh@suse.cz>
20549
20550         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
20551         walk backwards from entry_bb to check only those basic block of header
20552         that might lead to execution of split part.
20553         (consider_split) ... here.
20554         (find_return_bb): Allow assignment in return BB.
20555         (find_retval): New.
20556         (split_function): Fix name of cloned function; take care of updating
20557         return value in return_bb containing move.
20558
20559 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
20560
20561         PR target/44771
20562         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
20563         used variable insn.
20564
20565 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
20566
20567         * implicit-zee.c (combine_reaching_defs): Fix long lines.
20568         (is_set_with_extension_DI): Delete.
20569         (struct zero_extend_info): New structure.
20570         (add_removable_zero_extend): New function.
20571         (find_removable_zero_extends): Use note_stores to find SETs.
20572         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
20573
20574 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
20575
20576         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
20577         is_miss_rate_acceptable. Pull total_positions computation
20578         out of the loops.  Early return if miss_positions exceeds
20579         the acceptable threshold.
20580         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
20581         is_miss_rate_acceptable after renaming of compute_miss_rate.
20582
20583 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
20584
20585         PR middle-end/44576
20586         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
20587         of 1000) for miss rate if the address diference is greater than or
20588         equal to the cache line size (the two reference will never hit the
20589         same cache line).
20590
20591 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
20592
20593         PR target/42835
20594         * config/arm/arm-modes.def (CC_NOTB): New mode.
20595         * config/arm/arm.c (get_arm_condition_code): Handle it.
20596         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
20597         * config/arm/arm.md (subsi3_compare0_c): New pattern.
20598         (compare_scc): Now a define_and_split.  Add a number of extra
20599         splitters before it.
20600
20601         PR target/42172
20602         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
20603         and ZERO_EXTEND.
20604         (arm_rtx_costs_1): Likewise.
20605         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
20606         * config/arm/arm.md (is_arch6): New attribute.
20607         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
20608         extendqisi2): Tighten the code somewhat, avoiding invalid
20609         RTL to occur in the expander patterns.
20610         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
20611         (thumb1_zero_extendhisi2_v6): Delete.
20612         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
20613         (thumb1_extendhisi2_v6): Delete.
20614         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
20615         (thumb1_extendqisi2_v6): Delete.
20616         (zero_extendhisi2 for register input splitter): New.
20617         (zero_extendqisi2 for register input splitter): New.
20618         (thumb1_extendhisi2 for register input splitter): New.
20619         (extendhisi2 for register input splitter): New.
20620         (extendqisi2 for register input splitter): New.
20621         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
20622         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
20623         and add support for a register alternative requiring a split.
20624         (thumb1_zero_extendqisi2): Likewise.
20625         (arm_zero_extendqisi2): Likewise.
20626         (arm_extendhisi2): Likewise.
20627         (arm_extendqisi2): Likewise.
20628
20629 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20630
20631         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
20632         instead of an unspec.
20633         (neon_expand_vector_init): Likewise.
20634         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
20635         (UNSPEC_VDUP_LANE): Delete.
20636         (UNSPEC VDUP_N): Delete.
20637         (UNSPEC_VGET_HIGH): Delete.
20638         (UNSPEC_VGET_LANE): Delete.
20639         (UNSPEC_VGET_LOW): Delete.
20640         (UNSPEC_VMVN): Delete.
20641         (UNSPEC_VSET_LANE): Delete.
20642         (V_double_vector_mode): New.
20643         (vec_set<mode>_internal): Make code emitted match that for the
20644         corresponding intrinsics.
20645         (vec_setv2di_internal): Likewise.
20646         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
20647         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
20648         (neon_vset_lane<mode>): Combine double and quad patterns and
20649         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
20650         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
20651         (neon_vdup_n<mode>): Rewrite RTL without unspec.
20652         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
20653         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
20654         with neon_vdup_lanev2di, adjusting the pattern from the latter
20655         to be predicable for consistency.
20656         (neon_vdup_lane<mode>_internal): New.
20657         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
20658         to avoid using an unspec.
20659         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
20660         (neon_vdup_lanev2di): Turn into a define_expand.
20661         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
20662         (neon_vget_high<mode>): Replace with....
20663         (neon_vget_highv16qi): New pattern using canonical RTL.
20664         (neon_vget_highv8hi): Likewise.
20665         (neon_vget_highv4si): Likewise.
20666         (neon_vget_highv4sf): Likewise.
20667         (neon_vget_highv2di): Likewise.
20668         (neon_vget_low<mode>): Replace with....
20669         (neon_vget_lowv16qi): New pattern using canonical RTL.
20670         (neon_vget_lowv8hi): Likewise.
20671         (neon_vget_lowv4si): Likewise.
20672         (neon_vget_lowv4sf): Likewise.
20673         (neon_vget_lowv2di): Likewise.
20674
20675         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
20676         test for this emitting vmov.
20677         (Vset_lane): Likewise.
20678         (Vdup_n): Likewise.
20679         (Vmov_n): Likewise.
20680
20681         * doc/arm-neon-intrinsics.texi: Regenerated.
20682
20683 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20684
20685         * config/arm/neon.md (vec_extractv2di): Correct error in register
20686         numbering to reconcile with neon_vget_lanev2di.
20687
20688 2010-07-02  Richard Guenther  <rguenther@suse.de>
20689
20690         * tree-ssa-structalias.c (pt_solution_set_var): New function.
20691         * tree-ssa-alias.h (pt_solution_set_var): Declare.
20692         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
20693         points-to information.
20694
20695 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
20696
20697         * config/s390/s390.c (override_options): Adopt prefetching
20698         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
20699
20700 2010-07-02  Jan Hubicka  <jh@suse.cz>
20701
20702         * df-problems.c (df_kill_notes): Do not collect dead  notes.
20703         (df_set_note): Just call add_reg_note.
20704         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
20705         df_create_unused_note): Do not deal with lists of old notes.
20706         (df_note_bb_compute): Likewise.
20707
20708 2010-07-02  Richard Guenther  <rguenther@suse.de>
20709
20710         * tree-ssa-structalias.c (find_func_aliases): Handle
20711         pointer alignment via BIT_AND_EXPR.
20712         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
20713
20714 2010-07-02  Richard Guenther  <rguenther@suse.de>
20715
20716         * tree-data-ref.c (initialize_data_dependence_relation): Handle
20717         mismatching number of dimensions properly.
20718
20719 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20720
20721         PR target/44707
20722         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
20723         (lo_sum (high ...) ...) patterns generated by earlier passes.
20724
20725 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20726
20727         * doc/install.texi (Prerequisites): Document Perl requirement on
20728         Solaris 2.
20729         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
20730
20731 2010-07-02  Richard Guenther  <rguenther@suse.de>
20732
20733         PR middle-end/44777
20734         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
20735
20736 2010-07-02  Jan Hubicka  <jh@suse.cz>
20737
20738         PR middle-end/44706
20739         * predict.c (predict_paths_for_bb): Handle case when control dependence
20740         BB has only abnormal edges.
20741
20742 2010-07-02  Richard Guenther  <rguenther@suse.de>
20743
20744         PR tree-optimization/44748
20745         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
20746         the embedded conversion in MEM_REFs.
20747
20748 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
20749
20750         * reload.c: Include toplev.h.
20751         * recog.c:  Likewise.
20752         * Makefile.in: Adjust dependencies.
20753
20754 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
20755
20756         PR debug/44694
20757         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
20758         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
20759
20760 2010-07-01  Richard Guenther  <rguenther@suse.de>
20761
20762         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
20763         types for offsets.
20764
20765 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
20766
20767         PR target/44732
20768         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
20769         Fix argument types.
20770
20771 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
20772
20773         PR target/44727
20774         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
20775         Make sure operand 0 dies.
20776
20777 2010-07-01  Richard Guenther  <rguenther@suse.de>
20778
20779         PR middle-end/42834
20780         PR middle-end/44468
20781         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
20782         * doc/generic.texi (References to storage): Document MEM_REF.
20783         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
20784         (print_call_name): Likewise.
20785         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
20786         (build_simple_mem_ref_loc): New function.
20787         (mem_ref_offset): Likewise.
20788         * tree.h (build_simple_mem_ref_loc): Declare.
20789         (build_simple_mem_ref): Define.
20790         (mem_ref_offset): Declare.
20791         * fold-const.c: Include tree-flow.h.
20792         (operand_equal_p): Handle MEM_REF.
20793         (build_fold_addr_expr_with_type_loc): Likewise.
20794         (fold_comparison): Likewise.
20795         (fold_unary_loc): Fold
20796         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
20797         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
20798         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
20799         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
20800         (ptr_deref_may_alias_ref_p_1): Likewise.
20801         (ao_ref_base_alias_set): Properly differentiate base object for
20802         offset and TBAA.
20803         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
20804         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
20805         (indirect_refs_may_alias_p): Likewise.
20806         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
20807         chasing code.
20808         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
20809         (call_may_clobber_ref_p_1): Likewise.
20810         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
20811         * expr.c (expand_assignment): Handle MEM_REF.
20812         (store_expr): Handle MEM_REFs from STRING_CSTs.
20813         (store_field): If expanding a MEM_REF of a non-addressable
20814         decl use bitfield operations.
20815         (get_inner_reference): Handle MEM_REF.
20816         (expand_expr_addr_expr_1): Likewise.
20817         (expand_expr_real_1): Likewise.
20818         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
20819         * alias.c (ao_ref_from_mem): Handle MEM_REF.
20820         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
20821         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
20822         (dr_analyze_indices): Likewise.
20823         (dr_analyze_alias): Likewise.
20824         (object_address_invariant_in_loop_p): Likewise.
20825         * gimplify.c (mark_addressable): Handle MEM_REF.
20826         (gimplify_cond_expr): Build MEM_REFs.
20827         (gimplify_modify_expr_to_memcpy): Likewise.
20828         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
20829         (gimple_fold_indirect_ref): Adjust.
20830         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
20831         * tree.def (MEM_REF): New tree code.
20832         * tree-dfa.c: Include toplev.h.
20833         (get_ref_base_and_extent): Handle MEM_REF.
20834         (get_addr_base_and_unit_offset): New function.
20835         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
20836         * gimple-fold.c (may_propagate_address_into_dereference): Handle
20837         MEM_REF.
20838         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
20839         accesses if the array has just one dimension.  Remove always true
20840         parameter.  Do not require type compatibility here.
20841         (maybe_fold_offset_to_component_ref): Remove.
20842         (maybe_fold_stmt_indirect): Remove.
20843         (maybe_fold_reference): Remove INDIRECT_REF handling.
20844         Fold back to non-MEM_REF.
20845         (maybe_fold_offset_to_address): Simplify.  Deal with type
20846         mismatches here.
20847         (maybe_fold_reference): Likewise.
20848         (maybe_fold_stmt_addition): Likewise.  Also handle
20849         &ARRAY + I in addition to &ARRAY[0] + I.
20850         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
20851         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
20852         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
20853         * tree-ssa.c (useless_type_conversion_p): Make most pointer
20854         conversions useless.
20855         (warn_uninitialized_var): Handle MEM_REF.
20856         (maybe_rewrite_mem_ref_base): New function.
20857         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
20858         to SSA form.
20859         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
20860         INDIRECT_REF handling.
20861         (copy_tree_body_r): Handle MEM_REF.
20862         * gimple.c (is_gimple_addressable): Adjust.
20863         (is_gimple_address): Likewise.
20864         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
20865         invariant base are invariant.
20866         (is_gimple_min_lval): Adjust.
20867         (is_gimple_mem_ref_addr): New function.
20868         (get_base_address): Handle MEM_REF.
20869         (count_ptr_derefs): Likewise.
20870         (get_base_loadstore): Likewise.
20871         * gimple.h (is_gimple_mem_ref_addr): Declare.
20872         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
20873         * tree-cfg.c (verify_address): New function, split out from ...
20874         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
20875         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
20876         INDIRECT_REFs.
20877         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
20878         INDIRECT_REF.  Allow conversions.
20879         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
20880         a register does not change its size.
20881         (verify_types_in_gimple_reference): Verify MEM_REF.
20882         (verify_gimple_assign_single): Disallow INDIRECT_REF.
20883         Handle MEM_REF.
20884         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
20885         New.
20886         (mark_address_taken): Handle MEM_REF.
20887         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
20888         (get_asm_expr_operands): Pass opf_not_non_addressable.
20889         (get_expr_operands): Handle opf_[not_]non_addressable.
20890         Handle MEM_REF.  Remove INDIRECT_REF handling.
20891         * tree-vrp.c (check_array_ref): Handle MEM_REF.
20892         (search_for_addr_array): Likewise.
20893         (check_array_bounds): Likewise.
20894         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
20895         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
20896         (ref_always_accessed_p): Likewise.
20897         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
20898         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
20899         Handle MEM_REF.
20900         * cgraphbuild.c (mark_load): Properly check for NULL result
20901         from get_base_address.
20902         (mark_store): Likewise.
20903         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
20904         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
20905         handling for MEM_REF.
20906         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
20907         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
20908         * builtins.c (stabilize_va_list_loc): Use the function ABI
20909         valist type if we couldn't canonicalize the argument type.
20910         Always dereference with the canonical va-list type.
20911         (maybe_emit_free_warning): Handle MEM_REF.
20912         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
20913         memmove to memcpy.
20914         * builtins.c (fold_builtin_memory_op): Use ref-all types
20915         for all memcpy foldings.
20916         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
20917         (build_outer_var_ref): Likewise.
20918         (scan_omp_1_op): Likewise.
20919         (lower_rec_input_clauses): Likewise.
20920         (lower_lastprivate_clauses): Likewise.
20921         (lower_reduction_clauses): Likewise.
20922         (lower_copyprivate_clauses): Likewise.
20923         (expand_omp_atomic_pipeline): Likewise.
20924         (expand_omp_atomic_mutex): Likewise.
20925         (create_task_copyfn): Likewise.
20926         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
20927         Remove old union trick.  Initialize constant offsets.
20928         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
20929         INDIRECT_REF.  Init base_alias_set properly.
20930         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
20931         (vn_reference_fold_indirect): Adjust for MEM_REFs.
20932         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
20933         for ARRAY_REFs.
20934         (may_insert): Remove.
20935         (visit_reference_op_load): Do not test may_insert.
20936         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
20937         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
20938         a field to store the constant offset this op applies.
20939         (run_scc_vn): Adjust prototype.
20940         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
20941         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
20942         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
20943         bother about volatile qualifiers on pointers.
20944         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
20945         * tree-ssa-loop-ivopts.c
20946         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
20947         (strip_offset_1): Likewise.
20948         (find_interesting_uses_address): Replace INDIRECT_REF handling with
20949         MEM_REF handling.
20950         (get_computation_cost_at): Likewise.
20951         * ipa-pure-const.c (check_op): Handle MEM_REF.
20952         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
20953         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
20954         and constants.
20955         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
20956         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
20957         (eliminate_local_variables_1): Likewise.
20958         (create_call_for_reduction_1): Likewise.
20959         (create_loads_for_reductions): Likewise.
20960         (create_loads_and_stores_for_name): Likewise.
20961         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
20962         (ssa_accessed_in_tree): Handle MEM_REF.
20963         (ssa_accessed_in_assign_rhs): Likewise.
20964         (update_type_size): Likewise.
20965         (analyze_accesses_for_call_stmt): Likewise.
20966         (analyze_accesses_for_assign_stmt): Likewise.
20967         (transform_access_sites): Likewise.
20968         (transform_allocation_sites): Likewise.
20969         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
20970         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
20971         not handle INDIRECT_REF.
20972         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
20973         (cond_store_replacement): Likewise.
20974         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
20975         MEM_REF, no not handle INDIRECT_REFs.
20976         (insert_into_preds_of_block): Properly initialize avail.
20977         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
20978         for ARRAY_REFs.  Properly handle reference lookups that
20979         require a bit re-interpretation.
20980         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
20981         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
20982         (build_ref_for_offset_1): Remove.
20983         (build_ref_for_offset): Build MEM_REFs.
20984         (gate_intra_sra): Disable for now.
20985         (sra_ipa_modify_expr): Handle MEM_REF.
20986         (ipa_early_sra_gate): Disable for now.
20987         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
20988         MEM_REF handling.
20989         (disqualify_base_of_expr): Likewise.
20990         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
20991         MEM_REF handling.
20992         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
20993         Use mem_ref_offset.  Remove bogus folding.
20994         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
20995         (make_fancy_name_1): Add support for MEM_REF.
20996         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
20997         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
20998         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
20999         (compute_complex_ancestor_jump_func): Likewise.
21000         (ipa_analyze_virtual_call_uses): Likewise.
21001         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
21002         INDIRECT_REF folding with more generalized MEM_REF folding.
21003         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
21004         (forward_propagate_addr_into_variable_array_index): Also handle
21005         &ARRAY + I in addition to &ARRAY[0] + I.
21006         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
21007         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
21008         creates assignments with overlap.
21009         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
21010         (get_frame_field): Likewise.
21011         (get_nonlocal_debug_decl): Likewise.
21012         (convert_nonlocal_reference_op): Likewise.
21013         (struct nesting_info): Add mem_refs pointer-set.
21014         (create_nesting_tree): Allocate it.
21015         (convert_local_reference_op): Insert to be folded mem-refs.
21016         (fold_mem_refs): New function.
21017         (finalize_nesting_tree_1): Perform defered folding of mem-refs
21018         (free_nesting_tree): Free the pointer-set.
21019         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
21020         (vectorizable_load): Likewise.
21021         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
21022         (propagate_with_phi): Likewise.
21023         * tree-object-size.c (addr_object_size): Handle MEM_REFs
21024         instead of INDIRECT_REFs.
21025         (compute_object_offset): Handle MEM_REF.
21026         (plus_stmt_object_size): Handle MEM_REF.
21027         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
21028         for &MEM_REF.
21029         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
21030         (symbol_marked_for_renaming): Likewise.
21031         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
21032         (fold-const.o): Add $(TREE_FLOW_H).
21033         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
21034         (find_func_clobbers): Likewise.
21035         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
21036         (decompose_access): Likewise.
21037         (replace_field_acc): Likewise.
21038         (replace_field_access_stmt): Likewise.
21039         (insert_new_var_in_stmt): Likewise.
21040         (get_stmt_accesses): Likewise.
21041         (reorg_structs_drive): Disable.
21042         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
21043         (ix86_canonical_va_list_type): Likewise.
21044
21045 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21046
21047         PR other/44566
21048         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
21049         * target.def (struct gcc_target): Replace enum reg_class with
21050         reg_class_t in hook argument / return types.
21051         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
21052         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
21053         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
21054         * targhooks.h (default_branch_target_register_class): Likewise.
21055         (default_ira_cover_classes, default_secondary_reload): Likewise.
21056         (default_memory_move_cost, default_register_move_cost): Likewise.
21057         * targhooks.c (default_branch_target_register_class): Likewise.
21058         (default_ira_cover_classes, default_secondary_reload): Likewise.
21059         (default_memory_move_cost, default_register_move_cost): Likewise.
21060         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
21061         * bt-load.c (branch_target_load_optimize): Likewise.
21062         * ira.c (setup_cover_and_important_classes): Likewise.
21063         * ira-costs.c (copy_cost): Likewise.
21064         * reload1.c (emit_input_reload_insns): Likewise.
21065         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
21066         * config/frv/frv.c (frv_secondary_reload): Likewise.
21067         * config/s390/s390.c (s390_secondary_reload): Likewise.
21068         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
21069         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
21070         (ix86_register_move_cost): Likewise.
21071         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
21072         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
21073         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
21074         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
21075         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
21076         (rs6000_ira_cover_classes): Likewise.
21077         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
21078         * config/picochip/picochip-protos.h (picochip_secondary_reload):
21079         Likewise.
21080         * config/pa/pa.c (pa_secondary_reload): Likewise.
21081         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
21082         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
21083         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
21084         * doc/tm.texi: Regenerate.
21085
21086 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
21087
21088         PR bootstrrap/44726
21089         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
21090         use.
21091         (build_alias_set_optimal_p): Likewise.
21092         (build_base_obj_set_for_drs): Likewise.
21093
21094 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21095
21096         * target.def: Remove comment about licensing problems of function
21097         declarations.
21098
21099         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
21100         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
21101         * doc/tm.texi: Regenerate.
21102
21103         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
21104         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
21105
21106         * target.def (enum_va_list_p): Use DEFHOOK.
21107         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
21108         Rename ptype to ptree.
21109         * doc/tm.texi: Regenerate.
21110
21111         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
21112         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
21113         * doc/tm.texi: Regenerate.
21114
21115         * target.def (memory_move_cost): Use DEFHOOK.
21116         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
21117         Rename regclass AKA class to rclass.
21118         * doc/tm.texi: Regenerate.
21119
21120         * target.def (pragma_parse): Use DEFHOOK.
21121         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
21122         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
21123         * doc/tm.texi: Regenerate.
21124
21125         * target.def (pass_by_reference): Use DEFHOOK.
21126         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
21127         * doc/tm.texi: Regenerate.
21128
21129         * target.def (resolve_overloaded_builtin): Rename params to arglist.
21130         Use DEFHOOK.
21131         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
21132         * doc/tm.texi: Regenerate.
21133
21134         * target.def (return_pops_args): Use DEFHOOK.
21135         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
21136         Rename stack-size to size.
21137         * doc/tm.texi: Regenerate.
21138
21139         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
21140         last-sched_cycle to last_clock, cur_cycle to clock.
21141         * doc/tm.texi.in: Use @hook.
21142         * doc/tm.texi: Regenerate.
21143
21144         * target.def (print_operand, print_operand_address): Update comment.
21145         (print_operand_punct_valid_p): Likewise.
21146
21147 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21148
21149         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
21150         to rtl.h.
21151         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
21152         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
21153         * rtl-error.h: New.
21154         * regrename.c: Do not include toplev.h. Include rtl-error.h.
21155         * rtl-error.c: Likewise.
21156         * reload.c: Likewise.
21157         * recog.c:  Likewise.
21158         * sel-sched.c: Likewise.
21159         * function.c: Likewise.
21160         * reg-stack.c: Likewise.
21161         * cfgrtl.c: Likewise.
21162         * reload1.c: Likewise.
21163         * final.c: Include rtl-error.
21164         * Makefile.in: Adjust dependencies.
21165
21166 2010-06-30  Jan Hubicka  <jh@suse.cz>
21167
21168         PR middle-end/PR44706
21169         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
21170         to return the value.
21171
21172 2010-06-30  Michael Matz  <matz@suse.de>
21173
21174         PR bootstrap/44699
21175         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
21176         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
21177         a gimple reg, attach the original VDEF to the last store in the
21178         sequence.
21179
21180 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
21181
21182         PR other/44034
21183         * config/darwin.c (darwin_override_options): Use renamed
21184         targetm.asm_out.emit_unwind_label.
21185
21186 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
21187
21188         PR tree-optimization/39799
21189         * tree-inline.c (remap_ssa_name): Initialize variable only if
21190         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
21191
21192 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
21193
21194         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
21195
21196 2010-06-30  Richard Guenther  <rguenther@suse.de>
21197
21198         PR target/44722
21199         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
21200         against oscillation with reverse peephole2.
21201
21202 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
21203
21204         PR target/44721
21205         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21206         Fix last commit.
21207
21208 2010-06-30  Nick Clifton  <nickc@redhat.com>
21209
21210         * config/rx/rx-modes.def: New file.
21211         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
21212         (CC_REGNUM): Define.
21213         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
21214         register.
21215         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
21216         (SELECT_CC_MODE): Define.
21217         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
21218         (reg:CC CC_REG) instead of (cc0).
21219         (attr "cc"): Delete.
21220         (cbranchsi4): Do not split compare and branch here. Instead move
21221         it to...
21222         (cbranchsi4_<code>): ... here.  New patterns.
21223         (cmpsi): Call rx-compare_redundant to find out if it is necessary
21224         to emit the compare instruction.
21225         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
21226         cc_status flags.
21227         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
21228         FIRST_PSEUDO_REGNUM.
21229         (rx_expand_prologue, rx_expand_epilogue): Likewise.
21230         (rx_notice_update_cc): Delete.
21231         (rx_cc_modes_compatible): New function.
21232         (flags_needed_for_conditional): New function.
21233         (flags_from_mode): New function.
21234         (rx_compare_redundant): New function - scans backwards through
21235         insn list to find out if condition flags are already set correctly.
21236         (TARGET_CC_MODES_COMPATIBLE): Define.
21237         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
21238
21239         * config/rx/rx.h (BRANCH_COST): Define.
21240         (REGISTER_MOVE_COST): Define.
21241         * config/rx/predicates (rx_source_operand): Allow all constant types.
21242         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
21243         (tstsi4): New pattern.
21244         * config/rx/rx.c (rx_memory_move_cost): Define.
21245         (TARGET_MEMORY_MOVE_COST): Define.
21246
21247 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21248
21249         * tree.h (block_may_fallthru): Declare here.
21250         * tree-flow.h (block_may_fallthru): Do not declare here.
21251         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
21252         bitmap.h
21253         * Makefile.in (c-typeck.o): Update dependencies.
21254
21255 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
21256
21257         PR debug/44694
21258         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
21259         * cselib.c (cfa_base_preserved_regno): New static variable.
21260         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
21261         of REGNO (cfa_base_preserved_val->locs->loc).
21262         (cselib_preserve_cfa_base_value): Add regno argument, set
21263         cfa_base_preserved_regno to it.
21264         (cselib_invalidate_regno): Allow removal of registers other than
21265         cfa_base_preserved_regno from cfa_base_preserved_val.
21266         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
21267         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
21268         of MEM addresses, if not on LHS.
21269         (reverse_op): Don't add reverse ops for cfa_base_rtx.
21270         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
21271
21272 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
21273
21274         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
21275         static variables.
21276         (peep2_buf_position): New static function.
21277         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
21278         peephole2_optimize): Use it.
21279         (peep2_attempt, peep2_update_life): New static functions, broken out
21280         of peephole2_optimize.
21281         (peep2_fill_buffer): New static function.
21282         (peephole2_optimize): Change the main loop to try to fill the buffer
21283         with the maximum number of insns before matching them against
21284         peepholes.  Use a forward scan.  Remove special case for targets with
21285         conditional execution.
21286         * genrecog.c (change_state): Delete dead code.
21287         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21288         Rewrite so as not to expect the second insn to have had a peephole
21289         applied yet.
21290
21291 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21292
21293         * genhooks.c (emit_findices): Cast field precision to int.
21294         (emit_documentation): Likewise.
21295
21296 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
21297
21298         PR tree-optimization/43801
21299         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
21300         if old_decl was DECL_ONE_ONLY.
21301
21302         PR debug/44668
21303         * dwarf2out.c (add_accessibility_attribute): New function.
21304         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
21305         instead of adding DW_AT_accessibility manually.
21306         (gen_enumeration_type_die, gen_struct_or_union_type_die,
21307         gen_typedef_die): Use it.
21308
21309 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21310
21311         * vmsdbgout.c (full_name): Just output the file name if not native.
21312
21313 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21314
21315         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
21316         (funcnam_table): New static table.
21317         (funcnum_table): New static table.
21318         (write_rtnbeg): Write value saved in funcnum_table.
21319         (write_rtnend): Write value saved in funcnum_table.
21320         (vmsdbgout_begin_function): Save current function info in
21321         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
21322         (vmsdbgout_finish): Iterate over funcnum_table.
21323
21324 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21325
21326         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
21327         (vmsdbgout_type_decl): Declare
21328         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
21329         (FUNC_EPILOGUE_LABEL): New macro
21330         (vmsdbgout_begin_epilogue): New function.
21331         (vmsdbgout_type_decl): New function.
21332
21333 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21334
21335         * vmsdbg.h: Update copyright.
21336
21337 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21338
21339         * vmsdbg.h (DST_K_TBG): New DST constant.
21340         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
21341         (write_modbeg): Cast module_language to avoid warning.
21342         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
21343
21344 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
21345
21346         PR other/44034
21347         * target.def, doc/tm.texi.in, genhooks.c: New files.
21348         * target.h: Instead of defining individual hook members,
21349         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
21350         include target.def.
21351         * target-def.h: Instead of defining individual hook initializers,
21352         include target-hooks-def.h.
21353         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
21354         targetm.live_on_entry -> targetm.extra_live_on_entry
21355         targetm.sched.md_finish ->targetm.sched.finish
21356         targetm.sched.md_init -> targetm.sched.init
21357         targetm.sched.md_init_global -> targetm.sched.init_global
21358         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
21359         targetm.asm_out.except_table_label ->
21360           targetm.asm_out.emit_except_table_label
21361         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
21362         targetm.target_help -> targetm.help
21363         targetm.vectorize.builtin_support_vector_misalignment ->
21364           targetm.vectorize.support_vector_misalignment
21365         targetm.file_start_app_off -> targetm.asm_file_start_app_off
21366         targetm.file_start_file_directive ->
21367          targetm.asm_file_start_file_directive
21368         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
21369         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
21370         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
21371         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
21372           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
21373         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
21374           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
21375         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
21376         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
21377         * Makefile.in (TARGET_H): Depend on target.def.
21378         (TARGET_DEF_H): Depend on target-hooks-def.h.
21379         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
21380         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
21381         * doc/tm.texi: Regenerate.
21382
21383         * Makefile.in (s-tm-texi): Remove stray tab / rule.
21384
21385         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
21386         (targetm.sched.init): Likewise.
21387
21388 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21389
21390         PR bootstrap/44713
21391         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
21392         (function_arg_advance_32): Const-ify TYPE parameter.
21393         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
21394         (ix86_function_arg_advance): Change type of NAMED to bool.
21395         (function_arg_32): Const-ify CUM and TYPE parameters.
21396         (function_arg_64): Likewise.  Change type of NAMED to bool.
21397         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
21398         to bool.
21399         (ix86_function_arg): Change type of NAMED to bool.
21400         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
21401         last argument as a bool.
21402
21403 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
21404
21405         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
21406         (OVERRIDE_OPTIONS): Add note of obsolescence.
21407         Replace references with references to TARGET_OPTION_OVERRIDE.
21408         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
21409          the macro).
21410         * targhooks.c (default_target_option_override): New function.
21411         * targhooks.h (default_target_option_override): Declare.
21412         * target.h (struct gcc_target): Add override member to
21413         target_option member.
21414         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
21415         targetm.target_option.override call.
21416         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
21417         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
21418
21419 2010-06-29  Jan Hubicka  <jh@suse.cz>
21420
21421         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
21422
21423 2010-06-29  Jan Hubicka  <jh@suse.cz>
21424
21425         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
21426         unreachable.
21427         (rebuild_frequencies): New function.
21428         * predict.h (rebuild_frequencies): Declare.
21429         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
21430         entry block and edge reaching new_entry.
21431         (tree_function_versioning): When doing partial cloning, rebuild
21432         frequencies when done.
21433         * passes.c (execute_function_todo): Use rebild_frequencies.
21434
21435 2010-06-29  Richard Guenther  <rguenther@suse.de>
21436
21437         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
21438         * tree-flow.h (enum noalias_state): Remove.
21439         (struct var_ann_d): Remove noalias_state member.
21440
21441 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
21442
21443         PR target/43902
21444         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
21445         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
21446         (maddhidi4): Likewise.
21447
21448         Revert parts of the change for PR25130.
21449         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
21450         MEM_ALIAS_SET.
21451
21452 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21453
21454         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
21455         targetm.calls.function_incoming_arg, and
21456         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
21457         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
21458         * target.h (struct gcc_target): Add function_arg_advance,
21459         function_arg, and function_incoming_arg fields.
21460         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
21461         (TARGET_FUNCTION_INCOMING_ARG): Define.
21462         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
21463         and TARGET_FUNCTION_INCOMING_ARG.
21464         * targhooks.h (default_function_arg_advance): Declare.
21465         (default_function_arg, default_function_incoming_arg): Declare.
21466         * targhooks.c (default_function_arg_advance): New function.
21467         (default_function_arg, default_function_incoming_arg): New function.
21468         * config/i386/i386.c (function_arg_advance): Rename to...
21469         (ix86_function_arg_advance): ...this.  Make static.
21470         (function_arg): Rename to...
21471         (ix86_function_arg): ...this.  Make static.
21472         (TARGET_FUNCTION_ARG_ADVANCE): Define.
21473         (TARGET_FUNCTION_ARG): Define.
21474         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
21475         (FUNCTION_ARG): Delete.
21476         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
21477         (function_arg): Delete prototype.
21478
21479 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21480
21481         * reginfo.c (init_reg_sets_1): Adjust comments.
21482         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
21483         * calls.c (prepare_call_address): Likewise.
21484         (emit_call_1): Use targetm.calls.return_pops_args.
21485         (expand_call): Likewise.
21486         * function.c (assign_parms): Likewise.
21487         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
21488         * target.h (struct gcc_target) [struct calls]: Add
21489         return_pops_args field.
21490         * targhooks.h (default_return_pops_args): Declare.
21491         * targhooks.c (default_return_pops_args): Define.
21492         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
21493         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
21494         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
21495         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
21496         documentation.
21497         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
21498         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
21499         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
21500         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
21501         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
21502         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
21503         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
21504         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
21505         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
21506         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
21507         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
21508         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
21509         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
21510         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
21511         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
21512         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
21513         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
21514         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
21515         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
21516         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
21517         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
21518         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
21519         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
21520         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
21521         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
21522         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
21523         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
21524         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
21525         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
21526         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
21527         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
21528         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
21529         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
21530         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
21531         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
21532         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
21533         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
21534         * config/i386/i386.c (ix86_return_pops_args): Make static.
21535         Constify arguments.
21536         (TARGET_RETURN_POPS_ARGS): Define.
21537         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
21538         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
21539         (TARGET_RETURN_POPS_ARGS): Define.
21540         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
21541         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
21542         (TARGET_RETURN_POPS_ARGS): Define.
21543
21544 2010-06-29  Richard Guenther  <rguenther@suse.de>
21545
21546         PR middle-end/44667
21547         * tree-inline.c (initialize_inlined_parameters): Make sure
21548         to remap the inlined parameter variable substitutions types.
21549
21550 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
21551
21552         PR rtl-optimization/44659
21553         * combine.c (make_compound_operation) <SUBREG>: Do not return the
21554         result of force_to_mode if it partially re-expanded the compound.
21555
21556 2010-06-28  Jan Hubicka  <jh@suse.cz>
21557
21558         PR middle-end/44671
21559         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
21560         RESULT_DECL.
21561
21562 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
21563
21564         * double-int.h (force_fit_type_double): Remove declaration.
21565         * double-int.c (force_fit_type_double): Move to tree.c.
21566         * tree.h (force_fit_type_double): Declare.
21567         * tree.h (force_fit_type_double): Moved from double-int.c. Use
21568         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
21569         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
21570         * convert.c (convert_to_pointer): Adjust call to
21571         force_fit_type_double.
21572         * tree-vrp.c (extract_range_from_assert,
21573         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
21574         * fold-const.c: Update comment.
21575         (int_const_binop, fold_convert_const_int_from_int,
21576         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
21577         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
21578         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
21579         round_up_loc): Adjust call to force_fit_type_double.
21580
21581 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
21582
21583         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
21584
21585 2010-06-28  Martin Jambor  <mjambor@suse.cz>
21586
21587         * tree-sra.c (convert_callers): New parameter, change fndecls of
21588         recursive calls.
21589         (modify_function): Pass the old decl to convert_callers.
21590
21591 2010-06-28  Martin Jambor  <mjambor@suse.cz>
21592
21593         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
21594         ipa_check_create_node_params and ipa_initialize_node_params with
21595         checking asserts they are not necessary.
21596
21597 2010-06-28  Jan Hubicka  <jh@suse.cz>
21598
21599         PR tree-optimization/44687
21600         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
21601
21602 2010-06-28  Martin Jambor  <mjambor@suse.cz>
21603
21604         PR c++/44535
21605         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
21606         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
21607         instead of BINFO_BASE_BINFO.
21608
21609 2010-06-28  Michael Matz  <matz@suse.de>
21610
21611         PR middle-end/44592
21612         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
21613         proper VDEF chain for intermediate stores in the sequence.
21614
21615 2010-06-28  Jan Hubicka  <jh@suse.cz>
21616
21617         PR tree-optimization/44357
21618         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
21619         uninlinable functions.
21620
21621 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
21622
21623         * config.gcc (powerpc*-*-*): Handle titan.
21624         * config/rs6000/rs6000.c (titan_cost): New costs.
21625         (rs6000_override_options): Add "titan" to processor_target_table.
21626         Add Titan to branch alignment logic.
21627         Correctly set rs6000_cost for titan.
21628         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
21629         * config/rs6000/titan.md: New file.
21630         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
21631
21632 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
21633
21634         * tree-browser.c (TB_history_stack): Convert to a VEC.
21635         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
21636         (TB_history_prev): Likewise.
21637
21638 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
21639
21640         * vec.h (vec_heap_free): Add parentheses around free.
21641
21642 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
21643
21644         * system.h: Poison GCC_EXCEPT_H for front-end files.
21645
21646         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
21647         langhook.
21648         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
21649         Define to NULL by default.
21650         * except.h: Define GCC_EXCEPT_H.
21651         (doing_eh): Remove prototype.
21652         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
21653         (lang_protect_cleanup_actions): Remove.
21654         * except.c (lang_protect_cleanup_actions): Remove.
21655         (doing_eh): Remove.
21656         (gen_eh_region): Don't check doing_eh here.
21657         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
21658         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
21659         instead of lang_protect_cleanup_actions.
21660         * omp-low.c (maybe_catch_exception): Likewise.
21661         * Makefile.in: Update dependencies.
21662
21663 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
21664
21665         * cgraph.h (struct varpool_node): new used_from_object_file flag.
21666         (struct cgraph_local_info): new used_from_object_file flag.
21667         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
21668         (cgraph_clone_node): initialize used_from_object_file.
21669         (cgraph_create_virtual_clone): initialize used_from_object_file.
21670         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
21671         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
21672         when compiling with -fwhole-program.
21673         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
21674         internal resolver.
21675         * ipa.c (function_and_variable_visibility): Set externally_visible
21676         flag of varpool_node if used_from_object_file flag is set.
21677         (cgraph_externally_visible_p): check used_from_object_file flag.
21678         * doc/invoke.texi (-fwhole-program option): Change description of
21679         externally_visible attribute accordingly.
21680         * doc/extend.texi (externally_visible): Ditto.
21681
21682 2010-06-27  Jan Hubicka  <jh@suse.cz>
21683
21684         * params.def (max-inline-insns-auto): Default to 40.
21685         * doc/invoke.texi (max-inline-insns-auto): Document the change.
21686
21687 2010-06-27  Jan Hubicka  <jh@suse.cz>
21688
21689         PR middle-end/44671
21690         PR middle-end/44686
21691         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
21692         signature change.
21693         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
21694         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
21695
21696 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
21697
21698         * target.h (struct gcc_target): Add register_move_cost field.
21699         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
21700         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
21701         * targhooks.c (default_register_move_cost): New function.
21702         * targhooks.h (default_register_move_cost): Declare function.
21703         * defaults.h (REGISTER_MOVE_COST): Delete.
21704         * ira-int.h (ira_register_move_cost): Update comment.
21705         * ira.c (ira_register_move_cost): Update comment.
21706         * reload.h (register_move_cost): Declare.
21707         * reginfo.c (register_move_cost): New function.
21708         (move_cost): Update comment.
21709         (init_move_cost, memory_move_secondary_cost): Replace
21710         REGISTER_MOVE_COST with register_move_cost.
21711         * postreload.c (reload_cse_simplify_set): (Ditto.).
21712         * reload.c (find_valid_class, find_reloads): (Ditto.).
21713         * reload1.c (choose_reload_regs): (Ditto.).
21714         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
21715         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
21716         * doc/md.texi (can_create_pseudo_p): Update documentation.
21717
21718         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
21719         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
21720         * config/i386/i386.h (ix86_memory_move_cost): Make static.
21721         (TARGET_MEMORY_MOVE_COST): Define.
21722
21723         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
21724         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
21725         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
21726         (TARGET_MEMORY_MOVE_COST): Define.
21727
21728 2010-06-27  Richard Guenther  <rguenther@suse.de>
21729
21730         PR tree-optimization/44683
21731         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
21732         false edge from the inverted condition.
21733
21734 2010-06-27  Richard Guenther  <rguenther@suse.de>
21735
21736         PR middle-end/44684
21737         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
21738         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
21739         for register LHS.  Or non-store assignments.
21740
21741 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
21742
21743         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
21744         (sparc_emit_set_const64): Likewise.  Remove disabled code.
21745         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
21746         (sparc_emit_set_const64): Likewise.
21747
21748 2010-06-26  Catherine Moore  <clm@codesourcery.com>
21749
21750         * config/mips/mips.md (alu_type): New attribute.
21751         (type): Infer type from alu_type.
21752         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
21753         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
21754         *subsi3_extended, negsi2, negdi2, *low<mode>,
21755         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
21756         xor<mode>3, *nor<mode>3,
21757         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
21758         *zero_extendhi_truncqi):  Set alu_type instead of type.
21759
21760 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
21761
21762         * config/alpha/alpha.c (alpha_need_linkage): Adjust
21763         splay_tree_new_ggc call.
21764         (alpha_use_linkage): Likewise.
21765
21766 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
21767
21768         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
21769         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
21770         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
21771         (static_specs): Remove switches_need_spaces.
21772         (process_command, do_self_spec): Hardcode handling "-o" instead of
21773         checking switches_need_spaces.
21774         * system.h (SWITCHES_NEED_SPACES): Poison.
21775
21776 2010-06-26  Richard Guenther  <rguenther@suse.de>
21777
21778         PR tree-optimization/44393
21779         * tree-loop-distribution.c (generate_loops_for_partition): Fix
21780         stmt removal and VOP renaming.
21781         (generate_memset_zero): Remove redundant stmt updating.
21782         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
21783         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
21784
21785 2010-06-26  Jan Hubicka  <jh@suse.cz>
21786
21787         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
21788         edges comming from header are equivalent.
21789         (visit_bb): Handle PHIs correctly.
21790         * tree-inline.c (copy_phis_for_bb): Be able to copy
21791         PHI from entry edge.
21792         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
21793
21794 2010-06-26  Richard Guenther  <rguenther@suse.de>
21795
21796         PR middle-end/44674
21797         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
21798         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
21799
21800 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
21801
21802         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
21803         add_infile, alloc_switch): New.
21804         (process_command): Remove variable lang_n_infiles.  Process
21805         options in a single pass.  Use new functions for allocating
21806         infiles and switches arrays.  Properly skip operands of
21807         -Xpreprocessor and -Xassembler.
21808
21809 2010-06-26  Jan Hubicka  <jh@suse.cz>
21810
21811         PR middle-end/44671
21812         * cgraphunit.c (cgraph_function_versioning): Remove wrong
21813         cgraph_make_decl_local call; fix typo copying RTL data.
21814
21815 2010-06-25  DJ Delorie  <dj@redhat.com>
21816
21817         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
21818         (m32c_output_aligned_common): Likewise.
21819         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
21820         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
21821         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
21822         (m32c_register_pragmas): Register it.
21823         * config/m32c/m32c.c (m32c_get_pragma_address): New.
21824         (m32c_insert_attributes): Set #pragma address decls volatile.
21825         (pragma_entry_eq): New.
21826         (pragma_entry_hash): New.
21827         (m32c_note_pragma_address): New.
21828         (m32c_get_pragma_address): New.
21829         (m32c_output_aligned_common): New.
21830         * doc/extend.texi: Document the new pragma.
21831
21832         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
21833         also.
21834         * config/m32c/predicates.md (m32c_any_operand): Check the code
21835         instead of memory_operand so as to allow matching volatile MEMs.
21836         (m32c_nonimmediate_operand): Likewise.
21837         (mra_operand): Allow volatiles.
21838
21839 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
21840
21841         PR debug/44610
21842         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
21843         address if the offset is unknown.
21844
21845 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
21846
21847         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
21848         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
21849         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
21850         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
21851         to ia64_start_function. Invoke it.
21852         * config/ia64/ia64.c (ia64_start_function): Call new function
21853         dwarf2out_vms_debug_main_pointer.
21854
21855 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
21856
21857         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
21858         statements computing the true predicate.
21859
21860 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
21861
21862         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
21863         to boolean_true_node.
21864         (reset_bb_predicate): New.
21865         (predicate_bbs): Call reset_bb_predicate.
21866
21867 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
21868
21869         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
21870         (tree_if_conversion): Returns true when something has been changed.
21871         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
21872         changed something.
21873
21874 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
21875
21876         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
21877         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
21878         * tree-if-conv.c: Include dbgcnt.h.
21879         (tree_if_conversion): Use if_conversion_tree to count the number of
21880         if-convertible loops.
21881
21882 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
21883
21884         * common.opt (fprefetch-loop-arrays): Re-define
21885         -fprefetch-loop-arrays as a tri-state option with the initial
21886         value of -1.
21887         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
21888         pass only when flag_prefetch_loop_arrays > 0.
21889         * toplev.c (process_options): Note that, with tri-states,
21890         flag_prefetch_loop_arrays>0 means prefetching is enabled.
21891         * config/i386/i386.c (override_options): Enable prefetching at -O3
21892         for a set of CPUs that sw prefetching is helpful.
21893         (software_prefetching_beneficial_p): New.  Return TRUE if software
21894         prefetching is beneficial for the given CPU.
21895
21896 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
21897
21898         PR rtl-optimization/44326
21899         * implicit-zee.c (find_removable_zero_extends): Replace
21900         INSN_P with NONDEBUG_INSN_P.
21901
21902 2010-06-25  Martin Jambor  <mjambor@suse.cz>
21903
21904         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
21905         (struct ipa_node_params): Removed the modification_analysis_done flag.
21906         (ipa_is_param_modified): Removed.
21907         (ipa_analyze_node): Declare.
21908         (ipa_compute_jump_functions): Remove declaration.
21909         (ipa_count_arguments): Likewise.
21910         (ipa_detect_param_modifications): Likewise.
21911         (ipa_analyze_params_uses): Likewise.
21912         * ipa-prop.c (struct param_analysis_info): New type.
21913         (visit_store_addr_for_mod_analysis): Removed.
21914         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
21915         moved down in the file.
21916         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
21917         (ipa_count_arguments): Made static.
21918         (mark_modified): New function.
21919         (is_parm_modified_before_call): New function.
21920         (compute_pass_through_member_ptrs): New parameter parms_info, call
21921         is_parm_modified_before_call instead of ipa_is_param_modified.
21922         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
21923         it to compute_pass_through_member_ptrs.
21924         (ipa_compute_jump_functions): New parameter parms_info, pass it to
21925         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
21926         on the callee if it is analyzed.  Made static.
21927         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
21928         is_parm_modified_before_call instead of ipa_is_param_modified.
21929         (ipa_analyze_call_uses): New parameter parms_info, pass it to
21930         ipa_analyze_indirect_call_uses.
21931         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
21932         ipa_analyze_call_uses.
21933         (ipa_analyze_params_uses): New parameter parms_info, pass it to
21934         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
21935         (ipa_analyze_node): New function.
21936         (ipa_print_node_params): Do not dump the modified flag.
21937         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
21938         it.  Do not stream the modified parameter flag.
21939         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
21940         it.  Do not stream the modified parameter flag.
21941         * ipa-cp.c (ipcp_analyze_node): Removed.
21942         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
21943         with only a call to ipa_analyze_node.
21944         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
21945         node with only a call to ipa_analyze_node.
21946
21947 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21948
21949         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
21950
21951 2010-06-25  Jan Hubicka  <jh@suse.cz>
21952
21953         * tree-pass.h (pass_split_functions): Declare.
21954         * opts.c (decode_options): Enable function splitting at -O2
21955         * timevar.def (TV_IPA_FNSPLIT): New macro.
21956         * ipa-split.c: New file.
21957         * common.opt (-fpartial-inlining): New flag.
21958         * Makefile.in (ipa-split.o): New object file.
21959         * passes.c (init_optimization_passes): Add ipa-split.
21960         * params.def (partial-inlining-entry-probability): New parameters.
21961         * doc/invoke.texi (-fpartial-inlining): New.
21962
21963 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21964
21965         PR 44665
21966         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
21967         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
21968         (gimplify_expr): Likewise.
21969
21970 2010-06-25  Martin Jambor  <mjambor@suse.cz>
21971
21972         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
21973         statements instead of bailing out on them.
21974         (ipa_analyze_indirect_call_uses): Do not require that loads from the
21975         parameter are in the same BB as the condition.  Update comments.
21976
21977 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
21978
21979         PR middle-end/43866
21980         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
21981         true or always false, return NULL_TREE.
21982         (tree_unswitch_single_loop): Optimize conditions even when reaching
21983         max-unswitch-level parameter.  If num > 0, optimize first all conditions
21984         using entry checks, then do still reachable block discovery and consider
21985         only conditions in still reachable basic blocks in the loop.
21986
21987         PR tree-optimization/44539
21988         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
21989         the call doesn't have LHS, but has VDEF.
21990
21991 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
21992
21993         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
21994         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
21995         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
21996         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
21997         * system.h (MODIFY_TARGET_NAME): Poison.
21998
21999 2010-06-25  Alan Modra  <amodra@gmail.com>
22000
22001         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
22002         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
22003         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
22004         CMODEL_LARGE as default.
22005         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
22006         (offsettable_ok_by_alignment): Delete.
22007         (rs6000_emit_move): Remove mcmodel=medium optimization.
22008
22009 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22010
22011         With large parts from Jim Wilson:
22012         PR target/43902
22013         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
22014         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22015         * optabs.c (optab_for_tree_code): Likewise.
22016         (expand_widen_pattern_expr): Likewise.
22017         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
22018         out of execute_optimize_widening_mul.
22019         (convert_plusminus_to_widen): New function.
22020         (execute_optimize_widening_mul): Use the two new functions.
22021         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
22022         Remove code to generate widening multiply-accumulate.  Add support
22023         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22024         * gimple-pretty-print.c (dump_ternary_rhs): New function.
22025         (dump_gimple_assign): Call it when appropriate.
22026         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
22027         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
22028         (expand_gimple_stmt_1): Likewise.
22029         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
22030         WIDEN_MULT_MINUS_EXPR.
22031         * tree-ssa-operands.c (get_expr_operands): Likewise.
22032         * tree-inline.c (estimate_operator_cost): Likewise.
22033         * gimple.c (extract_ops_from_tree_1): Renamed from
22034         extract_ops_from_tree.  Add new arg for a third operand; fill it.
22035         (gimple_build_assign_stat): Support operations with three operands.
22036         (gimple_build_assign_with_ops_stat): Likewise.
22037         (gimple_assign_set_rhs_from_tree): Likewise.
22038         (gimple_assign_set_rhs_with_ops_1): Renamed from
22039         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
22040         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
22041         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
22042         WIDEN_MULT_MINUS_EXPR.
22043         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
22044         (extract_ops_from_tree_1): Adjust declaration.
22045         (gimple_assign_set_rhs_with_ops_1): Likewise.
22046         (gimple_build_assign_with_ops): Pass NULL for last operand.
22047         (gimple_build_assign_with_ops3): New macro.
22048         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
22049         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
22050         functions.
22051         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
22052         (verify_gimple_assign): Call it.
22053         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
22054         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
22055         functions for dealing with three-operand statements.
22056         * tree.c (commutative_ternary_tree_code): New function.
22057         * tree.h (commutative_ternary_tree_code): Declare it.
22058         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
22059         ternary statements.
22060         (gimple_assign_nonzero_warnv_p): Likewise.
22061         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
22062         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
22063         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
22064         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
22065         (struct hashtable_expr): New member ternary in the union.
22066         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
22067         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
22068         (iterative_hash_hashable_expr): Likewise.
22069         (print_expr_hash_elt): Handle EXPR_TERNARY.
22070         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
22071         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
22072         statements.  Handle GIMPLE_TERNARY_RHS.
22073
22074 2010-06-25  Jan Hubicka  <jh@suse.cz>
22075
22076         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
22077
22078 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
22079
22080         PR c/44517
22081         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
22082         parameters are not good.
22083         (c_parser_parameter_declaration): Error unknown type name if the type
22084         name can't start declaration specifiers.
22085
22086 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
22087
22088         * gcc.c (translate_options): Don't mention +e in comment.
22089         (process_command): Don't handle +e specially.
22090
22091 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22092
22093         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
22094
22095         * ira-build.c (merge_hard_reg_conflicts): New function.
22096         (create_cap_allocno, copy_info_to_removed_store_destinations,
22097         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
22098         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
22099         (remove_unnecessary_allocnos, remove_low_level_allocnos)
22100         copy_nifo_to_removed_store_destination): Use them.
22101         * ira-lives.c (make_hard_regno_born): New function, split out of
22102         make_regno_born.
22103         (make_allocno_born): Likewise.
22104         (make_hard_regno_dead): New function, split out of make_regno_dead.
22105         (make_allocno_dead): Likewise.
22106         (inc_register_pressure): New function, split out of set_allocno_live.
22107         (dec_register_pressure): New function, split out of clear_allocno_live.
22108         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
22109         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
22110         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
22111         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
22112         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
22113         mark_pseudo_regno_live.
22114         (process_bb_node_lives): Use mark_pseudo_regno_live,
22115         make_hard_regno_born and make_allocno_dead.
22116         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
22117         set_allocno_live, clear_allocno_live): Delete functions.
22118
22119         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
22120         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
22121         functions.
22122         (ira_flattening): Use ira_parent_allocno.
22123         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
22124         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
22125
22126         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
22127         statement.
22128
22129         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
22130         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
22131         minmax_set_iter_cond, minmax_set_iter_next,
22132         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
22133         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
22134         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
22135         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
22136         uses changed.
22137
22138         * ira-int.h (struct live_range, live_range_t): Renamed from struct
22139         ira_allocno_live_range and allocno_live_range_t; all uses changed.
22140         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
22141         All uses changed.
22142
22143 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
22144
22145         * thumb2.md (thumb2_tlobits_cbranch): Delete.
22146         (peephole2 to convert zero_extract/compare of single bit to
22147          lshift/compare): New.
22148
22149 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
22150
22151         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
22152         recursive call and call to 'int_const_binop'.
22153         (build_range_check, fold_cond_expr_with_comparison, unextend,
22154         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
22155         multiple_of_p): Adjust call to const_binop.
22156
22157 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
22158
22159         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
22160         determine size of XFmode operand.
22161         (XFmode extended DFmode push splitter): Ditto.
22162         (XFmode extended SFmode push splitter): Ditto.
22163
22164 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
22165
22166         PR target/44588
22167         * config/i386/i386.md (extract_code): New.
22168         (<u>divmodqi4): Likewise.
22169         (divmodhiqi3): Likewise.
22170         (udivmodhiqi3): Likewise.
22171         (<u>divqi3): Remvoved.
22172
22173 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
22174
22175         PR middle-end/44492
22176         * recog.h (struct recog_data): Add is_asm field.
22177         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
22178         present in constraints of inline-asm operand and memory operand
22179         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
22180         (extract_insn): Initialize recog_data.is_asm.
22181         * doc/md.texi (Constraints): Document operand side-effect rules.
22182
22183 2010-06-24  Andi Kleen  <ak@linux.intel.com>
22184
22185         * c-parser.c (c_parser_conditional_expression): Call
22186         warn_for_omitted_condop.
22187         * doc/invoke.texi: Document omitted condop warning.
22188
22189 2010-06-24  Nick Clifton<nickc@redhat.com>
22190
22191         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
22192         insn in the sequence is a jump insn before setting its label.
22193
22194 2010-06-24  Alan Modra  <amodra@gmail.com>
22195
22196         * collect2.c (main): Match exactly --version and --help.
22197
22198 2010-06-24  DJ Delorie  <dj@redhat.com>
22199
22200         * config/m32c/m32c-pragma.c: Don't include rtl.h.
22201
22202 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
22203
22204         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
22205         using X87MODEF mode iterator.
22206         (pushsf splitter): Macroize splitter using P mode iterator.
22207         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
22208         mode iterator.
22209
22210         (*movxf_internal): Rename from *movxf_integer.
22211         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
22212         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
22213         (*movdf_internal): Rename from *movdf_integer.
22214         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
22215         (*movsf_internal): Rename from *movdf_1.
22216
22217 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
22218
22219         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
22220         (const_gimple_seq_node): Removed typedefs.
22221
22222         * gimple.h (gimple_seq_node_d, gimple_seq_node)
22223         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
22224
22225 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
22226
22227         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
22228         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
22229         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
22230         and CODE_FOR_vec_extract_lo_v4df.
22231
22232         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
22233         Changed to define_insn_and_split.
22234         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
22235         (vec_extract_lo_v16hi): Likewise.
22236         (vec_extract_lo_v32qi): Likewise.
22237         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
22238         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
22239
22240 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
22241
22242         PR target/44640
22243         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
22244         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
22245         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
22246         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
22247         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
22248
22249         PR target/44640
22250         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
22251
22252         PR other/44644
22253         * df-core.c (struct df): Rename to df_d.
22254         * df.h (struct df): Likewise.
22255         * dse.h (struct df): Remove forward declaration.
22256         * recog.h (struct insn_data): Rename to:
22257         (struct_insn_data_d).  Adjusted all users.
22258
22259 2010-06-23  Arnaud Charlet  <charlet@adacore.com
22260
22261         PR ada/22220
22262         * doc/install.texi: Update requirements to build GNAT.
22263
22264 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
22265
22266         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
22267         enum type.
22268         (m68k_sched_attr_opx_type): Remove unreachable return.
22269         (m68k_sched_attr_opy_type): Likewise.
22270         (m68k_sched_attr_size): Likewise.
22271         (sched_get_opxy_mem_type): Likewise.
22272         (m68k_sched_attr_op_mem): Likewise.
22273
22274 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
22275
22276         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
22277         new statement and adjust VDEF only if necessary.  Remove superfluous
22278         call to maybe_clean_or_replace_eh_stmt.
22279         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
22280         copy the flags.
22281         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
22282         * tree-inline.c (copy_bb): ...and not there.
22283
22284 2010-06-22  Cary Coutant  <ccoutant@google.com>
22285
22286         * dwarf2out.c (is_nested_in_subprogram): New function.
22287         (should_move_die_to_comdat): Use it.
22288         (copy_ancestor_tree): Don't mark DIEs here.
22289         (copy_decls_walk): Start walk from root of newly-added tree;
22290         mark DIEs here instead.
22291
22292 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
22293
22294         * config/i386/i386.md (unit): Also check sseishft1.
22295
22296 2010-06-22  Jan Hubicka  <jh@suse.cz>
22297
22298         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
22299         enabled.
22300
22301 2010-06-22  Jan Hubicka  <jh@suse.cz>
22302
22303         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
22304         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
22305         Return true if something changed.
22306         * df.h (df_confluence_function_n): Return bool.
22307         * df-core.c (df_worklist_propagate_forward,
22308         df_worklist_propagate_backward): Track changes and ages.
22309         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
22310         track ages.
22311         * dse.c (dse_confluence_n): Return always true.
22312
22313 2010-06-22  Jan Hubicka  <jh@suse.cz>
22314
22315         * bitmap.c (bitmap_clear_bit): Micro optimize.
22316
22317 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
22318
22319         * config/i386/i386.md (SWI1248x): New mode iterator.
22320         (SWI48x): Ditto.
22321         (SWI12): Ditto.
22322         (SWI24): Ditto.
22323
22324         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
22325         SWI1248x mode iterator.
22326         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
22327         using SWI124 mode iterator.
22328         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
22329         mode iterator.
22330         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
22331         *pushdi2_prologue_rex64 using P mode iterator.
22332         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
22333         using SWI48 mode iterator.
22334         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
22335         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
22336         using SWI1248x mode iterator.
22337         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
22338         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
22339         SWI48 mode iterator.
22340         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
22341         iterator.
22342         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
22343         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
22344         SWI12 mode iterator.
22345         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
22346         SWI12 mode iterator.
22347         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
22348         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
22349         SWI24 mode iterator.
22350         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
22351         SWI48 mode iterator.
22352         (mov<mode>_insn_1): New expander.
22353         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
22354         using SWI48x mode iterator.
22355
22356         (*movoi_internal_avx): Rename from *movoi_internal.
22357         (*movti_internal_rex64): Rename from *movti_rex64.
22358         (*movti_internal_sse): Rename from *movti_sse.
22359         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
22360         (*movdi_internal): Rename from *movdi_2.
22361         (*movsi_internal): Rename from *movsi_1.
22362         (*movhi_internal): Rename from *movhi_1.
22363         (*movqi_internal): Rename from *movqi_1.
22364
22365         (insv): Update the call to gen_movsi_insv_1 for rename.
22366         * config/i386/i386.c (promote_duplicated_reg): Ditto.
22367
22368 2010-06-22  Jan Hubicka  <jh@suse.cz>
22369
22370         * passes.c (execute_function_todo): Move call of statistics_fini_pass
22371         to ...
22372         (execute_todo) ... this one.
22373
22374 2010-06-22  Alan Modra  <amodra@gmail.com>
22375
22376         PR target/44364
22377         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
22378         * caller-save.c (insert_restore, insert_save): Use non-validate
22379         form of adjust_address.
22380
22381 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22382
22383         PR target/39690
22384         * config/pa/pa.c (override_options): Disable
22385         -freorder-blocks-and-partition.
22386
22387 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
22388
22389         PR target/44615
22390         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
22391
22392         * config/i386/i386.md (type): Add sseishft1
22393
22394         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
22395         (ppro_insn_load): Likewise.
22396         (ppro_insn_store): Likewise.
22397         (ppro_insn_both): Likewise.
22398
22399         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
22400         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
22401         for type.
22402         (*vec_extractv2di_1_avx): Likewise.
22403         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
22404         type.  Remove atom_unit.
22405         (*vec_extractv2di_1_sse2): Likewise.
22406
22407 2010-06-21  DJ Delorie  <dj@redhat.com>
22408
22409         * diagnostic.h (diagnostic_classification_change_t): New.
22410         (diagnostic_context): Add history and push/pop list.
22411         (diagnostic_push_diagnostics): Declare.
22412         (diagnostic_pop_diagnostics): Declare.
22413         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
22414         from pragmas in a history chain instead of the global table.
22415         (diagnostic_push_diagnostics): New.
22416         (diagnostic_pop_diagnostics): New.
22417         (diagnostic_report_diagnostic): Scan history chain to find state
22418         of diagnostics as of the diagnostic location.
22419         * opts.c (set_option): Pass UNKNOWN_LOCATION to
22420         diagnostic_classify_diagnostic.
22421         (enable_warning_as_error): Likewise.
22422         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
22423         use in the history chain.
22424         * doc/extend.texi: Document pragma GCC diagnostic changes.
22425
22426 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
22427
22428         * dwarf2out.c (add_linkage_name): New function.  Don't add
22429         anything to DW_TAG_member DIEs.
22430         (add_name_and_src_coords_attributes): Use it.
22431         (gen_variable_die): Call it for C++ static data members if
22432         specification is DW_TAG_member.
22433
22434         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
22435         C++ char16_t and char32_t.
22436
22437         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
22438         * genattrtab.c: Include vecprim.h.
22439         (cached_attrs, cached_attr_count, attrs_seen_once,
22440         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
22441         attrs_cached_after): New variables.
22442         (find_attrs_to_cache): New function.
22443         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
22444         (write_test_expr): Add attrs_cached argument, return it too,
22445         attempt to cache non-const attributes used more than once in
22446         a single case handling.
22447         (write_attr_get): Use find_attrs_to_cache, for caching candidates
22448         emit cached_* variables.  Adjust write_attr_set callers.
22449         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
22450         to find attributes that should be cached in this block.  Adjust
22451         write_test_expr callers.
22452         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
22453         callers.
22454         (make_automaton_attrs): Adjust write_test_expr caller.
22455
22456         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
22457         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
22458         (make_automaton_attrs): If find_tune_attr returns non-NULL,
22459         write separate internal_dfa_insn_code_* and insn_default_latency_*
22460         functions for each attribute's value and emit init_sched_attrs
22461         function and function pointers.
22462         * genattr.c (const_attrs, reservations): New variables.
22463         (gen_attr): Add const attributes to const_attrs vector.
22464         (check_tune_attr, find_tune_attr): New functions.
22465         (main): Add reservations to reservations vector.  If find_tune_attr
22466         returns true, add prototype for init_sched_attrs and make
22467         internal_dfa_insn_code and insn_default_latency function pointers,
22468         otherwise define init_sched_attrs as dummy macro.
22469         * cfgexpand.c: Include insn-attr.h.
22470         (gimple_expand_cfg): Call init_sched_attrs.
22471
22472         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
22473
22474         PR target/44575
22475         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
22476         va_arg from a set of register save slots into a temporary,
22477         if the container is bigger than type size, do the copying
22478         using smaller mode or using memcpy.
22479
22480         PR bootstrap/44426
22481         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
22482         prototype.
22483         (sel_print_to_dot): Remove macro.
22484         (sel_print): Likewise.  New prototype.
22485         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
22486         (sel_print): New function.
22487
22488 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22489
22490         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
22491         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
22492
22493 2010-06-21  Nick Clifton  <nickc@redhat.com>
22494
22495         * config/rx/rx.h (PTRDIFF_TYPE): Define.
22496         (SMALL_REGISTER_CLASS): Define (to zero).
22497         (PRINT_OPERAND): Delete.
22498         (PRINT_OPERAND_ADDRESS): Delete.
22499         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
22500         (rx_print_operand_address): Delete prototype.
22501         * config/rx/rx.c (rx_print_operand): Make static.
22502         Allow %H and %L to handle CONST_DOUBLEs.
22503         (rx_print_operand_address): Make static.
22504         (rx_gen_move_template): Rename local variable 'template' to
22505         out_template.
22506         (rx_function_arg): Do not pass unknown sized objects in registers.
22507         (TARGET_PRINT_OPERAND): Define.
22508         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22509
22510 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
22511
22512         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
22513
22514 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
22515
22516         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
22517         stack-alignment for simple leaf-functions.
22518
22519 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
22520
22521         * doc/install.texi: Document bootstrap-lto.
22522
22523 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
22524
22525         PR debug/44248
22526         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
22527         (input_function): Drop them here, if VTA is disabled.
22528
22529 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
22530
22531         PR target/44546
22532         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
22533         New predicate.
22534         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
22535         ix86_swapped_fp_comparsion_operator instead of
22536         ix86_fp_comparison_operator.
22537
22538         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
22539         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
22540         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
22541         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
22542         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
22543         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
22544
22545 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
22546
22547         PR other/32998
22548         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
22549         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
22550         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
22551         (decode_cmdline_option): Update for this return value.  Set
22552         orig_option_with_args_text field.  Set arg field for unknown
22553         options.  Make static.
22554         (decode_cmdline_options_to_array): New.
22555         (prune_options): Update handling of find_opt return value.
22556         * opts.c (read_cmdline_option): Take decoded option.  Return void.
22557         (read_cmdline_options): Take decoded options.
22558         (decode_options): Add parameters for decoded options.  Use
22559         decode_cmdline_options_to_array.  Use decoded options for -O
22560         scan.  Use integral_argument for -O parameters.  Update call to
22561         read_cmdline_options.
22562         (enable_warning_as_error): Update handling of find_opt return value.
22563         * opts.h: Update comment on unknown options.
22564         (struct cl_decoded_option): Update comments on opt_index and arg.
22565         Add orig_option_with_args_text.
22566         (decode_cmdline_option): Remove.
22567         (decode_cmdline_options_to_array): Declare.
22568         (decode_options): Update prototype.
22569         * toplev.c (save_argv): Remove.
22570         (save_decoded_options, save_decoded_options_count): New.
22571         (read_integral_parameter): Remove.
22572         (print_switch_values): Use decoded options.
22573         (toplev_main): Don't set save_argv.  Update call to decode_options.
22574         * toplev.h (read_integral_parameter): Remove.
22575         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
22576
22577 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
22578
22579         PR target/44072
22580         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
22581         immediate.
22582         * constraints.md (Pw, Px): New constraints.
22583         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
22584
22585 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
22586
22587         * config/i386/sse.md (fma4modesuffixf4): Removed.
22588         (ssemodesuffixf2s): Likewise.
22589         (ssemodesuffixf4): Likewise.
22590         (ssemodesuffixf2c): Likewise.
22591         (ssescalarmodesuffix2s): Likewise.
22592         (avxmodesuffixf2c): Likewise.
22593         (ssemodesuffix): New.
22594         (ssescalarmodesuffix): Likewise.
22595         Update patterns with ssemodesuffix and ssescalarmodesuffix.
22596
22597 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
22598
22599         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
22600
22601 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
22602
22603         * stor-layout.c (debug_rli): Remove unused local variables.
22604
22605 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
22606
22607         PR rtl-optimization/40900
22608         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
22609         original expression for later reuse.
22610         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
22611         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
22612
22613 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
22614
22615         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
22616         double_int_fits_in_uhwi_p): Implement as static inline.
22617         (double_int_xor): New inline function.
22618         (double_int_lrotate, double_int_rrotate, double_int_max,
22619         double_int_umax, double_int_smax, double_int_min, double_int_umin,
22620         double_int_smin): Declare.
22621         (lrotate_double, rrotate_double): Remove declaration.
22622         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
22623         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
22624         (double_int_lrotate, double_int_rrotate, double_int_max,
22625         double_int_umax, double_int_smax, double_int_min, double_int_umin,
22626         double_int_smin): New function.
22627         * fold-const.c (int_const_binop): Clean up, use double_int_*
22628         functions.
22629         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
22630         double_int_* and immed_double_int_const functions.
22631
22632 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
22633
22634         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
22635         * function.c (types_used_by_cur_var_decl): Likewise.
22636         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
22637
22638 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
22639
22640         * tree.h (record_layout_info): Change type of pending_statics field
22641         to a VEC.
22642         * stor-layout.c (start_record_layout): Store NULL into
22643         pending_statics.
22644         (debug_rli): Call debug_vec_tree instead of debug_tree.
22645         (place_field): Likewise.
22646         (finish_record_layout): Likewise.
22647
22648 2010-06-18  Alan Modra  <amodra@gmail.com>
22649
22650         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
22651
22652 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22653
22654         PR target/43740
22655         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
22656         for SET source operand from SET destination operand.
22657
22658 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
22659
22660         PR rtl-optimization/39871
22661         * reload1.c (init_eliminable_invariants): For flag_pic, disable
22662         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
22663         (function_invariant_p): Rule out a plus of frame or arg pointer with
22664         a SYMBOL_REF.
22665         * ira.c (find_reg_equiv_invariant_const): Likewise.
22666
22667 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
22668
22669         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
22670         print_operand_address and puts to output the operand for CONST.
22671
22672 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
22673
22674         PR debug/44572
22675         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
22676         hook.
22677
22678 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22679
22680         * v850-protos.h (print_operand): Delete.
22681         (print_operand_address): Delete.
22682         * v850.h (PRINT_OPERAND): Delete.
22683         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22684         (PRINT_OPERAND_ADDRESS): Delete.
22685         * v850.c (print_operand_address): Rename to...
22686         (v850_print_operand_address): ...this.  Make static. Call
22687         v850_print_operand.
22688         (print_operand): Rename to...
22689         (v850_print_operand): ...this.  Make static.  Call
22690         v850_print_operand_address.
22691         (v850_print_operand_punct_valid_p): New function.
22692         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
22693         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
22694
22695 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22696
22697         * config/sh/sh-protos.h (print_operand): Delete.
22698         (print_operand_address): Delete.
22699         * config/sh/sh.h (PRINT_OPERAND): Delete.
22700         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22701         (PRINT_OPERAND_ADDRESS): Delete.
22702         * config/sh/sh.c (sh_print_operand_address): Make static.
22703         (sh_print_operand): Make static.  Call sh_print_operand_address
22704         and sh_print_operand.
22705         (sh_print_operand_punct_valid_p): New function.
22706         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
22707         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
22708
22709 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22710
22711         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
22712         (mcore_print_operand_address): Delete.
22713         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
22714         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22715         (PRINT_OPERAND_ADDRESS): Delete.
22716         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
22717         (mcore_print_operand): Make static.
22718         (mcore_print_operand_punct_valid_p): New function.
22719         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
22720         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
22721
22722 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22723
22724         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
22725         (print_operand_address): Delete.
22726         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
22727         (PRINT_OPERAND_ADDRESS): Delete.
22728         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
22729         static.
22730         (m68hc11_print_operand): Make static.
22731         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
22732
22733 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22734
22735         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
22736         (m32r_print_operand_address): Delete.
22737         * config/m32r/m32r.h (m32r_punct_chars): Delete.
22738         (PRINT_OPERAND): Delete.
22739         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22740         (PRINT_OPERAND_ADDRESS): Delete.
22741         * config/m32r/m32r.c (m32r_punct_chars): Make static.
22742         (m32r_print_operand_address): Make static.
22743         (m32r_print_operand): Make static.
22744         (m32r_print_operand_punct_valid_p): New function.
22745         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22746         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22747
22748 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22749
22750         * config/iq2000/iq2000-protos.h (print_operand): Delete.
22751         (print_operand_address): Delete.
22752         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
22753         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22754         (PRINT_OPERAND_ADDRESS): Delete.
22755         (iq2000_print_operand_punct): Delete.
22756         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
22757         (iq2000_print_operand_address): Make static.
22758         (iq2000_print_operand): Make static.
22759         (iq2000_print_operand_punct_valid_p): New function.
22760         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22761         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22762
22763 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22764
22765         * config/frv/frv-protos.h (frv_print_operand): Delete.
22766         (frv_print_operand_address): Delete.
22767         * config/frv/frv.h (PRINT_OPERAND): Delete.
22768         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22769         (PRINT_OPERAND_ADDRESS): Delete.
22770         * config/frv/frv.c (frv_print_operand_address): Make static.
22771         (frv_print_operand): Make static.
22772         (frv_print_operand_punct_valid_p): New function.
22773         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22774         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22775
22776 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22777
22778         * tree.h (vec_member): Declare.
22779         * tree.c (vec_member): Define.
22780
22781 2010-06-17  Richard Guenther  <rguenther@suse.de>
22782
22783         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
22784         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
22785
22786 2010-06-17  Richard Guenther  <rguenther@suse.de>
22787
22788         * tree-inline.c (declare_return_variable): Remove bogus code.
22789
22790 2010-06-17  Richard Guenther  <rguenther@suse.de>
22791
22792         * gimplify.c (gimplify_bind_expr): Always promote complex
22793         and vector variables to registers if possible.
22794
22795 2010-06-17  Richard Guenther  <rguenther@suse.de>
22796
22797         * expr.c (get_inner_reference): Use double_int for bit_offset
22798         calculation.
22799
22800 2010-06-16  DJ Delorie  <dj@redhat.com>
22801
22802         * common.opt (-fstrict-volatile-bitfields): new.
22803         * doc/invoke.texi: Document it.
22804         * fold-const.c (optimize_bit_field_compare): For volatile
22805         bitfields, use the field's type to determine the mode, not the
22806         field's size.
22807         * expr.c (expand_assignment): Likewise.
22808         (get_inner_reference): Likewise.
22809         (expand_expr_real_1): Likewise.
22810         * expmed.c (store_fixed_bit_field): Likewise.
22811         (extract_bit_field_1): Likewise.
22812         (extract_fixed_bit_field): Likewise.
22813
22814 2010-06-16  Richard Guenther  <rguenther@suse.de>
22815
22816         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
22817
22818 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
22819
22820         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
22821         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
22822         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
22823         * debug.c: Likewise.
22824         * sdbout.c: Likewise.
22825         * vmsdbgout.c: Likewise.
22826         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
22827         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
22828         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
22829         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
22830         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
22831         * dwarf2out.c (dw_fde_struct): New fields
22832         dw_fde_vms_{end,begin}_prologue.
22833         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
22834         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
22835         (dwarf2out_vms_end_prologue): New function.
22836         (dwarf2out_vms_begin_epilogue): New function.
22837         (dw_val_struct): New value dw_val_class_vms_delta.
22838         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
22839         begin_epilogue for VMS.
22840         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
22841         new static functions.
22842         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
22843         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
22844         static functions.
22845         (print_die): New case dw_val_class_vms_delta.
22846         (attr_checksum): Likewise.
22847         (same_dw_val_p: Likewise.
22848         (size_of_die): Likewise.
22849         (value_format): Likewise.
22850         (output_die): Likewise.
22851         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
22852         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
22853         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
22854         dwarf2out_cfi_begin_epilogue
22855         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
22856
22857 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
22858
22859         * config/cris/cris-protos.h (cris_print_operand): Delete.
22860         (cris_print_operand_address): Delete.
22861         * config/cris/cris.h (PRINT_OPERAND): Delete.
22862         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22863         (PRINT_OPERAND_ADDRESS): Delete.
22864         * config/cris/cris.c (cris_print_operand_address): Make static.
22865         (cris_print_operand): Make static.
22866         (cris_print_operand_punct_valid_p): New function.
22867         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22868         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22869
22870 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
22871
22872         * config/arm/arm-protos.h (arm_print_operand): Delete.
22873         (arm_print_operand_address): Delete.
22874         * config/arm/arm.h (PRINT_OPERAND): Delete.
22875         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22876         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
22877         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
22878         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
22879         (arm_print_operand): Make static.
22880         (arm_print_operand_punct_valid_p): New function.
22881         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22882         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22883
22884 2010-06-16  Nick Clifton  <nickc@redhat.com>
22885
22886         * config/rx/constraints.md (NEGint4): New constraint.
22887         * config/rx/rx.md (attr cc): Add set_zsc.
22888         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
22889         initialised.
22890         (cmpsf): Likewise.
22891         (call_internal): Clobber the cc0 register.
22892         (call_value_internal): Likewise.
22893         (cstoresi4): Likewise.
22894         (movsieq): Likewise.
22895         (movsine): Likewise.
22896         (addsi3): Add alternative to handle small negative constants.
22897         (sunsi3): Likewise.
22898         (addsi3): Do not set the O bit in the cc0 register.
22899         (adddi3): Likewise.
22900         (subsi3): Likewise.
22901         (subdi3): Likewise.
22902         (andsi3): Reorder alternatives to prefer shorter forms.
22903         (mulsi3): Likewise.
22904         (iorsi3): Likewise.
22905         (negsi2): Note that the cc0 flags are set.
22906         (rotlsi3): Note that only the Z and S bits are set in cc0.
22907         (lshrsi3): Likewise.
22908         (ashlsi3): Likewise.
22909         (subsf3): Use %Q for the MEM operand.
22910         (fix_truncsfsi2): Likewise.
22911         (floatsisf2): Likewise.
22912         (bitset): Remove early clobber from destination.
22913         (bitset_in_memory): Likewise.
22914         (lrintsf2): Clobber the cc0 register.
22915         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
22916         (rx_print_operand): Handle %N.
22917
22918 2010-06-16  Jan Hubicka  <jh@suse.cz>
22919
22920         * df-core.c (df_compact_blocks): Free problem_temps vector.
22921
22922 2010-06-16  Martin Jambor  <mjambor@suse.cz>
22923
22924         PR tree-optimization/43905
22925         * tree-sra.c: Include tree-inline.h.
22926         (create_abstract_origin): Removed.
22927         (modify_function): Version the call graph node instead of creating
22928         abstract origins and dealing with same_body aliases.
22929         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
22930         function is versionable.
22931         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
22932
22933 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
22934
22935         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
22936         (CHOOSE_DYNAMIC_LINKER): Update.
22937
22938 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
22939
22940         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
22941         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
22942         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
22943         *prefetch_3dnow_rex.
22944
22945 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
22946
22947         * target.h (struct asm_out):Add declare_constant_name field.
22948         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
22949         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
22950         * output.h (default_asm_declare_constant_name): Declare.
22951         (assemble_label): Update prototype.
22952         * varasm.c (assemble_constant_contents): Use
22953         targetm.asm_out.declare_constant_name target hook.
22954         (assemble_label): Add 'file' argument.
22955         (default_asm_declare_constant_name): New function.
22956         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
22957         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
22958         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
22959
22960         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
22961         * config/darwin.c (darwin_asm_declare_constant_name): New function.
22962         (machopic_output_indirection): Update assemble_label argument list.
22963         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
22964         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
22965
22966 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
22967
22968         PR middle-end/44391
22969         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
22970         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
22971
22972 2010-06-15  Richard Guenther  <rguenther@suse.de>
22973
22974         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
22975
22976 2010-06-15  Paul Brook  <paul@codesourcery.com>
22977
22978         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
22979         hard-float ABI.
22980
22981 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
22982
22983         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
22984         don't get a vector type for output.
22985
22986 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
22987
22988         PR fortran/44536
22989         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
22990         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
22991         (LANG_HOOKS_DECLS): Add it.
22992         * gimplify.c (omp_notice_variable): Call
22993         lang_hooks.decls.omp_report_decl.
22994
22995 2010-06-15  Martin Jambor  <mjambor@suse.cz>
22996
22997         PR lto/44464
22998         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
22999         on the newly dead SSA name.
23000
23001 2010-06-15  Alan Modra  <amodra@gmail.com>
23002
23003         * doc/invoke.texi: Add mcmodel to powerpc options.
23004         * configure.ac: Add HAVE_LD_LARGE_TOC test.
23005         * configure: Regenerate.
23006         * config.in: Regenerate.
23007         * config/rs6000/linux64.opt (mcmodel): New.
23008         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
23009         (TARGET_CMODEL, SET_CMODEL): Define.
23010         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
23011         select CMODEL_MEDIUM default.
23012         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
23013         (TARGET_CMODEL): Define default.
23014         * config/rs6000/rs6000.c (cmodel): New variable.
23015         (rs6000_explicit_options): Add cmodel field.
23016         (rs6000_handle_option): Handle -mcmodel.
23017         (create_TOC_reference): Add largetoc_reg param.  Generate high,
23018         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
23019         (rs6000_delegitimize_address): Recognise new toc reference rtl
23020         and minimal-toc rtl.
23021         (rs6000_legitimize_reload_address): Handle new toc references.
23022         (print_operand_address): Handle legitimate_constant_pool_address_p
23023         match before lo_sum.
23024         (rs6000_eliminate_indexed_memrefs): Tidy.
23025         (rs6000_emit_move): Tweak threshold for inlining constants.
23026         Keep rs6000_emit_allocate_stack large stack frame offsets
23027         loaded into r0 inline.
23028         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
23029         (tocrel_base, tocrel_offset): New variables.
23030         (toc_relative_expr_p): Set them here.
23031         (print_operand_address): Skip over any offset on constant pool address.
23032         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
23033         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
23034         (offsettable_ok_by_alignment): New function.
23035         (rs6000_emit_move): Address suitably aligned local symbol_refs
23036         relative to the toc pointer for -mcmodel=medium.
23037         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
23038         strict param.  Allow lo_sum version of addressing.  Verify reg
23039         used for -mminimal-toc and -mcmodel != small.  Update all callers.
23040         * config/rs6000/constraints.md: Update for above change.
23041         * config/rs6000/predicates.md: Likewise.
23042         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
23043         code.
23044         (tls_gd): Split for -mcmodel=medium/large.
23045         (tls_gd_high, tls_gd_low): New.
23046         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
23047         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
23048         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
23049         (largetoc_high, largetoc_low): New.
23050         (cmptf_internal2): Add clobber.
23051         * config/rs6000/rs6000-protos.h: Update.
23052
23053 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
23054
23055         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
23056         true if no prefetch is going to be generated for a given group.
23057         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
23058         estimate the prefetch_count.
23059         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
23060         prefetch count by considering the unroll_factor and prefetch_mod
23061         for is_loop_prefetching_profitable.
23062
23063 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
23064
23065         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
23066         anything if the argument is not a MEM.
23067
23068 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23069
23070         PR debug/43650
23071         PR debug/44181
23072         PR debug/44247
23073         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
23074         debug stmts.
23075         (canonicalize_loop_ivs): Likewise.
23076
23077 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23078
23079         PR debug/43656
23080         * haifa-sched.c (setup_insn_reg_pressure_info,
23081         update_register_pressure): Reject debug insns.
23082         (ready_sort): Don't setup reg pressure for debug insns.
23083         (schedule_insn): Don't update reg pressure for debug insns.
23084
23085 2010-06-14  Richard Guenther  <rguenther@suse.de>
23086
23087         * lto-streamer.c (cached_bp): Remove.
23088         (bitpack_delete): Likewise.
23089         (bitpack_create): Likewise.
23090         (bp_get_next_word): Likewise.
23091         (bp_pack_value, bp_unpack_value): Move ...
23092         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
23093         Re-implement.
23094         (struct bitpack_d): Likewise.
23095         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
23096         New inline functions.
23097         * lto-streamer-out.c (lto_output_bitpack): Remove.
23098         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23099         (pack_value_fields): Adjust.
23100         (lto_write_tree): Likewise.
23101         (output_gimple_stmt): Likewise.
23102         (output_function): Likewise.
23103         * lto-streamer-in.c (input_gimple_stmt): Adjust.
23104         (input_function): Likewise.
23105         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23106         (lto_input_bitpack): Remove.
23107         (lto_materialize_tree): Adjust.
23108         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
23109         * lto-cgraph.c (lto_output_edge): Adjust.
23110         (lto_output_node): Likewise.
23111         (lto_output_varpool_node): Likewise.
23112         (lto_output_ref): Likewise.
23113         (input_node): Likewise.
23114         (input_varpool_node): Likewise.
23115         (input_ref): Likewise.
23116         (input_edge): Likewise.
23117         (output_node_opt_summary): Likewise.
23118         (input_node_opt_summary): Likewise.
23119         * ipa-pure-const.c (pure_const_write_summary): Likewise.
23120         (pure_const_read_summary): Likewise.
23121         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
23122         (ipa_read_indirect_edge_info): Likewise.
23123         (ipa_write_node_info): Likewise.
23124         (ipa_read_node_info): Likewise.
23125
23126 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
23127
23128         PR target/44534
23129         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
23130         (vec_extract_lo_v16hi): Likewise.
23131         (vec_extract_lo_v32qi): Likewise.
23132
23133 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23134
23135         PR bootstrap/44426
23136         * tree.h (build_call_expr): Don't define as vararg macro, instead
23137         add a prototype.
23138         * builtins.c (build_call_nofold): Remove.
23139         (expand_builtin_int_roundingfn, expand_builtin_pow,
23140         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
23141         expand_builtin_memset_args, expand_builtin_strcmp,
23142         expand_builtin_strncmp, expand_builtin_memory_chk): Use
23143         build_call_nofold_loc instead of build_call_nofold.
23144         (build_call_expr): New function.
23145
23146         PR tree-optimization/44508
23147         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
23148         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
23149         don't eliminate trivially dead stmts.
23150         * tree-vrp.c (vrp_finalize): Pass false as last argument
23151         to substitute_and_fold.
23152         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
23153         to substitute_and_fold.
23154         * tree-ssa-ccp.c (ccp_finalize): Likewise.
23155
23156         PR bootstrap/44509
23157         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
23158
23159 2010-06-14  Ira Rosen  <irar@il.ibm.com>
23160
23161         PR tree-optimization/44507
23162         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
23163         to build initial vector for BIT_AND_EXPR.
23164         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
23165
23166 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23167
23168         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
23169         adjust z10prop set_attr.
23170
23171 2010-06-13  Jan Hubicka  <jh@suse.cz>
23172
23173         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
23174         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
23175         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
23176         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
23177         datastructure checks into checking asserts.
23178         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
23179         * tree-ssa-sccvn.c (VN_INFO): Likewise.
23180         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
23181         df_ref_create_structure): Likewise.
23182         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
23183         pool_free): Use gcc_checking_assert.
23184         * alias.c (get_alias_set): Likewise.
23185         * var-tracking.c (variable_htab_free, shared_hash_copy,
23186         canonicalize_values_mark, variable_merge_over_cur): Likewise.
23187         * lto-streamer.c (bp_unpack_value): Likewise.
23188
23189 2010-06-13  Richard Guenther  <rguenther@suse.de>
23190
23191         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
23192         Do not stream but initialize TYPE_CANONICAL to NULL.
23193         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
23194         * gimple.c (gimple_types_compatible_p): Disregard
23195         TYPE_STRUCTURAL_EQUALITY_P.
23196         (gimple_register_type): Use TYPE_CANONICAL as cache.
23197         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
23198         before registering common types.
23199         * config/i386/i386.c (ix86_function_arg_boundary): Do not
23200         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
23201         * tree.h (TYPE_CANONICAL): Clarify documentation.
23202
23203 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
23204
23205         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
23206         LIBCALL_VALUE): Remove macros.
23207         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
23208         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23209         TARGET_FUNCTION_VALUE_REGNO_P): Define.
23210         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
23211         (ia64_function_value): Make static. Handle receiving the function
23212         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
23213
23214 2010-06-12  Jan Hubicka  <jh@suse.cz>
23215
23216         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
23217         at correct place.
23218
23219 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
23220
23221         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
23222
23223 2010-06-12  Jan Hubicka  <jh@suse.cz>
23224
23225         * df-core.c (df_clear_bb_info): New function.
23226         (df_set_blocks): bb_info is always allocated.
23227         (df_get_bb_info): Use block_info_elt_size.
23228         (df_set_bb_info): Likewise.
23229         (df_compact_blocks): Update for new block_info.
23230         (grow_bb_info): New function.
23231         * df-problems.c (df_grow_bb_info): Move to df-core.c
23232         (df_rd_set_bb_info): Remove.
23233         (df_rd_free_bb_info): Do not free block pool.
23234         (df_rd_alloc): Do not create pool, use check for
23235         obstack presence instead of NULL pointer for new blocks.
23236         (df_rd_free): DO not free alloc pool; clear block_info.
23237         (problem_RD): Add size of block info structure.
23238         (df_lr_set_bb_info): Remove.
23239         (df_lr_free_bb_info): Do not free block pool.
23240         (df_lr_alloc): Do not create pool, use check for
23241         obstack presence instead of NULL pointer for new blocks.
23242         (df_lr_free): DO not free alloc pool; clear block_info.
23243         (problem_LR): Add size of block info structure.
23244         (df_live_set_bb_info): Remove.
23245         (df_live_free_bb_info): Do not free block pool.
23246         (df_live_alloc): Do not create pool, use check for
23247         obstack presence instead of NULL pointer for new blocks.
23248         (df_live_free): DO not free alloc pool; clear block_info.
23249         (problem_LIVE): Add size of block info structure.
23250         (problem_CHAIN): Add size of block info structure.
23251         (df_byte_lr_set_bb_info): Remove.
23252         (df_byte_lr_free_bb_info): Do not free block pool.
23253         (df_byte_lr_alloc): Do not create pool, use check for
23254         obstack presence instead of NULL pointer for new blocks.
23255         (df_byte_lr_free): DO not free alloc pool; clear block_info.
23256         (problem_BYTE_LR): Add size of block info structure.
23257         (problem_NOTE): Add size of block info structure.
23258         (df_byte_MD_set_bb_info): Remove.
23259         (df_byte_MD_free_bb_info): Do not free block pool.
23260         (df_byte_MD_alloc): Do not create pool, use check for
23261         obstack presence instead of NULL pointer for new blocks.
23262         (df_byte_MD_free): DO not free alloc pool; clear block_info.
23263         (problem_BD): Add size of block info structure.
23264         * df-scan.c (df_scan_free_internal): Free block pool.
23265         (df_scan_set_bb_info): Remove.
23266         (df_scan_free_bb_info): Check for artificial_defs instead
23267         of bb_info being non-NULL.
23268         (df_scan_alloc): DO not create df_scan_block pool.
23269         (problem_SCAN): Set size of block info.
23270         (df_bb_refs_record): Do not allocate bb_info.
23271         * df.h (df_problem): Add block_info_elt_size.
23272         (struct dataflow): Change block_info to void *.
23273         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
23274         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
23275         in-line structures.
23276
23277 2010-06-12  Jan Hubicka  <jh@suse.cz>
23278
23279         PR tree-optimize/44485
23280         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
23281         containing use of return value of noreturn function.
23282
23283 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
23284
23285         * targhooks.c (default_function_value): Don't use
23286         FUNCTION_OUTGOING_VALUE.
23287         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
23288         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
23289
23290 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
23291
23292         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
23293         Add crtfastmath.o to extra_parts.
23294         * config/mips/crtfastmath.c: New.
23295         * config/mips/linux.h (ENDFILE_SPEC): New.
23296
23297 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
23298
23299         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
23300         old_type in parameter.
23301         (gcc_type_for_value): Update call to gcc_type_for_interval.
23302         (compute_type_for_level_1): Renamed compute_type_for_level.
23303         Update call to gcc_type_for_interval.
23304
23305 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
23306
23307         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
23308         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
23309
23310 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
23311
23312         * opts-common.c: Include options.h.
23313         (integral_argument): Move from opts.c.
23314         (decode_cmdline_option): New.  Based on read_cmdline_option.
23315         * opts.c (integral_argument): Move to opts-common.c.
23316         (read_cmdline_option): Move most contents to
23317         decode_cmdline_option.  Use %qs in diagnostics.
23318         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
23319         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
23320         decode_cmdline_option): New.
23321
23322 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23323
23324         PR target/44481
23325         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
23326         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
23327         (partiysi2_cmp): Ditto.
23328         (*partiyhi2_cmp): Ditto.
23329         (*parityqi2_cmp): Remove.
23330
23331 2010-06-11  Jan Hubicka  <jh@suse.cz>
23332
23333         * bitmap.h (bmp_iter_next_bit): New.
23334         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
23335
23336 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
23337             Eric Botcazou  <ebotcazou@adacore.com>
23338
23339         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
23340         computed cost.
23341
23342 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23343
23344         * config/i386/i386.md (unspec): New define_c_enum.
23345         (unspecv): Ditto.
23346
23347 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
23348
23349         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
23350
23351 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
23352
23353         PR middle-end/44483
23354         * tree-if-conv.c (bb_predicate_s): New struct.
23355         (bb_predicate_p): New.
23356         (bb_has_predicate): New.
23357         (bb_predicate): New.
23358         (set_bb_predicate): New.
23359         (bb_predicate_gimplified_stmts): New.
23360         (set_bb_predicate_gimplified_stmts): New.
23361         (add_bb_predicate_gimplified_stmts): New.
23362         (init_bb_predicate): New.
23363         (free_bb_predicate): New.
23364         (is_predicated): Use bb_predicate.
23365         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
23366         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
23367         before processing their successors.
23368         (clean_predicate_lists): Removed.
23369         (find_phi_replacement_condition): Use bb_predicate.
23370         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
23371         computations.
23372         (insert_gimplified_predicates): New.
23373         (combine_blocks): Call insert_gimplified_predicates.
23374         (tree_if_conversion): Call free_bb_predicate instead of
23375         clean_predicate_lists.
23376
23377 2010-10-11  Paul Brook  <paul@codesourcery.com>
23378
23379         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
23380         * config/arm/arm.c (all_architectures): Change v7e-m default to
23381         cortexm4.
23382         * config/arm/arm-cores.def: Add cortex-m4.
23383         * config/arm/arm-tune.md: Regenerate.
23384
23385 2010-06-11  Jan Hubicka  <jh@suse.cz>
23386
23387         * ipa-pure-const.c (special_builtlin_state): New function.
23388         (check_call): Use it instead of special casign BUILT_IN_RETURN.
23389         (propagate_pure_const): Use it.
23390
23391 2010-06-11  Jan Hubicka  <jh@suse.cz>
23392
23393         * df-problems.c (df_live_scratch): Convert to bitmap_head.
23394         (df_live_alloc): Initialize df_live_scratch when initializing
23395         problem_data.
23396         (df_live_transfer_function): Update uses of df_live_scratch.
23397         (df_live_free): Free problem_data; clear df_live_scratch before
23398         releasing the obstack.
23399         (df_md_free): Free problem data.
23400
23401 2010-06-11  Jan Hubicka  <jh@suse.cz>
23402
23403         * doc/invoke.texi (Wsuggest-attribute): Document.
23404         (Wmissing-noreturn): Remove.
23405         * ipa-pure-const.c (warn_function_noreturn): New function.
23406         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
23407         warn_missing_noreturn.
23408         * common.opt (Wsuggest-attribute=noreturn): New.
23409         * tree-flow.h (warn_function_noreturn): Declare.
23410         * tree-cfg.c (execute_warn_function_noreturn): Use
23411         warn_function_noreturn.
23412         (gate_warn_function_noreturn): New.
23413         (pass_warn_function_noreturn): Update.
23414
23415 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23416
23417         * c-typeck.c (handle_warn_cast_qual): Add loc
23418         parameter. Improve warning message.
23419         (build_c_cast): Pass location to handle_warn_cast_qual.
23420
23421 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23422
23423         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
23424         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
23425         insn mnemonic.
23426         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
23427
23428 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
23429
23430         Fix bootstap on mips
23431         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
23432         be naming typedefs.
23433
23434 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
23435
23436         * system.h (helper_const_non_const_cast): New inline for
23437         gcc version <= 4.0.
23438         (CONST_CAST2): For gcc version <= 4.0 use
23439         new helper to do const/non-const casting.
23440
23441 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23442
23443         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
23444         * Makefile.in (OBJS-common): Include insn-enums.o.
23445         (insn-enums.o): New rule.
23446         (simple_generated_c): Add insn-enums.c.
23447         (build/genenums.o): New rule.
23448         (genprogmd): Add "enums".
23449         * genconstants.c (print_enum_type): Declare a C string array
23450         for each enum.
23451         * genenums.c: New file.
23452         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
23453         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
23454         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
23455
23456 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23457
23458         * doc/md.texi (define_enum_attr): Document.
23459         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
23460         * read-md.h (lookup_enum_type): Declare.
23461         * read-md.c (lookup_enum_type): New function.
23462         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
23463         * genattrtab.c (attr_desc): Add an enum_name field.
23464         (evaluate_eq_attr): Take the associated attribute as argument.
23465         Get the enum prefix from the enum_name field, if defined.
23466         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
23467         (simplify_test_exp): Pass attr to evaluate_eq_attr.
23468         (add_attr_value): New function, split out from...
23469         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
23470         (write_test_expr): Pass attr to evaluate_eq_attr.
23471         (write_attr_get): Use the enum_name as the enum tag, if defined.
23472         (write_attr_valueq): Use the enum_name as a prefix, if defined.
23473         (find_attr): Initialize enum_name.
23474         (main): Handle DEFINE_ENUM_ATTR.
23475         * gensupport.c (process_rtx): Likewise.
23476         * config/mips/mips.h (mips_tune_attr): Delete.
23477         * config/mips/mips.md (cpu): Use define_attr_enum.
23478
23479 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23480
23481         * doc/md.texi (define_c_enum, define_enum): Document.
23482         * read-md.h (md_constant): Add a parent_enum field.
23483         (enum_value, enum_type): New structures.
23484         (upcase_string, traverse_enum_types): Declare.
23485         * read-md.c (enum_types): New variable.
23486         (upcase_string, add_constant): New functions.
23487         (handle_constants): Don't create the hash table here.
23488         Use add_constant.
23489         (traverse_md_constants): Don't check for a null md_constants.
23490         (decimal_string, handle_enum, traverse_enum_types): New functions.
23491         (read_md_files): Initialize md_constants and md_enums.
23492         * genconstants.c (print_md_constant): Ignore info argument.
23493         Only print constants that belong to no enum.
23494         (print_enum_type): New function.
23495         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
23496         for each defined enum type.
23497         * config/mips/mips.md (processor): New define_enum.
23498         (unspec): New define_c_enum.
23499         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
23500         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
23501         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
23502         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
23503         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
23504         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
23505         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
23506         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
23507         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
23508         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
23509         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
23510         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
23511         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
23512         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
23513         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
23514         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
23515         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
23516         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
23517         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
23518         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
23519         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
23520         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
23521         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
23522         (UNSPEC_RDDSP): Move to mips-dsp.md.
23523         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
23524         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
23525         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
23526         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
23527         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
23528         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
23529         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
23530         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
23531         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
23532         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
23533         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
23534         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
23535         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
23536         Moved to mips-dspr2.md.
23537         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
23538         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
23539         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
23540         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
23541         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
23542         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
23543         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
23544         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
23545         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
23546         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
23547         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
23548         UNSPEC_LOONGSON_PSADBH)
23549         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
23550         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
23551         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
23552         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
23553         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
23554         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
23555         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
23556         (cpu): Update comment.
23557         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
23558         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
23559         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
23560         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
23561         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
23562         UNSPEC_LOONGSON_PCMPEQ)
23563         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
23564         UNSPEC_LOONGSON_PINSR_0)
23565         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
23566         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
23567         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
23568         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
23569         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
23570         UNSPEC_LOONGSON_PSADBH)
23571         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
23572         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
23573         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
23574         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
23575         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
23576         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
23577         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
23578         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
23579         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
23580         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
23581         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
23582         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
23583         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
23584         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
23585         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
23586         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
23587         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
23588         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
23589         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
23590         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
23591         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
23592         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
23593         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
23594         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
23595         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
23596         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
23597         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
23598         (UNSPEC_RDDSP): Moved from mips.md.
23599         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
23600         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
23601         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
23602         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
23603         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
23604         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
23605         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
23606         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
23607         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
23608         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
23609         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
23610         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
23611         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
23612         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
23613         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
23614         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
23615         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
23616         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
23617         (UNSPEC_SCC): Moved from mips.md.
23618         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
23619         "processor_type" to "processor".
23620         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
23621         * config/mips/mips.h (processor_type): Delete.
23622         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
23623         "processor_type" to "processor".
23624
23625 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23626
23627         * configure.ac (tm_include_list): Add insn-constants.h.
23628         * configure: Regenerate.
23629         * Makefile.in (GTM_H): Move insn-constants.h here from...
23630         (TM_H): ...here.
23631         * mkconfig.sh: Remove special handling for insn-constants.h.
23632
23633 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23634
23635         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
23636         (BUILD_MD): ...this new variable.
23637         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
23638         that include the old contents of simple_generated_h and
23639         simple_generated_c.
23640         (simple_generated_h, simple_generated_c): Include them.  Add
23641         insn-constants.h.
23642         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
23643         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
23644         Remove these dependencies from the main rule and include
23645         insn-conditions.md in the command line only if it appears
23646         in the dependency list.
23647         (insn-constants.h, s-constants): Delete.
23648         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
23649         or gensupport.h.
23650         (build/genmddeps.o): Likewise.
23651         (genprogrtl): New variable that contains everything from genprogmd
23652         except mddeps and constants.
23653         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
23654         depend on $(BUILD_MD)
23655         (genprog): New variable.  Make these programs depend on
23656         $(BUILD_ERRORS).
23657         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
23658         (main): Use read_md_files instead of init_rtx_reader_args.
23659         * genconstants.c: As for genmddeps.c.
23660         * read-md.h (read_skip_construct): Declare.
23661         * read-md.c (read_skip_construct): New function.
23662         (handle_file): Allow a null handle_directive, skipping the
23663         construct if so.
23664         (parse_include): Update the comment accordingly.
23665
23666 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23667
23668         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
23669         * genmddeps.c: Include read-md.h.
23670         (main): Call init_rtx_reader_args instead of init_md_reader_args.
23671         * genattr.c (main): Likewise.
23672         * genattrtab.c (main): Likewise.
23673         * genautomata.c (main): Likewise.
23674         * gencodes.c (main): Likewise.
23675         * genconditions.c (main): Likewise.
23676         * genconfig.c (main): Likewise.
23677         * genconstants.c (main): Likewise.
23678         * genemit.c (main): Likewise.
23679         * genextract.c (main): Likewise.
23680         * genflags.c (main): Likewise.
23681         * genopinit.c (main): Likewise.
23682         * genoutput.c (main): Likewise.
23683         * genpeep.c (main): Likewise.
23684         * genrecog.c (main): Likewise.
23685         * genpreds.c (main): Likewise.
23686         * gensupport.h (in_fname): Move to read-md.h.
23687         (init_md_reader_args_cb): Rename to...
23688         (init_rtx_reader_args_cb): ...this and return a bool.
23689         (init_md_reader_args): Rename to...
23690         (init_rtx_reader_args): ...this and return a bool.
23691         (include_callback): Move to read-md.h.
23692         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
23693         (file_name_list, first_dir_md_include): Move to read-md.c
23694         (first_bracket_include): Delete unused variable.
23695         (last_dir_md_include): Move to read-md.c.
23696         (process_include): Delete, moving code to read-md.c:handle_include.
23697         (process_rtx): Don't handle INCLUDE.
23698         (save_string): Delete.
23699         (rtx_handle_directive): New function.
23700         (init_md_reader_args_cb): Rename to...
23701         (init_rtx_reader_args_cb): ...this and return a boolean success value.
23702         Use read_md_args.
23703         (init_md_reader_args): Rename to...
23704         (init_rtx_reader_args): ...this and return a boolean success value.
23705         * rtl.def (INCLUDE): Delete.
23706         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
23707         argument.
23708         * read-rtl.c (read_conditions): Don't gobble ')' here.
23709         (read_mapping): Likewise.
23710         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
23711         Handle top-level non-rtx constructs here rather than in read_rtx_1.
23712         Store the whole queue in *X.  Remove call to init_md_reader.
23713         (read_rtx_1): Rename to...
23714         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
23715         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
23716         here.
23717         (read_nested_rtx): New function.  Handle (nil) here rather than
23718         in read_rtx_code.
23719         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
23720         gobble ')' here.
23721         * read-md.h (directive_handler_t): New type.
23722         (in_fname, include_callback): Moved from read-md.h.
23723         (read_constants, init_md_reader): Delete.
23724         (read_md_files): Declare.
23725         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
23726         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
23727         from gensupport.c.
23728         (read_constants): Rename to...
23729         (handle_constants): ...this.  Don't gobble ')' here.
23730         (handle_include, handle_file, handle_toplevel_file)
23731         (parse_include): New functions, mostly taken from gensupport.c.
23732         (init_md_reader): Subsume into...
23733         (read_md_files): ...this new function.
23734
23735 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23736
23737         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
23738         (unread_char): Decrement read_md_lineno after putting back '\n'.
23739         * read-md.c (fatal_with_file_and_line): Push back any characters
23740         that we decide not to add to the context.
23741         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
23742         fatal_expected_char in cases where '/' ends a line (for example).
23743         (read_name): Don't increment read_md_lineno here.
23744         (read_escape): Likewise.
23745         (read_quoted_string): Likewise.
23746         (read_braced_string): Likewise.
23747
23748 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23749
23750         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
23751         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
23752         * genconstants.c: Include read-md.h.
23753         * read-rtl.c (md_constants): Move to read-md.c.
23754         (md_name): Move to read-md.h.
23755         (initialize_iterators): Use leading_string_hash instead of def_hash
23756         and leading_string_eq_p instead of def_name_eq_p.
23757         (read_name): Move to read-md.c.
23758         (def_hash, def_name_eq_p): Delete.
23759         (read_constants, traverse_md_constants): Move to read-md.c.
23760         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
23761         * read-md.h: Include hashtab.h.
23762         (md_name): Moved from read-rtl.c.
23763         (md_constant): Moved from read-md.h.
23764         (leading_string_hash, leading_string_eq_p, read_name)
23765         (read_constants, traverse_md_constants): Declare.
23766         * read-md.c (md_constants): Moved from read-rtl.c.
23767         (leading_string_hash, leading_string_eq_p): New functions.
23768         (read_name, read_constants, traverse_md_constants): Moved from
23769         read-rtl.c.
23770
23771 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23772
23773         * read-rtl.c (md_name): New structure.
23774         (read_name): Take an md_name instead of a buffer pointer.
23775         Use the "string" field instead of strcpy when expanding constants.
23776         (read_constants): Remove the tmp_char argument.  Update the calls
23777         to read_name, using two local name buffers instead of the tmp_char
23778         argument.  Merge the constant-creation code.
23779         (read_conditions): Remove the tmp_char argument.  Update the calls
23780         to read_name, using a local name buffer instead of the tmp_char
23781         argument.
23782         (read_mapping): Replace tmp_char variable with a local name buffer.
23783         Update the calls to read_name.
23784         (read_rtx_1): Likewise.  Update the calls to read_constants and
23785         read_conditions.
23786
23787 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23788
23789         * Makefile.in (build/read-md.o): Depend on errors.h.
23790         * read-md.h (error_with_line): Declare.
23791         * read-md.c: Include errors.h.
23792         (message_with_line_1): New function, extracted from...
23793         (message_with_line): ...here.
23794         (error_with_line): New function.
23795         * genattrtab.c: If a call to message_with_line is followed by
23796         "have_error = 1;", replace both statements with a call to
23797         error_with_line.
23798         * genoutput.c: Likewise.
23799         * genpreds.c: Likewise.
23800         * genrecog.c: If a call to message_with_line is followed by
23801         "error_count++;", replace both statements with a call to
23802         error_with_line.
23803         (errorcount): Delete.
23804         (main): Don't check it.
23805         * gensupport.c: If a call to message_with_line is followed by
23806         "errors = 1;", replace both statements with a call to error_with_line.
23807         (errors): Delete.
23808         (process_define_cond_exec): Check have_error instead of errors.
23809         (init_md_reader_args_cb): Likewise.  Don't set errors.
23810
23811 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23812
23813         * read-md.h (read_md_file): Declare.
23814         (read_char, unread_char): New functions.
23815         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
23816         (read_quoted_string, read_string): Remove FILE * argument.
23817         * read-md.c (read_md_file): New variable.
23818         (read_md_filename, read_md_lineno): Update comments and remove
23819         unnecessary initialization.
23820         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
23821         (read_escape, read_quoted_string, read_braced_string, read_string):
23822         Remove FILE * argument.  Update calls accordingly, using read_char
23823         and unread_char instead of getc and ungetc.
23824         * rtl.h (read_rtx): Remove FILE * argument.
23825         * read-rtl.c (iterator_group): Remove FILE * argument from
23826         "find_builtin".
23827         (iterator_traverse_data): Remove "infile" field.
23828         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
23829         (add_mapping, read_name, read_constants, read_conditions)
23830         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
23831         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
23832         Remove file arguments from all calls, using read_char and unread_char
23833         instead of getc and ungetc.
23834         * gensupport.c (process_include): Preserve read_md_file around
23835         the include.  Set read_md_file to the handle of the included file.
23836         Update call to read_rtx.
23837         (init_md_reader_args_cb): Set read_md_file to the handle of the file
23838         and remove local FILE *.  Update calls to read_rtx.
23839
23840 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23841
23842         * read-md.h (read_rtx_lineno): Rename to...
23843         (read_md_lineno): ...this.
23844         (read_rtx_filename): Rename to...
23845         (read_md_filename): ...this.
23846         (copy_rtx_ptr_loc): Rename to...
23847         (copy_md_ptr_loc): ...this.
23848         (print_rtx_ptr_loc): Rename to...
23849         (print_md_ptr_loc): ...this.
23850         * read-md.c: Likewise.  Update references after renaming.
23851         (string_obstack): Replace RTL with MD in comment.
23852         (set_rtx_ptr_loc): Rename to...
23853         (set_md_ptr_loc): ...this.
23854         (get_rtx_ptr_loc): Rename to...
23855         (get_md_ptr_loc): ...this.
23856         * genconditions.c: Update references after renaming.
23857         * genemit.c: Likewise.
23858         * genoutput.c: Likewise.
23859         * genpreds.c: Likewise.
23860         * gensupport.c: Likewise.
23861         * read-rtl.c: Likewise.
23862
23863 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23864
23865         * Makefile.in (READ_MD_H): New variable.
23866         (BUILD_RTL): Add build/read-md.o.
23867         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
23868         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
23869         (build/genattrtab.o, build/genconditions.o build/genemit.o)
23870         (build/genextract.o, build/genflags.o, build/genoutput.o)
23871         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
23872         (build/read-md.o): New rule.
23873         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
23874         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
23875         * coretypes.h: ...here.
23876         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
23877         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
23878         * genattr.c: Include read-md.h.
23879         * genattrtab.c: Likewise.
23880         * genconditions.c: Likewise.
23881         * genemit.c: Likewise.
23882         * genextract.c: Likewise.
23883         * genflags.c: Likewise.
23884         * genoutput.c: Likewise.
23885         * genpreds.c: Likewise.
23886         * genrecog.c: Likewise.
23887         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
23888         (join_c_conditions, print_c_condition, read_rtx_filename)
23889         (read_rtx_lineno): Move to read-md.h.
23890         * read-rtl.c: Include read-md.h.
23891         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
23892         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
23893         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
23894         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
23895         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
23896         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
23897         (read_braced_string, read_string): Move to read-md.c.
23898         (read_rtx): Move some initialization to init_md_reader and call
23899         init_md_reader here.
23900         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
23901         Move to read-md.h.
23902         * gensupport.c: Include read-md.h.
23903         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
23904         * read-md.h, read-md.c: New files.
23905
23906 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
23907
23908         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
23909         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
23910         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
23911         * config/moxie/moxie.c (moxie_function_value): Make static.
23912         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
23913         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
23914
23915 2010-06-10  Martin Jambor  <mjambor@suse.cz>
23916
23917         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
23918         * dbgcnt.def (tree_sra): New counter.
23919         * tree-sra.c: Include dbgcnt.h.
23920         (gate_intra_sra): Check tree_sra debug counter.
23921
23922 2010-06-10  Martin Jambor  <mjambor@suse.cz>
23923
23924         PR tree-optimization/44258
23925         * tree-sra.c (build_access_subtree): Return false iff there is a
23926         partial overlap.
23927         (build_access_trees): Likewise.
23928         (analyze_all_variable_accesses): Disqualify candidates if
23929         build_access_trees returns true for them.
23930
23931 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
23932
23933         PR debug/41371
23934         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
23935         tail-recurse into canonical node.  Fast-forward over
23936         non-canonical VALUEs.
23937
23938 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
23939
23940         PR boostrap/44470
23941         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
23942         (*addsi_1_zext) <TYPE_LEA>: Likewise.
23943         (add lea splitter): Likewise.
23944         (add_zext lea splitter): Likewise.
23945
23946 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
23947
23948         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
23949
23950 2010-06-10  Jan Hubicka  <jh@suse.cz>
23951
23952         * df-problems.c (df_live_problem_data): Add live_bitmaps.
23953         (df_live_alloc): Initialize problem data and live_osbtacks.
23954         (df_live_finalize): Remove obstack, problem data; do not
23955         clear all bitmaps.
23956         (df_live_top_dump, df_live_bottom_dump): Do not dump old
23957         data when not allocated.
23958         (df_live_verify_solution_start): Do not allocate problem data.
23959         (df_live_verify_solution_end): Check if out is allocated.
23960         (struct df_md_problem_data): New structure.
23961         (df_md_alloc): Allocate problem data.
23962         (df_md_free): Free problem data; do not clear bitmaps.
23963
23964 2010-06-10  Jan Beulich  <jbeulich@novell.com>
23965
23966         PR bootstrap/37304
23967         * configure.ac: Replace $() with ${} when intending to expand
23968         variables rather than invoking commands.
23969         * configure: Re-generate.
23970
23971 2010-06-10  Jan Hubicka  <jh@suse.cz>
23972
23973         PR rtl-optimization/44460
23974         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
23975         TYPE_NEEDS_CONSTRUCTING sanity check.
23976
23977 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
23978
23979         * doc/include/fdl.texi: Move to GFDL version 1.3.
23980
23981         * doc/cpp.texi: Move to GFDL version 1.3.
23982         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
23983         * doc/gccint.texi: Move to GFDL version 1.3.
23984         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
23985         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
23986         * doc/invoke.texi: Move to GFDL version 1.3.
23987
23988 2010-06-09  Jan Hubicka  <jh@suse.cz>
23989
23990         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
23991         Break out from ...
23992         (propagate) ... here; swap the order.
23993
23994 2010-06-09  Jan Hubicka  <jh@suse.cz>
23995
23996         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
23997         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
23998         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
23999         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
24000
24001 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24002
24003         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
24004         Do not the gather memory reference in the outer loop if the step
24005         is not a constant.
24006
24007 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24008
24009         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
24010         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
24011         8 to 4.  Minor change of the related comments.
24012
24013 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24014
24015         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
24016         the scev analysis when the variable is not used outside the loop
24017         in a close phi node: call compute_overall_effect_of_inner_loop.
24018
24019 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24020
24021         * graphite-sese-to-poly.c (single_pred_cond): Renamed
24022         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
24023         (build_sese_conditions_before): Renamed call to single_pred_cond.
24024         (build_sese_conditions_after): Same.
24025
24026 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24027
24028         * graphite-poly.h: Fix comments and indentation.
24029         * graphite-sese-to-poly.c: Same.
24030         (build_sese_conditions_before): Compute stmt and gbb only when needed.
24031         * tree-chrec.c: Fix comments and indentation.
24032         (tree-ssa-loop-niter.c): Same.
24033
24034 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
24035
24036         PR rtl-optimization/42461
24037         * dce.c (deletable_insn_p): Return true for const or pure calls again.
24038         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
24039
24040 2010-06-09  Jan Hubicka  <jh@suse.cz>
24041
24042         * bitmap.c (bitmap_and): Walk array forward.
24043         (bitmap_and_compl_into): Likewise.
24044         (bitmap_xor): Likewise.
24045         (bitmap_xor_into):  Likewise.
24046         (bitmap_equal_p): Likewise.
24047         (bitmap_intersect_p): Likewise.
24048         (bitmap_intersect_compl_p): Likewise.
24049         (bitmap_ior_and_into): Likewise.
24050         (bitmap_elt_copy): Likewise.
24051         (bitmap_and_compl): Likewise.
24052         (bitmap_elt_ior): Likewise.
24053
24054 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
24055
24056         * opts-common.c (prune_options): Ensure replacement argv array
24057         is correctly terminated by a NULL entry.
24058
24059 2010-06-09  Jan Hubicka  <jh@suse.cz>
24060
24061         * cgraph.h (varpool_first_static_initializer,
24062         varpool_next_static_initializer): Make checking only when
24063         checking enabled.
24064         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
24065         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
24066         gcc_assert to gcc_checking_assert.
24067         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
24068         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
24069         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
24070         op_iter_init_phiuse, op_iter_init_phidef,
24071         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
24072         gcc_checking_assert.
24073         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
24074         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
24075         partition_is_global, live_on_entry, live_on_exit,
24076         live_merge_and_clear): Likewise.
24077         * system.h (gcc_checking_assert): New macro.
24078         * gimple.h (set_bb_seq): Use gcc_checking_assert.
24079
24080 2010-06-09  Jason Merrill  <jason@redhat.com>
24081
24082         * Makefile.in (TAGS): Collect tags info from c-family.
24083
24084 2010-06-09  Jan Hubicka  <jh@suse.cz>
24085
24086         * gimple.h (gcc_gimple_checking_assert): New macro.
24087         (gimple_set_def_ops, gimple_set_use_ops,
24088         gimple_set_vuse, gimple_set_vdef,
24089         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
24090         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
24091         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
24092         gimple_asm_output_op, gimple_asm_output_op_ptr,
24093         gimple_asm_set_output_op, gimple_asm_clobber_op,
24094         gimple_asm_set_clobber_op, gimple_asm_label_op,
24095         gimple_asm_set_label_op, gimple_try_set_kind,
24096         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
24097         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
24098         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
24099         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
24100         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
24101         gimple_omp_for_set_initial, gimple_omp_for_final,
24102         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
24103         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
24104         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
24105         conditional with ENABLE_GIMPLE_CHECKING.
24106         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
24107
24108 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
24109
24110         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
24111         (get_computation_cost_at): Use it.
24112         (determine_use_iv_cost_condition): Likewise.
24113         (determine_iv_cost): Likewise.
24114
24115 2010-06-09  Richard Guenther  <rguenther@suse.de>
24116
24117         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
24118         replace constants.
24119
24120 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
24121
24122         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
24123
24124 2010-06-09  Martin Jambor  <mjambor@suse.cz>
24125
24126         PR tree-optimization/44423
24127         * tree-sra.c (dump_access): Dump also grp_assignment_read.
24128         (analyze_access_subtree): Pass negative allow_replacements to children
24129         if the current type is scalar.
24130
24131 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24132
24133         PR testsuite/42843
24134         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
24135         * doc/plugins.texi (Plugin license check): Update information
24136         on type of plugin_is_GPL_compatible.
24137         * Makefile.in (PLUGINCC): Define as $(COMPILER).
24138         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
24139
24140 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
24141
24142         * config/arm/arm.c (thumb2_reorg): New function.
24143         (arm_reorg): Call it.
24144         * config/arm/thumb2.md (define_peephole2 for flag clobbering
24145         arithmetic operations): Delete.
24146
24147 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
24148
24149         PR target/44067
24150         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
24151         e500v2 target.
24152
24153 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24154
24155         PR plugins/44459
24156         * gcc-plugin.h: Encapsulate all declarations in extern "C".
24157
24158 2010-06-08  Jan Hubicka  <jh@suse.cz>
24159
24160         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
24161         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
24162
24163 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
24164
24165         PR tree-optimization/39874
24166         PR middle-end/28685
24167         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
24168         Declare.
24169         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
24170         same_bool_result_p): New.
24171         (and_var_with_comparison, and_var_with_comparison_1,
24172         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
24173         (or_var_with_comparison, or_var_with_comparison_1,
24174         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
24175         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
24176         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
24177         of combine_comparisons.
24178         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
24179
24180 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
24181
24182         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24183         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24184         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
24185         pdp11_function_value_regno_p): New functions.
24186         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24187         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24188
24189 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
24190
24191         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
24192         Thumb-2 in the MINUS case.
24193
24194 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
24195
24196         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
24197
24198         * doc/gty.texi (GTY Options): Document typed GC allocation and
24199         variable_size GTY option.
24200
24201         * ggc-internal.h: New.
24202
24203         * ggc.h: Update copyright year.
24204         (digit_string): Move to stringpool.c.
24205         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
24206         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
24207         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
24208         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
24209         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
24210         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
24211         (ggc_force_collect, ggc_get_size, ggc_statistics)
24212         (ggc_print_common_statistics): Move to ggc-internal.h.
24213         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
24214         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
24215         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
24216         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
24217         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
24218         (ggc_alloc_zone_pass_stat): Remove.
24219         (ggc_internal_alloc_stat, ggc_internal_alloc)
24220         (ggc_internal_cleared_alloc_stat): New.
24221         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
24222         (ggc_internal_vec_alloc_stat)
24223         (ggc_internal_cleared_vec_alloc_stat)
24224         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
24225         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
24226         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
24227         (ggc_cleared_alloc_ptr_array_two_args): New.
24228         (htab_create_ggc, splay_tree_new_ggc): Redefine.
24229         (ggc_splay_alloc): Change the type of the first argument to
24230         enum gt_types_enum.
24231         (ggc_alloc_string): Make macro.
24232         (ggc_alloc_string_stat): New.
24233         (ggc_strdup): Redefine.
24234         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
24235         (ggc_alloc_rtvec_sized): New.
24236         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
24237         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
24238         (ggc_internal_cleared_alloc_zone_stat)
24239         (ggc_internal_zone_alloc_stat)
24240         (ggc_internal_zone_cleared_alloc_stat)
24241         (ggc_internal_zone_vec_alloc_stat)
24242         (ggc_alloc_zone_rtx_def_stat)
24243         (ggc_alloc_zone_tree_node_stat)
24244         (ggc_alloc_zone_cleared_tree_node_stat)
24245         (ggc_alloc_cleared_gimple_statement_d_stat): New.
24246
24247         * ggc-common.c: Include ggc-internal.h.
24248         (ggc_internal_cleared_alloc_stat): Rename from
24249         ggc_alloc_cleared_stat.
24250         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
24251         (ggc_calloc): Remove.
24252         (ggc_cleared_alloc_htab_ignore_args): New.
24253         (ggc_cleared_alloc_ptr_array_two_args): New.
24254         (ggc_splay_alloc): Add obj_type parameter.
24255         (init_ggc_heuristics): Formatting fixes.
24256
24257         * ggc-none.c: Update copyright year.
24258         (ggc_alloc_stat): Rename to ggc_alloc_stat.
24259         (ggc_alloc_cleared_stat): Rename to
24260         ggc_internal_cleared_alloc_stat.
24261         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
24262
24263         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
24264         Remove references to ggc_alloc in comments.
24265         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
24266         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
24267         (new_ggc_zone, destroy_ggc_zone): Remove.
24268         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
24269
24270         * ggc-zone.c: Include ggc-internal.h.  Remove references to
24271         ggc_alloc in comments.
24272         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
24273         (ggc_internal_alloc_zone_pass_stat): New.
24274         (ggc_internal_cleared_alloc_zone_stat): New.
24275         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
24276         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
24277         (new_ggc_zone, destroy_ggc_zone): Remove.
24278
24279         * stringpool.c: Update copyright year.  Include ggc-internal.h
24280         (digit_vector): Make static.
24281         (digit_string): Moved from ggc.h.
24282         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
24283         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
24284
24285         * Makefile.in (GGC_INTERNAL_H): New.
24286         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
24287         $(GGC_INTERNAL_H) to dependencies.
24288
24289         * gengtype.c: Update copyright year.
24290         (walk_type): Accept variable_size GTY option.
24291         (USED_BY_TYPED_GC_P): New macro.
24292         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
24293         whitespace at the end of strings.
24294         (get_type_specifier, variable_size_p): New functions.
24295         (alloc_quantity, alloc_zone): New enums.
24296         (write_typed_alloc_def): New function.
24297         (write_typed_struct_alloc_def): Likewise.
24298         (write_typed_typed_typedef_alloc_def): Likewise.
24299         (write_typed_alloc_defns): Likewise.
24300         (output_typename, write_splay_tree_allocator_def): Likewise.
24301         (write_splay_tree_allocators): Likewise.
24302         (main): Call write_typed_alloc_defns and
24303         write_splay_tree_allocators.
24304
24305         * lto-streamer.h (lto_file_decl_data_ptr): New.
24306
24307         * passes.c (order): Define using cgraph_node_ptr.
24308
24309         * strinpool.c (struct string_pool_data): Declare nested_ptr using
24310         ht_identifier_ptr.
24311
24312         * gimple.h (union gimple_statement_d): Likewise.
24313
24314         * rtl.h (struct rtx_def): Likewise.
24315         (struct rtvec_def): Likewise.
24316
24317         * tree.h (union tree_node): Likewise.
24318
24319         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
24320
24321         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
24322
24323         * tree-scalar-evolution.c (scev_initialize): Likewise.
24324
24325         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
24326
24327         * dwarf2asm.c (dw2_force_const_mem): Likewise.
24328
24329         * omp-low.c (lower_omp_critical): Likewise.
24330
24331         * bitmap.h (struct bitmap_head_def): Update comment to not
24332         reference ggc_alloc.
24333
24334         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
24335
24336         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
24337
24338         * ipa-prop.c (duplicate_ggc_array): Rename to
24339         duplicate_ipa_jump_func_array.  Use typed GC allocation.
24340         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
24341
24342         * gimple.c (gimple_alloc_stat): Use
24343         ggc_alloc_cleared_gimple_statement_d_stat.
24344
24345         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
24346
24347         * tree.c (make_node_stat): Use
24348         ggc_alloc_zone_cleared_tree_node_stat.
24349         (make_tree_vec_stat): Likewise.
24350         (build_vl_exp_stat): Likewise.
24351         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
24352         (make_tree_binfo_stat): Likewise.
24353         (tree_cons_stat): Likewise.
24354
24355         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
24356         (shallow_copy_rtx_stat): Likewise.
24357         (make_node_stat): Likewise.
24358
24359         * lto-symtab.c: Fix comment.
24360
24361         * tree-cfg.c (create_bb): Update comment to not reference
24362         ggc_alloc_cleared.
24363         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
24364
24365         * varpool.c (varpool_node): Use typed GC allocation.
24366         (varpool_extra_name_alias): Likewise.
24367
24368         * varasm.c (emutls_decl): Likewise.
24369         (get_unnamed_section): Likewise.
24370         (get_noswitch_section): Likewise.
24371         (get_section): Likewise.
24372         (get_block_for_section): Likewise.
24373         (build_constant_desc): Likewise.
24374         (create_constant_pool): Likewise.
24375         (force_const_mem): Likewise.
24376
24377         * tree.c (build_vl_exp_stat): Likewise.
24378         (build_real): Likewise.
24379         (build_string): Likewise.
24380         (decl_debug_expr_insert): Likewise.
24381         (decl_value_expr_insert): Likewise.
24382         (type_hash_add): Likewise.
24383         (build_omp_clause): Likewise.
24384
24385         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
24386
24387         * tree-ssa.c (init_tree_ssa): Likewise.
24388
24389         * tree-ssa-structalias.c (heapvar_insert): Likewise.
24390
24391         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
24392
24393         * tree-ssa-loop-niter.c (record_estimate): Likewise.
24394
24395         * tree-ssa-alias.c (get_ptr_info): Likewise.
24396
24397         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
24398
24399         * tree-phinodes.c (allocate_phi_node): Likewise.
24400
24401         * tree-iterator.c (tsi_link_before): Likewise.
24402         (tsi_link_after): Likewise.
24403
24404         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
24405
24406         * tree-dfa.c (create_var_ann): Likewise.
24407
24408         * tree-cfg.c (create_bb): Likewise.
24409
24410         * toplev.c (alloc_for_identifier_to_locale): Likewise.
24411         (general_init): Likewise.
24412
24413         * stringpool.c (stringpool_ggc_alloc): Likewise.
24414         (gt_pch_save_stringpool): Likewise.
24415
24416         * sese.c (if_region_set_false_region): Likewise.
24417
24418         * passes.c (do_per_function_toporder): Likewise.
24419
24420         * optabs.c (set_optab_libfunc): Likewise.
24421         (set_conv_libfunc): Likewise.
24422
24423         * lto-symtab.c (lto_symtab_register_decl): Likewise.
24424
24425         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
24426         (input_eh_region): Likewise.
24427         (input_eh_lp): Likewise.
24428         (make_new_block): Likewise.
24429         (unpack_ts_real_cst_value_fields): Likewise.
24430
24431         * lto-section-in.c (lto_new_in_decl_state): Likewise.
24432
24433         * lto-cgraph.c (input_node_opt_summary): Likewise.
24434
24435         * loop-init.c (loop_optimizer_init): Likewise.
24436
24437         * lambda.h (lambda_vector_new): Likewise.
24438
24439         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
24440
24441         * ira.c (update_equiv_regs): Likewise.
24442
24443         * ipa.c (cgraph_node_set_new): Likewise.
24444         (cgraph_node_set_add): Likewise.
24445         (varpool_node_set_new): Likewise.
24446         (varpool_node_set_add): Likewise.
24447
24448         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
24449         (duplicate_ipa_jump_func_array): Likewise.
24450         (ipa_read_node_info): Likewise.
24451
24452         * ipa-cp.c (ipcp_create_replace_map): Likewise.
24453
24454         * integrate.c (get_hard_reg_initial_val): Likewise.
24455
24456         * gimple.c (gimple_alloc_stat): Likewise.
24457         (gimple_build_omp_for): Likewise.
24458         (gimple_seq_alloc): Likewise.
24459         (gimple_copy): Likewise.
24460
24461         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
24462         (gsi_insert_after_without_update): Likewise.
24463
24464         * function.c (add_frame_space): Likewise.
24465         (insert_temp_slot_address): Likewise.
24466         (assign_stack_temp_for_type): Likewise.
24467         (allocate_struct_function): Likewise.
24468         (types_used_by_var_decl_insert): Likewise.
24469
24470         * except.c (init_eh_for_function): Likewise.
24471         (gen_eh_region): Likewise.
24472         (gen_eh_region_catch): Likewise.
24473         (gen_eh_landing_pad): Likewise.
24474         (add_call_site): Likewise.
24475
24476         * emit-rtl.c (get_mem_attrs): Likewise.
24477         (get_reg_attrs): Likewise.
24478         (start_sequence): Likewise.
24479         (init_emit): Likewise.
24480
24481         * dwarf2out.c (new_cfi): Likewise.
24482         (queue_reg_save): Likewise.
24483         (dwarf2out_frame_init): Likewise.
24484         (new_loc_descr): Likewise.
24485         (find_AT_string): Likewise.
24486         (new_die): Likewise.
24487         (add_var_loc_to_decl): Likewise.
24488         (clone_die): Likewise.
24489         (clone_as_declaration): Likewise.
24490         (break_out_comdat_types): Likewise.
24491         (new_loc_list): Likewise.
24492         (loc_descriptor): Likewise.
24493         (add_loc_descr_to_each): Likewise.
24494         (add_const_value_attribute): Likewise.
24495         (tree_add_const_value_attribute): Likewise.
24496         (add_comp_dir_attribute): Likewise.
24497         (add_name_and_src_coords_attributes): Likewise.
24498         (lookup_filename): Likewise.
24499         (store_vcall_insn): Likewise.
24500         (dwarf2out_init): Likewise.
24501
24502         * dbxout.c (dbxout_init): Likewise.
24503
24504         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
24505
24506         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
24507
24508         * config/score/score7.c (score7_output_external): Likewise.
24509
24510         * config/score/score3.c (score3_output_external): Likewise.
24511
24512         * config/s390/s390.c (s390_init_machine_status): Likewise.
24513
24514         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
24515         (rs6000_init_machine_status): Likewise.
24516         (output_toc): Likewise.
24517
24518         * config/pa/pa.c (pa_init_machine_status): Likewise.
24519         (get_deferred_plabel): Likewise.
24520
24521         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
24522
24523         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
24524
24525         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
24526
24527         * config/mep/mep.c (mep_init_machine_status): Likewise.
24528         (mep_note_pragma_flag): Likewise.
24529
24530         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
24531
24532         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
24533
24534         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
24535
24536         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
24537         (i386_pe_maybe_record_exported_symbol): Likewise.
24538
24539         * config/i386/i386.c (get_dllimport_decl): Likewise.
24540         (ix86_init_machine_status): Likewise.
24541         (assign_386_stack_local): Likewise.
24542
24543         * config/frv/frv.c (frv_init_machine_status): Likewise.
24544
24545         * config/darwin.c (machopic_indirection_name): Likewise.
24546
24547         * config/cris/cris.c (cris_init_machine_status): Likewise.
24548
24549         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
24550
24551         * config/avr/avr.c (avr_init_machine_status): Likewise.
24552
24553         * config/arm/arm.c (arm_init_machine_status): Likewise.
24554
24555         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
24556         (alpha_need_linkage): Likewise.
24557         (alpha_use_linkage): Likewise.
24558
24559         * cgraph.c (cgraph_allocate_node): Likewise.
24560         (cgraph_create_edge_1): Likewise.
24561         (cgraph_create_indirect_edge): Likewise.
24562         (cgraph_add_asm_node): Likewise.
24563
24564         * cfgrtl.c (init_rtl_bb_info): Likewise.
24565
24566         * cfgloop.c (alloc_loop): Likewise.
24567         (rescan_loop_exit): Likewise.
24568
24569         * cfg.c (init_flow): Likewise.
24570         (alloc_block): Likewise.
24571         (unchecked_make_edge): Likewise.
24572
24573         * c-parser.c (c_parse_init): Likewise.
24574         (c_parse_file): Likewise.
24575
24576         * c-decl.c (bind): Likewise.
24577         (record_inline_static): Likewise.
24578         (push_scope): Likewise.
24579         (make_label): Likewise.
24580         (lookup_label_for_goto): Likewise.
24581         (finish_struct): Likewise.
24582         (finish_enum): Likewise.
24583         (c_push_function_context): Likewise.
24584
24585         * bitmap.c (bitmap_element_allocate): Likewise.
24586         (bitmap_gc_alloc_stat): Likewise.
24587
24588         * alias.c (record_alias_subset): Likewise.
24589         (init_alias_analysis): Likewise.
24590
24591 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
24592
24593         * fold-const.c (fold_comparison): Remove redundant parenthesis.
24594         * tree-inline.c (expand_call_inline): Pass translated return value of
24595         cgraph_inline_failed_string to diagnostic function.
24596
24597 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
24598             Shujing Zhao  <pearly.zhao@oracle.com>
24599
24600         PR c/37724
24601         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
24602         implicit bad conversions is initialization.
24603         (error_init): Use gmsgid instead of msgid for argument name and change
24604         the call for error.
24605         (pedwarn_init): Use gmsgid instead of msgid for argument name and
24606         change the call for pedwarn.
24607         (warning_init): Use gmsgid instead of msgid for argument name and
24608         change the call for warning.
24609
24610 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
24611
24612         * config/mips/mips-protos.h (mips_print_operand): Delete.
24613         (mips_print_operand_address): Delete.
24614         * config/mips/mips.h (mips_print_operand_punct): Delete.
24615         (PRINT_OPERAND): Delete.
24616         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24617         (PRINT_OPERAND_ADDRESS): Delete.
24618         * config/mips/mips.c (mips_print_operand_punct): Make static.
24619         (mips_print_operand_address): Make static.
24620         (mips_print_operand): Make static.  Call
24621         mips_print_operand_punct_valid_p.
24622         (mips_print_operand_punct_valid_p): New function.
24623         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
24624         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
24625
24626 2010-06-07  Jan Hubicka  <jh@suse.cz>
24627
24628         PR middle-end/44454
24629         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
24630         are allocated.
24631
24632 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
24633
24634         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
24635         name of RECORD.
24636
24637 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24638
24639         * doc/sourcebuild.texi (Effective-Target Keywords, Other
24640         attributes): Document gas.
24641
24642 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
24643
24644         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
24645         <TYPE_LEA>: Split instruction.
24646         <default>: Remove alternative 2 handling.
24647         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
24648         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
24649         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
24650
24651         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
24652         (ashift_zext lea splitter): Use DImode for multiplication.
24653
24654         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
24655         to generate addition.
24656
24657 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
24658
24659         * common.opt (fira-verbose): Use Var.
24660         (fpcc-struct-return): Use Init instead of VarExists.
24661         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
24662         toplev.c.
24663         * flags.h (flag_signed_char, flag_short_enums,
24664         flag_pcc_struct_return, flag_ira_verbose,
24665         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
24666         * toplev.c (flag_detailed_statistics, flag_signed_char,
24667         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
24668         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
24669         * toplev.h (flag_crossjumping, flag_if_conversion,
24670         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
24671         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
24672         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
24673         flag_cprop_registers, time_report, flag_ira_loop_pressure,
24674         flag_ira_coalesce, flag_ira_move_spills,
24675         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
24676
24677 2010-06-07  Jan Hubicka  <jh@suse.cz>
24678
24679         * df-core.c (df_analyze_problem): Do verification after allocation.
24680
24681         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
24682         (df_lr_alloc): Initialize problem data; move bitmaps to
24683         lr_bitmaps obstack.
24684         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
24685         (df_lr_verify_solution_start): Do not initialize problem data;
24686         allocate bitmaps in lr_bitmaps.
24687         (df_lr_verify_solution_end): Do not free problem data.
24688
24689 2010-06-07  Jan Hubicka  <jh@suse.cz>
24690
24691         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
24692         if caller is noreturn.
24693         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
24694         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
24695         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
24696         * ipa-pure-const.c (check_decl): Add IPA parameter.
24697         (state_from_flags): New function.
24698         (better_state, worse_state): New functions.
24699         (check_call): When in IPA mode, do not care about callees.
24700         (check_load, check_store): Update.
24701         (check_ipa_load, check_ipa_store): New.
24702         (check_stmt): When in IPA mode, use IPA checkers.
24703         (analyze_function): Use state_from_flags.
24704         (propagate): Check indirect edges and references.
24705
24706 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
24707
24708         PR rtl-optimization/44404
24709         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
24710         of count_occurrences to see if it's safe to modify mem_insn.
24711
24712 2010-06-07  Richard Guenther  <rguenther@suse.de>
24713
24714         * gimplify.c (gimplify_cleanup_point_expr): For empty body
24715         and EH-only cleanup drop the cleanup instead of inserting it
24716         unconditionally.
24717
24718 2010-06-07  Ira Rosen  <irar@il.ibm.com>
24719
24720         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
24721         documentation.
24722         * targhooks.c (default_builtin_vectorization_cost): New function.
24723         * targhooks.h (default_builtin_vectorization_cost): Declare.
24724         * target.h (enum vect_cost_for_stmt): Define.
24725         (builtin_vectorization_cost): Change argument and comment.
24726         * tree-vectorizer.h: Remove cost model macros.
24727         * tree-vect-loop.c: Include target.h.
24728         (vect_get_cost): New function.
24729         (vect_estimate_min_profitable_iters): Replace cost model macros with
24730         calls to vect_get_cost.
24731         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
24732         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
24733         default implementation.
24734         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
24735         calls to target hook builtin_vectorization_cost.
24736         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
24737         Likewise.
24738         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
24739         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
24740         implementation to return costs.
24741         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
24742         * config/spu/spu.h: Remove vectorizer cost model macros.
24743         * config/i386/i386.h: Likewise.
24744         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
24745         a call to target hook builtin_vectorization_cost.
24746
24747 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
24748
24749         PR target/44319
24750         * config/i386/i386.c (override_options): Turn zee pass on for level 2
24751         and above and defer till target is known.
24752         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
24753         turn off otherwise.
24754
24755 2010-05-25  Jan Hubicka  <jh@suse.cz>
24756
24757         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
24758         (df_compact_blocks): Likewise.
24759         * df.h (struct df): Turn hardware_regs_used,
24760         regular_block_artificial_uses, eh_block_artificial_uses,
24761         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
24762         bitmap_head.
24763         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
24764         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
24765         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
24766         df_scan_blocks, df_insn_delete, df_insn_rescan,
24767         df_insn_rescan_debug_internal, df_insn_rescan_all,
24768         df_process_deferred_rescans, df_process_deferred_rescans,
24769         df_notes_rescan, df_get_call_refs, df_get_call_refs,
24770         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
24771         df_record_entry_block_defs, df_record_exit_block_uses,
24772         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
24773         df_scan_verify): Update.
24774
24775 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
24776
24777         PR c++/44188
24778         * c-common.c (is_typedef_decl): Move this definition ...
24779         * tree.c (is_typedef_decl): ... here.
24780         (typdef_variant_p): Move definition here from cp/tree.c.
24781         * c-common.h (is_typedef_decl): Move this declaration ...
24782         * tree.h (is_typedef_decl): ... here.
24783         (typedef_variant_p): Move declaration here from cp/cp-tree.h
24784         * dwarf2out.c (is_naming_typedef_decl): New function.
24785         (gen_tagged_type_die): Split out of ...
24786         (gen_type_die_with_usage): ... this function. When an anonymous
24787         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
24788         is emitted for the typedef.
24789         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
24790         anonymous tagged types.
24791
24792 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24793
24794         PR c/20000
24795         * c-decl.c (grokdeclarator): Delete warning.
24796
24797 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
24798
24799         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
24800         newly built CALL_EXPR.
24801         * tree-profile.c (tree_profiling): Don't profile functions produced
24802         for built-in stuff.
24803
24804 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
24805
24806         PR bootstrap/44427
24807         PR bootstrap/44428
24808         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
24809         endianness-independent.
24810
24811 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
24812
24813         * c-common.c: Move to c-family/.
24814         * c-common.def: Likewise.
24815         * c-common.h: Likewise.
24816         * c-cppbuiltin.c: Likewise.
24817         * c-dump.c: Likewise.
24818         * c-format.c: Likewise.
24819         * c-format.h : Likewise.
24820         * c-gimplify.c: Likewise.
24821         * c-lex.c: Likewise.
24822         * c-omp.c: Likewise.
24823         * c.opt: Likewise.
24824         * c-opts.c: Likewise.
24825         * c-pch.c: Likewise.
24826         * c-ppoutput.c: Likewise.
24827         * c-pragma.c: Likewise.
24828         * c-pragma.h: Likewise.
24829         * c-pretty-print.c: Likewise.
24830         * c-pretty-print.h: Likewise.
24831         * c-semantics.c: Likewise.
24832         * stub-objc.c: Likewise.
24833
24834         * gengtype.c (get_file_langdir): Special-case files in c-family/.
24835         (get_output_file_with_visibility): Fix name for c-common.h.
24836         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
24837
24838         * c-tree.h: Update include path for moved files.
24839         * c-lang.c: Likewise.
24840         * c-lang.h: Likewise.
24841         * c-parser.c: Likewise.
24842         * c-convert.c: Likewise.
24843         * c-decl.c: Likewise.
24844         * c-objc-common.c: Likewise.
24845         * configure.ac: Make sure c-family/ exists in the build directory.
24846         * configure: Regenerate.
24847         * Makefile.in: Update paths for moved files.  Regroup files per
24848         location and update dependencies.  Move generated_files down after
24849         ALL_GTFILES_H.
24850
24851         * config/spu/spu-c.c: Update paths for moved files.
24852         * config/mep/mep-pragma.c: Likewise.
24853         * config/darwin-c.c: Likewise.
24854         * config/i386/msformat-c.c: Likewise.
24855         * config/i386/i386-c.c: Likewise.
24856         * config/avr/avr-c.c: Likewise.
24857         * config/sol2-c.c: Likewise.
24858         * config/ia64/ia64-c.c: Likewise.
24859         * config/rs6000/rs6000-c.c: Likewise.
24860         * config/arm/arm.c: Likewise.
24861         * config/arm/arm-c.c: Likewise.
24862         * config/h8300/h8300.c: Likewise.
24863         * config/v850/v850-c.c: Likewise.
24864
24865         * config/t-darwin: Fix dependencies for moved files.
24866         * config/t-sol2: Fix dependencies for moved files.
24867         * config/mep/t-mep: Fix dependencies for moved files.
24868         * config/ia64/t-ia64: Fix dependencies for moved files.
24869         * config/rs6000/t-rs6000: Fix dependencies for moved files.
24870         * config/v850/t-v850: Fix dependencies for moved files.
24871         * config/v850/t-v850e: Fix dependencies for moved files.
24872
24873         * config/m32c/m32c-pragma.c
24874
24875         * po/exgettext: Look in c-family/ also.
24876
24877 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
24878
24879         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
24880         (mark_control_dependent_edges_necessary): Call it instead of marking
24881         the last statement manually.
24882         (propagate_necessity): Likewise.
24883
24884 2010-06-05  Jan Hubicka  <jh@suse.cz>
24885
24886         * basic-block.h (compute_dominance_frontiers): Updated.
24887         (compute_idf): Likewise.
24888
24889         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
24890         for dominance frontiers.
24891         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
24892         (insert_updated_phi_nodes_for): Likewise.
24893         (update_ssa): Likewise.
24894         * cfganal.c (compute_dominance_frontiers_1): Likewise.
24895         (compute_dominance_frontiers): Likewise.
24896         (compute_idf): Likewise.
24897         * df-problems.c (df_md_local_compute): Likewise.
24898
24899 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
24900
24901         * target.h (struct gcc_target): Add memory_move_cost field.
24902         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
24903         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
24904         * targhooks.c (default_memory_move_cost): New function.
24905         * targhooks.h (default_memory_move_cost): Declare function.
24906         * reload.h (memory_move_cost): Declare.
24907         (memory_move_secondary_cost): Change type of 'in' argument to bool.
24908         * reginfo.c (memory_move_cost): New function.
24909         (memory_move_secondary_cost): Change type of 'in' argument to bool.
24910         * ira.h (ira_memory_move_cost): Update comment.
24911         * ira.c (ira_memory_move_cost): Update comment.
24912         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
24913         with memory_move_cost.
24914         * postreload.c (reload_cse_simplify_set): (Ditto.).
24915         * reload1.c (choose_reload_regs): (Ditto.).
24916         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
24917         (MEMORY_MOVE_COST):  Revise documentation.
24918
24919         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
24920         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
24921         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
24922         type of 'in' argument to bool.
24923         (TARGET_MEMORY_MOVE_COST): Define.
24924
24925 2010-06-05  Jan Hubicka  <jh@suse.cz>
24926
24927         * ipa-pure-const.c (propagate): Fix typo in handling of functions
24928         that cannot return.  Be more careful when merging the results with
24929         previously known ones.
24930
24931 2010-06-05  Matthias Klose  <doko@ubuntu.com>
24932
24933         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
24934         function to add the -iplugindir option.
24935         (find_plugindir_spec_function): Add new declaration and function.
24936         (static_spec_func): Use it for "find-plugindir".
24937
24938 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
24939
24940         PR c++/44361
24941         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
24942         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
24943         statement expression.
24944
24945 2010-06-05  Jan Hubicka  <jh@suse.cz>
24946
24947         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
24948         (df_rd_problem_data): Convert sparse_invalidated_by_call,
24949         dense_invalidated_by_call to bitmap head.
24950         (df_rd_alloc, df_rd_bb_local_compute_process_def,
24951         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
24952         df_rd_start_dump, df_lr_verify_transfer_functions,
24953         df_live_verify_transfer_functions, df_chain_create_bb,
24954         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
24955         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
24956         df_simulate_one_insn_forwards, df_md_alloc,
24957         df_md_bb_local_compute_process_def,
24958         df_md_bb_local_compute_process_def, df_md_local_compute,
24959         df_md_transfer_function df_md_free): Update.
24960
24961 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
24962
24963         PR c/44322
24964         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
24965         target type for ADDR_EXPR; require no changes to qualifiers except
24966         for function types.
24967         * c-tree.h (c_build_type_variant): Remove.
24968
24969 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
24970
24971         * genautomata.c (get_excl_set): Do work per element, not per char.
24972         (check_presence_pattern_sets): Similar.
24973         (check_absence_pattern_sets): Similar.
24974
24975 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
24976
24977         * genautomata.c (curr_state_pass_num): Delete.
24978         (min_issue_delay_pass_states): Delete.
24979         (min_issue_delay): Delete.
24980         (initiate_min_issue_delay_pass_states): Delete.
24981         (output_min_issue_delay_table): Compute min_issue_delay_vect
24982         using a breadth-first search variant.
24983         (output_tables): Don't call initiate_min_issue_delay_pass_states.
24984
24985 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
24986
24987         PR boostrap/44421
24988         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
24989         (df_byte_lr_bb_local_compute): Likewise.
24990
24991 2010-06-03  Jason Merrill  <jason@redhat.com>
24992
24993         Implement noexcept operator (5.3.7)
24994         * c-common.c (c_common_reswords): Add noexcept.
24995         * c-common.h (enum rid): Add RID_NOEXCEPT.
24996
24997 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
24998
24999         * config/darwin-driver.c (darwin_default_min_version): Use
25000         GCC-specific formats in diagnostics.
25001         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
25002         diagnostics.
25003         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
25004         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
25005         eval_spec_function, handle_braces, process_brace_body, main,
25006         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
25007         getenv_spec_function, compare_version_strings,
25008         version_compare_spec_function): Use GCC-specific formats in
25009         diagnostics.
25010
25011 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25012
25013         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
25014         that operand 0 and operand 1 are equal.
25015         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
25016         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
25017         and operand 1 are equal.
25018         <default>: Ditto.  Remove ??? comment.
25019         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
25020         and operand 1 are equal.
25021         <default>: Ditto.  Remove ??? comment.
25022         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
25023         are equal.
25024         (*add<mode>_4) <default>: Ditto.
25025         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
25026
25027 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
25028
25029         * config/i386/i386-protos.h (ix86_print_operand): Declare.
25030         * config/i386/i386.c (ix86_print_operand): Make non-static.
25031         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
25032         * output.h (output_operand): Declare.
25033         * final.c (output_operand): Make non-static.
25034
25035 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
25036
25037         PR rtl-optimization/44013
25038         * sched-deps.c (add_dependence_list_and_free): Don't free lists
25039         when processing debug insns.
25040
25041         PR debug/41371
25042         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
25043         recursing.  Check that recursion is bounded.  Rename inner var
25044         to avoid hiding incoming argument.
25045
25046 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25047
25048         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
25049         operands[2] == 255.
25050         (*addqi_3): Ditto.
25051         (*addqi_4): Ditto.
25052         (*addqi_5): Ditto.
25053         (*addqi_ext_1_rex64): Ditto.
25054         (*addqi_ext_1): Ditto.
25055
25056         (*addqi_4): Check for incdec_operand in QImode.
25057
25058         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
25059         using SWI mode iterator.
25060         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
25061         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
25062         mode iterator.
25063         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
25064         using SWI mode iterator.
25065
25066 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25067
25068         PR c/25880
25069         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
25070         * c-format.c (gcc_diag_flag_specs): Add hash.
25071         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
25072         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
25073         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
25074         pp_c_cv_qualifiers. Handle qualifiers spelling here.
25075         (pp_c_type_qualifier_list): Call the function above.
25076         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
25077         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
25078         (WARN_FOR_QUALIFIERS): New macro.
25079         (convert_for_assignment): Use it.
25080
25081 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
25082
25083         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
25084
25085 2010-06-04  Jan Hubicka  <jh@suse.cz>
25086
25087         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
25088         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
25089         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
25090         DF_BYTE_LR_OUT): Update for embedded bitmaps.
25091         * fwprop.c (single_def_use_enter_block): Likewise.
25092         * ddg.c (create_ddg_dep_from_intra_loop_link,
25093         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
25094         * loop-iv.c (latch_dominating_def): Likewise.
25095         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
25096         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
25097         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
25098         df_rd_transfer_function, df_rd_top_dump,
25099         df_rd_bottom_dump): Update.
25100         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
25101         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
25102         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
25103         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
25104         df_lr_verify_solution_start, df_lr_verify_solution_end,
25105         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
25106         df_live_free_bb_info, df_live_alloc, df_live_reset,
25107         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
25108         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
25109         df_live_verify_solution_start, df_live_verify_solution_end,
25110         df_live_verify_transfer_functions, df_chain_create_bb,
25111         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
25112         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25113         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25114         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
25115         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
25116         df_byte_lr_transfer_function, df_byte_lr_top_dump,
25117         df_byte_lr_bottom_dump, df_create_unused_note,
25118         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
25119         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
25120         df_md_transfer_function, df_md_init, df_md_confluence_0,
25121         df_md_confluence_n,
25122         df_md_top_dump, df_md_bottom_dump): Update.
25123         (struct df_lr_problem_data): Embedd bitmap headers.
25124
25125 2010-06-04  Jan Hubicka  <jh@suse.cz>
25126
25127         * dce.c (dce_process_block): Do not re-scan already marked
25128         instructions.
25129
25130 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
25131
25132         PR rtl-optimization/39871
25133         PR rtl-optimization/40615
25134         PR rtl-optimization/42500
25135         PR rtl-optimization/42502
25136         * ira.c (init_reg_equiv_memory_loc: New function.
25137         (ira): Call it twice.
25138         * reload.h (calculate_elim_costs_all_insns): Declare.
25139         * ira-costs.c: Include "reload.h".
25140         (regno_equiv_gains): New static variable.
25141         (init_costs): Allocate it.
25142         (finish_costs): Free it.
25143         (ira_costs): Call calculate_elim_costs_all_insns.
25144         (find_costs_and_classes): Take estimated elimination costs
25145         into account.
25146         (ira_adjust_equiv_reg_cost): New function.
25147         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
25148         * reload1.c (init_eliminable_invariants, free_reg_equiv,
25149         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
25150         (elim_bb): New static variable.
25151         (reload): Move code out of here into init_eliminable_invariants and
25152         free_reg_equiv.  Call them.
25153         (calculate_elim_costs_all_insns): New function.
25154         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
25155         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
25156         but call note_reg_elim_costly if we turned a valid memory address
25157         into an invalid one.
25158         * Makefile.in (ira-costs.o): Depend on reload.h.
25159
25160 2010-06-04  Julian Brown  <julian@codesourcery.com>
25161
25162         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
25163         for pool ranges.
25164
25165 2010-06-04  Richard Guenther  <rguenther@suse.de>
25166
25167         PR lto/41584
25168         * cgraph.h (struct varpool_node): Add lto_file_data field.
25169         * lto-cgraph.c (input_varpool_node): Initialize it.
25170
25171 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25172
25173         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
25174         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
25175         predicate in "type" attribute calculation.
25176         (*addsi_1_zext): Ditto.
25177         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
25178         (*addsi_2_zext): Ditto.
25179         (*add<mode>_3): Ditto.
25180         (*addsi_3_zext): Ditto.
25181         (*add<mode>_5): Ditto.
25182
25183 2010-06-03  Jan Hubicka  <jh@suse.cz>
25184
25185         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
25186         of bitmap_bit_p.
25187         * cfganal.c (compute_dominance_frontiers_1): Likewise.
25188
25189 2010-06-03  Jan Hubicka  <jh@suse.cz>
25190
25191         * df-problems.c (df_create_unused_note, df_note_bb_compute):
25192         micro-optimize the checks when to add new note.
25193
25194 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
25195
25196         * final.c (output_asm_insn): Call
25197         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
25198         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
25199         (output_address): Call targetm.asm_out.print_operand_address.
25200         Update comments.
25201         * target.h (struct gcc_target): Add print_operand,
25202         print_operand_address, and print_operand_punct_valid_p fields.
25203         * targhooks.h (default_print_operand): Declare.
25204         (default_print_operand_address): Declare.
25205         (default_print_operand_punct_valid_p): Declare.
25206         * targhooks.c (default_print_operand): Define.
25207         (default_print_operand_address): Define.
25208         (default_print_operand_punct_valid_p): Define.
25209         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
25210         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
25211         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
25212         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
25213         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
25214         * vmsdbgout.c (addr_const_to_string): Update comment.
25215         * config/i386/i386.c (print_operand): Rename to...
25216         (ix86_print_operand): ...this.  Make static.
25217         (print_operand_address): Rename to...
25218         (ix86_print_operand_address): ...this.  Make static.  Call
25219         ix86_print_operand instead of PRINT_OPERAND.
25220         (ix86_print_operand_punct_valid_p): New function.
25221         (TARGET_PRINT_OPERAND): Define.
25222         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25223         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25224         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
25225         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25226         (PRINT_OPERAND): Delete.
25227         (PRINT_OPERAND_ADDRESS): Delete.
25228         * config/i386/i386-protos.h (print_operand): Delete prototype.
25229         (print_operand_address): Delete prototype.
25230
25231 2010-06-03  Richard Guenther  <rguenther@suse.de>
25232
25233         PR tree-optimization/44403
25234         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
25235         Preserve pointer qualifiers.
25236         (vect_create_data_ref_ptr): Likewise.
25237
25238 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
25239
25240         PR c++/44294
25241         * defaults.h (MAX_FIXED_MODE_SIZE): New.
25242
25243         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
25244
25245 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
25246
25247         PR debug/44375
25248         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
25249         return false if merging the bbs would lead to goto_locus
25250         location being lost from the IL.
25251
25252 2010-06-03  Jan Hubicka  <jh@suse.cz>
25253             Jakub Jelinek  <jakub@redhat.com>
25254
25255         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
25256         set->regs[i] is NULL or has just one entry.
25257
25258 2010-06-03  Jan Hubicka  <jh@suse.cz>
25259
25260         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
25261         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
25262
25263 2010-06-03  Paul Brook  <paul@codesourcery.com>
25264
25265         * config/arm/arm.c (FL_TUNE): Define.
25266         (arm_default_cpu, arm_cpu_select): Remove.
25267         (all_cores): Populate core field.
25268         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
25269         (arm_find_cpu): New function.
25270         (arm_handle_option): Lookup cpu/architecture names.
25271         (arm_override_options): Cleanup mcpu/march/mtune handling.
25272         (arm_file_start): Ditto.
25273
25274 2010-06-03  Alan Modra  <amodra@gmail.com>
25275
25276         PR target/44169
25277         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
25278         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
25279         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
25280         (rs6000_emit_load_toc_table): Likewise.
25281
25282 2010-06-02  Jan Hubicka  <jh@suse.cz>
25283
25284         * passes.c (init_optimization_passes): Put ipa reference
25285         after ipa pure-const.
25286
25287 2010-06-02  Jan Hubicka  <jh@suse.cz>
25288
25289         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
25290         calls_read_all and calls_write_all.
25291         (get_reference_optimization_summary): Fix formatting.
25292         (is_proper_for_analysis): Check that decl is not readonly.
25293         (propagate_bits): Check CONST/PURE/noreturn flags.
25294         (ipa_init): Move all_module_statics to optimization_summary_obstack.
25295         (analyze_function): Ignore indirect edges.
25296         (copy_global_bitmap): For all module statics, do nothing.
25297         (generate_summary): Do not print calls_read_all/calls_write_all.
25298         (read_write_all_from_decl): Take node as argument; check
25299         cgraph_node_cannot_return.
25300         (propagate): Reorganize read_all/write_all computation;
25301         check indirect edges; check ecf flags; use all_module_statics
25302         in the results; do not free all_module_statics.
25303         (stream_out_bitmap): Handle all_module_statics.
25304         (ipa_reference_write_optimization_summary): Likewise; use
25305         varpool/cgraph encoders to get boundaries.
25306         (ipa_reference_read_optimization_summary): Read in all_module_statics;
25307         use it when possible.
25308
25309 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
25310
25311         PR target/44218
25312         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
25313         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
25314
25315         * doc/extend.texi (powerpc builtins): Document vec_recip,
25316         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
25317
25318         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
25319         (rs6000_emit_swrsqrt): Ditto.
25320         (rs6000_emit_swdivsf): Delete.
25321         (rs6000_emit_swdivdf): Ditto.
25322         (rs6000_emit_swrsqrtsf): Ditto.
25323
25324         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
25325         describe the reciprocal estimate support for each type.
25326         (recip_options): Map -mrecip=<opt> into option bits.
25327         (gen_2arg_fn_t): New typedef for binary rtx gen function.
25328         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
25329         reciprocal estimate instructions.
25330         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
25331         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
25332         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
25333         cost information if -mdebug=cost or -mdebug=reg.
25334         (rs6000_override_options): Set -mrecip-precision for power6, and
25335         power7 machines.  If -mvsx or -mdfp, enable various options that
25336         came in previous instruction set ISAs, unless the option was
25337         explicitly disabled by the command line option.  Parse
25338         -mrecip=<opt> options.
25339         (rs6000_builtin_vectorized_function): Add support for vectorizing
25340         the reciprocal estimate builtins and expansions.
25341         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
25342         (bdesc_2arg): Add reciprocal estimate builtins.
25343         (bdesc_1arg): Add reciprocal square root estimate builtins.
25344         (rs6000_expand_builtin): Rewrite to use a switch statement,
25345         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
25346         (rs6000_init_builtins): Create declarations for reciprocal
25347         estimate builtins.
25348         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
25349         sized, prefer traditional floating point registers, if integer
25350         vector types, prefer altivec registers.  Don't actually look at
25351         the memory address any more.
25352         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
25353         builtins.
25354         (rs6000_load_constant_and_splat): New helper function to load up
25355         the constant for reciprocal estimate instructions.
25356         (rs6000_emit_madd): New helper function for generating
25357         multiply/add type instructions, based on the current switches.
25358         (rs6000_emit_msub): Ditto.
25359         (rs6000_emit_mnsub): Ditto.
25360         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
25361         replace a divide with a reciprocal estimate and fixup, adding
25362         support for machines with high precision and vectors.
25363         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
25364         low precision machines.
25365         (rs6000_emit_swdiv): New common function to be called to replace a
25366         division with reciprocal estimate and fixup.
25367         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
25368         for double and vector types.  Add support for high precision machines.
25369
25370         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
25371         the reciprocal estimate instructions can be generated.
25372         (TARGET_FRE): Ditto.
25373         (TARGET_FRSQRTES): Ditto.
25374         (TARGET_FRSQRTE): Ditto.
25375         (RS6000_RECIP_*): New macros for reciprocal estimate support.
25376
25377         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
25378         square root estimate on vectors.
25379         (re<mode>2): New insn for reciprocal division estimate on vectors.
25380
25381         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
25382         New builtin.
25383         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
25384         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
25385         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
25386         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
25387         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
25388         (RS6000_BUILTIN_RSQRT): Ditto.
25389         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
25390         floating point builtin.
25391
25392         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
25393         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
25394         __RECIP_PRECISION__ based on the command line switches.
25395         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
25396
25397         * config/rs6000/rs6000.opt (-mrecip): Document add support for
25398         replacing division instructions with reciprocal estimate and fixup.
25399         (-mrecip=<opt>): New option.
25400         (-mrecip-precision): Ditto.
25401
25402         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
25403         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
25404         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
25405         precision scalar.
25406
25407         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
25408         (UNSPEC_VREFP): Ditto.
25409         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
25410         conterparts with regard to support of -mno-fused-madd and -ffast-math.
25411         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
25412         reciprocal estimate instructions to be generated.
25413         (altivec_vrefp): Ditto.
25414
25415         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
25416         estimate support.
25417         (rreg): New mode attribute for reciprocal estimate support.
25418         (recip<mode>3): New insn for division using reciprocal estimate
25419         and fixup builtins.
25420         (divide define_split): New define_split to convert floating point
25421         division to use reciprocal estimate if the user used the
25422         appropriate options and the split is run when we can add new
25423         pseudo registers for the fixup.
25424         (rsqrt<mode>2): New insn for reciprocal square root support.
25425         (recipsf3): Move into recip<mode>3.
25426         (recipdf3): Ditto.
25427         (fres): Use TARGET_FRES.
25428         (rsqrtsf2): Move into rsqrt<mode>2.
25429         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
25430         (copysignsf3): Add support for VSX.
25431         (fred): Use TARGET_FRE.
25432         (fred_fpr): Ditto.
25433         (rsqrtdf_internal1): New function for frsqrte instruciton.
25434
25435         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
25436         (vec_rsqrt): Ditto.
25437
25438 2010-06-03  Richard Guenther  <rguenther@suse.de>
25439
25440         PR middle-end/44291
25441         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
25442         (set_user_assembler_libfunc): Likewise.
25443
25444 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25445
25446         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
25447         defaults.h.
25448         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
25449         to defaults.h
25450         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
25451         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
25452         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
25453         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
25454         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
25455         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
25456         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
25457         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
25458         * defaults.h: Updated for above mentioned changes.
25459
25460 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
25461
25462         * c-common.c: Remove header include of tm_p.h.
25463         * Makefile.in (c-common.o): Remove TM_P_H dependency.
25464
25465 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
25466
25467         * tree.h (struct tree_decl_map): New type.
25468         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
25469         (tree_decl_map_hash): New prototype.
25470         (debug_expr_for_decl, value_expr_for_decl): Change into
25471         tree_decl_map hashtab from tree_map.
25472         (init_ttree): Adjust initialization.
25473         (tree_decl_map_hash): New function.
25474         (decl_debug_expr_lookup, decl_debug_expr_insert,
25475         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
25476
25477 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25478
25479         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
25480         linker emulations.
25481         * configure: Regenerate.
25482         * config.in: Regenerate.
25483
25484         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
25485         (X86_64_EMULATION): Define.
25486         (TARGET_LD_EMULATION): Use them.
25487
25488         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
25489         (SPARC64_EMULATION): Define.
25490         (LINK_ARCH_SPEC): Use them.
25491
25492 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25493
25494         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
25495         smallest_mode_for_size for computing the precision types of new
25496         graphite IVs.  Do not call lang_hooks.types.type_for_size.
25497
25498 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25499
25500         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
25501         information.
25502         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
25503
25504 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25505
25506         PR middle-end/44363
25507         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
25508         return false instead.
25509
25510 2010-06-02  Jan Hubicka  <jh@suse.cz>
25511
25512         PR middle-end/44295
25513         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
25514         create new cgraph node to check callee.
25515
25516 2010-06-02  Richard Guenther  <rguenther@suse.de>
25517
25518         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
25519
25520 2010-06-02  Richard Guenther  <rguenther@suse.de>
25521
25522         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
25523         (lto_wrapper_cleanup): ... this.  Do not exit.
25524         (fatal): Adjust.  Exit here.
25525         (fatal_perror): Likewise.
25526         (fatal_signal): New function.
25527         (main): Set up signal handlers to cleanup temporary files.
25528         * Makefile.in (lto-wrapper.o): Adjust dependencies.
25529
25530 2010-06-02  Richard Guenther  <rguenther@suse.de>
25531
25532         PR tree-optimization/44377
25533         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
25534
25535 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25536
25537         * config/s390/2097.md (z10_fhex): Remove insn reservation.
25538         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
25539         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
25540         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
25541         instruction.
25542         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
25543
25544 2010-06-02  Jan Hubicka  <jh@suse.cz>
25545
25546         * bitmap.c (bitmap_descriptor): Add search_iter.
25547         (bitmap_find_bit): Increment it.
25548         (print_statistics): Print it.
25549
25550 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
25551
25552         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
25553         instead of gimple_build_call_vec.  Delete unnecessary local variable.
25554
25555 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25556
25557         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
25558         change from yesterday.
25559
25560 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25561
25562         * c-ada-spec.c: Clean up redundant includes.
25563
25564 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
25565
25566         * gimplify.c: Do not include except.h and optabs.h.
25567         (gimplify_body): Do not initialize RTL profiling.
25568         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
25569         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
25570         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
25571         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
25572         langhooks.h.
25573
25574         * tree-pretty-print.h: Include pretty-print.h.
25575         * gimple-pretty-print.h: Include pretty-print.h.
25576
25577         * tree-pretty-print.c: Do not include diagnostic.h.
25578         * tree-vrp.c: Likewise.
25579         * tree-tailcall.c: Likewise
25580         * tree-scalar-evolution.c: Likewise
25581         * tree-ssa-dse.c: Likewise
25582         * tree-chrec.c: Likewise
25583         * tree-ssa-sccvn.c: Likewise
25584         * tree-ssa-copyrename.c: Likewise
25585         * tree-nomudflap.c: Likewise
25586         * tree-call-cdce.c: Likewise
25587         * tree-stdarg.c: Likewise
25588         * tree-ssa-math-opts.c: Likewise
25589         * tree-nrv.c: Likewise
25590         * tree-ssa-sink.c: Likewise
25591         * tree-browser.c: Likewise
25592         * tree-ssa-loop-ivcanon.c: Likewise
25593         * tree-ssa-loop.c: Likewise
25594         * tree-parloops.c: Likewise
25595         * tree-ssa-address.c: Likewise
25596         * tree-ssa-ifcombine.c: Likewise
25597         * tree-if-conv.c: Likewise
25598         * tree-data-ref.c: Likewise
25599         * tree-affine.c: Likewise
25600         * tree-ssa-phiopt.c: Likewise
25601         * tree-ssa-coalesce.c: Likewise
25602         * tree-ssa-pre.c: Likewise
25603         * tree-ssa-live.c: Likewise
25604         * tree-predcom.c: Likewise
25605         * tree-ssa-forwprop.c: Likewise
25606         * tree-ssa-dce.c: Likewise
25607         * tree-ssa-ter.c: Likewise
25608         * tree-ssa-loop-prefetch.c: Likewise
25609         * tree-optimize.c: Likewise
25610         * tree-ssa-phiprop.c: Likewise
25611         * tree-object-size.c: Likewise
25612         * tree-outof-ssa.c: Likewise
25613         * tree-ssa-structalias.c: Likewise
25614         * tree-switch-conversion.c: Likewise
25615         * tree-ssa-reassoc.c: Likewise
25616         * tree-ssa-operands.c: Likewise
25617         * tree-vectorizer.c: Likewise
25618         * tree-vect-data-refs.c: Likewise
25619         * tree-vect-generic.c: Likewise
25620         * tree-vect-stmts.c: Likewise
25621         * tree-vect-patterns.c: Likewise
25622         * tree-vect-slp.c: Likewise
25623         * tree-vect-loop.c: Likewise
25624         * tree-ssa-loop-ivopts.c: Likewise
25625         * tree-ssa-loop-im.c: Likewise
25626         * tree-ssa-loop-niter.c: Likewise
25627         * tree-ssa-loop-unswitch.c: Likewise
25628         * tree-ssa-loop-manip.c: Likewise
25629         * tree-ssa-loop-ch.c: Likewise
25630         * tree-dump.c: Likewise
25631         * tree-complex.c: Likewise
25632
25633         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
25634         * tree-ssa-uninit.c: Likewise
25635         * tree-ssa-threadupdate.c: Likewise
25636         * tree-ssa-uncprop.c: Likewise
25637         * tree-ssa-ccp.c: Likewise
25638         * tree-ssa-dom.c: Likewise
25639         * tree-ssa-propagate.c: Likewise
25640         * tree-ssa-alias.c: Likewise
25641         * tree-dfa.c: Likewise
25642         * tree-cfgcleanup.c: Likewise
25643         * tree-sra.c: Likewise
25644         * tree-ssa-copy.c: Likewise
25645         * tree-ssa.c: Likewise
25646         * tree-profile.c: Likewise
25647         * tree-cfg.c: Likewise
25648         * tree-ssa-threadedge.c: Likewise
25649         * tree-vect-loop-manip.c: Likewise
25650
25651         * tree-inline.c: Do not include diagnostic.h and expr.h.
25652         Include rtl.h.
25653         (copy_decl_for_dup_finish): Do not use NULL_RTX.
25654
25655         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
25656         * tree-loop-distribution.c: Likewise.
25657
25658 2010-06-01  Jan Hubicka  <jh@suse.cz>
25659
25660         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
25661
25662 2010-06-01  Jan Hubicka  <jh@suse.cz>
25663
25664         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
25665         remove return value.
25666         (split_bbs_on_noreturn_calls) .... here.
25667         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
25668         * tree-flow.h (fixup_noreturn_call): New.
25669
25670 2010-06-01  Jan Hubicka  <jh@suse.cz>
25671
25672         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
25673
25674 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
25675
25676         * tree.h (build_nt_call_list): Delete.
25677         * tree.c (build_nt_call_list): Delete.
25678
25679 2010-06-01  Jan Hubicka  <jh@suse.cz>
25680
25681         * fwprop.c: Make emit-rtl.h include last.
25682         * rtlanal.c: Include emit-rtl.h.
25683         * genautomata.c: Output emit-rtl include into insn-automata.c
25684         * df-scan.c: Include emit-rtl.h.
25685         * haifa-sched.c: Indlude emit-rtl.h.
25686         * mode-switching.c: Indlude emit-rtl.h.
25687         * graph.c: Indlude emit-rtl.h.
25688         * sel-sched.c: Include emit-rtl.h.
25689         * sel-sched-ir.c: Include emit-rtl.h.
25690         * ira-build.c: Include emit-rtl.h.
25691         * emit-rtl.c (first_insn, last_insn): Remove defines.
25692         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
25693         Move to emit-rtl.h.
25694         (set_new_first_and_last_insn, get_last_insn_anywhere,
25695         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
25696         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
25697         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
25698         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
25699         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
25700         Use accessor functions.
25701         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
25702          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
25703         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
25704         mem_expr_equal_p): Move here from rtl.h.
25705         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
25706         Move here from emit-rtl.c; make inline.
25707         * cfglayout.h: Include emit-rtl.h.
25708         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
25709          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
25710         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
25711         mem_expr_equal_p, get_insns, set_first-insn,
25712         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
25713         * reg-stack.c: Include emit-rtl.h.
25714         * dce.c: Likewise.
25715
25716 2010-06-01  Jan Hubicka  <jh@suse.cz>
25717
25718         * cgraph.h (tree_function_versioning): Update prototype.
25719         (cgraph_function_versioning): Update prototype.
25720         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
25721         bitmap.
25722         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
25723         (cgraph_materialize_clone, save_inline_function_body): Update use of
25724         tree_function_versioning.
25725         * tree-inline.c (copy_bb): Look for previous copied block to link
25726         after; fix debug output.
25727         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
25728         (copy_body): Likewise.
25729         (expand_call_inline): Update use of copy_body.
25730         (tree_function_versioning): Update use of copy body; accept
25731         blocks_to_copy and new_entry.
25732
25733 2010-06-01  Jan Hubicka  <jh@suse.cz>
25734
25735         * gegenrtl.c: Remove unnecesary prototypes.
25736         (gendecl): Remove.
25737         (gendef): Produce static inline.
25738         (gencode): Remove.
25739         (main): Do not decode parameters; generate header only.
25740         * Makefile.in (genrtl.c): Remove.
25741
25742 2010-06-01  Jan Hubicka  <jh@suse.cz>
25743
25744         * tree-switch-conversion.c (build_one_array): Make it readonly.
25745
25746 2010-06-01  Richard Guenther  <rguenther@suse.de>
25747
25748         * optabs.c (init_optabs): Guard all accesses to reinit.
25749         * ipa-pure-const.c (propagate): Fix another typo.
25750         * opts.c (common_handle_option): Split assignment to bool.
25751         * c-opts.c (c_common_handle_option): Likewise.
25752
25753 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
25754             Matthew Gingell  <gingell@adacore.com>
25755
25756         * doc/invoke.texi: Mention -fdump-ada-spec.
25757         * tree-dump.c (dump_files): Add ada-spec.
25758         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
25759         * tree-pass.h (tree_dump_index): Add TDI_ada.
25760         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
25761         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
25762         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
25763         * c-decl.c: Include c-ada-spec.h.
25764         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
25765         functions.
25766         (c_write_global_declarations): Add handling of -fdump-ada-spec.
25767         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
25768         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
25769         * c-ada-spec.h, c-ada-spec.c: New files.
25770
25771 2010-06-01  Richard Guenther  <rguenther@suse.de>
25772
25773         PR lto/43853
25774         * ipa-pure-const.c (get_function_state): Hand back varying state
25775         if we do not have one.
25776         (has_function_state): New function.
25777         (duplicate_node_data): Adjust.
25778         (remove_node_data): Likewise.
25779         (pure_const_write_summary): Likewise.
25780         (propagate): Likewise.  Fix typo.
25781
25782 2010-06-01  Jan Hubicka  <jh@suse.cz>
25783
25784         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
25785         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
25786         (execute_all_ipa_transforms): Do not play with the states.
25787
25788 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
25789
25790         * config/arm/t-linux-androideabi: New.
25791         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
25792
25793 2010-06-01  Jan Hubicka  <jh@suse.cz>
25794
25795         * tree-inline.c (estimate_num_insns): For stdarg functions look
25796         into call statement to count cost of argument passing.
25797
25798 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
25799
25800         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
25801         argument for fprintf.
25802         (ix86_output_addr_diff_elt): Likewise.
25803         (x86_function_profiler): Likewise.
25804         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
25805         (LPREFIX): Likewise.
25806         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
25807
25808 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
25809
25810         PR target/44338
25811         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
25812         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
25813         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
25814         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
25815         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
25816         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
25817         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
25818         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
25819         TARGET_FUSED_MADD.
25820
25821 2010-05-31  Jan Hubicka  <jh@suse.cz>
25822
25823         * tree.h (tree_range_check_failed): Declare noreturn.
25824
25825 2010-05-31  Jan Hubicka  <jh@suse.cz>
25826
25827         * gimple.c (gimple_call_builtin_p): New function.
25828         * gimple.h (gimple_call_builtin_p): Declare.
25829         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
25830         to exit.
25831         (execute_warn_function_return): BUILT_IN_RETURN is return.
25832         (split_critical_edges): Return edges are not critical.
25833         (is_ctrl_altering_stmt): Builtin_in_return is altering.
25834         (gimple_verify_flow_info): Handle built_in_return.
25835         (execute_warn_function_return): Handle built_in_return.
25836         * ipa-pure-const.c (check_call): Ignore builtin_return.
25837
25838 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
25839
25840         PR middle-end/44337
25841         * expr.c (expand_assignment): Don't store anything for out-of-bounds
25842         array accesses with non-MEM.
25843
25844         PR tree-optimization/44182
25845         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
25846         newly needs to end a bb is followed by debug stmts, instead return
25847         true from the function at the end.
25848         (maybe_move_debug_stmts_to_successors): New function.
25849         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
25850
25851 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
25852
25853         PR target/44161
25854         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
25855
25856 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
25857
25858         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
25859         for nested functions in non-optimized compilation.
25860
25861 2010-05-31  Richard Guenther  <rguenther@suse.de>
25862
25863         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
25864
25865 2010-05-30  Jan Hubicka  <jh@suse.cz>
25866
25867         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
25868
25869 2010-05-30  Richard Guenther  <rguenther@suse.de>
25870
25871         PR lto/42975
25872         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
25873         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
25874         no longer needed.
25875
25876 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
25877
25878         * config/darwin.c (output_objc_section_asm_op): Add comment.
25879         (name_needs_quotes): Add '_' to list of valid comment chars.
25880         (machopic_output_function_base_name): Remove unneeded quotes.
25881         (darwin_encode_section_info): Adjust asm whitespace.
25882         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
25883         (ASM_OUTPUT_LOCAL): Ditto.
25884         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
25885         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
25886         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
25887
25888 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
25889
25890         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
25891         RS6000_OUTPUT_BASENAME unconditionally.
25892         (rs6000_output_function_epilogue): Likewise.
25893
25894 2010-05-30  Jan Hubicka  <jh@suse.cz>
25895
25896         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
25897         nodes.
25898
25899 2010-05-30  Richard Guenther  <rguenther@suse.de>
25900
25901         * tree-cfg.c (verify_gimple_assign_single): Implement
25902         verification for COND_EXPR rhs.
25903
25904 2010-05-30  Jan Hubicka  <jh@suse.cz>
25905
25906         * cgraph.h (cgraph_dump_file): Declare.
25907         * cgraphunit.c (cgraph_dump_file): Export.
25908         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
25909
25910 2010-05-30  Jan Hubicka  <jh@suse.cz>
25911
25912         * dwarf2out.c (reference_to_unused,
25913         premark_types_used_by_global_vars_helper): Avoid creation of new
25914         varpool nodes.
25915
25916 2010-05-30  Jan Hubicka  <jh@suse.cz>
25917
25918         * cgraph.h (cgraph_node_cannot_return,
25919         cgraph_edge_cannot_lead_to_return): New functions.
25920         * cgraph.c (cgraph_node_cannot_return,
25921         cgraph_edge_cannot_lead_to_return): Use them.
25922         * ipa-pure-const.c (pure_const_names): New static var.
25923         (check_call): Handle calls not leading to return.
25924         (pure_const_read_summary): Dump info read.
25925         (propagate): Dump info about propagation process; ignore side effects
25926         of functions not leading to exit; fix handling of pure functions.
25927
25928 2010-05-30  Jan Hubicka  <jh@suse.cz>
25929
25930         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
25931         for tail call epilogues.
25932
25933 2010-05-30  Jan Hubicka  <jh@suse.cz>
25934
25935         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
25936         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
25937         dump files.
25938
25939 2010-05-29  Jan Hubicka  <jh@suse.cz>
25940
25941         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
25942         node; remove references in node we no longer keep in cgrpah but need
25943         body of.
25944
25945 2010-05-29  Jan Hubicka  <jh@suse.cz>
25946
25947         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
25948
25949 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25950
25951         PR target/44165
25952         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
25953
25954 2010-05-29  Jan Hubicka  <jh@suse.cz>
25955
25956         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
25957         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
25958         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
25959         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
25960         debug_names_replaced_by, debug_update_ssa): Likewise.
25961         * sbitmap.c (debug_sbitmap): Likewise.
25962         * genrecog.c (debug_decision, debug_decision_list): Likewise.
25963         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
25964         debug_tree_chain): Likewise.
25965         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
25966         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
25967         * optabs.c (debug_optab_libfuncs): Likewise.
25968         (verify_loop_closed_ssa): Likewise.
25969         * value-prof.c (verify_histograms): Likewise.
25970         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
25971         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
25972         * cfghooks.c (verify_flow_info): Likewise.
25973         * fold-const.c (debug_fold_checksum): Likewise.
25974         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
25975         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
25976         Likewise.
25977         * omega.c (debug_omega_problem): Likewise.
25978         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
25979         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
25980         * dominance.c (verify_dominators, debug_dominance_info,
25981         debug_dominance_tree): Likewise.
25982         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
25983         * df_regno_debug, df_ref_debug,
25984         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
25985         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
25986         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
25987         * sel-sched.c (debug_state): Likewise.
25988         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
25989         Likewise.
25990         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
25991         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
25992         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
25993         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
25994         Likewise.
25995         * c-pretty-print.c (debug_c_tree): Likewise.
25996         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
25997         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
25998         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
25999         * ebitmap.c (debug_ebitmap): Likewise.
26000         * function.c (debug_find_var_in_block_tree): Likewise.
26001         * print-rtl.c (debug_rtx): Likewise.
26002         (debug_rtx_count): Likewise.
26003         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
26004         * stor-layout.c (debug_rli): Likewise.
26005         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
26006         * tree-data-ref.c (debug_data_references,
26007         debug_data_dependence_relations, debug_data_reference,
26008         debug_data_dependence_relation, debug_rdg_vertex,
26009         debug_rdg_component, debug_rdg): Likewise.
26010         * tree-affine.c (debug_aff): Likewise.
26011         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
26012         Likewise.
26013         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
26014         * emit-rtl.c (verify_rtl_sharing): Likewise.
26015         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
26016         debug_value_expressions): Likewise.
26017         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
26018         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
26019         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
26020         * cfglayout.c (verify_insn_chain): Likewise.
26021         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
26022         debug_clast_stmt, debug_generated_program): Likewise.
26023         * ggc-page.c (debug_print_page_list): Likewise.
26024         * tree-ssa-ter.c (debug_ter): Likewise.
26025         * graphite-dependences.c (debug_pddr): Likewise.
26026         * sched-deps.c (debug_ds): Likewise.
26027         * tree-ssa.c (verify_ssa): Likewise.
26028         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
26029         debug_scattering_functions, debug_iteration_domains, debug_pdr,
26030         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
26031         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
26032         * tree-inline.c (debug_find_tree): Likewise.
26033         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
26034         debug_ppl_powerset_matrix): Likewise.
26035         * var-tracking.c (debug_dv): Likewise.
26036         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
26037         * cfgloop.c (verify_loop_structure): Likewise.
26038         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
26039         * c-common.c (verify_sequence_points): Likewise.
26040         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
26041         debug_candidates, debug_rgn_dependencies): Likewise.
26042         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
26043         * debug_constraint_graph, debug_solution_for_var,
26044         debug_sa_points_to_info): Likewise.
26045         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
26046         Likewie.
26047         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
26048         debug_loops, debug_loop, debug_loop_num): Likewise.
26049         * passes.c (debug_pass): Likewise.
26050         (dump_properties): Likewise; add cfglayout property.
26051         (debug_properties): Likewise.
26052         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
26053         * varpool.c (debug_varpool): Likewise.
26054         * regcprop.c (debug_value_data): Likewise.
26055         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
26056         debug_immediate_uses_for): Likewise.
26057
26058 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26059
26060         PR bootstrap/44315
26061         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
26062         Filter out insn-flags.h.
26063
26064 2010-05-29  Jan Hubicka  <jh@suse.cz>
26065
26066         * cgraph.h (struct varpool_node_set_def,
26067         struct cgraph_node_set_def): Remove unused AUX pointer.
26068         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
26069         VEC_empty macro.
26070
26071 2010-05-29  Jan Hubicka  <jh@suse.cz>
26072
26073         PR middle-end/44324
26074         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
26075
26076 2010-05-29  Richard Guenther  <rguenther@suse.de>
26077
26078         * lto-streamer.c (cached_bp): New global variable.
26079         (bitpack_create): Return the cached bitpack, if available.
26080         (bitpack_delete): Clear and cache the bitpack, if appropriate.
26081         (bp_pack_value): Remove redundant asserts.
26082
26083 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26084
26085         PR middle-end/44306
26086         * tree-if-conv.c (is_true_predicate): New.
26087         (is_predicated): Use is_true_predicate.
26088         (add_to_predicate_list): Same.  Do not use unshare_expr.
26089         (add_to_dst_predicate_list): Same.
26090
26091 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26092
26093         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
26094         field on edges.
26095         (predicate_bbs): Same.
26096         (clean_predicate_lists): Same.
26097         (find_phi_replacement_condition): Do not AND the predicate from
26098         edge->aux.
26099
26100 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26101
26102         PR bootstrap/44315
26103         * Makefile.in (build/gencondmd.o): Add a missing `\'.
26104
26105 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26106
26107         PR target/44261
26108         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
26109         (negdf2): Adjust expander pattern and use negdf2_slow.
26110         (negsf2): Likewise.
26111
26112 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
26113
26114         * basic-block.h (struct control_flow_graph): Move last_label_uid field
26115         up.
26116         * df.h (struct df_base_ref): Move regno field up.
26117         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
26118         * expr.h (struct separate_ops): Move location field up.
26119         * optabs.h (struct optab_d): Move libcall_basename field down.
26120         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
26121         * config/i386/i386.h (struct machine_function): Convert call_abi field
26122         into a bitfield.  Move cfa field to the end of the structure.
26123
26124 2010-05-29  Jan Hubicka  <jh@suse.cz>
26125
26126         * varpool.c (varpool_get_node): Fix lookup.
26127
26128 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26129
26130         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
26131         RTL specific prototypes with #ifdef RTX_CODE.
26132         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
26133         * config/spu/t-spu-elf: Fix dependencies.
26134
26135         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
26136
26137 2010-05-29  Mike Stump  <mikestump@comcast.net>
26138
26139         PR bootstrap/44315
26140         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
26141         TM_H when building to avoid dependency loops.
26142
26143 2010-05-29  Jan Hubicka  <jh@suse.cz>
26144
26145         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
26146         refs and body; not the whole node for masters of materialized clones.
26147
26148 2010-05-29  Mike Stump  <mikestump@comcast.net>
26149
26150         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
26151
26152 2010-05-29  Jan Hubicka  <jh@suse.cz>
26153
26154         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
26155         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
26156         use of clone_function_name.
26157         * cgraph.h (cgraph_create_virtual_clone,
26158         cgraph_function_versioning): update prototypes.
26159         (clone_function_name): Declare.
26160         * ipa-cp.c (ipcp_insert_stage): Update call of
26161         cgraph_create_virtual_clone.
26162         * omp-low.c (create_omp_child_function_name): Use
26163         cgraph_create_virtual_clone.
26164         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
26165         (cgraph_function_versioning): Take SUFFIX argument; produce new name
26166         and make decl local.
26167
26168 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26169
26170         * vec.h: Include statistics.h
26171         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
26172         with VEC_H.
26173
26174 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26175
26176         * c-lex.c: Do not include c-tree.h.
26177         * c-pretty-print.c: Likewise.
26178         * c-opts.c: Likewise.
26179         * c-gimplify.c: Likewise.
26180         * c-common.c: Likewise.
26181         * c-dump.c: Likewise.  Include c-common.h.
26182
26183 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26184
26185         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
26186         before including diagnostic-core.h.
26187         (c_cpp_error): New prototype moved from c-tree.h.
26188         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
26189         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
26190         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
26191         (c_cpp_error): Prototype moved to c-common.h.
26192         * Makefile.in: Update dependency for C_COMMON_H.
26193
26194 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26195
26196         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
26197         * c-common.c (c_register_addr_space): Remove here.
26198         * c-decl.c (c_register_addr_space): Re-add here.
26199
26200 2010-05-28  Mike Stump  <mikestump@comcast.net>
26201
26202         * config/darwin-c.c: Remove c-tree.h include.
26203
26204 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26205
26206         * gcc.c: Include diagnostic.h.
26207         (error_count): Remove.  All users changed to use errorcount.
26208         (programname): Remove.  All users changed to use progname.
26209         (fancy_abort, internal_error, fatal_error, error, warning, inform,
26210         fnotice): Remove.
26211         (execute): Don't include "Internal error" and bug reporting
26212         information in argument of internal_error call.
26213         (process_command): Don't increment error_count after calling
26214         perror_with_name.
26215         (input_filename): Rename to gcc_input_filename.  All users
26216         changed.
26217         (main): Call diagnostic_initialize.  Register delete_temp_files
26218         with atexit.  Use seen_error to test for errors.
26219         * gcc.h: Include diagnostic-core.h.
26220         (fatal_error, error, warning): Remove.
26221         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
26222         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
26223         (gcc.o): Update dependencies.
26224
26225 2010-05-28  Jeff Law  <law@redhat.com>
26226
26227         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
26228         functions.
26229         * ira.h (ira_bad_reload_regno): Declare
26230         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
26231
26232         * ira-color.c (update_curr_costs): Free updated hard reg costs.
26233         (ira_reassign_conflict_allocnos): Remove bogus asserts.
26234         (allocno_reload_assign): Likewise.
26235
26236 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
26237
26238         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
26239         build1_stat.
26240
26241 2010-05-28  Richard Guenther  <rguenther@suse.de>
26242
26243         PR lto/44312
26244         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
26245         Stream fixed-point constants mode.
26246         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
26247         and TYPE_PRECISION.
26248         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
26249         Stream fixed-point constants mode.
26250         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
26251         and TYPE_PRECISION.
26252
26253 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26254
26255         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
26256         only place it was called from.
26257         (number_of_latch_executions): Do not return chrec_dont_know when the
26258         may_be_zero is a runtime condition: instead, return a COND_EXPR
26259         including the may_be_zero condition.
26260         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
26261         of nb_iterations.
26262         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
26263         COND_EXPRs.
26264
26265 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26266
26267         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
26268         generate COND_EXPRs for degenerate_phi_result.
26269
26270 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26271
26272         PR middle-end/44293
26273         * tree-if-conv.c (if_convertible_loop_p): Check the
26274         if-convertibility of phi nodes in non predicated BBs.
26275
26276 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26277
26278         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
26279
26280 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26281
26282         PR driver/15303
26283         * gcc.c (inform, warning, inform): New functions.
26284         (fatal_ice): Rename to internal_error; change cmsgid parameter to
26285         gmsgid.  All callers changed.
26286         (notice): Rename to fnotice; add parameter fp.  All callers changed.
26287         (fatal_error): Rename to fatal_signal.  All users changed.
26288         (fatal): Rename to fatal_error; change cmsgid parameter to
26289         gmsgid.  All callers changed.
26290         (process_command): Use warning instead of error for warnings.
26291         (end_going_arg): Don't use _() around argument of error.
26292         (do_spec_1): Use inform for message from %n specs.  Use warning
26293         instead of error for warnings.
26294         (main): Use inform for comparison messages.  Use warning for
26295         message about unused linker input.
26296         (error): Increment error_count.  Print "error: ".
26297         * gcc.h (fatal): Change to fatal_error.
26298         (warning): Declare.
26299         * config/darwin-driver.c (darwin_default_min_version): Use warning
26300         instead of fprintf for warnings.
26301         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
26302
26303 2010-05-28  Julian Brown  <julian@codesourcery.com>
26304
26305         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
26306         (*thumb2_addsi3_compare0_scratch): New.
26307         * config/arm/constraints.md (Pv): New.
26308         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
26309         for ARM mode only.
26310         (*addsi3_compare0_scratch): Likewise.
26311
26312 2010-05-28  Jan Hubicka  <jh@suse.cz>
26313
26314         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
26315         check.
26316         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
26317         only on local statics.
26318
26319 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
26320
26321         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
26322
26323 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
26324
26325         PR bootstrap/44314
26326         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
26327         (OPTION_GLIBC): Define.
26328
26329 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
26330
26331         PR debug/41048
26332         * dwarf2out.c (double_int_type_size_in_bits): New function.
26333         (round_up_to_align): Change first argument and return value to
26334         double_int.
26335         (field_byte_offset): Work internally on double_ints.
26336
26337         PR target/43636
26338         * builtins.c (expand_movstr): Use a temporary pseudo instead
26339         of target even when target is not NULL and not const0_rtx, but
26340         fails movstr predicate.
26341         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
26342
26343 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26344
26345         * final.c (rest_of_clean_state): Use %m in errors instead of
26346         strerror (errno).
26347         * gengtype.c (read_input_list, close_output_files): Use xstrerror
26348         instead of strerror.
26349         * toplev.c (process_options): Use %m in errors instead of strerror
26350         (errno).
26351         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
26352         (errno).
26353
26354 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
26355
26356         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
26357         (ix86_canonical_va_list_type): Make static.  Add declaration.
26358         (ix86_enum_va_list): Make static.  Reindent.
26359         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
26360         (ix86_canonical_va_list_type): Ditto.
26361         (ix86_enum_va_list): Ditto.
26362
26363 2010-05-28  Richard Guenther  <rguenther@suse.de>
26364
26365         * lto-wrapper.c (run_gcc): With -save-temps generate a
26366         user-visible ltrans filename.  Fixup ltrans unit numbering.
26367
26368 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
26369
26370         * c-common.c (c_common_nodes_and_builtins): Replace use
26371         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
26372         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
26373         to ix86_enum_va_list.
26374         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
26375         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
26376         (TARGET_ENUM_VA_LIST_P): Add hook description.
26377         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
26378         * target.h (gcc_target): Add enum_va_list hook.
26379
26380         PR bootstrap/44299
26381         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
26382         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
26383         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
26384
26385 2010-05-28  Alan Modra  <amodra@gmail.com>
26386
26387         PR target/44266
26388         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
26389         emit_library_call machinery to set up __tls_get_addr calls.
26390
26391 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26392
26393         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
26394
26395 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
26396
26397         Revert fix for PR c++/44188
26398         * c-common.c (is_typedef_decl): Revert the moving of  this
26399         definition ...
26400         * tree.c (is_typedef_decl): ... here.
26401         (typdef_variant_p): Revert the moving of this  definition
26402         here from cp/tree.c.
26403         * c-common.h (is_typedef_decl): Revert the moving of this
26404         declaration ...
26405         * tree.h (is_typedef_decl): ... here.
26406         (typedef_variant_p): Revert the moving of this  declaration here
26407         from cp/cp-tree.h
26408         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
26409         (gen_tagged_type_die): Revert the splitting out of ...
26410         (gen_type_die_with_usage): ... this function. Revert the anonymous
26411         tagged type handling.
26412         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
26413         typedefs naming anonymous tagged types.
26414
26415 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
26416
26417         * config/rs6000/rs6000-modes.def (PSImode): Delete.
26418
26419 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
26420
26421         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
26422         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
26423         throughout.
26424         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
26425         "xer" to "ca".
26426         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
26427         XER_REGS to CA_REGS throughout.
26428         * config/rs6000/rs6000.h: Same.
26429         (ADDITIONAL_REGISTER_NAMES): Add "xer".
26430         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
26431         that mode_iterator "P" is the size for arithmetic carries as well.
26432         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
26433
26434 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
26435
26436         PR bootstrap/44255
26437         * combine.c (struct rtx_subst_pair): Define unconditionally.
26438         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
26439         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
26440         Call make_compound_operation on pair->to.
26441         (propagate_for_debug): Don't call make_compound_operation here.
26442         Always use simplify_replace_fn_rtx.
26443
26444 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
26445
26446         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
26447         * config/xtensa/xtensa.c (override_options): Check
26448           TARGET_FORCE_NO_PIC and set flag_pic.
26449         * config/xtensa/xtensa.opt: Document -mforce-no-pic
26450
26451 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
26452
26453         PR bootstrap/44299
26454         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
26455         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
26456
26457 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
26458
26459         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
26460         toplev.h.
26461         * diagnostic.c: Don't include toplev.h.
26462         (progname): Define.  Moved from toplev.c.
26463         (seen_error): New function.
26464         * diagnostic.h: Include diagnostic-core.h.
26465         (diagnostic_t, emit_diagnostic): Don't declare here.
26466         * toplev.c (progname): Move to toplev.c.
26467         (emit_debug_global_declarations, compile_file, finalize,
26468         do_compile, toplev_main): Use seen_error.
26469         * toplev.h: Include diagnostic-core.h.
26470         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
26471         internal_error, warning, warning_at, error, error_n, error_at,
26472         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
26473         verbatim, fnotice, progname): Move to diagnostic-core.h.
26474         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
26475         (expand_builtin_expect): Use seen_error.
26476         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
26477         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
26478         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
26479         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
26480         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
26481         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
26482         errorcount for errors.
26483         * c-opts.c (c_common_finish): Use seen_error.
26484         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
26485         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
26486         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
26487         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
26488         (get_coverage_counts): Use seen_error.
26489         * dwarf2out.c (dwarf2out_finish): Use seen_error.
26490         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
26491         gimplify_body): Use seen_error.
26492         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
26493         * ipa-pure-const.c (gate_pure_const): Use seen_error.
26494         * ipa-reference.c (gate_reference): Use seen_error.
26495         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
26496         * lambda-code.c: Include diagnostic-core.h instead of
26497         diagnostic.h.
26498         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
26499         * lto-compress.c: Include diagnostic-core.h instead of
26500         diagnostic.h.
26501         * lto-section-in.c: Include diagnostic-core.h instead of
26502         diagnostic.h.
26503         * lto-streamer-out.c: Include diagnostic-core.h instead of
26504         diagnostic.h.
26505         * lto-streamer.c: Include diagnostic-core.h instead of
26506         diagnostic.h.
26507         (gate_lto_out): Use seen_error.
26508         * matrix-reorg.c: Include diagnostic-core.h instead of
26509         diagnostic.h.
26510         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
26511         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
26512         (gate_expand_omp, lower_omp_1): Use seen_error.
26513         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
26514         (rest_of_decl_compilation, rest_of_type_compilation,
26515         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
26516         * tree-cfg.c (label_to_block_fn): Use seen_error.
26517         * tree-inline.c (optimize_inline_calls): Use seen_error.
26518         * tree-mudflap.c (mudflap_finish_file): Use
26519         seen_error.
26520         * tree-optimize.c (gate_all_optimizations,
26521         gate_all_early_local_passes, gate_all_early_optimizations): Use
26522         seen_error.
26523         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
26524         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
26525         (varpool_remove_unreferenced_decls,
26526         varpool_assemble_pending_decls): Use seen_error.
26527         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
26528         (TOPLEV_H, DIAGNOSTIC_H): Update.
26529         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
26530         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
26531         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
26532         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
26533         coverage.o, lambda-code.o): Update dependencies.
26534
26535 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
26536
26537         PR c++/44188
26538         * c-common.c (is_typedef_decl): Move this definition ...
26539         * tree.c (is_typedef_decl): ... here.
26540         (typdef_variant_p): Move definition here from cp/tree.c.
26541         * c-common.h (is_typedef_decl): Move this declaration ...
26542         * tree.h (is_typedef_decl): ... here.
26543         (typedef_variant_p): Move declaration here from cp/cp-tree.h
26544         * dwarf2out.c (is_naming_typedef_decl): New function.
26545         (gen_tagged_type_die): Split out of ...
26546         (gen_type_die_with_usage): ... this function. When an anonymous
26547         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
26548         is emitted for the typedef.
26549         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
26550         anonymous tagged types.
26551
26552 2010-05-27  Jason Merrill  <jason@redhat.com>
26553
26554         * print-tree.c (debug_vec_tree): New fn.
26555         (print_vec_tree): New fn.
26556         * tree.h: Declare them.
26557         * gdbinit.in (pvt): New command.
26558
26559         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
26560
26561         * gdbinit.in (pdd): New command.
26562
26563 2010-05-27  Jan Hubicka  <jh@suse.cz>
26564
26565         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
26566         (update_caller_keys): Return early if there are no callers;
26567         only update fibheap when decresing the key.
26568         (update_callee_keys): Avoid recursion.
26569         (decide_inlining_of_small_functions): When badness does not match;
26570         re-insert into fibheap.
26571
26572 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
26573
26574         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
26575         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
26576         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
26577         (ALL_HOST_OBJS): Now a union of the above two.
26578         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
26579         all files in ALL_HOST_FRONTEND_OBJS.
26580         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
26581
26582         * c-common.c: Pretend to be a backend file by undefining
26583         IN_GCC_FRONTEND (still need rtl.h here).
26584
26585 2010-05-27  Jan Hubicka  <jh@suse.cz>
26586
26587         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
26588         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
26589
26590 2010-05-27  Jan Hubicka  <jh@suse.cz>
26591
26592         * sched-ebb.c: Rename struct deps to struct deps_desc.
26593         * ddg.c: Likewise.
26594         * sel-sched-ir.c: Likewise.
26595         * sched-deps.c: Likewise.
26596         * sched-int.h: Likewise.
26597         * sched-rgn.c: Likewise.
26598
26599 2010-05-27  Jon Beniston  <jon@beniston.com>
26600
26601         PR 43726
26602         * config/lm32/lm32.h: Remove definition of
26603         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
26604
26605 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
26606
26607         PR lto/44230
26608         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
26609
26610 2010-05-27  Richard Guenther  <rguenther@suse.de>
26611
26612         PR tree-optimization/44284
26613         * tree-vect-stmts.c (vectorizable_assignment): Handle
26614         sign-changing conversions as simple copy.
26615
26616 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
26617
26618         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
26619         Bionic C library.
26620         (__gthread_active_p): Check for pthread_create if compiling against
26621         Bionic C library.
26622
26623 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
26624
26625         Support compilation for Android platform.  Reimplement -mandroid.
26626
26627         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
26628         (*android*): Set ANDROID_DEFAULT.
26629         (arm*-*-linux*): Include linux-android.h.
26630         (arm*-*-eabi*): Don't include previous -mandroid implementation.
26631         * config/arm/eabi.h: Remove, move Android-specific parts ...
26632         * config/linux-android.h: ... here.  New file.
26633         * config/arm/eabi.opt: Rename to ...
26634         * config/linux-android.opt: ... this.
26635         (mandroid): Allow -mno-android option.  Initialize based on
26636         ANDROID_DEFAULT.
26637         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
26638         Move logic to corresponding LINUX_TARGET_* macros.
26639         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
26640         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
26641         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
26642         Android definitions.
26643         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
26644         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
26645         Document.
26646
26647 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
26648
26649         Add support for Bionic C library
26650
26651         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
26652         macro.
26653         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
26654         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
26655
26656         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
26657         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
26658         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
26659         to support multiple C libraries.  Handle Bionic.
26660         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
26661         (BIONIC_DYNAMIC_LINKER64): Define.
26662         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
26663         Update.
26664         (TARGET_HAS_SINCOS): Enable for Bionic.
26665
26666         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
26667         the last option specified on command line take effect.
26668         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
26669         (mbionic): New.
26670         (mglibc, muclibc): Update.
26671
26672         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
26673         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
26674         DEFAULT_LIBC.
26675
26676         * doc/invoke.texi (-mglibc, -muclibc): Update.
26677         (-mbionic): Document.
26678
26679 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
26680
26681         * c-common.h (c_register_addr_space): Add prototype.
26682         (ADDR_SPACE_KEYWORD): Remove.
26683         * c-common.c (c_register_addr_space): New function.
26684         (c_addr_space_name): Reimplement.
26685         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
26686
26687         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
26688         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
26689
26690         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
26691         Remove TARGET_ADDR_SPACE_KEYWORDS.
26692
26693 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
26694
26695         * input.c: New file.
26696         * input.h (main_input_filename): Move declaration to toplev.h.
26697         * toplev.c (input_location, line_table): Move to input.c
26698         * toplev.h (main_input_filename): Move declaration from input.h.
26699         * tree.c (expand_location): Move to input.c.
26700         * Makefile.in (OBJS-common): Add input.o.
26701         (input.o): Add dependencies.
26702
26703 2010-05-27  Richard Guenther  <rguenther@suse.de>
26704
26705         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
26706         for non-existant files.
26707         (fork_execute): Mark args_name file as deleted.
26708
26709 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
26710
26711         PR bootstrp/44287
26712         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
26713         (narrow_signed_type): Likewise.
26714
26715 2010-05-26  Jan Hubicka  <jh@suse.cz>
26716
26717         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
26718         edge only when checking is enabled; check using former_clone_of;
26719         check inline clones too.
26720         (cgraph_materialize_clone): Record former_clone_of pointer.
26721         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
26722         combining redirections; dump args_to_skip bitmap
26723         (cgraph_materialize_all_clones): Do no redirection here.
26724         * ipa-inline.c (inline_transform): Do redirection here.
26725         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
26726         cheking only).
26727
26728 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
26729
26730         * config/avr/avr-c.c: Do not include regs.h.
26731         Include cpplib.h for cpp_define and tree.h for c-common.h.
26732         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
26733         * config/avr/t-avr: Fix dependencies for avr-c.o.
26734
26735 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
26736
26737         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
26738         string instead of SYMBOL_REF rtx.
26739         * rtl.h (set_stack_check_libfunc): Move prototype from here...
26740         * libfuncs.h: ...to here.  Adjust for explow.c change.
26741
26742 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
26743
26744         * pretty-print.c: Don't include ggc.h.
26745         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
26746         (identifier_to_locale): Use them for allocation.
26747         * pretty-print.h (identifier_to_locale_alloc,
26748         identifier_to_locale_free): Declare.
26749         * toplev.c (alloc_for_identifier_to_locale): New.
26750         (general_init): Set identifier_to_locale_alloc and
26751         identifier_to_locale_free.
26752         * Makefile.in (pretty-print.o): Update dependencies.
26753
26754 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
26755
26756         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
26757         pointer types if they have different alignment or mode.
26758
26759 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
26760
26761         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
26762         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
26763         * config/sparc/sparc-protos.h (function_value): Remove declaration.
26764         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
26765         sparc_function_value_regno_p): New functions.
26766         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
26767         TARGET_FUNCTION_VALUE_REGNO_P): Define.
26768         (function_value): Rename to...
26769         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
26770         argument to 'outgoing'.
26771         (function_arg_record_value, function_arg_union_value,
26772         function_arg_vector_value): Update comment.
26773
26774 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
26775
26776         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
26777         (fde_needed_for_eh_p): New predicate.
26778         (output_call_frame_info): Use it throughout to decide whether FDEs
26779         are needed for EH purpose.
26780         (dwarf2out_begin_prologue): Reorder assignments.
26781
26782 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26783
26784         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
26785         special case loop->header.
26786         (is_predicated): New.
26787         (if_convertible_loop_p): Call it.
26788
26789 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26790
26791         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
26792         iterator in parameter.  Do not generate code during the analysis.
26793         (tree_if_convert_cond_stmt): Removed.
26794         (tree_if_convert_stmt): Removed.
26795         (predicate_bbs): New.
26796         (if_convertible_loop_p): Call predicate_bbs.
26797         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
26798         now contains all the analysis part.
26799
26800 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26801
26802         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
26803         statements in the analysis part.
26804         (tree_if_convert_stmt): Update comment.
26805         (remove_conditions_and_labels): New.
26806         (combine_blocks): Call remove_conditions_and_labels.
26807         (tree_if_conversion): Update comment.
26808
26809 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26810
26811         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
26812         than 2 predecessors or more than 2 successors.
26813
26814 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26815
26816         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
26817         of loops in which the data dependence analysis fails.
26818
26819 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26820
26821         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
26822         CDI_POST_DOMINATORS.
26823         (tree_if_conversion): Same.
26824
26825 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26826
26827         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
26828
26829 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26830
26831         * tree-if-conv.c: Update copyright years.  Fix comments.
26832         Fix indentation.
26833
26834 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
26835
26836         * builtin-types.def (BT_INT128): New primitive type.
26837         (BT_UINT128): Likewise.
26838         * c-common.c (c_common_r): Add __int128 keyword.
26839         (c_common_type_for_size): Handle __int128.
26840         (c_common_type_for_mode): Likewise.
26841         (c_common_signed_or_unsigned_type): Likewise.
26842         (c_common_nodes_and_builtins): Add builtin type
26843         if target supports 128-bit integer scalar.
26844         * c-common.h (enum rid): Add RID_INT128.
26845         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
26846         if target supports 128-bit integer scalar.
26847         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
26848         (finish_declspecs): Likewise.
26849         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
26850         (c_token_starts_declspecs): Likewise.
26851         (c_parser_declspecs): Likewise.
26852         (c_parser_attributes): Likewise.
26853         (c_parser_objc_selector): Likewise.
26854         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
26855         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
26856         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
26857         * tree.c (make_or_reuse_type): Likewise.
26858         (make_unsigned_type): Likewise.
26859         (build_common_tree_nodes_2): Likewise.
26860         * tree.h (enum integer_type_kind): Add itk_int128 and
26861         itk_unsigned_int128.
26862         (int128_integer_type_node): New define.
26863         (int128_unsigned_type_node): New define.
26864         * doc/extend.texi: Add documentation about __int128 type.
26865
26866 2010-05-26  Richard Guenther  <rguenther@suse.de>
26867
26868         * tree-ssa-sccvn.c (copy_nary): Adjust.
26869         (copy_phis): Rename to ...
26870         (copy_phi): ... this.  Adjust.
26871         (copy_references): Rename to ...
26872         (copy_reference): ... this.  Adjust.
26873         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
26874         result into the valid table.
26875
26876 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
26877
26878         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
26879         insn-config.h, insn-codes.h, recog.h, and optabs.h.
26880
26881 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26882
26883         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
26884
26885 2010-05-26  Richard Guenther  <rguenther@suse.de>
26886
26887         * opts.c (common_handle_option): Handle OPT_Ofast.
26888
26889 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
26890
26891         * diagnostic.c: Don't include opts.h.
26892         (permissive_error_option): Define.
26893         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
26894         for classify_diagnostic.  Don't use memset for
26895         classify_diagnostic.  Initialize new and recently added fields.
26896         (diagnostic_classify_diagnostic): Use context->n_opts instead of
26897         N_OPTS.
26898         (diagnostic_report_diagnostic): Pass context parameter to
26899         diagnostic_report_warnings_p.  Use option_enabled and option_name
26900         hooks from context.
26901         (emit_diagnostic): Use permissive_error_option.
26902         (permerror): Likewise.
26903         * diagnostic.h: Don't include options.h.
26904         (struct diagnostic_context): Add n_opts, opt_permissive,
26905         inhibit_warnings, warn_system_headers, option_enabled and
26906         option_name fields.  Change classify_diagnostic to a pointer.
26907         * opts-diagnostic.h: New file.
26908         * opts.c: Include opts-diagnostic.h.
26909         (common_handle_option): Set global_dc fields for -Wfatal-errors,
26910         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
26911         (option_name): New function.
26912         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
26913         (c_common_handle_option): Set global_dc->permissive for
26914         -fpermissive.
26915         * c-common.c (c_cpp_error): Save and restore
26916         global_dc->warn_system_headers, not variable warn_system_headers.
26917         * toplev.c: Include opts-diagnostic.h.
26918         (general_init): Update call to diagnostic_initialize.  Set
26919         global_dc->show_column, global_dc->option_enabled and
26920         global_dc->option_name.
26921         (process_options): Don't set global_dc fields here.
26922         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
26923         (diagnostic.o, opts.o, toplev.o): Update dependencies.
26924
26925 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
26926
26927         * config/picochip/picochip.md (movsi): Split a movsi from a
26928         const after reload.
26929
26930 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26931
26932         * ggc-zone.c: Update copyright year.
26933         (poison_region): Mark memory for Valgrind as undefined before
26934         memset () call and inaccessible afterwards.
26935         (ggc_pch_total_size): Change type of i to int.
26936
26937 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26938
26939         * ggc-common.c (ggc_free_overhead): Allow empty slot.
26940
26941 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26942
26943         * ggc-common.c: Update copyright year.
26944         (ggc_rlimit_bound): Remove prototype.  Compile only if
26945         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
26946         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
26947         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
26948         (ggc_min_heapsize_heuristic): Likewise.
26949
26950 2010-05-26  Richard Guenther  <rguenther@suse.de>
26951
26952         PR rtl-optimization/44164
26953         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
26954         no-common access-path disambiguation.
26955         (indirect_ref_may_alias_decl_p): Adjust.
26956         (indirect_refs_may_alias_p): Likewise.
26957         (refs_may_alias_p_1): Likewise.
26958
26959 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
26960
26961         * c-typeck.c: Do not include expr.h.
26962
26963 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
26964
26965         * rtl.h (decl_default_tls_model): Move prototype from here...
26966         * output.h: ...to here.
26967         * c-decl.c: Do not include rtl.h.
26968         * c-pragma.c: Likewise.
26969         * c-parser.c: Likewise.
26970         * c-gimplify.c: Likewise.  And also not hard-reg-set.
26971         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
26972         FIXME note for it.  Add a FIXME note for expr.h.
26973         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
26974         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
26975         defined.
26976
26977 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
26978
26979         PR target/44199
26980         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
26981         or total_size is larger than red zone size for non-V4 ABI, emit a
26982         stack_tie resp. frame_tie insn before stack pointer restore.
26983         * config/rs6000/rs6000.md (frame_tie): New insn.
26984
26985 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
26986
26987         * function.h (struct function): Add can_throw_non_call_exceptions bit.
26988         * lto-streamer-in.c (input_function): Stream it in.
26989         * lto-streamer-out.c (output_function): Stream it out.
26990         * function.c (allocate_struct_function): Set it.
26991         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
26992         for flag_non_call_exceptions.
26993         * cfgbuild.c (control_flow_insn_p): Likewise.
26994         (make_edges): Likewise.
26995         * cfgexpand.c (expand_stack_alignment): Likewise.
26996         * combine.c (distribute_notes): Likewise.
26997         * cse.c (cse_extended_basic_block): Likewise.
26998         * except.c (insn_could_throw_p): Likewise.
26999         * gcse.c (simple_mem): Likewise.
27000         * ipa-pure-const.c (check_call): Likewise.
27001         (check_stmt ): Likewise.
27002         * lower-subreg.c (lower-subreg.c): Likewise.
27003         * optabs.c (emit_libcall_block): Likewise.
27004         (prepare_cmp_insn): Likewise.
27005         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
27006         * postreload.c (rest_of_handle_postreload): Likewise.
27007         * reload1.c (reload_as_needed): Likewise.
27008         (emit_input_reload_insns): Likewise.
27009         (emit_output_reload_insns): Likewise.
27010         (fixup_abnormal_edges): Likewise.
27011         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
27012         * store-motion.c (find_moveable_store): Likewise.
27013         * tree-eh.c (stmt_could_throw_p): Likewise.
27014         (tree_could_throw_p): Likewise.
27015         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
27016         * config/arm/arm.c (arm_expand_prologue): Likewise.
27017         (thumb1_expand_prologue): Likewise.
27018         * config/rx/rx.md (cbranchsf4): Likewise.
27019         (cmpsf): Likewise.
27020         * config/s390/s390.c (s390_emit_prologue): Likewise.
27021         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
27022         (inline_forbidden_into_p): New predicate.
27023         (expand_call_inline): Use it to forbid inlining.
27024         (tree_can_inline_p): Likewise.
27025
27026 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27027
27028         * config/i386/i386-c.c: Do not include rtl.h.
27029         * config/i386/t-i386: Update dependencies.
27030
27031 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27032
27033         * attribs.c: Do not include rtl.h.
27034         * Makefile.in: Update dependencies.
27035
27036 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
27037
27038         * double-int.h (double_int_and): New.
27039         * combine.c (try_combine): Clean up, use double_int_* and
27040         immed_double_int_const functions.
27041
27042 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27043
27044         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
27045         stderr to /dev/null instead of grep -q.
27046         * configure: Regenerate.
27047
27048 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27049
27050         * Makefile.in (EXCEPT_H): Fix typo.
27051
27052 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
27053
27054         * ira-build.c (update_conflict_hard_reg_costs): New.
27055         (ira_build): Call update_conflict_hard_reg_costs.
27056
27057 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27058
27059         PR debug/41371
27060         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
27061         ENABLE_CHECKING.
27062         (intersect_loc_chains): Walk the s2var's loc_chain together
27063         with s1node chain as long as the locations are equal, don't
27064         call find_loc_in_1pdv in that case.
27065
27066         PR debug/42801
27067         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
27068         (copy_bind_expr): ... instead of here.
27069         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
27070         if the block hasn't been remapped.
27071         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
27072         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
27073
27074 2010-05-25  Richard Guenther  <rguenther@suse.de>
27075
27076         PR middle-end/44069
27077         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
27078         out-of-bounds array accesses.
27079
27080 2010-05-25  Richard Guenther  <rguenther@suse.de>
27081
27082         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
27083         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
27084         (run_gcc): Re-organize to make cleanup easier.
27085
27086 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27087
27088         * config/s390/s390.c (optimization_options): Fix and move the
27089         flag_prefetch_loop_arrays override ...
27090         (override_options): ... here.
27091
27092 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
27093
27094         * diagnostic.c: Don't include plugin.h.
27095         (diagnostic_report_diagnostic): Don't handle plugins specially
27096         here.  Pass context to internal_error callback.
27097         * diagnostic.h (struct diagnostic_context): Add context parameter
27098         to internal_error callback.
27099         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
27100         * plugin.h (struct diagnostic_context): Declare.
27101         (warn_if_plugins, plugins_internal_error_function): Declare.
27102         * toplev.c (general_init): Set global_dc->internal_error.
27103         * Makefile.in (diagnostic.o): Update dependencies.
27104
27105 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
27106
27107         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
27108         * config/rs6000/t-darwin64: New.
27109         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
27110         build crt2.
27111
27112 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
27113
27114         PR 44203
27115         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
27116         match the original (and intended) behaviour before r159557.  This
27117         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
27118         in two ways.
27119
27120 2010-05-25  Richard Guenther  <rguenther@suse.de>
27121
27122         * doc/invoke.texi: Document -Ofast.
27123         * target.h (struct gcc_target): Add handle_ofast.
27124         * target-def.h (TARGET_HANDLE_OFAST): Add.
27125         (TARGET_INITIALIZER): Adjust.
27126         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
27127         * common.opt (Ofast): Add.
27128
27129 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27130
27131         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
27132         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
27133
27134 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27135
27136         PR target/43610
27137         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
27138         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
27139         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
27140         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
27141
27142 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27143
27144         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
27145         DW_OP_minus with negated offset instead of DW_OP_plus.
27146         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
27147
27148 2010-05-25  Wei Guozhi  <carrot@google.com>
27149
27150         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
27151         tst instruction and a new alternative.
27152         * config/arm/constraints.md (Pu): New constraint.
27153
27154 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
27155
27156         * function.c (assign_stack_local_1): Initialize variable
27157         to avoid warning when bootstrapping at -O3.
27158
27159 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
27160
27161         * configure.ac (all_lang_makefiles): Remove everything related to it.
27162         * configure: Regenerate.
27163         * Makefile.in: Fix reference to ada Make-lang.in.
27164         Remove support for LANG_MAKEFILES.
27165
27166 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
27167             Sandra Loosemore  <sandra@codesourcery.com>
27168
27169         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
27170         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
27171         description.  Add arm_neon_fp16_ok.
27172         (Add Options): Add arm_neon and arm_neon_fp16.
27173
27174 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
27175
27176         * diagnostic.c: Don't include flags.h.
27177         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
27178         context parameters.  Check flags in the context passed as a parameter.
27179         (diagnostic_build_prefix): Add context parameter.  Check
27180         show_column flag in context.
27181         (diagnostic_action_after_output): Check fatal_errors flag in context.
27182         (diagnostic_report_current_module): Check show_column flag in context.
27183         (default_diagnostic_starter): Update call to
27184         diagnostic_build_prefix.
27185         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
27186         (emit_diagnostic): Pass context to permissive_error_kind.
27187         (permerror): Pass context to permissive_error_kind.
27188         * diagnostic.h (struct diagnostic_context): Add show_column,
27189         pedantic_errors, permissive and fatal_errors fields.
27190         (diagnostic_build_prefix): Update prototype.
27191         * langhooks.c
27192         * toplev.c (process_options): Set flags in global_dc from
27193         flag_show_column, flag_pedantic_errors, flag_permissive,
27194         flag_fatal_errors.
27195         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
27196         to diagnostic_build_prefix.
27197         * Makefile.in (diagnostic.o): Update dependencies.
27198
27199 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
27200
27201         * config/i386/ia32intrin.h (__crc32q): Define only if
27202         __SSE4_2__ is defined.
27203
27204 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
27205
27206         PR target/44132
27207         PR middle-end/43602
27208         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
27209         DECL_VISIBILITY_SPECIFIED.
27210         (emutls_decl): Set DECL_PRESERVE_P and copy
27211         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
27212         (emutls_finalize_control_var): New callback.
27213         (emutls_finish): Finalize emutls control variables.
27214         * toplev.c (compile_file): Move the call to emutls_finish ()
27215         before varpool_assemble_pending_decls ().
27216
27217 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
27218
27219         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
27220         added to the preprocessor condition.
27221
27222 2010-05-24  Paul Brook  <paul@codesourcery.com>
27223
27224         * gengtype-lex.l: Add HARD_REG_SET.
27225         * expr.c (expand_expr_real_1): Record writes to hard registers.
27226         * function.c (rtl_data): Add asm_clobbers.
27227         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
27228         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
27229         Use crtl->asm_clobbers.
27230
27231 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27232
27233         * doc/makefile.texi (Makefile): Mention stages 'profile'
27234         and 'feedback' for profiledbootstrap.
27235
27236 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
27237
27238         PR target/44245
27239         * config/i386/i386.c (def_builtin): Properly check
27240         OPTION_MASK_ISA_64BIT.
27241
27242 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
27243
27244         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
27245         typedefs with different but compatible types.  Allow duplicate
27246         typedefs with the same type except for pedantic non-C1X, but give
27247         warning for variably modified types.
27248         * c-typeck.c (tagged_types_tu_compatible_p,
27249         function_types_compatible_p, type_lists_compatible_p,
27250         comptypes_internal): Add parameter different_types_p; set
27251         *different_types_p for different but compatible types.  All
27252         callers changed.
27253         (comptypes_check_different_types): New.
27254         * c-tree.h (comptypes_check_different_types): Declare.
27255
27256 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
27257
27258         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
27259         * jump.c: Include basic-block.h.
27260         * profile.c: Likewise.
27261         * tree-profile.c: Likewise.
27262         * coverage.c: Likewise.
27263         * basic-block.h (optimize_function_for_size_p): Move to function.h.
27264         (optimize_function_for_speed_p): Likewise.
27265         * function.h (optimize_function_for_size_p,
27266         optimize_function_for_speed_p): Moved here from basic-block.h.
27267         * Makefile.in: Update dependencies.
27268
27269 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27270
27271         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
27272         before calling make; allow override through $MAKE.
27273         * doc/invoke.texi (Optimize Options): Document override.
27274
27275 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
27276
27277         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
27278         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27279         (rs6000_mode_dependent_address_ptr): Make static.
27280         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27281         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
27282         Remove.
27283
27284 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
27285
27286         PR target/43869
27287         * config/i386/i386.c: Make sure that the correct regparm is passed.
27288
27289 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
27290
27291         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
27292         * sbitmap.c: ...to here to internalize sbitmap element access.
27293         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
27294         Explain why basic-block.h is included.
27295         * function.h: Include tm.h for CUMULATIVE_ARGS.
27296         * Makefile.in: Update dependencies.
27297
27298 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
27299
27300         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
27301         New core types.
27302         * sbitmap.h (struct sbitmap_def): Do not typedef here.
27303         * sbitmap.c: Include sbitmap.h.
27304         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
27305         hard-reg-set.h.  Split everything related to regsets out from here...
27306         * regset.h: ...to here.  New file.
27307         * df.h: Include regset.h and sbitmap.h.
27308         * tree-flow.h: Likewise.
27309         * cfgloop.h: Likewise.
27310         * except.h: Do not include sbitmap.h.  Include hashtab.h.
27311         * cgraph.h: Include vec.h and function.h.
27312         * reload.h (struct insn_chain): Change types of live_throughout
27313         and dead_or_set from regset_head to bitmap_head.
27314         (compute_use_by_pseudos): Be defined also if regset.h is not included.
27315         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
27316         spilled_regs from regset_head to bitmap_head to avoid dependency
27317         in regset.h.
27318         * sel-sched-ir.h: Include regset.h.
27319         * reload.c: Include df.h before reload.h.
27320         * caller-save.c: Likewise.
27321         * reload1.c: Likewise.
27322         * ira.c: Likewise.
27323         (mark_elimination): Update type of r to bitmap, consistent with
27324         DF_LR_IN.
27325         * dominance.c: Include bitmap.h.
27326         * modulo-sched.c: Include df.h.
27327         * cfganal.c: Include bitmap.h and sbitmap.h.
27328         * cfgbuild.c: Include sbitmap.h.
27329         * lcm.c: Include sbitmap.h.
27330         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
27331         * domwalk.c: Include sbitmap.h, exclude ggc.h.
27332         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
27333         * cselib.c: Include bitmap.h.
27334         * tree-optimize.c: Include regset.h.
27335         * stmt.c: Include bitmap.h.
27336         * Makefile.in: Update dependencies.
27337
27338 2010-05-22  Jan Hubicka  <jh@suse.cz>
27339
27340         * cgraph.h (struct varpool_node): Add same_comdat_group.
27341         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
27342         pointer.
27343         (output_varpool): Update call of lto_output_varpool_node.
27344         (input_varpool): Read same_comdat_group pointer.
27345         (input_varpool_1): Fixup same_comdat_group pointer.
27346         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
27347         group is needed, all are.
27348         * varpool.c (varpool_remove_node): Remove node from same comdat group
27349         linklist too.
27350         (varpool_analyze_pending_decls): Walk same comdat groups.
27351
27352 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
27353
27354         * rtl.h (union rtunion_def): Remove rt_bit member.
27355         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
27356         * print-rtl (print_rtx): Do not print the member.
27357         * gengtype.c (adjust_field_rtx_def): Do not handle it.
27358         * gengenrtl.c (type_from_format): Likewise.
27359         (accessor_from_format): Likewise.
27360
27361 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
27362
27363         * dbgcnt.c: Include toplev.h instead of errors.h.
27364         * ira-emit.c: Don't include errors.h.
27365         * ira.c: Include toplev.h instead of errors.h.
27366         * lto-compress.c: Include toplev.h instead of errors.h.
27367         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
27368         ira.o, dbgcnt.o): Update dependencies.
27369
27370 2010-05-22  Richard Guenther  <rguenther@suse.de>
27371
27372         * gimple.c (gimple_types_compatible_p): Check type qualifications
27373         before merging pointer to complete and pointer to incomplete type.
27374         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
27375         we use our own resolution algorithm.  The gold linker plugin
27376         doesn't do the job we want it to do here.
27377
27378 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
27379
27380         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27381         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27382         (sparc_mode_dependent_address_p): New function.
27383
27384 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
27385
27386         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
27387
27388         * timevar.c: Do not include any core headers.
27389         (timevar_print): De-i18n-ize.
27390         (print_time): Likewise.
27391         * timevar.h (timevar_push, timevar_pop): Make inline functions.
27392
27393 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
27394
27395         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
27396         langhooks-def.h.
27397         (diagnostic_initialize): Initialize x_data not last_function.
27398         (diagnostic_report_current_function): Move to tree-diagnostic.c.
27399         (default_diagnostic_starter): Call
27400         diagnostic_report_current_module not
27401         diagnostic_report_current_function.
27402         (diagnostic_report_diagnostic): Initialize x_data not
27403         abstract_origin.
27404         (verbatim): Likewise.
27405         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
27406         x_data.
27407         (struct diagnostic_context): Change last_function to x_data.
27408         (diagnostic_auxiliary_data): Replace with
27409         diagnostic_context_auxiliary_data and
27410         diagnostic_info_auxiliary_data.
27411         (diagnostic_last_function_changed, diagnostic_set_last_function,
27412         diagnostic_report_current_function): Move to tree-diagnostic.h.
27413         (print_declaration, dump_generic_node, print_generic_stmt,
27414         print_generic_stmt_indented, print_generic_expr,
27415         print_generic_decl, debug_c_tree, dump_omp_clauses,
27416         print_call_name, debug_generic_expr, debug_generic_stmt,
27417         debug_tree_chain, default_tree_printer): Move to
27418         tree-pretty-print.h.
27419         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
27420         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
27421         gimple-pretty-print.h.
27422         * pretty-print.c: Don't include tree.h
27423         (pp_base_format): Don't handle %K here.
27424         (pp_base_tree_identifier): Move to tree-pretty-print.c.
27425         * pretty-print.h (text_info): Change abstract_origin to x_data.
27426         (pp_tree_identifier, pp_unsupported_tree,
27427         pp_base_tree_identifier): Move to tree-pretty-print.h.
27428         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
27429         tree-pretty-print.h: New files.
27430         * tree-pretty-print.c: Include tree-pretty-print.h.
27431         (percent_K_format): New.  Moved from pretty-print.c.
27432         (pp_base_tree_identifier): Move from pretty-print.c.
27433         * c-objc-common.c: Include tree-pretty-print.h.
27434         (c_tree_printer): Handle %K here.
27435         * langhooks.c: Include tree-diagnostic.h.
27436         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
27437         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
27438         (default_tree_printer): Handle %K using percent_K_format.
27439         (general_init): Use default_tree_diagnostic_starter.
27440         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
27441         (free_lang_data): Use default_tree_diagnostic_starter.
27442         * c-pretty-print.c: Include tree-pretty-print.h.
27443         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27444         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27445         * dwarf2out.c: Include tree-pretty-print.h.
27446         * except.c: Include tree-pretty-print.h.
27447         * gimple-pretty-print.c: Include tree-pretty-print.h and
27448         gimple-pretty-print.h.
27449         * gimplify.c: Include tree-pretty-print.h.
27450         * graphite-poly.c: Include tree-pretty-print.h and
27451         gimple-pretty-print.h.
27452         * ipa-cp.c: Include tree-pretty-print.h.
27453         * ipa-inline.c: Include gimple-pretty-print.h.
27454         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27455         * ipa-pure-const.c: Include gimple-pretty-print.h.
27456         * ipa-struct-reorg.c: Include tree-pretty-print.h and
27457         gimple-pretty-print.h.
27458         * ipa-type-escape.c: Include tree-pretty-print.h.
27459         * print-rtl.c: Include tree-pretty-print.h.
27460         * print-tree.c: Include gimple-pretty-print.h.
27461         * sese.c: Include tree-pretty-print.h.
27462         * tree-affine.c: Include tree-pretty-print.h.
27463         * tree-browser.c: Include tree-pretty-print.h.
27464         * tree-call-cdce.c: Include gimple-pretty-print.h.
27465         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27466         * tree-chrec.c: Include tree-pretty-print.h.
27467         * tree-data-ref.c: Include tree-pretty-print.h and
27468         gimple-pretty-print.h.
27469         * tree-dfa.c: Include tree-pretty-print.h.
27470         * tree-if-conv.c: Include tree-pretty-print.h and
27471         gimple-pretty-print.h.
27472         * tree-inline.c: Include tree-pretty-print.h.
27473         * tree-into-ssa.c: Include tree-pretty-print.h and
27474         gimple-pretty-print.h.
27475         * tree-nrv.c: Include tree-pretty-print.h.
27476         * tree-object-size.c: Include tree-pretty-print.h and
27477         gimple-pretty-print.h.
27478         * tree-outof-ssa.c: Include tree-pretty-print.h and
27479         gimple-pretty-print.h.
27480         * tree-parloops.c: Include tree-pretty-print.h and
27481         gimple-pretty-print.h.
27482         * tree-predcom.c: Include tree-pretty-print.h and
27483         gimple-pretty-print.h.
27484         * tree-scalar-evolution.c: Include tree-pretty-print.h and
27485         gimple-pretty-print.h.
27486         * tree-sra.c: Include tree-pretty-print.h.
27487         * tree-ssa-address.c: Include tree-pretty-print.h.
27488         * tree-ssa-alias.c: Include tree-pretty-print.h.
27489         * tree-ssa-ccp.c: Include tree-pretty-print.h and
27490         gimple-pretty-print.h.
27491         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
27492         * tree-ssa-copy.c: Include tree-pretty-print.h and
27493         gimple-pretty-print.h.
27494         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
27495         * tree-ssa-dce.c: Include tree-pretty-print.h and
27496         gimple-pretty-print.h.
27497         * tree-ssa-dom.c: Include tree-pretty-print.h and
27498         gimple-pretty-print.h.
27499         * tree-ssa-dse.c: Include gimple-pretty-print.h.
27500         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
27501         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
27502         * tree-ssa-live.c: Include tree-pretty-print.h and
27503         gimple-pretty-print.h.
27504         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
27505         gimple-pretty-print.h.
27506         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
27507         gimple-pretty-print.h.
27508         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
27509         gimple-pretty-print.h.
27510         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
27511         gimple-pretty-print.h.
27512         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
27513         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
27514         * tree-ssa-operands.c: Include tree-pretty-print.h and
27515         gimple-pretty-print.h.
27516         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
27517         gimple-pretty-print.h.
27518         * tree-ssa-pre.c: Include tree-pretty-print.h and
27519         gimple-pretty-print.h.
27520         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
27521         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
27522         gimple-pretty-print.h.
27523         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
27524         gimple-pretty-print.h.
27525         * tree-ssa-sink.c: Include gimple-pretty-print.h.
27526         * tree-ssa-ter.c: Include tree-pretty-print.h and
27527         gimple-pretty-print.h.
27528         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
27529         * tree-ssa.c: Include tree-pretty-print.h and
27530         gimple-pretty-print.h.
27531         * tree-stdarg.c: Include gimple-pretty-print.h.
27532         * tree-switch-conversion.c: Include gimple-pretty-print.h.
27533         * tree-tailcall.c: Include tree-pretty-print.h and
27534         gimple-pretty-print.h.
27535         * tree-vect-data-refs.c: Include tree-pretty-print.h and
27536         gimple-pretty-print.h.
27537         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
27538         gimple-pretty-print.h.
27539         * tree-vect-loop.c: Include tree-pretty-print.h and
27540         gimple-pretty-print.h.
27541         * tree-vect-patterns.c: Include gimple-pretty-print.h.
27542         * tree-vect-slp.c: Include tree-pretty-print.h and
27543         gimple-pretty-print.h.
27544         * tree-vect-stmts.c: Include tree-pretty-print.h and
27545         gimple-pretty-print.h.
27546         * tree-vectorizer.c: Include tree-pretty-print.h.
27547         * tree-vrp.c: Include tree-pretty-print.h and
27548         gimple-pretty-print.h.
27549         * value-prof.c: Include tree-pretty-print.h and
27550         gimple-pretty-print.h.
27551         * var-tracking.c: Include tree-pretty-print.h.
27552         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
27553         (tree-diagnostic.o): New dependencies.
27554         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
27555         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
27556         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
27557         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
27558         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
27559         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
27560         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
27561         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
27562         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
27563         tree-ssa-address.o, tree-ssa-loop-niter.o,
27564         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
27565         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
27566         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
27567         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
27568         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
27569         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
27570         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
27571         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
27572         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
27573         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
27574         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
27575         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
27576         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
27577         tree-switch-conversion.o, var-tracking.o, value-prof.o,
27578         cfgexpand.o, pretty-print.o): Update dependencies.
27579
27580 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
27581
27582         * tree-ssa-structalias.c: Remove tm_p.h from include.
27583
27584 2010-05-21  Jeff Law  <law@redhat.com>
27585
27586         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
27587
27588 2010-05-21  Jason Merrill  <jason@redhat.com>
27589
27590         * tree-eh.c (cleanup_is_dead_in): New.
27591         (lower_try_finally): Don't generate a dead cleanup region.
27592         (lower_cleanup): Likewise.
27593
27594 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
27595
27596         PR debug/44223
27597         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
27598         unchain each use from the cyclic next_regno_use chain first.
27599
27600 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
27601
27602         * real: Do not include gmp.h, mpfr.h, and mpc.h.
27603         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
27604         (real_value_negate, real_value_abs): New prototypes.
27605         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
27606         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
27607         new include file for interface between MPFR and REAL_VALUE_TYPE.
27608         * real.c: Include realmpfr.h.
27609         (real_arithmetic2): Remove legacy function.
27610         (real_value_negate): New.
27611         (real_value_abs): New.
27612         (mfpr_from_real, real_from_mpfr): Move from here...
27613         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
27614         * builtins.c: Include realmpfr.h.
27615         * fold-const.c: Include realmpfr.h.
27616         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
27617         (fold_negate_const): Likewise.
27618         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
27619         * toplev.c: Include realmpfr.h.
27620         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
27621         and real_value_negate.
27622         * fixed-value.c (check_real_for_fixed_mode): Likewise.
27623         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
27624         (vfp3_const_double_index): Likewise.
27625         (arm_print_operand): Likewise.
27626         * Makefile.in: Update dependencies.
27627
27628 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27629
27630         * config/s390/s390.c (override_options): Increase the default
27631         of max-completely-peel-times.
27632
27633 2010-05-21  Julian Brown  <julian@codesourcery.com>
27634             Mark Mitchell  <mark@codesourcery.com>
27635
27636         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
27637         sibling calls for Thumb-1.
27638         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
27639         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
27640         Thumb-2.
27641         (*call_insn, *call_value_insn): Don't use for Thumb-2.
27642         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
27643         for Thumb-2.
27644         (return): New expander.
27645         (*arm_return): New name for ARM return insn.
27646         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
27647
27648 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
27649
27650         * config.gcc (sparc64-*-rtems*): New target.
27651
27652 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
27653
27654         * tree.c (build_function_decl_skip_args): Fix grammar.
27655         (build_function_type_list_1): Fix typos, adjust formatting.
27656
27657 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
27658
27659         * tree.h: Include real.h and fixed-value.h as basic datatypes.
27660         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
27661         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
27662         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
27663         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
27664         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
27665         tree-pretty-print.c, tree-loop-distribution.c,
27666         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
27667         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
27668         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
27669         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
27670         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
27671         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
27672         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
27673         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
27674         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
27675         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
27676         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
27677         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
27678         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
27679         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
27680         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
27681         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
27682         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
27683         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
27684         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
27685         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
27686         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
27687         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
27688         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
27689         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
27690         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
27691         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
27692         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
27693         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
27694         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
27695         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
27696         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
27697         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
27698         config/score/score7.c, config/score/score.c, config/arm/arm.c,
27699         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
27700         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
27701         config/bfin/bfin.c: Clean up redundant includes.
27702         * Makefile.in: Update accordingly.
27703
27704 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
27705
27706         PR middle-end/44204
27707         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
27708         statement has no arguments.
27709
27710 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
27711
27712         PR/44139
27713         * varasm.c (emutls_decl): Merge attributes to new decl.
27714
27715 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
27716
27717         PR middle-end/44101
27718         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
27719         around the uniquized constructor if its type requires a conversion.
27720
27721 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
27722
27723         PR debug/44205
27724         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
27725         at -O0 goto_locus of any of the incoming edges differs from
27726         goto_locus of outgoing edge, or gimple_location of any of the
27727         labels differs.
27728
27729 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
27730
27731         * ira.c (ira_non_ordered_class_hard_regs): Define.
27732         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
27733         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
27734         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
27735         cost of unaligned hard regs when allocating multi-reg pseudos.
27736
27737 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
27738
27739         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
27740         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
27741         for TARGET_NO_FLOAT.
27742         * config/mips/mips.c (mips_file_start): Expand conditional expression
27743         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
27744         (mips_override_options): Move -mno-float override -msoft-float and
27745         -mhard-float.
27746         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
27747         Condition(TARGET_SUPPORTS_NO_FLOAT).
27748         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
27749         __mips_no_float here.
27750         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
27751         (TARGET_SUPPORTS_NO_FLOAT): Define.
27752         * config/mips/sdemtk.opt: Delete.
27753
27754 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
27755
27756         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
27757
27758 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
27759
27760         PR target/43733
27761         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
27762         * configure: Regenerate.
27763         * config.in: Regenerate.
27764         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
27765         instead of sahf only for 64bit targets.
27766
27767 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
27768
27769         PR debug/44178
27770         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
27771         setup_ref_regs for DEBUG_INSNs.
27772
27773 2010-05-20  Jan Hubicka  <jh@suse.cz>
27774
27775         PR middle-end/44197
27776         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
27777
27778 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
27779
27780         PR bootstrap/43870
27781         * df-scan.c (df_ref_compare): Stabilize sort.
27782
27783 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
27784
27785         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
27786         argument.  Don't use DW_OP_piece if offset is non-zero,
27787         put offset into second DW_OP_bit_piece argument.
27788         (dw_sra_loc_expr): Adjust callers.  For memory expressions
27789         compute offset.
27790
27791 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
27792
27793         PR target/44202
27794         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
27795         settings for 16-bit-constant "addo" alternative.
27796
27797 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
27798
27799         * config/mips/mips-dsp.md (add<DSPV:mode>3,
27800         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
27801
27802         PR target/43764
27803         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
27804         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
27805         Use it.
27806
27807 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
27808
27809         * diagnostic.c (FLOAT, FFS): Don't undefine.
27810         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
27811         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
27812         include ordering.
27813
27814 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
27815
27816         * combine.c (propagate_for_debug): Call make_compound_operation
27817         on the source value.
27818         (try_combine): When implementing a split chosen by find_split_point,
27819         either copy i2src or set it to null.  Assert that i2src is not null
27820         before substituting into CALL_INSN_FUNCTION_USAGE.
27821
27822 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
27823
27824         * double-int.h (double_int_ior): New function.
27825         * tree.h (build_int_cst_wide_type): Remove.
27826         * tree.c (build_int_cst_wide_type): Remove.
27827         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
27828         of build_int_cst_wide_type.
27829         * stor-layout.c (set_sizetype): (Ditto.).
27830         * dojump.c (do_jump): Use build_int_cstu instead of
27831         build_int_cst_wide_type.
27832
27833 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
27834
27835         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
27836         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
27837         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
27838         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
27839         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
27840         propagate the 'data' argument to copy_tree_r.
27841         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
27842         Propagate 'data' argument to walk_tree.
27843         (copy_if_shared): New function.
27844         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
27845         (unmark_visited): New function.
27846         (unshare_body): Call copy_if_shared instead of doing it manually.
27847         (unvisit_body): Call unmark_visited instead of doing it manually.
27848
27849 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
27850
27851         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
27852         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
27853         * hooks.c: Likewise.
27854         * target-def.h (TARGET_FOLD_BUILTIN): Define to
27855         hook_tree_tree_int_treep_bool_null.
27856         * target.h (struct gcc_target): Update signature of fold_builtin
27857         field.
27858         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
27859         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
27860         instead of the call expression.
27861         (fold_builtin_call_array): Pass n and argarray directly.
27862         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
27863         consing a list.
27864         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
27865         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
27866         `i' and use it in place of `arity'.
27867         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
27868         Dereference `args' directly.
27869         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
27870
27871 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27872
27873         * doc/sourcebuild.texi (Effective-Target Keywords): Document
27874         3dnow, sse3, sse2.
27875         (Directives): Document optional dg-require-effective-target
27876         selector.
27877
27878 2010-05-19  Richard Guenther  <rguenther@suse.de>
27879
27880         PR lto/44196
27881         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
27882
27883 2010-05-19  Richard Guenther  <rguenther@suse.de>
27884
27885         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
27886         * common.opt (fwhopr=): New.
27887         * opts.c (common_handle_option): Handle OPT_fwhopr.
27888         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
27889         * collect2.c (main): Match -fwhopr*.
27890         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
27891         Execute ltrans stage in parallel when jobs is bigger than 1.
27892
27893 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27894
27895         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
27896         pentiumpro on Solaris 8/x86 with Sun as.
27897         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
27898         hidden alias bug.
27899         (gcc_cv_as_ix86_quad): Check for .quad directive.
27900         * configure: Regenerate.
27901         * config.in: Regenerate.
27902         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
27903
27904 2010-05-19  Martin Jambor  <mjambor@suse.cz>
27905
27906         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
27907         also for indirect edges.  Actual printing moved...
27908         (ipa_print_node_jump_functions_for_edge): ...here.
27909         (ipa_compute_jump_functions): Renamed to
27910         ipa_compute_jump_functions_for_edge and made static.
27911         (ipa_compute_jump_functions): New function.
27912         (make_edge_direct_to_target): Check if the number of arguments on
27913         the newly direct edge is the same as the number of parametrs of
27914         the callee.
27915         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
27916         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
27917         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
27918         analysis functions unconditionally, call the new
27919         ipa_analyze_params_uses on the node instead of every edge.
27920
27921 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
27922
27923         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
27924         to tree.
27925         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
27926         also checks for a constant int vs.  non-constant but
27927         loop-invariant steps.
27928         (find_or_create_group): Change the sort algorithm to only consider
27929         steps that are constant ints.
27930         (idx_analyze_ref): Adopt code to handle a tree instead of a
27931         HOST_WIDE_INT for step.
27932         (gather_memory_references_ref): Handle tree instead of int and be
27933         prepared to see a NULL_TREE.
27934         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
27935         prefetches if the step cannot be calculated at compile time.
27936         (issue_prefetch_ref): Issue prefetches for non-constant but
27937         loop-invariant steps.
27938
27939 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
27940
27941         Revert:
27942         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
27943
27944         * tree.h (build_call_list): Remove.
27945         * tree.c (build_call_list): Remove.
27946
27947 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
27948
27949         * tree.h (build_call_list): Remove.
27950         * tree.c (build_call_list): Remove.
27951
27952 2010-05-18  Jan Hubicka  <jh@suse.cz>
27953
27954         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
27955
27956 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
27957
27958         PR rtl-optimization/43332
27959         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
27960
27961 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
27962
27963         * tree.h (build_int_cstu): Implement as static inline.
27964         * tree.c (build_int_cstu): Remove function.
27965         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
27966         sign extended.
27967
27968 2010-05-18  Richard Guenther  <rguenther@suse.de>
27969
27970         PR lto/44143
27971         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
27972         (debug): Initialize from -save-temps.
27973         (collect_execute): Print command-line when verbose.
27974         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
27975         for ltrans invocation.  Produce -dumpbase flag again.
27976         (process_args): Remove.
27977         (main): Simplify.
27978         * collect2.c (maybe_run_lto_and_relink): Only pass object
27979         files to lto-wrapper.
27980         * gcc.c (LINK_COMMAND_SPEC): Likewise.
27981
27982 2010-05-18  Jan Hubicka  <jh@suse.cz>
27983
27984         * opts.c (decode_options): Do not disable whopr at ipa_cp.
27985         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
27986
27987 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
27988
27989         PR lto/44184
27990         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
27991         in a GIMPLE_ASM.
27992         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
27993         in a GIMPLE_ASM.
27994
27995 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
27996
27997         PR debug/41371
27998         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
27999         rtx_equal_p inline.
28000
28001 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
28002
28003         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
28004         lto-macho as lto_binary_reader.
28005
28006         * darwin.c (darwin_asm_named_section): Do not add assembler comment
28007         after .section directive; just print it before the directive instead.
28008
28009 2010-05-17  Jan Hubicka  <jh@suse.cz>
28010
28011         * cgraph.c (cgraph_create_virtual_clone): Only check
28012         versionable_function_p when not in wpa and checking is enabled.
28013         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
28014         there are no more functions to materialize.
28015
28016 2010-05-17  Jan Hubicka  <jh@suse.cz>
28017
28018         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
28019         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
28020         New functions.
28021         (output_cgraph): Call output_cgraph_opt_summary.
28022         (input_cgrpah): Call input_cgraph_opt_summary.
28023         (output_cgraph_opt_summary_p, output_node_opt_summary,
28024         input_node_opt_summary, input_cgraph_opt_section): New functions.
28025         * lto-section-in.c (lto_section_name): Add cgraphopt.
28026         * tree-inline.c (tree_function_versioning): Handle parm_num.
28027         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
28028         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
28029
28030 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28031
28032         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
28033         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
28034         the insn to prefetch ratio heuristic to loops with known trip count.
28035
28036 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28037
28038         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
28039         (schedule_prefetches): Do not generate a prefetch if the unroll factor
28040         is far from what is required by the prefetch.
28041
28042 2010-05-17  Jan Hubicka  <jh@suse.cz>
28043
28044         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
28045         (ipcp_estimate_growth): Likewise.
28046         (ipcp_const_param_count): Likewise.
28047         (ipcp_insert_stage): Likewise.
28048         * ipa-prop.c (visit_load_for_mod_analysis): New function.
28049         (visit_store_addr_for_mod_analysis): Set used flag.
28050         (ipa_detect_param_modifications): Set used flag for SSE params;
28051         update use of walk_stmt_load_store_addr_ops.
28052         (ipa_print_node_params): Print used flag.
28053         (ipa_write_node_info): Stream used flag.
28054         (ipa_read_node_info): Likewise.
28055         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
28056         (ipa_is_param_used): New function.
28057         (lto_ipa_fixup_call_notes): Remove unused declaration.
28058
28059 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28060
28061         PR target/44074
28062         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
28063         * configure: Regenerate.
28064         * config.in: Regenerate.
28065         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
28066         !HAVE_AS_IX86_REP_LOCK_PREFIX.
28067         Don't emit whitespace.
28068         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
28069         (*rep_movsi): Likewise.
28070         (*rep_movsi_rex64): Likewise.
28071         (*rep_movqi): Likewise.
28072         (*rep_movqi_rex64): Likewise.
28073         (*rep_stosdi_rex64): Likewise.
28074         (*rep_stossi): Likewise.
28075         (*rep_stossi_rex64): Likewise.
28076         (*rep_stosqi): Likewise.
28077         (*rep_stosqi_rex64): Likewise.
28078         (*cmpstrnqi_nz_1): Use {%;} after repz.
28079         (*cmpstrnqi_nz_rex_1): Likewise.
28080         (*cmpstrnqi_1): Likewise.
28081         (*cmpstrnqi_rex_1): Likewise.
28082         (*strlenqi_1): Use {%;} after repnz.
28083         (*strlenqi_rex_1): Likewise.
28084         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
28085         (*sync_compare_and_swap<mode>): Likewise.
28086         (sync_double_compare_and_swap<mode>): Likewise.
28087         (*sync_double_compare_and_swapdi_pic): Likewise.
28088         (sync_old_add<mode>): Likewise.
28089         (sync_add<mode>): Likewise.
28090         (sync_sub<mode>): Likewise.
28091         (sync_<code><mode>): Likewise.
28092
28093 2010-05-17  Martin Jambor  <mjambor@suse.cz>
28094
28095         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
28096         otr_token and polymorphic.
28097         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
28098         (cgraph_clone_edge): Copy the above fields.
28099         * tree.c (get_binfo_at_offset): New function.
28100         * tree.h (get_binfo_at_offset): Declare.
28101         * ipa-prop.h (enum jump_func_type): Added known_type jump function
28102         type, reordered items, updated comments.
28103         (union jump_func_value): Added base_type field, reordered fields.
28104         (enum ipa_lattice_type): Moved down in the file.
28105         (struct ipa_param_descriptor): New field polymorphic.
28106         (ipa_is_param_polymorphic): New function.
28107         * ipa-prop.c: Include gimple.h and gimple-fold.h.
28108         (ipa_print_node_jump_functions): Print known type jump functions.
28109         (compute_complex_pass_through): Renamed to...
28110         (compute_complex_assign_jump_func): this.
28111         (compute_complex_ancestor_jump_func): New function.
28112         (compute_known_type_jump_func): Likewise.
28113         (compute_scalar_jump_functions): Create known type and complex ancestor
28114         jump functions.
28115         (ipa_note_param_call): New parameter polymorphic, set the corresponding
28116         flag in the call note accordingly.
28117         (ipa_analyze_call_uses): Renamed to...
28118         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
28119         variable var only in the block where it is used.
28120         (ipa_analyze_virtual_call_uses): New function.
28121         (ipa_analyze_call_uses): Likewise.
28122         (combine_known_type_and_ancestor_jfs): Likewise.
28123         (update_jump_functions_after_inlining): Implemented handling of a
28124         number of new jump function types combination.
28125         (print_edge_addition_message): Removed.
28126         (make_edge_direct_to_target): New function.
28127         (try_make_edge_direct_simple_call): Likewise.
28128         (try_make_edge_direct_virtual_call): Likewise.
28129         (update_call_notes_after_inlining): Renamed to...
28130         (update_indirect_edges_after_inlining): this.  Moved edge creation for
28131         indirect calls to try_make_edge_direct_simple_call, also calls
28132         try_make_edge_direct_virtual_call for virtual calls.
28133         (ipa_print_node_params): Changed the header message.
28134         (ipa_write_jump_function): Stream also known type jump functions.
28135         (ipa_read_jump_function): Likewise.
28136         (ipa_write_indirect_edge_info): Stream new fields in
28137         cgraph_indirect_call_info.
28138         (ipa_read_indirect_edge_info): Likewise.
28139         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
28140         GIMPLE_FOLD_H.
28141
28142 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28143
28144         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
28145
28146 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
28147
28148         * tree.h (CALL_EXPR_ARGS): Delete.
28149         (call_expr_arglist): Delete.
28150         * tree.c (call_expr_arglist): Delete.
28151         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
28152         targetm.fold_builtin.
28153         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
28154         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
28155         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
28156         arglist parameter.  Use CALL_EXPR_ARG.
28157         (picochip_expand_builtin_3op): Likewise.
28158         (picochip_expand_builtin_2opvoid): Likewise.
28159         (picochip_expand_array_get): Likewise.
28160         (picochip_expand_array_put): Likewise.
28161         (picochip_expand_array_testport): Likewise.
28162         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
28163         rather than arglist.
28164         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
28165         CALL_EXPR_ARGS.
28166         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
28167         than TREE_VALUE and TREE_CHAIN.
28168         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
28169         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
28170         the arglist.
28171
28172 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
28173
28174         PR bootstrap/42347
28175         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
28176         to have no fallthru edge.
28177
28178         PR middle-end/44102
28179         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
28180         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
28181         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
28182         add BARRIER after previous bb if needed.
28183
28184 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
28185
28186         * tree.c (build_function_type_list_1): Remove bogus assert condition.
28187
28188 2010-05-17  Alan Modra  <amodra@gmail.com>
28189
28190         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
28191         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
28192         with copy_reg rtx param.
28193         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
28194         Correct cases where code for ABI_V4 did not initialise the reg
28195         used to access frame.  Also leave frame_reg_rtx as sp for large
28196         frames that save no regs.
28197
28198 2010-05-17  Martin Jambor  <mjambor@suse.cz>
28199
28200         PR middle-end/44133
28201         * tree-sra.c (create_access_replacement): New parameter rename, mark
28202         the replaement for renaming only when it is true.
28203         (get_access_replacement): Pass true in the rename parameter of
28204         create_access_replacement.
28205         (get_unrenamed_access_replacement): New function.
28206         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
28207         replacement declaration from it.
28208
28209 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
28210
28211         * function.c (try_fit_stack_local, add_frame_space): New static
28212         functions.
28213         (assign_stack_local_1): Use them.  Look for opportunities to use
28214         space previously wasted on alignment.
28215         * function.h (struct frame_space): New.
28216         (struct rtl_data): Add FRAME_SPACE_LIST member.
28217         * reload1.c (something_was_spilled): New static variable.
28218         (alter_reg): Set it.
28219         (reload): Test it in addition to testing if the frame size changed.
28220
28221 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
28222
28223         * config/s390/s390.c: Define sane prefetch settings and activate
28224         flag_prefetch_loop_arrays on -O3.
28225         * config/s390/s390.h: Declare that read can use write prefetch.
28226
28227 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
28228
28229         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
28230         build.
28231
28232 2010-05-16  Jan Hubicka  <jh@suse.cz>
28233
28234         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
28235         function body; do not check stdarg field of struct function.
28236
28237 2010-05-16  Jan Hubicka  <jh@suse.cz>
28238
28239         * cgraph.c (dump_cgraph_node): Dump versionable flag.
28240         * cgraph.h (cgraph_local_info): Add versionable flag.
28241         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
28242         (ipcp_versionable_function_p): Use it.
28243         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
28244         versionable flag.
28245
28246 2010-05-16  Jan Hubicka  <jh@suse.cz>
28247
28248         * cgraph.c (cgraph_clone_node): Take decl argument and insert
28249         clone into hash when it is different from orig.
28250         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
28251         * cgraph.h (cgraph_clone_node): Update prototype.
28252         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
28253         (lto_cgraph_encoder_delete): Delete body map.
28254         (lto_cgraph_encoder_size): Move to header.
28255         (lto_cgraph_encoder_encode_body_p,
28256         lto_set_cgraph_encoder_encode_body): New.
28257         (lto_output_node): Do not take written_decls argument; output clone_of
28258         pointer.
28259         (add_node_to): Add include_body_argument; call
28260         lto_set_cgraph_encoder_encode_body on master of the clone.
28261         (add_references): Update use of add_node_to.
28262         (compute_ltrans_boundary): Likewise.
28263         (output_cgraph): Do not create written_decls bitmap.
28264         (input_node): Take nodes argument; stream in clone_of correctly.
28265         (input_cgraph_1): Update use of input_node.
28266         * lto-streamer-out.c (lto_output): Use encoder info to decide
28267         what bodies to output.
28268         * ipa-inline.c (cgraph_clone_inlined_nodes,
28269         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
28270         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
28271         (lto_cgraph_encoder_size): Define here.
28272         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
28273         Declare.
28274
28275 2010-05-16  Richard Guenther  <rguenther@suse.de>
28276
28277         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
28278         -fipa-type-escape.
28279         * ipa-type-escape.c (gate_type_escape_vars): Run when
28280         -fipa-struct-reorg runs.
28281         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
28282         * common.opt (fipa-type-escape): Remove.
28283
28284 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
28285
28286         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
28287         (decode_options): Likewise.
28288         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
28289
28290 2010-05-16  Jan Hubicka  <jh@suse.cz>
28291
28292         * ipa.c (function_and_variable_visibility): Also bring local all
28293         aliases.
28294
28295 2010-05-16  Richard Guenther  <rguenther@suse.de>
28296
28297         * alias.c (nonoverlapping_memrefs_p): Remove use of
28298         IPA type-escape information.
28299
28300 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
28301
28302         * c-common.c (c_common_reswords): Add _Static_assert for C.
28303         * c-parser.c (c_token_starts_declaration,
28304         c_parser_next_token_starts_declaration,
28305         c_parser_static_assert_declaration_no_semi,
28306         c_parser_static_assert_declaration): New.
28307         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
28308         Handle static assertions if static_assert_ok.
28309         (c_parser_external_declaration, c_parser_declaration_or_fndef,
28310         c_parser_compound_statement_nostart, c_parser_label,
28311         c_parser_for_statement, c_parser_objc_methodprotolist,
28312         c_parser_omp_for_loop): All callers of
28313         c_parser_declaration_or_fndef changed.
28314         (c_parser_struct_declaration): Handle static assertions.
28315         (c_parser_compound_statement_nostart): Use
28316         c_parser_next_token_starts_declaration and
28317         c_token_starts_declaration to detect start of declarations.
28318         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
28319         Likewise.
28320
28321 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
28322
28323         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
28324         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
28325         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
28326         TARGET_FUNCTION_VALUE_REGNO_P): Define.
28327         (mmix_function_outgoing_value): Rename to...
28328         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
28329         (mmix_function_value_regno_p): Make static.
28330         (mmix_libcall_value): New function.
28331         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
28332         mmix_function_value_regno_p): Remove declaration.
28333
28334 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
28335
28336         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
28337         BUILT_IN_ALLOCA if stack checking is enabled.
28338
28339 2010-05-16  Richard Guenther  <rguenther@suse.de>
28340
28341         * var-tracking.c (vars_copy_1): Inline ...
28342         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
28343         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
28344         (variable_merge_over_cur): Adjust.  Merge asserts.
28345         (variable_merge_over_src): Likewise.
28346         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
28347         (variable_post_merge_new_vals): Merge asserts.
28348         (variable_post_merge_perm_vals): Likewise.
28349         (find_mem_expr_in_1pdv): Likewise.
28350         (dataflow_set_different_value): Remove.
28351         (onepart_variable_different_p): Merge asserts.
28352         (variable_different_p): Likewise.
28353         (dataflow_set_different_1): Inline ...
28354         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
28355         (emit_notes_for_differences_1): Merge asserts.
28356
28357 2010-05-16  Richard Guenther  <rguenther@suse.de>
28358
28359         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
28360         * optabs.c (libfunc_decl_hash): Likewise.
28361         * varasm.c (emutls_decl): Likewise.
28362
28363 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
28364
28365         * c-decl.c: Don't include gimple.h.
28366         (merge_decls): Do not copy gimple_body.
28367
28368 2010-05-15  Jason Merrill  <jason@redhat.com>
28369
28370         * c.opt: Add -fnothrow-opt.
28371
28372 2010-05-15  Jan Hubicka  <jh@suse.cz>
28373
28374         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
28375         analyzed.
28376         * passes.c (ipa_write_summaries): Write all analyzed nodes.
28377
28378 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
28379
28380         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
28381         * Makefile.in: Add it.
28382         Fix all other Makefile dependencies for changes below.
28383         * tree.h: Include it instead of defining VEC primitives here.
28384         * gimple.h: Likewise.
28385         * rtl.h: Likewise.
28386         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
28387         * except.h: Include vecir.h, break dependence on tree.h.
28388
28389         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
28390         Move from here...
28391         * tree-iterator.c: ...to here.
28392         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
28393
28394         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
28395         tm_p.h.
28396         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
28397         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
28398         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
28399         tree-mudflap.h, and target.h.
28400         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
28401         predict.h, tree-inline.h, gimple.h, and langhooks.h.
28402         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
28403         Add FIXME for why gimple.h is still included (should be unnecessary
28404         since GCC 4.5 gimplification unit-at-a-time).
28405         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
28406         * c-pragma.c: Add FIXME for why function.h needs to be included just
28407         for cfun, at front-end level.
28408         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
28409         Do not include ggc.h, but include vecprim.h for VEC(char).
28410         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
28411         Explain why target.h is included.
28412         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
28413         Explain why gimple.h is included.
28414         * c-ppoutput.c: Do not include tm.h.
28415         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
28416         * c-parses.c: Explain why rtl.h is included, and that this (and only
28417         this) is also why tm.h must be included.
28418         Do not include except.h.
28419         * c-lang.c: Do not include ggc.h.
28420
28421 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
28422
28423         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
28424
28425 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
28426
28427         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
28428         unions by default if those structs and unions have no tags.  Do
28429         not condition anonymous struct and unions handling on flag_iso.
28430         Allow anonymous structs and unions for C1X.
28431         (finish_struct): Do not diagnose lack of named fields when
28432         anonymous structs and unions present for C1X.  Accept flexible
28433         array members in structure with anonymous structs or unions but no
28434         directly named fields.
28435         * doc/extend.texi (Unnamed Fields): Update.
28436
28437 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
28438
28439         * gimple.h (compare_field_offset): Rename into...
28440         (gimple_compare_field_offset): ...this.
28441         * gimple.c (compare_field_offset): Rename into...
28442         (gimple_compare_field_offset): ...this.  Compare the full access if
28443         the offset is self-referential.
28444         (gimple_types_compatible_p): Adjust for above renaming.
28445         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
28446         DECL_NONADDRESSABLE_P flag of fields before merging them.
28447
28448 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
28449
28450         * tree.h (ctor_to_list): Delete.
28451         * tree.c (ctor_to_list): Delete.
28452
28453 2010-05-15  Jan Hubicka  <jh@suse.cz>
28454
28455         * ipa-reference.c: Include toplev.h
28456         (is_proper_for_analysis): Only add to all_module_statics
28457         if it is allocated.
28458         (write_node_summary_p, stream_out_bitmap,
28459         ipa_reference_write_optimization_summary,
28460         ipa_reference_read_optimization_summary): New.
28461         (struct ipa_opt_pass_d pass_ipa_reference): Add
28462         optimization summary streaming.
28463         * lto-cgraph.c (referenced_from_this_partition_p,
28464         reachable_from_this_partition_p): New functions.
28465         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
28466         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
28467         * opts.c (decode_options): Enable ipa_reference.
28468         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
28469         * lto-streamer.h (referenced_from_this_partition_p,
28470         reachable_from_this_partition_p): Declare.
28471
28472 2010-05-15  Richard Guenther  <rguenther@suse.de>
28473
28474         PR tree-optimization/44038
28475         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
28476         taking the address of a V_C_E of a constant.
28477
28478 2010-05-14  Jan Hubicka  <jh@suse.cz>
28479
28480         * tree.h (memory_identifier_string): Remove.
28481         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
28482         (ipa_reference_global_vars_info_d): Remove statics_not_read and
28483         statics_not_written.
28484         (ipa_reference_optimization_summary_d): New structure.
28485         (ipa_reference_optimization_summary_t): New type and vector.
28486         (ipa_reference_vars_info_d): Embedd structures instead of using
28487         pointers.
28488         (reference_vars_to_consider): Remove out of GGC space.
28489         (module_statics_escape): Remove.
28490         (global_info_obstack): Rename to ...
28491         (optimization_summary_obstack): ... this one.
28492         (initialization_status_t): Remove.
28493         (memory_identifier_string): Remove.
28494         (get_reference_vars_info): Fix indenting.
28495         (set_reference_vars_info): Likewise.
28496         (get_reference_optimization_summary): New.
28497         (set_reference_optimization_summary): New.
28498         (get_global_reference_vars_info): Remove.
28499         (ipa_reference_get_read_global): Remove.
28500         (ipa_reference_get_written_global): Remove.
28501         (ipa_reference_get_not_read_global): Update.
28502         (ipa_reference_get_not_written_global): Update.
28503         (is_proper_for_analysis): Outlaw addressable.
28504         (propagate_bits): Update for new datastructures.
28505         (analyze_variable): Remove.
28506         (init_function_info): Update for new datastructures.
28507         (clean_function_local_data): Remove.
28508         (clean_function): Remove.
28509         (copy_global_bitmap): Use optimizations_summary_obstack.
28510         (duplicate_node_data): Duplicate optimization summary only.
28511         (remove_node_data): Remove optimization summary only.
28512         (generate_summary): Do not analyze variables; do not compute
28513         module_statics_escape; do not prune solutions by it.
28514         (read_write_all_from_decl): Fix typos in comments.
28515         (propagate): Doscover readonly and nonaddressable first;
28516         update for new datastructures; share global bitmaps.
28517         * ipa-reference.h (ipa_reference_get_read_global,
28518         ipa_reference_get_written_global): Remove.
28519         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
28520         * Makefile.in: Remove ipa-refereference from GT files.
28521
28522 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
28523
28524         PR debug/44112
28525         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
28526         for all SYMBOL_REF_DECLs.
28527
28528 2010-05-14  Jan Hubicka  <jh@suse.cz>
28529
28530         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
28531         (varpool_all_refs_explicit_p): New inline function.
28532         * ipa-reference.c: Update comment.
28533         (module_statics_written): Remove.
28534         (get_static_decl): Remove.
28535         (ipa_init): Do not initialize module_statics_written.
28536         (analyze_function): Likewise.
28537         (generate_summary): Likewise; do not compute module_statics_readonly
28538         and do not update variable flags.
28539         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
28540         * ipa.c: Inlucde flags.h
28541         (cgraph_local_node_p): New.
28542         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
28543         promote functions to local.
28544         (ipa_discover_readonly_nonaddressable_vars): New function.
28545         (function_and_variable_visibility): Use cgraph_local_node_p.
28546         * varpool.c (varpool_finalize_decl): Set force_output for
28547         DECL_PRESERVE_P vars.
28548
28549 2010-05-14  Jan Hubicka  <jh@suse.cz>
28550
28551         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
28552
28553 2010-05-14  Richard Guenther  <rguenther@suse.de>
28554
28555         PR tree-optimization/44119
28556         * tree-ssa-pre.c (eliminate): Properly mark replacement of
28557         a PHI node necessary.
28558
28559 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
28560
28561         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
28562
28563 2010-05-14  Jason Merrill  <jason@redhat.com>
28564
28565         PR c++/44127
28566         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
28567         (gimple_call_set_nothrow): New.
28568         * gimple.c (gimple_build_call_from_tree): Call it.
28569         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
28570
28571         PR c++/44127
28572         * gimplify.c (gimplify_seq_add_stmt): No longer static.
28573         * gimple.h: Declare it.
28574         * gimple.c (gimple_build_eh_filter): No ops.
28575
28576 2010-05-14  Jan Hubicka  <jh@suse.cz>
28577
28578         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
28579         nodes already in queue.
28580         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
28581         re-enqueueing node.
28582
28583 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
28584
28585         PR debug/44136
28586         * cfgexpand.c (expand_debug_expr): If non-memory op0
28587         has BLKmode, return NULL.
28588
28589 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
28590
28591         * config.gcc: Add support for --with-cpu option for bdver1.
28592         * config/i386/i386.h (TARGET_BDVER1): New macro.
28593         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
28594         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
28595         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
28596         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
28597         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
28598         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
28599         (processor_type): Add PROCESSOR_BDVER1.
28600         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
28601         processor_type in config/i386/i386.h.
28602         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
28603         movaps <reg, reg> instead of movapd <reg, reg> when replacing
28604         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
28605         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
28606         to emit packed xor instead of packed double/packed integer
28607         xor for SSE and AVX when moving a zero value.
28608         * config/i386/sse.md: Add check for
28609         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
28610         movapd/movdqa for SSE and AVX.
28611         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
28612         single logical operations i.e and, or and xor instead of packed double
28613         logical operations for SSE and AVX.
28614         * config/i386/i386-c.c (ix86_target_macros_internal):
28615         Add PROCESSOR_BDVER1.
28616         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
28617         (has_fma4, has_xop): New.
28618         * config/i386/i386.c (bdver1_cost): New variable.
28619         (m_BDVER1): New macro.
28620         (m_AMD_MULTIPLE): Add m_BDVER1.
28621         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
28622         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
28623         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
28624         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
28625         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
28626         x86_tune_sse_partial_reg_dependency,
28627         x86_tune_sse_unaligned_load_optimal,
28628         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
28629         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
28630         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
28631         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
28632         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
28633         Enable/disable for bdver1.
28634         (processor_target_table): Add bdver1_cost.
28635         (cpu_names): Add bdver1.
28636         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
28637          processor_alias_table.
28638         (ix86_expand_vector_move_misalign): Change.
28639         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
28640         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
28641         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
28642         of movupd/movdqu for SSE and AVX.
28643         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
28644         (ix86_tune_adjust_cost): Add code for bdver1.
28645         (standard_sse_constant_opcode): Add check for
28646         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
28647         of packed double xor for SSE and AVX.
28648
28649 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
28650
28651         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
28652         result to unsigned.
28653
28654 2010-05-14  Tristan Gingold  <gingold@adacore.com>
28655
28656         * toplev.c (default_debug_hooks): Remove this variable.
28657         (process_options): Remove assignments to default_debug_hooks.
28658
28659 2010-05-14  Martin Jambor  <mjambor@suse.cz>
28660
28661         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
28662         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
28663         * langhooks.h (struct lang_hooks_for_decls): Removed field
28664         fold_obj_type_ref.
28665         * tree.c (free_lang_data): Remove assignment to
28666         lang_hooks.fold_obj_type_ref.
28667         * tree.def (OBJ_TYPE_REF): Update comment.
28668
28669 2010-05-14  Richard Guenther  <rguenther@suse.de>
28670
28671         PR tree-optimization/44124
28672         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
28673
28674 2010-05-14  Alan Modra  <amodra@gmail.com>
28675
28676         PR target/44075
28677         * config/rs6000/rs6000.c (struct machine_function): Reorder
28678         fields for better packing.  Add lr_save_state.
28679         (rs6000_ra_ever_killed): Return lr_save_state if set.
28680         (rs6000_emit_eh_reg_restore): Set lr_save_state.
28681
28682 2010-05-13  Jan Hubicka  <jh@suse.cz>
28683
28684         * varpool.c (decide_is_variable_needed): Drop code checking
28685         TREE_SYMBOL_REFERENCED.
28686
28687 2010-05-13  Jan Hubicka  <jh@suse.cz>
28688
28689         * final.c (output_addr_const): Do not call mark_decl_referenced.
28690         * cgraphunit.c (process_function_and_variable_attributes): Use
28691         mark_needed_node dirrectly.
28692         (assemble_thunk): Do not call mark_decl_referenced.
28693
28694 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
28695
28696         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
28697
28698 2010-05-13  Jeff Law  <law@redhat.com>
28699
28700         * ira-conflicts.c (print_allocno_conflicts): New function broken out
28701         from...
28702         (print_conflicts): Call print_allocno_conflicts.
28703
28704 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
28705
28706         PR debug/44104
28707         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
28708         if it is NULL.
28709
28710 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
28711
28712         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
28713         t-mingw-w64 or t-mingw-w32 for multilib configuration.
28714         * config/i386/t-mingw-w32: New.
28715         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
28716
28717 2010-05-13  Martin Jambor  <mjambor@suse.cz>
28718
28719         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
28720         gimple-fold.c).
28721         * gimple-fold.c (get_base_binfo_for_type): New function.
28722         (gimple_get_relevant_ref_binfo): Likewise.
28723         (gimple_fold_obj_type_ref_known_binfo): Likewise.
28724         (gimple_fold_obj_type_ref): Likewise.
28725         (fold_gimple_call): Simplify condition for folding virtual calls
28726         and call gimple_fold_obj_type_ref.
28727         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
28728         (gimple_fold_obj_type_ref_known_binfo): Likewise.
28729
28730 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
28731
28732         * config/rs6000/rs6000-protos.h
28733         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
28734         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
28735         (rs6000_debug_mode_dependent_address)
28736         (rs6000_mode_dependent_address_ptr): Likewise.
28737
28738 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
28739
28740         PR debug/43983
28741         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
28742         by SRA.
28743         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
28744         * tree-sra.c (create_access_replacement): Call unshare_expr before
28745         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
28746         * dwarf2out.c: Include tree-flow.h.
28747         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
28748         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
28749         Handle DW_OP_bit_piece.
28750         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
28751         construct_piece_list, adjust_piece_list): New functions.
28752         (add_var_loc_to_decl): Handle SRA optimized variables.
28753         Adjust for var_loc_note to loc field renaming.
28754         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
28755         in VAR_LOCATION note.
28756         (new_loc_descr_op_bit_piece): New function.
28757         (dw_sra_loc_expr): New function.
28758         (dw_loc_list): Use it.  Don't handle the last range after the
28759         loop, handle it inside of the loop.  Adjust for var_loc_note
28760         to loc field renaming.
28761         (add_location_or_const_value_attribute): Only special case
28762         single entry loc lists if loc is NOTE_P.  Adjust for
28763         var_loc_note to loc field renaming.
28764         (dwarf2out_var_location): Don't set newloc->var_loc_note
28765         and newloc->next here.
28766
28767 2010-05-12  Jan Hubicka  <jh@suse.cz>
28768
28769         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
28770         flag.
28771         * cgraph.h (cgraph_only_called_directly_p,
28772         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
28773         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
28774         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
28775         (assemble
28776         * ipa.c (cgraph_remove_unreachable_nodes): Use
28777         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
28778         flags.
28779         * tree-inline.c (copy_bb): Check address_taken flag.
28780         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
28781         externally_visible flag.
28782
28783 2010-05-12  Jason Merrill  <jason@redhat.com>
28784
28785         PR bootstrap/44048
28786         PR target/44099
28787         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
28788         * sdbout.c (plain_type_1): Likewise.
28789         * dwarf2out.c (is_base_type): Likewise.
28790         (gen_type_die_with_usage): Likewise.  Generate
28791         DW_TAG_unspecified_type for any LANG_TYPE.
28792
28793 2010-05-12  Jan Hubicka  <jh@suse.cz>
28794
28795         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
28796         indrect edges too.
28797         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
28798         (cgraph_clone_edge): Update.
28799         (cgraph_node_remove_callees): Remove indirect calls too.
28800         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
28801         (cgraph_create_indirect_edge): Update prototype.
28802         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
28803         is_proper_for_analysis.
28804         (add_new_function, visited_nodes, function_insertion_hook_holder,
28805         get_local_reference_vars_info, mark_address_taken, mark_address,
28806         mark_load, mark_store, check_asm_memory_clobber, check_call,
28807         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
28808         (ipa_init): Do not initialize visited_nodes;
28809         function_insertion_hook_holder.
28810         (analyze_variable): Rewrite.
28811         (analyze_function): Rewrite.
28812         (copy_local_bitmap): Remove.
28813         (duplicate_node_dat): Do not duplicate local info.
28814         (generate_summary): Simplify to only walk cgraph.
28815         (write_node_summary_p, ipa_reference_write_summary,
28816         ipa_reference_read_summary): Remove.
28817         (propagate): Do not remove function insertion;
28818         generate summary.
28819         (pass_ipa_reference): NULLify summary handling fields.
28820         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
28821         (input_edge): Input ecf_flags.
28822         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
28823         (update_indirect_edges_after_inlining): Ignore edges with unknown
28824         param.
28825
28826 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
28827
28828         * implicit-zee.c: New file.
28829         * tree-pass.h (pass_implicit_zee): Declare.
28830         * passes.c (init_optimization_passes): Add zee pass.
28831         * common.opt (fzee): New flag.
28832         * timevar.def (TV_ZEE): Define.
28833         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
28834         and beyond.
28835         * Makefile.in (implicit-zee.o): Add new build file.
28836
28837 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
28838             Nathan Froyd  <froydnj@codesourcery.com>
28839
28840         * c-common.c (sync_resolve_params): Remove write-only variable.
28841
28842 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
28843
28844         * target.h (struct gcc_target): Add mode_dependent_address_p field.
28845         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
28846         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
28847         * targhooks.c (default_mode_dependent_address_p): New function.
28848         * targhooks.h (default_mode_dependent_address_p): Declare function.
28849         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
28850         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
28851         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
28852         target hook. Change return type to bool.
28853         * recog.h (mode_dependent_address_p): Change return type to bool.
28854
28855 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
28856             Nathan Froyd  <froydnj@codesourcery.com>
28857
28858         * tree-mudflap.c (build_function_type_0, build_function_type_1,
28859         build_function_type_2, build_function_type_3): Remove.
28860         (mudflap_init): Use build_function_type_list.
28861
28862 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
28863             Nathan Froyd  <froydnj@codesourcery.com>
28864
28865         * coverage.c (build_fn_info_value): Call build_constructor instead of
28866         build_constructor_from_list.
28867         (build_ctr_info_value): Likewise.
28868         (build_gcov_info): Likewise.
28869
28870 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
28871
28872         * tree.c (build_constructor): Compute TREE_CONSTANT for the
28873         resultant constructor.
28874         (build_constructor_single): Don't set TREE_CONSTANT.
28875         (build_constructor_from_list): Don't compute TREE_CONSTANT.
28876
28877 2010-05-12  Jan Hubicka  <jh@suse.cz>
28878
28879         * cgraph.h (struct varpool_node): Add aux.
28880         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
28881         * varpool.c (varpool_remove_node): Do not remove initializer.
28882         (varpool_reset_queue): Export.
28883         (varpool_finalize_decl): Volatile vars are forced to be output.
28884         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
28885         replaced decl.
28886         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
28887         process_references, varpool_can_remove_if_no_refs): New functions.
28888         (cgraph_remove_unreachable_nodes): Handle variables too.
28889
28890 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
28891
28892         PR target/44088
28893         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
28894
28895 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
28896
28897         PR middle-end/44085
28898         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
28899         change value of ORT_TASK.
28900         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
28901         (omp_notice_threadprivate_variable): New function.
28902         (omp_notice_variable): Call it for threadprivate variables.
28903         If enclosing ctx is a task, print enclosing task rather than
28904         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
28905         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
28906         if task has untied clause.
28907
28908         PR debug/42278
28909         * dwarf2out.c (base_type_die): Don't add name attribute here.
28910         (modified_type_die): Instead of sizetype use
28911         its underlying original type.  If a DW_TAG_base_type doesn't
28912         have name added, add __unknown__.
28913         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
28914         always call force_type_die instead.
28915
28916 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
28917
28918         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
28919         for __stack_chk_guard.
28920
28921 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
28922
28923         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
28924         don't call start_source_file debug hook here...
28925         (finish_options): ... but here, after outputting predefined and
28926         command line defines and undefs.
28927
28928         PR middle-end/44071
28929         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
28930         no fallthru edge.
28931         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
28932         optimizing away empty bb with no successors, move over its
28933         footer chain to fallthru predecessor.
28934         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
28935         (rtl_split_edge): For asm goto call patch_jump_insn even if
28936         splitting fallthru edge.
28937
28938         PR c++/44059
28939         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
28940         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
28941         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
28942         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
28943         on DW.ref.* decls.
28944
28945         PR c++/44062
28946         * c-parser.c (c_parser_expression): Mark LHS of a comma
28947         expression as read if it is a decl, handled component or
28948         COMPOUND_EXPR with that on the RHS.
28949         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
28950         if it is a decl or handled component.
28951
28952 2010-05-11  Jan Hubicka  <jh@suse.cz>
28953
28954         * lto-symtab.c (lto_symtab_free): New function.
28955         * lto-streamer.h (lto_symtab_free): Declare.
28956
28957 2010-05-11  Jan Hubicka  <jh@suse.cz>
28958
28959         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
28960         that if function is needed it is reachable.
28961         (lto_output_node): See if it the function is reachable or referenced.
28962         (output_cgraph): Update call of lto_output_node.
28963         * lto-streamer.h (reachable_from_other_partition_p): Declare.
28964
28965 2010-05-11  Jan Hubicka  <jh@suse.cz>
28966
28967         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
28968         Mark as used.
28969
28970 2010-05-11  Jan Hubicka  <jh@suse.cz>
28971
28972         PR tree-optimize/44063
28973         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
28974         queue.
28975         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
28976         limits.
28977         (estimate_function_body_sizes): Compute sizes even when disregarding.
28978
28979 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
28980
28981         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
28982
28983 2010-05-11  Jan Hubicka  <jh@suse.cz>
28984
28985         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
28986         into every boundary.
28987
28988 2010-05-11  Jan Hubicka  <jh@suse.cz>
28989
28990         * matrix-reorg.c (matrix_reorg): Rebuild edges.
28991
28992 2010-05-11  Jan Hubicka  <jh@suse.cz>
28993
28994         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
28995         lto_streamer_cache_delete): Put nodes into heap.
28996         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
28997         heap.
28998
28999 2010-05-11  Jan Hubicka  <jh@suse.cz>
29000
29001         * cgraphbuild.c (cgraph_rebuild_references): New.
29002         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
29003         out extern inlines.
29004         * cgraph.h (cgraph_rebuild_references): Declare.
29005         * tree-inline.c (tree_function_versioning): Use it.
29006         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
29007
29008 2010-05-11  Jan Hubicka  <jh@suse.cz>
29009
29010         * cgraph.c: Include ipa-utils.h
29011         (cgraph_create_virtual_clone): Update references.
29012         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
29013
29014 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29015
29016         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
29017         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
29018         cache size.
29019
29020 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29021
29022         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
29023
29024 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
29025
29026         * gcc.c (execute): For -### don't quote arguments that
29027         contain just alphanumerics and _/-. characters.
29028         * doc/invoke.texi: Document that change for -###.
29029
29030         PR debug/44023
29031         * df-problems.c (struct dead_debug): Add to_rescan field.
29032         (dead_debug_init): Clear to_rescan field.
29033         (dead_debug_finish): Rescan all debug insns in to_rescan
29034         bitmap and free the bitmap.
29035         (dead_debug_insert_before): Instead of rescanning debug insns
29036         immediately queue their rescanning until dead_debug_finish.
29037         (df_note_bb_compute): After dead_debug_add do continue instead
29038         of break.
29039
29040 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
29041
29042         PR debug/44028
29043         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
29044         clear also INSN_REG_USE_LIST.
29045
29046 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29047
29048         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
29049
29050 2010-05-10  Jan Hubicka  <jh@suse.cz>
29051
29052         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
29053         commited change.
29054
29055 2010-05-10  Jan Hubicka  <jh@suse.cz>
29056
29057         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
29058         Allocate encoders.
29059         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
29060         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
29061         (lto_streamer_cache_create): Init alloc pool.
29062         (lto_streamer_cache_delete): Free alloc pool.
29063         * lto-streamer.h: Include alloc pool.
29064         (lto_streamer_cache_d): Use alloc pool.
29065         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
29066
29067 2010-05-10  Jan Hubicka  <jh@suse.cz>
29068
29069         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
29070         * cgraphbuild.c: Include except.h
29071         (record_type_list, record_eh_tables): New function.
29072         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
29073
29074 2010-05-10  Jan Hubicka  <jh@suse.cz>
29075
29076         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
29077         __frame_dummy_init_array_entry, force_to_data): Attribute as used
29078         rather than unused.
29079
29080 2010-05-10  Michael Matz  <matz@suse.de>
29081
29082         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
29083         (can_reassociate_p): Use FLOAT_TYPE_P.
29084         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
29085         (vect_force_simple_reduction): ... this.
29086         * tree-parloops.c (gather_scalar_reductions): Use
29087         vect_force_simple_reduction.
29088         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
29089         vect_is_simple_reduction, add modify argument, if true rewrite
29090         "a-b" into "a+(-b)".
29091         (vect_is_simple_reduction, vect_force_simple_reduction): New
29092         functions.
29093         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
29094
29095 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
29096             Vladimir Makarov  <vmakarov@redhat.com>
29097
29098         PR rtl-optimization/44012
29099         * ira-build.c (remove_unnecessary_allocnos): Nullify
29100         regno_allocno_map of the removed allocno.
29101
29102 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29103
29104         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
29105         to /dev/null.
29106         * configure: Regenerate.
29107
29108 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29109
29110         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
29111         unused.
29112         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
29113         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
29114         support in Sun ld.
29115         * configure: Regenerate.
29116
29117 2010-05-10  Richard Guenther  <rguenther@suse.de>
29118
29119         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
29120         marked if the entry identifier is marked.
29121
29122 2010-05-10  Richard Guenther  <rguenther@suse.de>
29123
29124         * c-common.c (struct c_common_attributes): Add fnspec attribute.
29125         (handle_fnspec_attribute): New function.
29126         * gimple.h (gimple_call_return_flags): Declare.
29127         (gimple_call_arg_flags): Likewise.
29128         * gimple.c (gimple_call_arg_flags): New function.
29129         (gimple_call_return_flags): Likewise.
29130         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
29131         New argument flags.
29132         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
29133         return value flags.
29134         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
29135         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
29136         main work to ...
29137         (make_heapvar_for): ... this new function.
29138         (handle_rhs_call): Handle fnspec attribute argument specifiers.
29139         (handle_lhs_call): Likewise.
29140         (find_func_aliases): Adjust.
29141
29142 2010-05-10  Richard Guenther  <rguenther@suse.de>
29143
29144         PR tree-optimization/44050
29145         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
29146
29147 2010-05-10  Wei Guozhi  <carrot@google.com>
29148
29149         PR target/42879
29150         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
29151
29152 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29153
29154         PR c/10676
29155         * c-typeck.c (lookup_field): Take a type directly.  Update
29156         recursive calls.
29157         (build_component_ref): Update call to lookup_field.
29158         (set_init_label): Use lookup_field to find initialized field.
29159         Handle returned list of fields like a sequence of designators.
29160
29161 2010-05-09  Richard Guenther  <rguenther@suse.de>
29162
29163         PR middle-end/44024
29164         * fold-const.c (tree_single_nonzero_warnv_p): Properly
29165         handle &FUNCTION_DECL.
29166
29167 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29168
29169         PR c/4784
29170         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
29171         structures and unions recursively.
29172         (detect_field_duplicates): Move duplicate detection with a hash to
29173         detect_field_duplicates_hash.  Always use a hash if anonymous
29174         structures or unions are present.
29175         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
29176         give errors.
29177
29178 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
29179
29180         PR target/44046
29181         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
29182         detect Atom, Core 2 and Core i7.
29183
29184 2010-05-09  Richard Guenther  <rguenther@suse.de>
29185
29186         * gcc.c (store_arg): Handle temporary file deletion for
29187         joined arguments.
29188
29189 2010-05-09  Richard Guenther  <rguenther@suse.de>
29190
29191         PR middle-end/44043
29192         * ipa-inline.c (estimate_function_body_sizes): Return after
29193         disregarding inline limits.
29194
29195 2010-05-09  Richard Guenther  <rguenther@suse.de>
29196
29197         * gcc.c (store_arg): Revert last change.
29198
29199 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
29200
29201         PR middle-end/28685
29202         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
29203         (optimize_ops_list): Call it.
29204
29205 2010-05-08  Richard Guenther  <rguenther@suse.de>
29206
29207         PR tree-optimization/44030
29208         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
29209         NECESSARY flag if we propagate from a inserted expression.
29210
29211 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
29212
29213         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
29214         domain types as equal if they are both PLACEHOLDER_EXPRs.
29215
29216 2010-05-08  Richard Guenther  <rguenther@suse.de>
29217
29218         * lto-wrapper.c (run_gcc): Remove linker output from
29219         command line for LTRANS invocation.
29220
29221 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
29222
29223         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
29224         lto-macho as lto_binary_reader.
29225         * target.h (struct gcc_target): New hooks lto_start and lto_end.
29226         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
29227         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
29228         in lto_start and lto_end calls.
29229         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
29230         magic numbers.
29231         (scan_prog_file): Update is_elf_or_coff call.
29232         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
29233
29234         * collect2.c (main): Fix enum comparison.
29235
29236         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
29237         Add prototypes.
29238         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
29239         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
29240         and TARGET_ASM_LTO_END.
29241         * darwin.c: Include obstack.h and lto-streamer.h.
29242         (lto_section_names_offset, lto_section_names_obstack,
29243         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
29244         global variables.
29245         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
29246         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
29247         to a temporary file.
29248         (darwin_asm_lto_end): New function.  Restore asm_out_file.
29249         (darwin_asm_named_section): For LTO sections, replace the name with
29250         the offset of the section name in a string table, and build this
29251         table.
29252         (darwin_file_start): Initialize global vars for LTO support.
29253         (darwin_file_end): If output to asm_out_file was redirected, append it
29254         to the proper asm_out_file here.  Add the section names section.
29255
29256 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
29257
29258         * c-pragma.c (pending_weak_d, pending_weak): New.
29259         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
29260         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
29261         handle_pragma_weak): Update the uses of pending_weaks.
29262
29263 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29264
29265         PR documentation/44016
29266         * doc/standards.texi (Standards): Link to unversioned
29267         cxx0x_status.html page.
29268
29269 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
29270
29271         PR target/43708
29272         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
29273         in addition to TREE_USED, to avoid "set but unused" warnings.
29274
29275 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29276
29277         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
29278         (is_loop_prefetching_profitable): Do not insert prefetches
29279         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
29280         times the prefetch ahead distance.
29281
29282 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29283
29284         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
29285         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
29286         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
29287         the unroll_factor.
29288
29289 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29290
29291         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
29292         a diagnostic info when the insn-to-mem ratio is too small.
29293
29294 2010-05-07  Richard Guenther  <rguenther@suse.de>
29295
29296         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
29297         the linker plugin.
29298         (store_arg): Queue temp_filename for deletion instead of
29299         the whole argument.
29300
29301 2010-05-07  Richard Guenther  <rguenther@suse.de>
29302
29303         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
29304         (run_gcc): Handle LTRANS phase invocation.
29305         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
29306
29307 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
29308
29309         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
29310         this is also meaningful on PARM_DECLs and RESULT_DECLs.
29311
29312 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29313
29314         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
29315
29316 2010-05-07  Richard Guenther  <rguenther@suse.de>
29317
29318         PR tree-optimization/44020
29319         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
29320         code when PRE is not yet initialized.
29321
29322 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29323
29324         * config/mips/dbxmdebug.h: Remove.
29325         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
29326
29327 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
29328
29329         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
29330         with null pointer and also warn about ordered comparison of zero with
29331         pointer if -Wextra.
29332
29333 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
29334
29335         * graphite-blocking.c
29336         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
29337         * graphite-clast-to-gimple.c
29338         (clast_to_gcc_expression): Same.
29339         (precision_for_value): Same.
29340         (precision_for_interval): Same.
29341         (gcc_type_for_interval): Same.
29342         (graphite_create_new_guard): Same.
29343         (compute_bounds_for_level): Same.
29344         (graphite_create_new_loop_guard): Same.
29345         * graphite-interchange.c
29346         (build_linearized_memory_access): Same.
29347         (pdr_stride_in_loop): Same.
29348         (memory_strides_in_loop_1): Same.
29349         (memory_strides_in_loop): Same.
29350         (extend_scattering): Same.
29351         (psct_scattering_dim_for_loop_depth): Same.
29352         (pbb_number_of_iterations): Same.
29353         * graphite-poly.h
29354         (debug_iteration_domains): Same.
29355         * graphite-ppl.c
29356         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
29357         (ppl_set_inhomogeneous_gmp): Same.
29358         (ppl_strip_loop): Same.
29359         (ppl_lexico_compare_linear_expressions): Same.
29360         (ppl_read_polyhedron_matrix): Same.
29361         (ppl_max_for_le_pointset): Same.
29362         * graphite-ppl.h
29363         (ppl_read_polyhedron_matrix): Same.
29364         (tree_int_to_gmp): Same.
29365         (gmp_cst_to_tree): Same.
29366         (ppl_set_inhomogeneous): Same.
29367         (ppl_set_inhomogeneous_tree): Same.
29368         (ppl_set_coef): Same.
29369         (ppl_set_coef_tree): Same.
29370         * graphite-sese-to-poly.c
29371         (build_pbb_scattering_polyhedrons): Same.
29372         (build_scop_scattering): Same.
29373         (scan_tree_for_params_right_scev): Same.
29374         (scan_tree_for_params): Same.
29375         (find_params_in_bb): Same.
29376         (find_scop_parameters): Same.
29377         (add_upper_bounds_from_estimated_nit): Same.
29378         (build_loop_iteration_domains): Same.
29379         (add_condition_to_domain): Same.
29380         (pdr_add_memory_accesses): Same.
29381
29382 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
29383
29384         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
29385         CLooG's value_* macros to their respective mpz_* counterparts.
29386         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
29387         (graphite_create_new_loop_guard): Same.
29388         * graphite-interchange.c (build_linearized_memory_access): Same.
29389         (pdr_stride_in_loop): Same.
29390         (memory_strides_in_loop_1): Same.
29391         (1st_interchange_profitable_p): Same.
29392         * graphite-poly.c (extend_scattering): Same.
29393         (psct_scattering_dim_for_loop_depth): Same.
29394         (pbb_number_of_iterations): Same.
29395         (pbb_number_of_iterations_at_time): Same.
29396         * graphite-poly.h (new_1st_loop): Same.
29397         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
29398         (oppose_constraint): Same.
29399         (insert_constraint_into_matrix): Same.
29400         (ppl_set_inhomogeneous_gmp): Same.
29401         (ppl_set_coef_gmp): Same.
29402         (ppl_strip_loop): Same.
29403         (ppl_lexico_compare_linear_expressions): Same.
29404         (ppl_max_for_le_pointset): Same.
29405         (ppl_min_for_le_pointset): Same.
29406         (ppl_build_realtion): Same.
29407         * graphite-ppl.h (gmp_cst_to_tree): Same.
29408         (ppl_set_inhomogeneous): Same.
29409         (ppl_set_inhomogeneous_tree): Same.
29410         (ppl_set_coef): Same.
29411         (ppl_set_coef_tree): Same.
29412         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
29413         (build_scop_scattering): Same.
29414         (add_value_to_dim): Same.
29415         (scan_tree_for_params_right_scev): Same.
29416         (scan_tree_for_params_int): Same.
29417         (scan_tree_for_params): Same.
29418         (find_params_in_bb): Same.
29419         (find_scop_parameters): Same.
29420         (add_upper_bounds_from_estimated_nit): Same.
29421         (build_loop_iteration_domains): Same.
29422         (create_linear_expr_from_tree): Same.
29423         (add_condition_to_domain): Same.
29424         (pdr_add_memory_accesses): Same.
29425
29426 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
29427             Jason Merrill  <jason@redhat.com>
29428
29429         * c-common.c (c_common_reswords): Add nullptr.
29430         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
29431         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
29432         (gen_type_die_with_usage): Likewise.
29433         * dbxout.c (dbxout_type): Likewise.
29434         * sdbout.c (plain_type_1): Likewise.
29435
29436 2010-05-06  Jason Merrill  <jason@redhat.com>
29437
29438         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
29439         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
29440         ret appropriately.
29441         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
29442
29443         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
29444         stripping WITH_SIZE_EXPR.
29445         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
29446         change.
29447
29448 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29449
29450         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
29451         list of obsolete configurations.
29452         Disabled check for obsolete configurations.
29453         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
29454         Removed support for previous versions.
29455         * config/mips/iris.h: Removed.
29456         * config/mips/iris5.h: Removed.
29457         * config/mips/iris6.h: Merged old iris.h contents.
29458         (TARGET_IRIX): Removed.
29459         (DRIVER_SELF_SPECS): Removed mabi=32.
29460         (IDENT_ASM_OP): Removed undef.
29461         (STARTFILE_SPEC): Removed mabi=32.
29462         (ENDFILE_SPEC): Likewise.
29463         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
29464         (MACHINE_TYPE): Update for IRIX 6.5.
29465         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
29466         TARGET_IRIX by TARGET_IRIX6.
29467         (mips_file_start): Likewise.
29468         (mips_output_external): Remove IRIX 5/6 O32 support.
29469         (mips_output_function_prologue): Likewise.
29470         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
29471         TARGET_IRIX6.
29472         (TARGET_CPU_CPP_BUILTINS): Likewise.
29473         (TARGET_IRIX): Removed.
29474         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
29475         (MULTILIB_DIRNAMES): Removed 32.
29476         (MULTILIB_OSDIRNAMES): Removed ../lib.
29477         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
29478         (Specific, mips-sgi-irix5): Document removal.
29479         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
29480         Remove references to older IRIX 6 releases and the O32 ABI.
29481
29482 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
29483
29484         PR bootstrap/43994
29485         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
29486         instead of DF_REF_REAL_REG.
29487
29488 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
29489
29490         PR target/43888
29491         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
29492         handling to still return true for x64 targets.
29493
29494 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
29495
29496         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
29497
29498 2010-05-06  Jan Hubicka  <jh@suse.cz>
29499
29500         PR tree-optimization/43791
29501         * ipa-inline.c (update_caller_keys): Remove bogus
29502         disregard_inline_limits check.
29503
29504 2010-05-06  Michael Matz  <matz@suse.de>
29505
29506         PR tree-optimization/43984
29507         * tree-ssa-pre.c (inserted_phi_names): Remove.
29508         (inserted_exprs): Change to bitmap.
29509         (create_expression_by_pieces): Set bits, don't append to vector.
29510         (insert_into_preds_of_block): Don't handle inserted_phi_names.
29511         (eliminate): Don't look at inserted_phi_names, remove deleted
29512         insns from inserted_exprs.
29513         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
29514         (init_pre, fini_pre): Allocate and free bitmaps.
29515         (execute_pre): Insert insns on edges before elimination.
29516
29517 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
29518
29519         * tree.c (initializer_zerop): Handle STRING_CST.
29520
29521 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29522
29523         PR 40989
29524         * doc/invoke.texi (Wimplicit): Document as C only.
29525         * opts.c (common_handle_option): Add argument kind.
29526         (handle_option): Rename as read_cmdline_option. Factor out code to...
29527         (handle_option): ... here. New.
29528         (handle_options): Rename as read_cmdline_options.
29529         (decode_options): Update call.
29530         (set_option): Use option index instead of option pointer. Classify
29531         diagnostics correctly.
29532         (enable_warning_as_error): Call handle_option.
29533         * opts.h (set_option): Update declaration.
29534         (handle_option): Declare.
29535         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
29536         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
29537         * c-opts.c (set_Wimplicit): Delete.
29538         (c_family_lang_mask): New static constant.
29539         (c_common_handle_option): Add argument kind. Use handle_option
29540         instead of set_Wimplicit.
29541         (c_common_post_options): warn_implicit and warn_implicit_int
29542         are disabled by default.
29543         * c-common.c (warn_implicit): Do not define here.
29544         * c-common.h (warn_implicit): Do not declare here.
29545         (c_common_handle_option): Update declaration.
29546         * lto-opts.c (lto_reissue_options): Update call to set_option.
29547
29548 2010-05-06  Richard Guenther  <rguenther@suse.de>
29549
29550         PR tree-optimization/43571
29551         * domwalk.c (walk_dominator_tree): Walk the dominator
29552         sons in more optimal order.
29553
29554 2010-05-06  Richard Guenther  <rguenther@suse.de>
29555
29556         PR tree-optimization/43934
29557         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
29558         (stmt_cost): Likewise.
29559         (extract_true_false_args_from_phi): New helper.
29560         (determine_max_movement): For PHI nodes verify we can hoist them
29561         and compute their cost.
29562         (determine_invariantness_stmt): Handle PHI nodes.
29563         (move_computations_stmt): Likewise.  Hoist PHI nodes in
29564         if-converted form using COND_EXPRs.
29565         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
29566         (tree_ssa_lim): Likewise.
29567         * tree-flow.h (tree_ssa_lim): Adjust prototype.
29568         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
29569
29570 2010-05-06  Richard Guenther  <rguenther@suse.de>
29571
29572         PR tree-optimization/43987
29573         * tree-ssa-structalias.c (could_have_pointers): For possibly
29574         address-taken variables force pointers to be recorded.
29575         (create_variable_info_for_1): Likewise.
29576         (push_fields_onto_fieldstack): Pass in wheter all fields
29577         must have pointers.
29578         (find_func_aliases): Query types instead of vars whether
29579         they contain pointers where appropriate.
29580
29581 2010-05-06  Jan Hubicka  <jh@suse.cz>
29582
29583         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
29584         (record_reference, mark_address, mark_load, mark_store): Record
29585         references.
29586         (record_references_in_initializer): Update call of record_references.
29587         (rebuild_cgraph_edges): Remove all references before rebuiding.
29588         * cgraph.c (cgraph_create_node): Clear ref list.
29589         (cgraph_remove_node): Remove references.
29590         (dump_cgraph_node): Dump references.
29591         (cgraph_clone_node): Clone references.
29592         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
29593         (struct cgraph_node, varpool_node): Add ref_lst.
29594         * ipa-ref.c: New file.
29595         * ipa-ref.h: New file.
29596         * ipa-ref-inline.h: New file.
29597         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
29598         (referenced_from_other_partition_p): New function.
29599         (lto_output_varpool_node): Take set arugment; call
29600         referenced_from_other_partition.
29601         (lto_output_ref): New.
29602         (add_references): New.
29603         (output_refs): New.
29604         (output_cgraph): Compute boundary based on references; output refs.
29605         (output_varpool): Accept cgraph_node_set argument.
29606         (input_ref): New.
29607         (input_refs): New.
29608         (input_cgraph): Call input_refs.
29609         * lto-section-in.c (lto_section_name): Add refs.
29610         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
29611         (ipa-ref.o): New file.
29612         * varpool.c (varpool_node): Clear ipa ref list.
29613         (varpool_remove_node): Remove references.
29614         (dump_varpool_node): Dump references.
29615         (varpool_assemble_decl): Only compile finalized ones.
29616         (varpool_extra_name_alias): Initialize ref list.
29617         * lto-streamer.c (lto-get_section_name): Add .refs section.
29618         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
29619         (referenced_from_other_partition_p): Declared.
29620
29621 2010-05-06  Ira Rosen  <irar@il.ibm.com>
29622
29623         PR tree-optimization/43901
29624         * tree-vect-stmts.c (vectorizable_call): Assert that vector
29625         type is not NULL if it's transformation phase, and return
29626         FALSE if it's analysis.
29627         (vectorizable_conversion, vectorizable_operation,
29628         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
29629
29630 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
29631
29632         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
29633         Delete.
29634         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
29635         New define.
29636         * config/mips/mips-protos.h
29637         (mips_small_register_classes_for_mode_p): Delete prototype.
29638
29639 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
29640
29641         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
29642         * config/arm/arm.c (multiple_operation_profitable_p,
29643         compute_offset_order): New static functions.
29644         (load_multiple_sequence, store_multiple_sequence): Use them.
29645         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
29646         memory offsets, not register numbers.
29647         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
29648
29649 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
29650
29651         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
29652         (get_pending_sizes, put_pending_size, put_pending_sizes):
29653         Update the uses of pending_sizes.
29654         * c-decl.c (store_parm_decls): Likewise.
29655         * c-tree.h (struct c_arg_info): Likewise.
29656         * tree.h: Update the prototype for get_pending_sizes and
29657         put_pending_sizes.
29658
29659 2010-05-05  Jason Merrill  <jason@redhat.com>
29660
29661         PR debug/43370
29662         * c-common.c (handle_aligned_attribute): Respect
29663         ATTR_FLAG_TYPE_IN_PLACE.
29664
29665         PR testsuite/43758
29666         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
29667         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
29668         (TARGET_INITIALIZER): Use it.
29669         * c-common.c (attribute_takes_identifier_p): Call it.
29670         * c-common.h: Update prototype.
29671         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
29672         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
29673
29674 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
29675
29676         PR debug/43950
29677         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
29678         DW_ID_down_case for Fortran compilation units.
29679
29680 2010-05-05  Jan Hubicka  <jh@suse.cz>
29681
29682         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
29683         handle aliases.
29684
29685 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
29686
29687         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
29688         a variable-sized RESULT_DECL.
29689
29690 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
29691
29692         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
29693
29694 2010-05-05  Jason Merrill  <jason@redhat.com>
29695
29696         PR c++/43787
29697         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
29698         returns GS_OK.
29699         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
29700
29701 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
29702             Jakub Jelinek  <jakub@redhat.com>
29703
29704         PR debug/43478
29705         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
29706         (dead_debug_init, dead_debug_finish): New functions.
29707         (dead_debug_add, dead_debug_insert_before): Likewise.
29708         (df_note_bb_compute): Initialize a dead_debug object, add dead
29709         debug uses to it, insert debug bind insns before death insns,
29710         reset debug insns that refer to pending uses at the end.
29711         * rtl.h (make_debug_expr_from_rtl): New prototype.
29712         * varasm.c (make_debug_expr_from_rtl): New function.
29713
29714 2010-05-05  Jan Hubicka  <jh@suse.cz>
29715
29716         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
29717         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
29718         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
29719         lto_varpool_encoder_deref, lto_varpool_encoder_size,
29720         lto_varpool_encoder_encode_initializer_p,
29721         lto_set_varpool_encoder_encode_initializer): New functions.
29722         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
29723         call output_varpool.
29724         (input_varpool_node): Do not always set analyzed.
29725         (input_cgraph_1): Return vector of cgraph nodes.
29726         (input_varpool_1): Return vector of varpools.
29727         (input_cgraph): Free the vectors.
29728         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
29729         output only initializers needed.
29730         (lto_output): Only call output_cgraph.
29731         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
29732         * lto-section-out.c (lto_new_out_decl_state): Initialize
29733         state->varpool_node_encoder.
29734         * lto-streamer.h (lto_varpool_encoder_d): New.
29735         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
29736         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
29737         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
29738         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
29739         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
29740         Declare.
29741         (output_varpool, input_varpool): Remove declarations.
29742
29743 2010-05-05  Jan Hubicka  <jh@suse.cz>
29744
29745         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
29746         with body can prevail.
29747
29748 2010-05-05  Jan Hubicka  <jh@suse.cz>
29749
29750         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
29751         size.
29752
29753 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29754
29755         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
29756
29757         * gengtype.h (erro_at_line): Constify pos argument.
29758
29759         * gengtype.c: Include hashtab.h.
29760         (enum gc_used): Document GC_MAYBE_POINTED_TO.
29761         (error_at_line): Constify pos argument.
29762         (do_typedef): Initialize p->opt field.
29763         (get_file_gtfilename): Fix comment typo.
29764         (struct walk_type_data): Constify line field.
29765         (get_output_file_for_structure): New function.
29766         (write_local_func_for_structure): Constify orig_s argument.
29767         Use get_output_file_for_structure.
29768         (write_func_for_structure): Use get_output_file_for_structure.
29769         (INDENT): New define.
29770         (dump_pair, dump_type, dump_type_list, dump_typekind)
29771         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
29772         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
29773         functions.
29774         (seen_types): New variable.
29775         (main): New variable do_dump.  Process "-d" command line option.
29776         Call dump_everything if dump requested.
29777
29778 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
29779
29780         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
29781         in a temporary instead of invoking the macro multiple times.
29782         (track_expr_p): Likewise.
29783
29784 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
29785
29786         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
29787         per new semantics.
29788         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
29789         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
29790         conditions for printing notes.
29791         * common.opt (-Wcoverage-mismatch): Allow negative, default to
29792         true, update documentation.
29793         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
29794
29795 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
29796
29797         PR c/43981
29798         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
29799         on dimen.
29800
29801 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
29802
29803         PR target/43799
29804         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
29805         (*sse_prologue_save_insn1): Likewise.
29806         (SSE prologue save splitter): Likewise.
29807
29808 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
29809
29810         * tree.c (free_lang_data_in_one_sizepos): New inline function.
29811         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
29812         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
29813         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
29814         all decls.  Call it on DECL_FIELD_OFFSET of fields.
29815         (find_decls_types_r): Follow DECL_VALUE_EXPR.
29816         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
29817
29818 2010-05-04  Martin Jambor  <mjambor@suse.cz>
29819
29820         * tree-sra.c (build_access_from_expr_1): The first parameter type
29821         changed to simple tree.
29822         (build_access_from_expr): Likewise, gsi parameter was eliminated.
29823         (scan_assign_result): Renamed to assignment_mod_result, enum elements
29824         renamed as well.
29825         (build_accesses_from_assign): Removed all parameters except for a
29826         simple gimple statement.  Now returns a simple bool.
29827         (scan_function): All non-analysis parts moved to separate functions
29828         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
29829         parameters and updated both callers.
29830         (sra_modify_expr): Removed parameter data.
29831         (sra_modify_function_body): New function.
29832         (perform_intra_sra): Call sra_modify_function_body to modify the
29833         function body.
29834         (replace_removed_params_ssa_names): Parameter data changed into
29835         adjustments vector.
29836         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
29837         changed the parameter dont_convert to convert with the opposite
29838         meaning.
29839         (sra_ipa_modify_assign): Parameter data changed into adjustments
29840         vector, return value changed to bool.
29841         (ipa_sra_modify_function_body): New function.
29842         (sra_ipa_reset_debug_stmts): Updated a comment.
29843         (modify_function): Use ipa_sra_modify_function_body to modify function
29844         body.
29845
29846 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
29847
29848         PR middle-end/43671
29849         * alias.c (true_dependence): Handle the same VALUE in x and mem.
29850         (canon_true_dependence): Likewise.
29851         (write_dependence_p): Likewise.
29852
29853 2010-05-04  Jan Hubicka  <jh@suse.cz>
29854
29855         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
29856         * cgraphbuild.c: Include ipa-utils.h
29857         (record_reference_ctx): New struct.
29858         (record_reference): Simplify to work on initializers; not statements.
29859         (mark_address, mark_load, mark_store): New.
29860         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
29861         walk PHI nodes too.
29862         (record_references_in_initializer): Update use of record_reference.
29863         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
29864         walk PHI nodes too.
29865
29866 2010-05-04  Jan Hubicka  <jh@suse.cz>
29867
29868         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
29869         node will be removed anyway.
29870         (lto_varpool_replace_node): Allow also unanalyzed nodes;
29871         relink aliases of node into prevailing node.
29872         * varpool.c (varpool_remove_node): Remove aliases properly;
29873         when removing node, remove all its aliases too; remove DECL_INITIAL
29874         of removed node; ggc_free the varpool node.
29875
29876 2010-05-04  Richard Guenther  <rguenther@suse.de>
29877
29878         PR tree-optimization/43879
29879         * tree-ssa-structalias.c (alias_get_name): Use
29880         DECL_ASSEMBLER_NAME if available.
29881         (create_function_info_for): Return the varinfo node.
29882         (ipa_pta_execute): Associate same-body aliases and extra names
29883         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
29884
29885 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
29886
29887         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
29888
29889 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
29890
29891         PR bootstrap/43964
29892         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
29893         only if HONOR_REG_ALLOC_ORDER is not defined.
29894
29895 2010-05-04  Richard Guenther  <rguenther@suse.de>
29896
29897         PR tree-optimization/43949
29898         * tree-vrp.c (extract_range_from_binary_expr): Only handle
29899         TRUNC_MOD_EXPR.
29900
29901 2010-04-26  Jason Merrill  <jason@redhat.com>
29902
29903         * c.opt (-fstrict-enums): New.
29904         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
29905
29906 2010-05-03  David Ung  <davidu@mips.com>
29907             James E. Wilson  <wilson@codesourcery.com>
29908
29909         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
29910         emit the trap instruction before the divide for TUNE_74K.
29911
29912 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
29913
29914         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
29915         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
29916         based on the above, for new target hook.
29917
29918         * hooks.c (hook_bool_mode_true): New generic hook.
29919         * hooks.h (hook_bool_mode_true): Add prototype.
29920
29921         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
29922         target hook.
29923         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
29924         target hook, set to hook_bool_mode_false.
29925         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
29926         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
29927         with targetm.small_register_classes_for_mode_p.
29928         (find_reusable_reload): Likewise.
29929         (combine_reloads): Likewise.
29930         * reload1.c (reload_as_needed): Likewise.
29931         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
29932         * ifcvt.c (noce_process_if_block, check_cond_move_block,
29933         dead_or_predicable): Likewise.
29934         * regmove.c (optimize_reg_copy_1): Likewise.
29935         * calls.c (prepare_call_address): Likewise.
29936         (precompute_register_parameters): Likewise.
29937
29938         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
29939         hook definition.
29940         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
29941         implementation of the hook that considers all register classes
29942         small except for SH64.
29943         (sh_override_options): Use the new hook.
29944         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
29945         Add prototype.
29946
29947         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
29948         hook definition.
29949         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
29950         implementation of the hook that considers all register classes
29951         small for THUMB1.
29952         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
29953         Add prototype.
29954
29955         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
29956         hook definition.
29957         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
29958         implementation of the hook that considers all register classes
29959         small for MIPS16.
29960         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
29961         Add prototype.
29962
29963         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
29964         hook definition.
29965         * config/m32c/m32c.h: Likewise.
29966         * config/pdp11/pdp11.h: Likewise.
29967         * config/avr/avr.h: Likewise.
29968         * config/xtensa/xtensa.h: Likewise.
29969         * config/m68hc11/m68hc11.h: Likewise.
29970         * config/mn10300/mn10300.h: Likewise.
29971         * config/mcore/mcore.h: Likewise.
29972         * config/h8300/h8300.h: Likewise.
29973         * config/bfin/bfin.h: Likewise.
29974
29975         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
29976         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
29977
29978 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
29979
29980         * double-int.h (tree_to_double_int): Remove macro.
29981         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
29982         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
29983         (tree_to_double_int): New function.
29984         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
29985         Move ...
29986         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
29987
29988 2010-05-03  Richard Guenther  <rguenther@suse.de>
29989
29990         PR tree-optimization/43971
29991         * tree-ssa-structalias.c (get_constraint_for_1): Fix
29992         constraints in the !flag_delete_null_pointer_checks case.
29993
29994 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
29995
29996         PR debug/43972
29997         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
29998         result mode matches original rtl mode.
29999
30000 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
30001
30002         PR target/43888
30003         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
30004
30005 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30006
30007         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
30008         when processing flag options.
30009
30010 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30011
30012         * gcov-iov.c (main): Change format string placeholder
30013         from %#08x to 0x%08x.
30014         * genchecksum.c (dosum): Change format string placeholder
30015         from %#02x to 0x%02x.
30016
30017 2010-05-02  Richard Guenther  <rguenther@suse.de>
30018
30019         PR tree-optimization/43879
30020         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
30021
30022 2010-05-02  Bruno Haible  <bruno@clisp.org>
30023
30024         * doc/extend.texi (Function Attributes): Fix a typo.
30025
30026 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30027
30028         Revert:
30029         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
30030         placeholder from 0x%x to %#x.
30031         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30032         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
30033         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
30034         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
30035         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
30036         * config/i386/i386.c (ix86_target_string): Ditto.
30037         * config/i386/i386.c (output_pic_addr_const): Ditto.
30038         (print_operand): Ditto.
30039
30040 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30041
30042         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
30043         placeholder from 0x%x to %#x.
30044         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
30045         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
30046         (ASM_OUTPUT_DEBUG_DATA): Ditto.
30047         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
30048         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
30049         * optc-gen.awk: Ditto.
30050         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
30051         (HOST_WIDE_INT_PRINT_HEX): Ditto.
30052         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
30053         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30054
30055 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30056
30057         * target.h (struct calls): Add function_value_regno_p field.
30058         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
30059         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
30060         * targhooks.c (default_function_value_regno_p): New function.
30061         * targhooks.h (default_function_value_regno_p): Declare function.
30062         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
30063         * builtins.c. (apply_result_size): (Ditto.).
30064         * combine.c. (likely_spilled_retval_p): (Ditto.).
30065         * mode-switching.c. Include 'target.h'.
30066         (create_pre_exit): Use function_value_regno_p hook.
30067         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
30068         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
30069         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
30070
30071         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
30072         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
30073         (ix86_function_value_regno_p): Declare as static, change argument
30074         type to const unsigned int.
30075         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
30076
30077 2010-05-01  Richard Guenther  <rguenther@suse.de>
30078
30079         PR tree-optimization/43949
30080         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
30081         types.
30082         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
30083
30084 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30085
30086         * rtl.h (CONST_DOUBLE_P): Define.
30087         (rtx_to_double_int): Declare.
30088         * emit-rtl.c (rtx_to_double_int): New function.
30089         * dwarf2out.c (insert_double): New function.
30090         (loc_descriptor, add_const_value_attribute): Clean up, use
30091         rtx_to_double_int and insert_double functions.
30092
30093 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
30094
30095         * doc/extend.texi (Inline): Add missing return keyword to examples.
30096         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
30097         "command-line".
30098
30099 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
30100
30101         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
30102         the variable part of the offset as well.  Use highest_pow2_factor for
30103         all alignment checks.
30104
30105 2010-04-30  Richard Guenther  <rguenther@suse.de>
30106
30107         PR tree-optimization/43879
30108         * tree-ssa-structalias.c (type_could_have_pointers): Functions
30109         can have pointers.
30110
30111 2010-04-30  Jan Hubicka  <jh@suse.cz>
30112
30113         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
30114         varpool.
30115         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
30116
30117 2010-04-30  Jan Hubicka  <jh@suse.cz>
30118
30119         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
30120         New.
30121         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
30122         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
30123         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
30124         cgraph_node_set_needs_ltrans_p): Remove.
30125
30126 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30127
30128         * sdbout.c: Include vec.h, do not include varray.h.
30129         (deferred_global_decls, sdbout_global_decl,
30130         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
30131         * toplev.c: Do not include varray.h.
30132         (dump_memory_report): Do not dump VARRAY statistics.
30133         * gengtype.c (open_base_file): Ignore varray.h.
30134         * Makefile.in: Update for abovementioned changes.
30135         Remove all traces of varray.c and varray.h.
30136         * varray.c: Remove file.
30137         * varray.h: Remove file.
30138
30139 2010-04-30  Jan Hubicka  <jh@suse.cz>
30140
30141         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
30142         references.
30143
30144 2010-04-30  Jan Hubicka  <jh@suse.cz>
30145
30146         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
30147         needed.
30148
30149 2010-04-30  Richard Guenther  <rguenther@suse.de>
30150
30151         * tree-ssa-structalias.c (get_constraint_for_1): Generate
30152         constraints for CONSTRUCTOR.
30153
30154 2010-04-30  Richard Guenther  <rguenther@suse.de>
30155
30156         PR lto/43946
30157         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
30158         first after all lowering passes.
30159
30160 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30161
30162         * toplev.c: Include varray.h for statistics dumping.
30163         * tree.h: Do not declare varray_head_tag.
30164         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
30165         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
30166         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
30167         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
30168         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
30169         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
30170         c-common.c, c-common.h, reg-stack.c, basic-block.h,
30171         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
30172         include varray.h.
30173         * Makefile.in: Update for abovementioned changes.
30174
30175 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
30176
30177         PR debug/43942
30178         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
30179
30180 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
30181
30182         * config/picochip/picochip.c (picochip_legitimize_address): Define.
30183         Use this function to do machine-specific conversion.
30184         (picochip_legitimize_reload_address): Likewise.
30185         (picochip_legitimate_address_p): Check valid base register only if
30186         strict.
30187         (picochip_check_conditional_copy): Check for modw only if opnd is
30188         register.
30189         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
30190         to call the function in c.
30191         * config/picochip/picochip-protos.h
30192         (picochip_legitimize_reload_address): Define.
30193         * config/picochip/picochip.md (supported_compare1): Define.
30194
30195 2010-04-30  Jan Hubicka  <jh@suse.cz>
30196
30197         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
30198         (cgraph_global_info): Remove inlined.
30199         (LTO_cgraph_tag_names): Remove.
30200         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
30201         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
30202         simplify cgraph tags and document.
30203         (lto_output_node): Use only LTO_cgraph_unavail_node and
30204         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
30205         for_functions_valid, global info, process and output flags.
30206         (input_overwrite_node): Initialize estimated stack size and
30207         estimated growth.  Do not read flags we no longer store.
30208         (input_node): Likewise do not read info no longer stored.
30209         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
30210         flag.
30211
30212 2010-04-30  Richard Guenther  <rguenther@suse.de>
30213
30214         PR tree-optimization/43879
30215         * tree-ssa-structalias.c (get_constraint_for_1): Properly
30216         handle non-zero initializers.
30217
30218 2010-04-30  Richard Guenther  <rguenther@suse.de>
30219
30220         * builtins.c (fold_builtin_1): Delete free (0).
30221
30222 2010-04-29  Jan Hubicka  <jh@suse.cz>
30223
30224         * gengtype.c (open_base_files): Add lto-streamer.h
30225         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
30226         (pass_ipa_cp): GGC collect.
30227         * toplev. (compile_file): Do not output symbols.
30228         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
30229         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
30230         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
30231         * lto-section-in.c: Include ggc.h
30232         (lto_new_in_decl_state): Alloc in GGC.
30233         (lto_delete_in_decl_state): Likewise.
30234         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
30235         Collect.
30236
30237 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
30238
30239         PR target/42895
30240         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
30241         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
30242         (HONOR_REG_ALLOC_ORDER): Describe new macro.
30243         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
30244         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
30245         account only if HONOR_REG_ALLOC_ORDER is not defined.
30246         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
30247         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
30248
30249 2010-04-29  Jon Grant  <04@jguk.org>
30250
30251         * collect2.c (vflag): Change type from int to bool.
30252         (debug): Likewise.
30253         (helpflag): New global bool.
30254         (main): Set vflag and debug with boolean, not integer truth values.
30255         Accept new "--help" option and output usage text if found.
30256         * collect2.h (vflag): Update prototype.
30257         (debug): Likewise.
30258
30259 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
30260
30261         PR bootstrap/43936
30262         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
30263
30264 2010-04-29  Richard Guenther  <rguenther@suse.de>
30265
30266         PR bootstrap/43935
30267         * plugin.h (invoke_plugin_callbacks): Annotate arguments
30268         with ATTRIBUTE_UNUSED.
30269
30270 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
30271
30272         PR target/43921
30273         * config/i386/i386.c (get_some_local_dynamic_name): Replace
30274         INSN_P with NONDEBUG_INSN_P.
30275         (distance_non_agu_define): Likewise.
30276         (distance_agu_use): Likewise.
30277
30278 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
30279
30280         From Dominique d'Humieres  <dominiq@lps.ens.fr>
30281         PR bootstrap/43858
30282         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
30283         test_set.
30284
30285 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
30286
30287         * plugin.h (invoke_plugin_callbacks): New inline function.
30288         * plugin.c (flag_plugin_added): New global flag.
30289         (add_new_plugin): Initialize above flag.
30290         (invoke_plugin_callbacks): Rename to ...
30291         (invoke_plugin_callbacks_full): ... this.
30292
30293 2010-04-28  Jan Hubicka  <jh@suse.cz>
30294
30295         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
30296         (lto_varpool_replace_node): New.
30297         (lto_symtab_resolve_symbols): Resolve varpool nodes.
30298         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
30299         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
30300         * cgraph.h (varpool_node_ptr): New type.
30301         (varpool_node_ptr): New vector.
30302         (varpool_node_set_def): New structure.
30303         (varpool_node_set): New type.
30304         (varpool_node_set): New vector.
30305         (varpool_node_set_element_def): New structure.
30306         (varpool_node_set_element, const_varpool_node_set_element): New types.
30307         (varpool_node_set_iterator): New type.
30308         (varpool_node): Add prev pointers, add used_from_other_partition,
30309         in_other_partition.
30310         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
30311         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
30312         varpool_get_node, varpool_remove_node): Declare.
30313         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
30314         varpool_node_set_size): New inlines.
30315         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
30316         * tree-pass.h (varpool_node_set_def): Forward declare.
30317         (ipa_opt_pass_d): Summary writting takes vnode sets too.
30318         (ipa_write_optimization_summaries): Update prototype.
30319         * ipa-cp.c (ipcp_write_summary): Update.
30320         * ipa-reference.c (ipa_reference_write_summary): Update.
30321         * lto-cgraph.c (lto_output_varpool_node): New static function.
30322         (output_varpool): New function.
30323         (input_varpool_node): New static function.
30324         (input_varpool_1): New function.
30325         (input_cgraph): Input varpool.
30326         * ipa-pure-const.c (pure_const_write_summary): Update.
30327         * lto-streamer-out.c (lto_output): Update, output varpool too.
30328         (write_global_stream): Kill WPA hack.
30329         (produce_asm_for_decls): Update.
30330         (output_alias_pair_p): Handle variables.
30331         (output_unreferenced_globals): Output only needed partition of varpool.
30332         * ipa-inline.c (inline_write_summary): Update.
30333         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
30334         cgraph.
30335         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
30336         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
30337         varpool_node_set_new, varpool_node_set_add,
30338         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
30339         debug_varpool_node_set): New functions.
30340         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
30341         (execute_one_pass): Process new decls too.
30342         (ipa_write_summaries_2): Pass around vsets.
30343         (ipa_write_summaries_1): Likewise.
30344         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
30345         to add.
30346         (ipa_write_optimization_summaries_1): Pass around vsets.
30347         (ipa_write_optimization_summaries): Likewise.
30348         * varpool.c (varpool_get_node): New.
30349         (varpool_node): Update doubly linked lists.
30350         (varpool_remove_node): New.
30351         (dump_varpool_node): More dumping.
30352         (varpool_enqueue_needed_node): Update doubly linked lists.
30353         (decide_is_variable_needed): Kill ltrans hack.
30354         (varpool_finalize_decl): Kill lto hack.
30355         (varpool_assemble_decl): Skip decls in other partitions.
30356         (varpool_assemble_pending_decls): Update doubly linkes lists.
30357         (varpool_empty_needed_queue): Likewise.
30358         (varpool_extra_name_alias): Likewise.
30359         * lto-streamer.c (lto_get_section_name): Add vars section.
30360         * lto-streamer.h (lto_section_type): Update.
30361         (output_varpool, input_varpool): Declare.
30362
30363 2010-04-28  Mike Stump  <mikestump@comcast.net>
30364
30365         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
30366
30367 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30368
30369         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
30370         record or union type with RECORD_OR_UNION_TYPE_P predicate.
30371         (lto_input_ts_type_tree_pointers): Likewise.
30372         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
30373         (lto_output_ts_type_tree_pointers): Likewise.
30374
30375 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30376
30377         Uniquization of constants at the Tree level
30378         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
30379         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
30380         bit to the end.
30381         (tree_output_constant_def): Declare.
30382         * gimplify.c (gimplify_init_constructor): When using block copy, first
30383         uniquize the constant constructor on the RHS.
30384         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
30385         DECL_IN_CONSTANT_POOL flag.
30386         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
30387         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
30388         constant pool.
30389         (assemble_variable): Deal with symbols belonging to the tree constant
30390         pool.
30391         (get_constant_section): Add ALIGN parameter and simplify.
30392         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
30393         (assemble_constant_contents): Use the expression of the VAR_DECL.
30394         (output_constant_def_contents): Use the alignment of the VAR_DECL.
30395         (tree_output_constant_def): New global function.
30396         (mark_constant): Use the expression of the VAR_DECL.
30397         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
30398         its expression.
30399         (output_object_block): Likewise and assemble the expression.
30400
30401 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30402
30403         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
30404         hash_tree, eq_tree): New tree hash table.
30405         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
30406         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
30407         lto_orig_address_remove): Reimplement.
30408
30409 2010-04-28  Xinliang David Li  <davidxl@google.com>
30410
30411         PR c/42643
30412         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
30413         (compute_uninit_opnds_pos): New function.
30414         (is_non_loop_exit_postdominating): New function.
30415         (compute_control_dep_chain): New function.
30416         (find_pdom): New function.
30417         (convert_control_dep_chain_into_preds): New function.
30418         (find_predicates): New function.
30419         (find_control_equiv_block): New function.
30420         (collect_phi_def_edges): New function.
30421         (find_def_preds): New function.
30422         (find_dom): New function.
30423         (dump_predicates): New function.
30424         (get_cmp_code): New function.
30425         (is_value_included_in): New function.
30426         (find_matching_predicate_in_rest_chains): New function.
30427         (use_pred_not_overlap_with_undef_path_pred): New function.
30428         (is_use_properly_guarded): New function.
30429         (normalize_cond_1): New function.
30430         (is_and_or_or): New function.
30431         (normalize_cond): New function.
30432         (is_gcond_subset_of): New function.
30433         (is_subset_of_any): New function.
30434         (is_or_set_subset_of): New function.
30435         (is_and_set_subset_of): New function.
30436         (is_norm_cond_subset_of): New function.
30437         (is_pred_expr_subset_of): New function.
30438         (is_pred_chain_subset_of): New function.
30439         (is_included_in): New function.
30440         (is_superset_of): New function.
30441         (find_uninit_use): New function.
30442         (warn_uninitialized_phi): New function.
30443         (compute_possibly_undefined_names): New function.
30444         (ssa_undefined_value_p): New function.
30445         (execute_late_warn_uninitialized): New function.
30446         * tree-ssa.c (ssa_undefined_value_p): Removed.
30447         (warn_uninit): Changed to extern.
30448         (warn_uninitialized_phi): Removed.
30449         (warn_uninitialized_vars): Changed to extern.
30450         (execute_late_warn_uninitialized): Removed
30451         * tree-flow.h: Add new prototypes.
30452         * timevar.def: Add new time variable.
30453         * Makefile.in: Add new build file.
30454
30455 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
30456
30457         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
30458         type if available.
30459
30460 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30461
30462         PR target/22224
30463         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
30464
30465 2010-04-28  Martin Jambor  <mjambor@suse.cz>
30466
30467         * cgraph.h (struct cgraph_node): New field indirect_calls.
30468         (struct cgraph_indirect_call_info): New type.
30469         (struct cgraph_edge): Removed field indirect_call. New fields
30470         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
30471         (cgraph_create_indirect_edge): Declare.
30472         (cgraph_make_edge_direct): Likewise.
30473         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
30474         * ipa-prop.h (struct ipa_param_call_note): Removed.
30475         (struct ipa_node_params): Removed field param_calls.
30476         (ipa_create_all_structures_for_iinln): Declare.
30477         * cgraph.c: Described indirect edges and uids in initial comment.
30478         (cgraph_add_edge_to_call_site_hash): New function.
30479         (cgraph_edge): Search also among the indirect edges, use
30480         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
30481         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
30482         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
30483         site hash.
30484         (initialize_inline_failed): Assign a reason to indirect edges.
30485         (cgraph_create_edge_1): New function.
30486         (cgraph_create_edge): Moved some functionality to
30487         cgraph_create_edge_1.
30488         (cgraph_create_indirect_edge): New function.
30489         (cgraph_edge_remove_callee): Add an assert checking for
30490         non-indirectness.
30491         (cgraph_edge_remove_caller): Special-case indirect edges.
30492         (cgraph_remove_edge): Likewise.
30493         (cgraph_set_edge_callee): New function.
30494         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
30495         (cgraph_make_edge_direct): New function.
30496         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
30497         the declaration of the call statement matches.
30498         (cgraph_node_remove_callees): Special-case indirect edges.
30499         (cgraph_clone_edge): Likewise.
30500         (cgraph_clone_node): Clone also the indirect edges.
30501         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
30502         indirect_call, dump count of indirect_calls edges.
30503         * ipa-prop.c (iinlining_processed_edges): New variable.
30504         (ipa_note_param_call): Create indirect edges instead of
30505         creating notes.  New parameter node.
30506         (ipa_analyze_call_uses): New parameter node, pass it on to
30507         ipa_note_param_call.
30508         (ipa_analyze_stmt_uses): Likewise.
30509         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
30510         (print_edge_addition_message): Work on edges rather than on notes.
30511         (update_call_notes_after_inlining): Likewise, renamed to
30512         update_indirect_edges_after_inlining.
30513         (ipa_create_all_structures_for_iinln): New function.
30514         (ipa_free_node_params_substructures): Do not free notes.
30515         (ipa_edge_duplication_hook): Propagate bits within
30516         iinlining_processed_edges bitmap.
30517         (ipa_node_duplication_hook): Do not duplicate notes.
30518         (free_all_ipa_structures_after_ipa_cp): Renamed to
30519         ipa_free_all_structures_after_ipa_cp.
30520         (free_all_ipa_structures_after_iinln): Renamed to
30521         ipa_free_all_structures_after_iinln.
30522         (ipa_write_param_call_note): Removed.
30523         (ipa_read_param_call_note): Removed.
30524         (ipa_write_indirect_edge_info): New function.
30525         (ipa_read_indirect_edge_info): Likewise.
30526         (ipa_write_node_info): Do not stream notes, do stream information
30527         in indirect edges.
30528         (ipa_read_node_info): Likewise.
30529         (lto_ipa_fixup_call_notes): Removed.
30530         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
30531         * ipa-inline.c (pass_ipa_inline): Likewise.
30532         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
30533         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
30534         * tree-inline.c (copy_bb): Removed an unnecessary double check for
30535         is_gimple_call.
30536         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
30537         edges.
30538         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
30539         (output_cgraph): Stream also indirect edges.
30540         (lto_output_edge): Added capability to stream indirect edges.
30541         (input_edge): Likewise.
30542         (input_cgraph_1): Likewise.
30543         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
30544         of indirect edges.
30545
30546 2010-04-28  Richard Guenther  <rguenther@suse.de>
30547
30548         PR tree-optimization/43879
30549         PR tree-optimization/43909
30550         * tree-ssa-structalias.c (struct variable_info): Add
30551         only_restrict_pointers flag.
30552         (new_var_info): Initialize it.  Increment stats.total_vars here.
30553         (create_function_info_for): Do not increment stats.total_vars here.
30554         (get_function_part_constraint): Fix build with C++.
30555         (insert_into_field_list): Remove.
30556         (push_fields_onto_fieldstack): Properly merge fields.
30557         (create_variable_info_for): Split and simplify.
30558         (create_variable_info_for_1): New piece.
30559         (intra_create_variable_infos): Properly make restrict constraints
30560         from parameters.
30561
30562 2010-04-28  Richard Guenther  <rguenther@suse.de>
30563
30564         PR c++/43880
30565         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
30566
30567 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30568             Jan Hubicka  <hubicka@ucw.cz>
30569
30570         * doc/invoke.texi (-Wsuggest-attribute=const,
30571         -Wsuggest-attribute=pure): Document.
30572         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
30573         (function_always_visible_to_compiler_p,
30574         suggest_attribute, warn_function_pure, warn_function_const):
30575         New functions.
30576         (check_call): Improve debug info.
30577         (analyze_function): Do not check availability.
30578         (add_new_function): Check availability.
30579         (propagate): Output warnings.
30580         (skip_function_for_local_pure_const): New function.
30581         (local_pure_const): Use it; output warnings.
30582         * common.opt (Wsuggest-attribute=const,
30583         Wsuggest-attribute=pure): New.
30584
30585 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
30586
30587         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
30588         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
30589         or DW_CFA_def_cfa_offset{,_sf}.
30590
30591 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
30592
30593         * tree.h: Fix truncated long macros.
30594
30595 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
30596
30597         * collect2.c (TARGET_64BIT): Redefine to target's default.
30598         * tlink.c: Likewise.
30599         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
30600         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
30601         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
30602         for underscoring __USER_LABEL_PREFIX__.
30603         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
30604         (SUB_LINK_ENTRY32): New.
30605         (SUB_LINK_ENTRY64): New.
30606         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
30607         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
30608         (SUB_LINK_ENTRY64): New.
30609         (SUB_LINK_ENTRY): New.
30610         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
30611         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
30612         x64 target is choosen.
30613         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
30614         * configure: Regenerated.
30615         * configure.ac (leading-mingw64-underscores): Option added.
30616
30617 2010-04-27  Jan Hubicka  <jh@suse.cz>
30618
30619         * doc/invoke.texi (-fipa-profile): Document.
30620         * opts.c (decode_options): Enable ipa-profile at -O1.
30621         * timevar.def (TV_IPA_PROFILE): Define.
30622         * common.opt (fipa-profile): Add.
30623         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
30624         flag for clones.
30625         (cgraph_propagate_frequency): Handle only local ones.
30626         * tree-pass.h (pass_ipa_profile): Declare.
30627         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
30628         (pass_ipa_profile): Use TV_IPA_PROFILE.
30629         * ipa.c (ipa_profile): New function.
30630         (gate_ipa_profile): Likewise.
30631         (pass_ipa_profile): New global variable.
30632         * passes.c (pass_ipa_profile): New.
30633
30634 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
30635
30636         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
30637
30638 2010-04-27  Martin Jambor  <mjambor@suse.cz>
30639
30640         PR middle-end/43812
30641         * ipa.c (dissolve_same_comdat_group_list): New function.
30642         (function_and_variable_visibility): Call
30643         dissolve_same_comdat_group_list when comdat group contains external or
30644         newly local nodes.
30645         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
30646         lists are circular and that they contain only DECL_ONE_ONLY nodes.
30647
30648 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
30649
30650         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
30651         (const_hash_1) <VECTOR_CST>: New case.
30652         (compare_constant) <VECTOR_CST>: Likewise.
30653         <ADDR_EXPR>: Deal with LABEL_REFs.
30654         (copy_constant) <VECTOR_CST>: New case.
30655
30656 2010-04-27  Jan Hubicka  <jh@suse.cz>
30657
30658         * cgraph.c (cgraph_propagate_frequency): New function.
30659         * cgraph.h (cgraph_propagate_frequency): Declare.
30660         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
30661         cgraph_propagate_frequency.
30662
30663 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
30664
30665         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
30666
30667 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
30668
30669         PR target/40657
30670         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
30671         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
30672         here to determine which regs to push and how much stack to reserve.
30673
30674 2010-04-27  Jie Zhang  <jie@codesourcery.com>
30675
30676         * doc/gimple.texi (gimple_statement_with_ops): Remove
30677         addresses_taken field.
30678         (gimple_statement_with_memory_ops): Likewise.
30679
30680 2010-04-27  Jan Hubicka  <jh@suse.cz>
30681
30682         * tree-inline.c (eni_inlining_weights): Remove.
30683         (estimate_num_insns): Special case more builtins.
30684
30685 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
30686
30687         PR c/32207
30688         * c-typeck.c (build_binary_op): Move forward check for comparison
30689         pointer with null pointer constant and adjust the diagnostic message.
30690
30691 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
30692
30693         PR lto/42776
30694         * configure.ac (gcc_cv_as_section_has_align): Set if installed
30695         binutils supports extended .section directive needed by LTO, or
30696         warn if older binutils found.
30697         (LTO_BINARY_READER): New AC_SUBST'd variable.
30698         (LTO_USE_LIBELF): Likewise.
30699         * config.gcc (lto_binary_reader): New target-specific configure
30700         variable.
30701         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
30702         (LTO_USE_LIBELF): Likewise.
30703         * configure: Regenerate.
30704
30705         * collect2.c (is_elf): Rename from this ...
30706         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
30707          object files in addition to ELF-formatted ones.
30708         (scan_prog_file): Caller updated.  Also allow for LTO info marker
30709         symbol to be prefixed or not by an extra underscore.
30710
30711         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
30712         * config/i386/winnt.c: Also #include lto-streamer.h
30713         (i386_pe_asm_named_section): Specify 1-byte section alignment for
30714         LTO named sections.
30715         (i386_pe_asm_output_aligned_decl_common): Add comment.
30716         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
30717
30718 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
30719
30720         PR target/43889
30721         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
30722         Add missing earlyclobber for second alternative.
30723
30724 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
30725
30726         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
30727         bits for artificial defs at the top of the block.
30728         * fwprop.c (single_def_use_enter_block): Don't call it.
30729
30730 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
30731
30732         PR 43715
30733         * configure.ac: Use "$gcc_cv_nm -g" on darwin
30734         instead of "$gcc_cv_objdump -T".
30735         Use "-undefined dynamic_lookup" on darwin.
30736         * configure: Regenerate.
30737
30738 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
30739
30740         PR c/43893
30741         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
30742
30743 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
30744
30745         * c-parser.c (struct c_token): Move location field up.
30746         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
30747         (struct c_declspecs): Convert typespec_word, storage_class, and
30748         default_int_p into bitfields.
30749         (struct c_declarator): Move loc field up.
30750
30751 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
30752
30753         * cfgloop.h (struct loop): Move can_be_parallel field up.
30754         * ipa-prop.h (struct ip_node_params): Move bitfields up.
30755         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
30756         down.
30757         (struct iv_cand): Convert pos field into a bitfield.
30758         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
30759         field up.
30760         (struct _stmt_vec_info): Shuffle fields for better packing.
30761
30762 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
30763
30764         * varasm.c (IN_NAMED_SECTION): Remove guard.
30765         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
30766         (IN_NAMED_SECTION_P): ...this.
30767         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
30768         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
30769
30770 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
30771
30772         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
30773         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
30774         of shadowing it.  Fix comments.
30775
30776 2010-04-26  Jan Hubicka  <jh@suse.cz>
30777
30778         * cgraph.c (cgraph_create_node): Set node frequency to normal.
30779         (cgraph_clone_node): Copy function frequency.
30780         * cgraph.h (node_frequency): New enum
30781         (struct cgraph_node): Add.
30782         * final.c (rest_of_clean_state): Update.
30783         * lto-cgraph.c (lto_output_node): Output node frequency.
30784         (input_overwrite_node): Input node frequency.
30785         * tre-ssa-loop-ivopts (computation_cost): Update.
30786         * lto-streamer-out.c (output_function): Do not output function
30787         frequency.
30788         * predict.c (maybe_hot_frequency_p): Update and handle functions
30789         executed once.
30790         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
30791         attribute lookup.
30792         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
30793         (compute_function_frequency): Set noreturn functions to be executed
30794         once.
30795         (choose_function_section): Update.
30796         * lto-streamer-in.c (input_function): Do not input function frequency.
30797         * function.c (allocate_struct_function): Do not initialize function
30798         frequency.
30799         * function.h (function_frequency): Remove.
30800         (struct function): Remove function frequency.
30801         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
30802         (try_update): Update.
30803         * tree-inline.c (initialize_cfun): Do not update function frequency.
30804         * passes.c (pass_init_dump_file): Update.
30805         * i386.c (ix86_compute_frame_layout): Update.
30806         (ix86_pad_returns): Update.
30807
30808 2010-04-26  Jie Zhang  <jie@codesourcery.com>
30809
30810         PR tree-optimization/43833
30811         * tree-vrp.c (range_int_cst_p): New.
30812         (range_int_cst_singleton_p): New.
30813         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
30814         when both operands are constants.  Use range_int_cst_p in
30815         BIT_IOR_EXPR case.
30816
30817 2010-04-26  Jan Hubicka  <jh@suse.cz>
30818
30819         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
30820
30821 2010-04-26  Richard Guenther  <rguenther@suse.de>
30822
30823         PR lto/43080
30824         * gimple.c (gimple_decl_printable_name): Deal gracefully
30825         with a NULL DECL_NAME.
30826
30827 2010-04-26  Richard Guenther  <rguenther@suse.de>
30828
30829         PR lto/42425
30830         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
30831         if emitting debug information and it is either a function
30832         or a namespace decl.
30833
30834 2010-04-26  Ira Rosen  <irar@il.ibm.com>
30835
30836         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
30837         determine if the statement is vectorizable, and a macro to access it.
30838         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
30839         Skip statements that can't be vectorized. If the analysis fails,
30840         mark the statement as unvectorizable if vectorizing basic block.
30841         (vect_compute_data_refs_alignment): Likewise.
30842         (vect_verify_datarefs_alignment): Skip statements marked as
30843         unvectorizable. Add print.
30844         (vect_analyze_group_access): Skip statements that can't be
30845         vectorized. If the analysis fails, mark the statement as
30846         unvectorizable if vectorizing basic block.
30847         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
30848         * tree-vect-stmts.c (vectorizable_store): Fix the number of
30849         generated stmts for SLP.
30850         (new_stmt_vec_info): Initialize the new field.
30851         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
30852         statements marked as unvectorizable.
30853
30854 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
30855
30856         * c-common.c (flag_isoc1x): New.
30857         (flag_isoc99): Update comment.
30858         * c-common.h (flag_isoc1x): New.
30859         (flag_isoc99): Update comment.
30860         * c-cppbuiltin.c (builtin_define_float_constants): Also define
30861         __<type>_DECIMAL_DIG__.
30862         * c-opts.c (set_std_c1x): New.
30863         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
30864         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
30865         * c.opt (-std=c1x, -std=gnu1x): New options.
30866         * doc/cpp.texi: Mention -std=c1x.
30867         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
30868         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
30869         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
30870         * doc/standards.texi: Mention C1X.
30871         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
30872         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
30873         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
30874         Define for C1X.
30875
30876 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
30877
30878         * config/i386/gmon-sol2.c (_mcleanup): Change format string
30879         placeholder from 0x%x to %#x.
30880         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
30881         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
30882         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
30883         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
30884         * config/i386/i386.c (ix86_target_string): Ditto.
30885         (output_pic_addr_const): Ditto.
30886         (print_operand): Ditto.
30887
30888 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
30889
30890         * combine.c (find_split_point): Add third argument.  Use it
30891         to find nested multiply-accumulate instructions.  Adjust calls.
30892         (try_combine): Adjust call to find_split_point.
30893
30894 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
30895
30896         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
30897
30898 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
30899
30900         PR tree-optimization/41442
30901         * fold-const.c (merge_truthop_with_opposite_arm): New function.
30902         (fold_binary_loc): Call it.
30903
30904 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30905
30906         * toplev.c (general_init): Set default for fdiagnostics-show-option.
30907         * opts.c (common_handle_option): Allow disabling it.
30908         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
30909
30910 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
30911
30912         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
30913         between modes if both types are integral.
30914
30915 2010-04-23  Richard Guenther  <rguenther@suse.de>
30916
30917         PR tree-optimization/43572
30918         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
30919
30920 2010-04-23  Richard Guenther  <rguenther@suse.de>
30921
30922         PR lto/43455
30923         * tree-inline.c (tree_can_inline_p): Also check compatibility
30924         of return types.
30925
30926 2010-04-23  Martin Jambor  <mjambor@suse.cz>
30927
30928         PR tree-optimization/43846
30929         * tree-sra.c (struct access): New flag grp_assignment_read.
30930         (build_accesses_from_assign): Set grp_assignment_read.
30931         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
30932         (enum mark_read_status): New type.
30933         (analyze_access_subtree): Propagate grp_assignment_read, create
30934         accesses also if both direct_read and root->grp_assignment_read.
30935
30936 2010-04-23  Martin Jambor  <mjambor@suse.cz>
30937
30938         PR middle-end/43835
30939         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
30940         function does not have type attributes.
30941
30942 2010-04-23  Richard Guenther  <rguenther@suse.de>
30943
30944         PR lto/42653
30945         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
30946         of FUNCTION_DECLs.
30947
30948 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30949
30950         * sese.h (create_if_region_on_edge): Remove.
30951
30952         * sese.c (create_if_region_on_edge): Make static.
30953
30954         * tree-inline.c: Do not include ggc.h.
30955
30956         * expr.c: Do not include ggc.h.
30957
30958         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
30959         dependencies.
30960
30961 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
30962
30963         PR target/43744
30964         * config/sh/sh.c (find_barrier): Don't emit a constant pool
30965         in the middle of insns for casesi_worker_2.
30966
30967 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
30968
30969         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
30970
30971 2010-04-22  Ira Rosen  <irar@il.ibm.com>
30972
30973         PR tree-optimization/43842
30974         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
30975         loop unrolling in update of exit phis. Fix comment.
30976         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
30977         least two reduction statements in the loop before starting SLP
30978         analysis.
30979
30980 2010-04-22  Nick Clifton  <nickc@redhat.com>
30981
30982         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
30983
30984 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
30985
30986         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
30987         to simplify a + ~a.
30988
30989 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30990
30991         * tree-parloops.c (loop_parallel_p): New argument
30992         parloop_obstack.  Pass it down.
30993         (parallelize_loops): New variable parloop_obstack.  Initialize it,
30994         pass it down, free it.
30995
30996         * tree-loop-linear.c (linear_transform_loops): Pass down
30997         lambda_obstack.
30998
30999         * tree-data-ref.h (lambda_compute_access_matrices): New argument
31000         of type struct obstack *.
31001
31002         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
31003         scratch_obstack.  Initialize it, pass down, free it.
31004
31005         * lambda.h (lambda_loop_new): Remove.
31006         (lambda_matrix_new, lambda_matrix_inverse)
31007         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
31008         argument of type struct obstack *.
31009
31010         * lambda-trans.c (lambda_trans_matrix_new): New argument
31011         lambda_obstack.  Pass it down, use obstack allocation for ret.
31012         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
31013         it down.
31014
31015         * lambda-mat.c (lambda_matrix_get_column)
31016         (lambda_matrix_project_to_null): Remove.
31017         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
31018         allocation for mat.
31019         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
31020         lambda_obstack.
31021
31022         * lambda-code.c (lambda_loop_new): New function.
31023         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
31024         (lambda_compute_auxillary_space, lambda_compute_target_space)
31025         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
31026         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
31027         (build_access_matrix): New argument lambda_obstack.  Use obstack
31028         allocation for am.
31029         (lambda_compute_step_signs, lambda_compute_access_matrices): New
31030         argument lambda_obstack.  Pass it down.
31031
31032 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31033
31034         * optabs.h (expand_widening_mult): Declare.
31035
31036 2010-04-22  Richard Guenther  <rguenther@suse.de>
31037
31038         PR tree-optimization/43845
31039         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
31040         lookup the CALL_EXPR function and arguments.
31041
31042 2010-04-22  Nick Clifton  <nickc@redhat.com>
31043
31044         * config/stormy16/stormy16.c
31045         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
31046         * config/stormy16/stormy16.h: Tidy up formatting.
31047         (DONT_USE_BUILTIN_SETJMP): Remove definition.
31048         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
31049         (ineqbranchsi): Delete pattern.
31050         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
31051         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
31052         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
31053         stormy16-lib2-ucmpsi2.c.
31054
31055 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31056
31057         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
31058         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
31059         extra set merge_set_noclobber, and use it to relax the final test
31060         slightly.
31061         * df.h (df_simulate_find_noclobber_defs): Declare.
31062         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
31063         conditional defs.
31064         (df_simulate_find_noclobber_defs): New function.
31065
31066 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
31067
31068         * config/i386/i386.md: Use {} around multi-line preparation statements.
31069
31070 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31071
31072         * c-tree.h (push_init_level, pop_init_level, set_init_index)
31073         (process_init_element): New argument of type struct obstack *.
31074
31075         * c-typeck.c (push_init_level, pop_init_level, set_designator)
31076         (set_init_index, set_init_label, set_nonincremental_init)
31077         (set_nonincremental_init_from_string, find_init_member)
31078         (output_init_element, output_pending_init_elements)
31079         (process_init_element): New argument braced_init_obstack.  Pass it
31080         down.
31081         (push_range_stack, add_pending_init): New argument
31082         braced_init_obstack.  Use obstack allocation.
31083
31084         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
31085         braced_init_obstack.  Pass it down.
31086         (c_parser_braced_init): New variables ret, braced_init_obstack.
31087         Initialize obstack, pass it down and finally free it.
31088
31089 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31090
31091         PR middle-end/29274
31092         * tree-pass.h (pass_optimize_widening_mul): Declare.
31093         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
31094         gate_optimize_widening_mul): New static functions.
31095         (pass_optimize_widening_mul): New.
31096         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
31097         <case MULT_EXPR>: Remove support for widening multiplies.
31098         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
31099         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
31100         simplify_gen_unary rather than directly building extensions.
31101         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
31102         WIDEN_MULT_EXPR.
31103         * expmed.c (expand_widening_mult): New function.
31104         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
31105
31106 2010-04-21  Jan Hubicka  <jh@suse.cz>
31107
31108         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
31109         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
31110         * lto-wpa-fixup.c: Remove.
31111         * Makefile.in (lto-wpa-fixup.o): Remove.
31112         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
31113         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
31114         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
31115
31116 2010-04-21  Jan Hubicka  <jh@suse.cz>
31117
31118         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
31119         add write_optimization_summary, read_optimization_summary.
31120         (ipa_write_summaries_of_cgraph_node_set): Remove.
31121         (ipa_write_optimization_summaries): Declare.
31122         (ipa_read_optimization_summaries): Declare.
31123         * ipa-cp.c (pass_ipa_cp): Update.
31124         * ipa-reference.c (pass_ipa_reference): Update.
31125         * ipa-pure-const.c (pass_ipa_pure_const): Update.
31126         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
31127         Update.
31128         * ipa-inline.c (pass_ipa_inline): Update.
31129         * ipa.c (pass_ipa_whole_program): Update.
31130         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
31131         * passes.c (ipa_write_summaries_1): Do not test wpa.
31132         (ipa_write_optimization_summaries_1): New.
31133         (ipa_write_optimization_summaries): New.
31134         (ipa_read_summaries): Do not test ltrans.
31135         (ipa_read_optimization_summaries_1): New.
31136         (ipa_read_optimization_summaries): New.
31137
31138 2010-04-21  Jan Hubicka  <jh@suse.cz>
31139
31140         * lto-cgraph.c (lto_output_node): Do not output comdat groups
31141         for boundary nodes.
31142         (output_cgraph): Do not arrange comdat groups for boundary nodes.
31143
31144 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31145
31146         PR debug/40040
31147         * dwarf2out.c (add_name_and_src_coords_attributes): Add
31148         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
31149
31150 2010-04-21  Jan Hubicka  <jh@suse.cz>
31151
31152         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
31153
31154 2010-04-21  Jan Hubicka  <jh@suse.cz>
31155
31156         * varpool.c (decide_is_variable_needed): Variable is always needed
31157         during ltrans.
31158
31159 2010-04-21  Jan Hubicka  <jh@suse.cz>
31160
31161         * opts.c (decode_options): Enable pure-const pass for whopr.
31162
31163 2010-04-21  Jan Hubicka  <jh@suse.cz>
31164
31165         * cgraph.c (dump_cgraph_node): Dump also assembler name.
31166         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
31167         at WPA dumping.
31168         (cgraph_decide_inlining): Do not expect callee to be removed in all
31169         cases.
31170
31171 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
31172
31173         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
31174
31175 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
31176
31177         * config/i386/i386.md (x86_shrd): Add athlon_decode and
31178         amdfam10_decode attributes.
31179
31180 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31181
31182         PR middle-end/43570
31183         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
31184         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
31185         (lower_copyprivate_clauses): Use private var in outer
31186         context instead of original var.  Make sure the types
31187         are correct for VLAs.
31188
31189 2010-04-21  Richard Guenther  <rguenther@suse.de>
31190
31191         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
31192         to non-pointer objects.
31193
31194 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31195
31196         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
31197         last chain entry if it starts with the still current label.
31198         (add_location_or_const_value_attribute): Check that
31199         loc_list->first->next is NULL instead of comparing ->first with ->last.
31200         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
31201         to add_var_loc_to_decl.
31202
31203         * dwarf2out.c (output_call_frame_info): For dw_cie_version
31204         >= 4 add also address size and segment size fields into CIE header.
31205
31206         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
31207         long as address size is the same as sizeof (void *) and
31208         segment size is 0.
31209         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
31210         address size or segment size is unexpected, return DW_EH_PE_omit.
31211         (classify_object_over_fdes): If get_cie_encoding returned
31212         DW_EH_PE_omit, return -1.
31213         (init_object): If classify_object_over_fdes returned -1,
31214         pretend there were no FDEs at all.
31215
31216 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
31217
31218         * config/i386/i386.md (bswap<mode>2): Macroize expander from
31219         bswap{si,di}2 using SWI48 mode iterator.
31220         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
31221         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
31222         set modrm attribute of bswap insn to 0 and remove length attribute.
31223         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
31224         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
31225         set mode attribute to <MODE> and remove length attribute.
31226
31227 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
31228
31229         PR rtl-optimization/43520
31230         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
31231         zero available registers.
31232
31233 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31234
31235         * builtins.c (fold_builtin_cproj): Fold more cases.
31236
31237 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31238
31239         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
31240         (fold_builtin_1): Fold builtin cproj.
31241         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
31242         Use ATTR_CONST_NOTHROW_LIST.
31243
31244 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
31245
31246         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
31247         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
31248         ffsi2_no_cmove for !TARGET_CMOVE.
31249         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
31250         (ffssi2): Remove expander.
31251         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
31252         mode iterator.
31253         (ctz<mode>2): Ditto from ctz{si,di}2.
31254         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
31255         mode iterator.
31256         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
31257         mode iterator.
31258
31259 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
31260
31261         * dwarf2out.c (AT_linkage_name): Define.
31262         (clone_as_declaration): Handle DW_AT_linkage_name.
31263         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
31264         of DW_AT_MIPS_linkage_name.
31265         (move_linkage_attr): Likewise.
31266         (dwarf2out_finish): Likewise.
31267
31268 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
31269
31270         PR middle-end/41952
31271         * fold-const.c (fold_comparison): New folding rule.
31272
31273 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
31274
31275         * double-int.h (double_int_setbit): Declare.
31276         * double-int.c (double_int_setbit): New function.
31277         * rtl.h (immed_double_int_const): Declare.
31278         * emit-rtl.c (immed_double_int_const): New function.
31279         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
31280         and immed_double_int_const functions.
31281         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
31282         expand_copysign_bit): (Ditto.).
31283         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
31284         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
31285         * dojump.c (prefer_and_bit_test): (Ditto.).
31286         * expr.c (convert_modes, reduce_to_bit_field_precision,
31287         const_vector_from_tree): (Ditto.).
31288         * expmed.c (mask_rtx, lshift_value): (Ditto.).
31289
31290 2010-04-20  Jan Hubicka  <jh@suse.cz>
31291
31292         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
31293         (dump_cgraph_node): Dump new flags.
31294         * cgraph.h (struct cgraph_node): Add flags
31295         reachable_from_other_partition and in_other_partition.
31296         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
31297         other partition can not be removed.
31298         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
31299         the other partition must be output; silence sanity checking on
31300         leaking functions bodies from other paritition.
31301         * lto-cgraph.c (reachable_from_other_partition_p): New function.
31302         (lto_output_node): Output new flags; do not sanity check that inline
31303         clones are output; drop lto_forced_extern_inline_p code; do not mock
31304         visibility flags at partition boundaries.
31305         (add_node_to): New function.
31306         (output_cgraph): Use it to sort functions so masters appear before
31307         clones.
31308         (input_overwrite_node): Input new flags.
31309         * passes.c (ipa_write_summaries): Do not call
31310         lto_new_extern_inline_states.
31311         * lto-section-out.c (forced_extern_inline,
31312         lto_new_extern_inline_states lto_delete_extern_inline_states,
31313         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
31314         * lto-streamer.h (lto_new_extern_inline_states,
31315         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
31316         lto_forced_extern_inline_p): Kill.
31317
31318 2010-04-20  Richard Guenther  <rguenther@suse.de>
31319
31320         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
31321         from vars that can have pointers.
31322         (process_constraint): Dump useless constraints.
31323
31324 2010-04-20  Richard Guenther  <rguenther@suse.de>
31325
31326         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
31327         (dump_sa_points_to_info): Remove asserts.
31328         (init_base_vars): nothing_id isn't an escape point nor does it
31329         have pointers.
31330
31331 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
31332
31333         * tree.h (TYPE_REF_IS_RVALUE): Define.
31334         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
31335         should_move_die_to_comdat, prune_unused_types_walk): Handle
31336         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
31337         (modified_type_die, gen_reference_type_die): Emit
31338         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
31339         if TYPE_REF_IS_RVALUE and -gdwarf-4.
31340
31341 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31342
31343         PR target/43635
31344         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
31345         calls for -fpic -m31 if they have been sibcall optimized.
31346
31347 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
31348
31349         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
31350         ar.lc fixed and call-used.
31351
31352         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
31353
31354 2010-04-19  Jan Hubicka  <jh@suse.cz>
31355
31356         * opts.c (decode_options): Disable whpr incompatible passes.
31357         * lto/lto.c (lto_1_to_1_map): Skip clones.
31358         (read_cgraph_and_symbols): Do not mark everything as needed.
31359         (do_whole_program_analysis): Do map only after optimizing;
31360         set proper cgraph_state; use passmanager.
31361
31362 2010-04-19  DJ Delorie  <dj@redhat.com>
31363
31364         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
31365         POINTER_PLUS_EXPR and fix them.
31366
31367 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
31368
31369         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
31370         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
31371         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
31372         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
31373         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
31374         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
31375         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
31376         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
31377         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
31378         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
31379         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
31380
31381 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
31382
31383         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
31384         (check_cond_move_block): Likewise.
31385         (cond_move_process_if_block): Likewise.
31386         (noce_find_if_block): Improve formatting.
31387         (find_if_header): Pass 0 to memset and tweak conditions.
31388         (cond_exec_find_if_block): Fix long lines and tweak conditions.
31389
31390 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
31391
31392         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
31393         for -gdwarf-4.
31394
31395         PR middle-end/43337
31396         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
31397         with non-local decl doesn't need chain.
31398
31399 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
31400
31401         * ira-color.c (allocno_reload_assign): Avoid accumulating
31402         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
31403
31404 2010-04-19  Martin Jambor  <mjambor@suse.cz>
31405
31406         * gimple.h (create_tmp_reg): Declare.
31407         * gimplify.c (create_tmp_reg): New function.
31408         (gimplify_return_expr): Use create_tmp_reg.
31409         (gimplify_omp_atomic): Likewise.
31410         (gimple_regimplify_operands): Likewise.
31411         * tree-dfa.c (make_rename_temp): Likewise.
31412         * tree-predcom.c (predcom_tmp_var): Likewise.
31413         (reassociate_to_the_same_stmt): Likewise.
31414         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
31415         (get_replaced_param_substitute): Likewise.
31416         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
31417         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
31418         * tree-ssa-pre.c (get_representative_for): Likewise.
31419         (create_expression_by_pieces): Likewise.
31420         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
31421         (create_tailcall_accumulator): Likewise.
31422
31423 2010-04-19  Martin Jambor  <mjambor@suse.cz>
31424
31425         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
31426         new_stmt.
31427         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
31428
31429 2010-04-19  Richard Guenther  <rguenther@suse.de>
31430
31431         PR tree-optimization/43796
31432         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
31433         from SCEV in the lattice.
31434         (vrp_visit_phi_node): Dump change.
31435
31436 2010-04-19  Richard Guenther  <rguenther@suse.de>
31437
31438         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
31439         * configure: Re-generated.
31440
31441 2010-04-19  Richard Guenther  <rguenther@suse.de>
31442
31443         PR tree-optimization/43783
31444         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
31445         constant ARRAY_REF operands two and three if possible.
31446
31447 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
31448
31449         PR target/43766
31450         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
31451
31452 2010-04-19  Jie Zhang  <jie@codesourcery.com>
31453
31454         PR target/43662
31455         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
31456
31457 2010-04-19  Ira Rosen  <irar@il.ibm.com>
31458
31459         PR tree-optimization/37027
31460         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
31461         and macro to access it.
31462         (vectorizable_reduction): Add argument.
31463         (vect_get_slp_defs): Likewise.
31464         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
31465         statements for possible use in SLP.
31466         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
31467         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
31468         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
31469         add new argument.
31470         (vectorizable_reduction): Likewise.
31471         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
31472         vect_get_slp_defs.
31473         (vectorizable_type_demotion, vectorizable_type_promotion,
31474         vectorizable_store): Likewise.
31475         (vect_analyze_stmt): Update call to vectorizable_reduction.
31476         (vect_transform_stmt): Likewise.
31477         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
31478         (vect_build_slp_tree): Fix indentation. Check that there are no loads
31479         from different interleaving chains in same node.
31480         (vect_slp_rearrange_stmts): New function.
31481         (vect_supported_load_permutation_p): Allow load permutations for
31482         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
31483         inside SLP nodes if necessary.
31484         (vect_analyze_slp_instance): Handle reductions.
31485         (vect_analyze_slp): Try to build SLP instances originating from groups
31486         of reductions.
31487         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
31488         (vect_get_constant_vectors): Create initial vectors for reductions
31489         according to reduction code. Add new argument.
31490         (vect_get_slp_defs): Add new argument, pass it to
31491         vect_get_constant_vectors.
31492         (vect_schedule_slp_instance): Remove SLP tree root statements.
31493
31494 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
31495
31496         * tree.h (ENUM_IS_SCOPED): Define.
31497         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
31498         for ENUM_IS_SCOPED enums.
31499
31500 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
31501
31502         * fold-const.c (fold_comparison): Use ssizetype.
31503         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
31504         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
31505         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
31506         * tree-object-size.c (compute_object_sizes): Use size_type_node.
31507
31508         * tree.h (initialize_sizetypes): Remove parameter.
31509         (build_common_tree_nodes): Remove second parameter.
31510         * stor-layout.c (initialize_sizetypes): Remove parameter.
31511         Always create an unsigned type.
31512         (set_sizetype): Assert that the passed type is unsigned and simplify.
31513         * tree.c (build_common_tree_nodes): Remove second parameter.
31514         Adjust call to initialize_sizetypes.
31515         * c-decl.c (c_init_decl_processing): Remove second argument in call to
31516         build_common_tree_nodes.
31517
31518 2010-04-18  Matthias Klose  <doko@ubuntu.com>
31519
31520         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
31521
31522 2010-04-18  Ira Rosen  <irar@il.ibm.com>
31523
31524         PR tree-optimization/43771
31525         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
31526         load permutation doesn't have gaps.
31527
31528 2010-04-18  Jan Hubicka  <jh@suse.cz>
31529
31530         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
31531         (sse_prologue_save_insn expander): Use new pattern.
31532         (sse_prologue_save_insn1): New pattern and splitter.
31533         (sse_prologue_save_insn): Update to deal also with 64bit aligned
31534         blocks.
31535         * i386.c (setup_incoming_varargs_64): Do not compute jump
31536         destination here.
31537         (ix86_gimplify_va_arg): Update alignment needed.
31538         (ix86_local_alignment): Do not align all local arrays to 128bit.
31539
31540 2010-04-17  Jan Hubicka  <jh@suse.cz>
31541
31542         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
31543
31544 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
31545
31546         * arm.md (negdi2): Remove redundant code to force values into a
31547         register.
31548
31549 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
31550
31551         * arm/bpabi.S: Add EABI alignment attributes to objects.
31552         * arm/bpabi-v6m.S: Likewise.
31553         * arm/crti.asm: Likewise.
31554         * arm/crtn.asm: Likewise.
31555         * arm/lib1funcs.asm: Likewise.
31556         * arm/libunwind.S: Likewise.
31557
31558 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
31559
31560         * arm-protos.h (tune_params): New structure.
31561         * arm.c (current_tune): New variable.
31562         (arm_constant_limit): Delete.
31563         (struct processors): Add pointer to the tune parameters.
31564         (arm_slowmul_tune): New tuning option.
31565         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
31566         (all_cores): Adjust to pick up the tuning model.
31567         (arm_constant_limit): New function.
31568         (arm_override_options): Select the appropriate tuning model.  Delete
31569         initialization of arm_const_limit.
31570         (arm_split_constant): Use the new constant-limit model.
31571         (arm_rtx_costs): Pick up the current tuning model.
31572         * arm.md (is_strongarm, is_xscale): Delete.
31573         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
31574         for Xscale variant architectures.
31575         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
31576
31577 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31578
31579         * config/arm/arm.c (arm_gen_constant): Remove unused variable
31580         can_shift.
31581         (arm_rtx_costs_1): Remove unused variable extra_cost.
31582         (arm_unwind_emit_set): Use variable offset.
31583         (thumb1_output_casesi): Remove unused variable flags.
31584
31585 2010-04-16  Jeff Law  <law@redhat.com>
31586
31587         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
31588         needing assignment rather than doing a two-phase assignment.  Remove
31589         unused variable 'm'.
31590
31591 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
31592
31593         PR bootstrap/43767
31594         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
31595
31596 2010-04-16  Doug Kwan  <dougkwan@google.com>
31597
31598         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
31599         (next_operand_entry_id): New static variable.
31600         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
31601         (add_to_ops_vec): Assigned unique ID to operand entry.
31602         (struct oecount_s): New field ID.
31603         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
31604         (undistribute_ops_list): Assign unique IDs to oecounts.
31605         (init_reassoc): reset next_operand_entry_id.
31606
31607 2010-04-16  Doug Kwan  <dougkwan@google.com>
31608
31609         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
31610         missing left parenthesis.
31611
31612 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
31613
31614         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
31615         *btdi_rex64 using SWI48 mode iterator.
31616         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
31617         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
31618         *jcc_btdi_mask_rex64.
31619
31620 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
31621
31622         * double-int.h (tree_to_double_int): Convert to macro.
31623         * double-int.c (tree_to_double_int): Remove.
31624
31625 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
31626
31627         PR debug/43762
31628         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
31629         with want_address 2 and in case a single element list might be
31630         possible, call it again with want_address 0.
31631
31632 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
31633
31634         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
31635         case 'W' print operands for HI mode.
31636         * config/h8300/h8300.h (Y0, Y2) : New constraints.
31637         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
31638         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
31639         * config/h8300/predicate.md (bit_register_indirect_operand): New.
31640
31641         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
31642
31643         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
31644         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
31645         #xx:3 and #xx:4 mode.
31646
31647         * config/h8300/h8300.md (inverted load with HImode dest): Add
31648         support for H8300SX.
31649
31650         * config/h8300/predicate.md (bit_operand): Allow immediate values that
31651         satisfy 'U' constraint.
31652
31653 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31654
31655         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
31656         * configure: Regenerate.
31657         * config.in: Regenerate.
31658         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
31659         works.
31660
31661 2010-04-16  Richard Guenther  <rguenther@suse.de>
31662
31663         * tree.h (struct tree_decl_minimal): Move pt_uid ...
31664         (struct tree_decl_common): ... here.
31665         (DECL_PT_UID): Adjust.
31666         (SET_DECL_PT_UID): Likewise.
31667         (DECL_PT_UID_SET_P): Likewise.
31668
31669 2010-04-16  Richard Guenther  <rguenther@suse.de>
31670
31671         PR tree-optimization/43572
31672         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
31673         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
31674         * tree-flow.h (is_call_clobbered): Remove.
31675         * tree-flow-inline.h (is_call_clobbered): Likewise.
31676         * tree-dfa.c (dump_variable): Do not dump call clobber state.
31677         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
31678         (execute_return_slot_opt): Adjust.
31679         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
31680         check for call clobbered vars here.
31681         (find_tail_calls): Move tailcall verification to the
31682         proper place.
31683
31684 2010-04-16  Diego Novillo  <dnovillo@google.com>
31685
31686         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
31687
31688 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
31689
31690         PR target/40603
31691         * config/arm/arm.md (cbranchqi4): New pattern.
31692         * config/arm/predicates.md (const0_operand,
31693         cbranchqi4_comparison_operator): New predicates.
31694
31695 2010-04-16  Richard Guenther  <rguenther@suse.de>
31696
31697         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
31698         (dump_gimple_stmt): Likewise.
31699
31700 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
31701
31702         * recog.h (struct recog_data): New field is_operator.
31703         (struct insn_operand_data): New field is_operator.
31704         * recog.c (extract_insn): Set recog_data.is_operator.
31705         * genoutput.c (output_operand_data): Emit code to set the
31706         is_operator field.
31707         * reload.c (find_reloads): Use it rather than testing for an
31708         empty constraint string.
31709
31710         PR target/41514
31711         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
31712         If the previous insn is a cbranchsi4_insn with the same arguments,
31713         omit the compare instruction.
31714
31715         * config/arm/arm.md (addsi3_cbranch): If destination is a high
31716         register, inputs must be low registers and we need a low register
31717         scratch.  Handle alternative 2 like alternative 3.
31718
31719 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
31720
31721         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
31722         don't call get_addr on both.  If one expression is a VALUE and
31723         the other a REG, check VALUE's locs if the REG isn't among them.
31724
31725 2010-04-16  Christian Bruel  <christian.bruel@st.com>
31726
31727         * config/sh/sh.h (sh_frame_pointer_required): New function.
31728         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
31729         (flag_omit_frame_pointer) Set.
31730         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
31731         (rounded_frame_size): Adjust size with outgoing_args_size.
31732         (sh_set_return_address): Must return from stack pointer.
31733         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
31734         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
31735         (ACCUMULATE_OUTGOING_ARGS): Define.
31736         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
31737         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
31738
31739 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
31740
31741         PR target/43471
31742         * config/sh/sh.c (sh_legitimize_reload_address): Use
31743         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
31744         Remove a unneeded check for offset_base.
31745
31746 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
31747
31748         * configure: Regenerated.
31749
31750 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31751
31752         * config/s390/s390.c (s390_call_save_register_used): Switch back
31753         to HARD_REGNO_NREGS.
31754
31755 2010-04-15  Richard Guenther  <rguenther@suse.de>
31756
31757         * alias.c (alias_set_subset_of): Handle alias-set zero
31758         child properly.
31759
31760 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
31761             Julian Brown  <julian@codesourcery.com>
31762
31763         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
31764         alternatives according to use of high and low regs.
31765         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
31766         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
31767         optimizing for size on Thumb-2.
31768
31769 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
31770
31771         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
31772
31773 2010-04-15  Richard Guenther  <rguenther@suse.de>
31774
31775         * tree-ssa-structalias.c (struct variable_info): Add
31776         is_fn_info flag.
31777         (new_var_info): Initialize it.
31778         (dump_constraints): Support printing last added constraints.
31779         (debug_constraints): Adjust.
31780         (dump_constraint_graph): Likewise.
31781         (make_heapvar_for): Check for NULL cfun.
31782         (get_function_part_constraint): New function.
31783         (get_fi_for_callee): Likewise.
31784         (find_func_aliases): Properly implement IPA PTA constraints.
31785         (process_ipa_clobber): New function.
31786         (find_func_clobbers): Likewise.
31787         (insert_into_field_list_sorted): Remove.
31788         (create_function_info_for): Properly allocate vars for IPA mode.
31789         Do not use insert_into_field_list_sorted.
31790         (create_variable_info_for): Properly generate constraints for
31791         global vars in IPA mode.
31792         (dump_solution_for_var): Always dump the solution.
31793         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
31794         (find_what_var_points_to): Adjust.
31795         (pt_solution_set): Change.
31796         (pt_solution_ior_into): New function.
31797         (pt_solution_empty_p): Export.
31798         (pt_solution_includes_global): Adjust.
31799         (pt_solution_includes_1): Likewise.
31800         (pt_solutions_intersect_1): Likewise.
31801         (dump_sa_points_to_info): Check some invariants.
31802         (solve_constraints): Move constraint dumping ...
31803         (compute_points_to_sets): ... here.
31804         (ipa_pta_execute): ... and here.
31805         (compute_may_aliases): Do not re-compute points-to info
31806         locally if IPA info is available.
31807         (ipa_escaped_pt): New global var.
31808         (ipa_pta_execute): Properly implement IPA PTA.
31809         * tree-into-ssa.c (dump_decl_set): Support dumping
31810         decls not in referenced-vars.
31811         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
31812         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
31813         (dump_points_to_solution): Likewise.
31814         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
31815         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
31816         (remap_gimple_stmt): Reset call clobber/use information if necessary.
31817         (copy_decl_to_var): Copy DECL_PT_UID.
31818         (copy_result_decl_to_var): Likewise.
31819         * tree.c (make_node_stat): Initialize DECL_PT_UID.
31820         (copy_node_stat): Copy it.
31821         * tree.h (DECL_PT_UID): New macro.
31822         (SET_DECL_PT_UID): Likewise.
31823         (DECL_PT_UID_SET_P): Likewise.
31824         (struct tree_decl_minimal): Add pt_uid member.
31825         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
31826         (pt_solution_empty_p): Declare.
31827         (pt_solution_set): Adjust.
31828         (ipa_escaped_pt): Declare.
31829         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
31830         * gimple-pretty-print.c (pp_points_to_solution): New function.
31831         (dump_gimple_call): Dump call clobber/use information.
31832         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
31833         * tree-pass.h (TDF_ALIAS): New dump option.
31834         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
31835         * doc/invoke.texi (-fipa-pta): Update documentation.
31836
31837 2010-04-15  Richard Guenther  <rguenther@suse.de>
31838
31839         * Makefile.in (OBJS-common): Add gimple-fold.o.
31840         (gimple-fold.o): New rule.
31841         * tree.h (maybe_fold_offset_to_reference,
31842         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
31843         prototypes ...
31844         * gimple.h: ... here.
31845         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
31846         may_propagate_address_into_dereference): Move prototypes ...
31847         * gimple.h: ... here.
31848         * tree-ssa-ccp.c (get_symbol_constant_value,
31849         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
31850         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
31851         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
31852         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
31853         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
31854         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
31855         gimplify_and_update_call_from_tree): Move ...
31856         * gimple-fold.c: ... here.  New file.
31857         (ccp_fold_builtin): Rename to ...
31858         (gimple_fold_builtin): ... this.
31859         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
31860
31861 2010-04-15  Richard Guenther  <rguenther@suse.de>
31862
31863         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
31864         fit_double_type, force_fit_type_double, add_double_with_sign,
31865         neg_double, mul_double_with_sign, lshift_double, rshift_double,
31866         lrotate_double, rrotate_double, div_and_round_double): Move ...
31867         * double-int.c: ... here.
31868         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
31869         add_double, neg_double, mul_double_with_sign, mul_double,
31870         lshift_double, rshift_double, lrotate_double, rrotate_double,
31871         div_and_round_double): Move prototypes ...
31872         * double-int.h: ... here.
31873
31874 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
31875
31876         PR target/43742
31877         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
31878         matching constraints to ensure inputs match the output.
31879
31880 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
31881
31882         PR target/43742
31883         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
31884         in an input-only operand.
31885
31886 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
31887
31888         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
31889         (double_int_not, double_int_lshift, double_int_rshift): Declare.
31890         (double_int_negative_p): Convert to static inline function.
31891         * double-int.c (double_int_lshift, double_int_lshift): New functions.
31892         (double_int_negative_p): Remove.
31893         * tree.h (lshift_double, rshift_double):
31894         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
31895         * fold-const.c (fold_convert_const_int_from_real,
31896         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
31897         (lshift_double): Change type of arith argument to bool.
31898         (rshift_double): Change type of arith argument to bool. Correct
31899         comment.
31900         * expmed.c (mask_rtx, lshift_value): (Ditto.).
31901
31902 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
31903
31904         PR target/21803
31905         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
31906         at the start and end of the then/else blocks, and omit them from the
31907         conversion.
31908         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
31909         argument; all callers changed.  Pass zero to old_insns_match_p instead.
31910         (flow_find_head_matching_sequence): New function.
31911         (old_insns_match_p): Check REG_EH_REGION notes for calls.
31912         * basic-block.h (flow_find_cross_jump,
31913         flow_find_head_matching_sequence): Declare functions.
31914
31915 2010-04-14  Jason Merrill  <jason@redhat.com>
31916
31917         PR c++/36625
31918         * c-common.c (attribute_takes_identifier_p): New fn.
31919         * c-common.h: Declare it.
31920
31921 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31922
31923         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
31924         splitter condition.
31925         (*udivmod<mode>4): Ditto.
31926
31927 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31928
31929         * config/i386/i386.md (maxmin_int): Rename code attribute from
31930         maxminiprefix and update all users.
31931         (maxmin_float): Ditto from maxminfprefix.
31932         (logic): Ditto from logicprefix.
31933         (absneg_mnemonic): Ditto from absnegprefix.
31934         * config/i386/mmx.md: Update all users of maxminiprefix,
31935         maxminfprefix and logicprefix for rename.
31936         * config/i386/sse.md: Ditto.
31937         * config/i386/sync.md (sync_<code><mode>): Update for
31938         logicprefix rename.
31939
31940 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31941
31942         PR 42966
31943         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
31944         warnings converted to errors.
31945
31946 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31947
31948         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
31949         used insn_type variable.
31950         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
31951         to avoid set-but-not-used warning.
31952
31953 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31954
31955         * df-core.c (df_ref_debug): Change format string placeholder
31956         from 0x%x to %#x.
31957         * dwarf2asm.c (dw2_asm_output_data_raw,
31958         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
31959         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
31960         * dwarf2out.c (output_cfi, output_cfi_directive,
31961         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
31962         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
31963         Ditto.
31964         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
31965         * print-rtl.c (print_rtx): Ditto.
31966
31967 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
31968
31969         PR middle-end/42694
31970         * builtins.c (expand_builtin_pow_root): New function to expand pow
31971         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
31972         series of sqrt and cbrt calls under -ffast-math.
31973         (expand_builtin_pow): Call it.
31974
31975 2010-04-14  Michael Matz  <matz@suse.de>
31976
31977         PR tree-optimization/42963
31978         * tree-cfg.c (touched_switch_bbs): New static variable.
31979         (group_case_labels_stmt): New function broken out from ...
31980         (group_case_labels): ... here, use the above.
31981         (start_recording_case_labels): Allocate touched_switch_bbs.
31982         (end_recording_case_labels): Deallocate it, call
31983         group_case_labels_stmt.
31984         (gimple_redirect_edge_and_branch): Remember index of affected BB.
31985
31986 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31987
31988         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
31989         from insn template.
31990
31991 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31992
31993         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
31994
31995 2010-04-13  Jan Hubicka  <jh@suse.cz>
31996
31997         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
31998         of optimized out static functions.
31999         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
32000         cost computation.  Also sanity check for overflows.
32001         (update_caller_keys): Update cgraph_edge_badness call; properly
32002         update fibheap and sanity check that it is up to date.
32003         (add_new_edges_to_heap): Update cgraph_edge_badness.
32004         (cgraph_decide_inlining_of_small_function): Likewise;
32005         add sanity checking that badness in heap is up to date;
32006         improve dumping of reason; Update badness of calls to the
32007         offline copy of function currently inlined; dump badness
32008         of functions not inlined because of unit growth limits.
32009
32010 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
32011
32012         PR middle-end/32628
32013         * c-common.c (pointer_int_sum): Disregard overflow that occured only
32014         because of sign-extension change when converting to sizetype here...
32015         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
32016
32017         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
32018         the folding to constants.  Remove redundant final conversion.
32019         (fold_binary) <associate>: Do not associate if the re-association of
32020         constants alone overflows.
32021         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
32022         to the end of the list.
32023         (multiple_of_p) <COND_EXPR>: New case.
32024
32025 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32026
32027         * opt-functions.awk (opt_sanitized_name): New.
32028         (opt_enum): New.
32029         * optc-gen.awk: Use it
32030         * opth-gen.awk: Use it.
32031
32032 2010-04-13  Martin Jambor  <mjambor@suse.cz>
32033
32034         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
32035         (sra_modify_assign): Delete stmts loading dead data even if racc has no
32036         children.  Call replace_uses_with_default_def_ssa_name to handle
32037         SSA_NAES on lhs.
32038
32039 2010-04-13  Michael Matz  <matz@suse.de>
32040
32041         PR middle-end/43730
32042         * builtins.c (expand_builtin_interclass_mathfn): Also create
32043         a register if the predicate doesn't match.
32044
32045 2010-04-13  Diego Novillo  <dnovillo@google.com>
32046
32047         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
32048         * c-pch.c: Include timevar.h.
32049         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
32050         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
32051         * ggc-common.c: Include timevar.h.
32052         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
32053         * timevar.def (TV_PCH_SAVE): Define.
32054         (TV_PCH_CPP_SAVE): Define.
32055         (TV_PCH_PTR_REALLOC): Define.
32056         (TV_PCH_PTR_SORT): Define.
32057         (TV_PCH_RESTORE): Define.
32058         (TV_PCH_CPP_RESTORE): Define.
32059
32060 2010-04-13  Michael Matz  <matz@suse.de>
32061
32062         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
32063         into MINUS_EXPRs.
32064         (can_reassociate_p): New function.
32065         (break_up_subtract_bb, reassociate_bb): Use it.
32066
32067 2010-04-13  Richard Guenther  <rguenther@suse.de>
32068
32069         PR bootstrap/43737
32070         * builtins.c (c_readstr): Fix assert.
32071
32072 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
32073
32074         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
32075         when generating cltd insn.
32076
32077         (*ashl<mode>3_1): Remove special handling for register operand 2.
32078         (*ashlsi3_1_zext): Ditto.
32079         (*ashlhi3_1): Ditto.
32080         (*ashlhi3_1_lea): Ditto.
32081         (*ashlqi3_1): Ditto.
32082         (*ashlqi3_1_lea): Ditto.
32083         (*<shiftrt_insn><mode>3_1): Ditto.
32084         (*<shiftrt_insn>si3_1_zext): Ditto.
32085         (*<shiftrt_insn>qi3_1_slp): Ditto.
32086         (*<rotate_insn><mode>3_1): Ditto.
32087         (*<rotate_insn>si3_1_zext): Ditto.
32088         (*<rotate_insn>qi3_1_slp): Ditto.
32089
32090 2010-04-13  Richard Guenther  <rguenther@suse.de>
32091
32092         * tree-ssa-structalias.c (callused_id): Remove.
32093         (call_stmt_vars): New.
32094         (get_call_vi): Likewise.
32095         (lookup_call_use_vi): Likewise.
32096         (lookup_call_clobber_vi): Likewise.
32097         (get_call_use_vi): Likewise.
32098         (get_call_clobber_vi): Likewise.
32099         (make_transitive_closure_constraints): Likewise.
32100         (handle_const_call): Adjust to do per-call call-used handling.
32101         (handle_pure_call): Likewise.
32102         (find_what_var_points_to): Remove general callused handling.
32103         (init_base_vars): Likewise.
32104         (init_alias_vars): Initialize call_stmt_vars.
32105         (compute_points_to_sets): Process call-used and call-clobbered
32106         vars for call statements.
32107         (delete_points_to_sets): Free call_stmt_vars.
32108
32109 2010-04-13  Richard Guenther  <rguenther@suse.de>
32110
32111         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
32112         Only add RW dependence for dependence distance zero.
32113         Adjust maximal vectorization factor according to dependences.
32114         Move alignment handling ...
32115         (vect_find_same_alignment_drs): ... here.  New function.
32116         (vect_analyze_data_ref_dependences): Adjust.
32117         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
32118         (vect_analyze_data_refs): Adjust minimal vectorization factor
32119         according to data references.
32120         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
32121         dependences before determining the vectorization factor.
32122         Analyze alignment after determining the vectorization factor.
32123         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
32124         dependences before alignment.
32125         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
32126         Adjust prototype.
32127         (vect_analyze_data_refs): Likewise.
32128         (MAX_VECTORIZATION_FACTOR): New define.
32129
32130 2010-04-13  Duncan Sands  <baldrick@free.fr>
32131
32132         * except.h (lang_eh_type_covers): Remove.
32133         * except.c (lang_eh_type_covers): Likewise.
32134
32135 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32136             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32137
32138         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
32139         * config/s390/s390.c: Replace UNTIS_PER_WORD with
32140         UNITS_PER_LONG where it is ABI relevant.
32141         (s390_return_addr_rtx): Likewise.
32142         (s390_back_chain_rtx): Likewise.
32143         (s390_frame_area): Likewise.
32144         (s390_frame_info): Likewise.
32145         (s390_initial_elimination_offset): Likewise.
32146         (save_gprs): Likewise.
32147         (s390_emit_prologue): Likewise.
32148         (s390_emit_epilogue): Likewise.
32149         (s390_function_arg_advance): Likewise.
32150         (s390_function_arg): Likewise.
32151         (s390_va_start): Likewise.
32152         (s390_gimplify_va_arg): Likewise.
32153         (s390_function_profiler): Likewise.
32154         (s390_optimize_prologue): Likewise.
32155         (s390_rtx_costs): Likewise.
32156         (s390_secondary_reload): Likewise.
32157         (s390_promote_function_mode): Likewise.
32158         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
32159         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
32160         registers available.
32161         (s390_unwind_word_mode): New function.
32162         (s390_function_value): Split 64 bit values into register pair if
32163         used as return value.
32164         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
32165         function call parameters.  Handle parallels.
32166         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
32167         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
32168         (DWARF_CIE_DATA_ALIGNMENT): New macro.
32169         (s390_expand_setmem): Remove unused variable src_addr.
32170         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
32171         deal with 64 bit registers.
32172         * config/s390/s390.h: Define __zarch__ predefined macro.
32173         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
32174         (UNITS_PER_LONG): New macro.
32175         * libjava/include/s390-signal.h: Define extended ucontext
32176         structure containing the upper halfs of the 64 bit registers.
32177
32178 2010-04-13  Simon Baldwin  <simonb@google.com>
32179
32180         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
32181
32182 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
32183
32184         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
32185         rvalue on the RHS if the LHS is of a non-renamable type.
32186         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
32187
32188 2010-04-13  Matthias Klose  <doko@ubuntu.com>
32189
32190         * gcc.c (cc1_options): Handle -iplugindir before processing
32191         the cc1 spec. Only add -iplugindir once.
32192         (cpp_unique_options): Add -iplugindir option if -fplugin* options
32193         found.
32194         * common.opt (iplugindir): Remove `Separate' property, initialize.
32195         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
32196         option.
32197         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
32198         (distclean): Remove plugin dir.
32199         * doc/invoke.texi: Document -iplugindir.
32200
32201 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
32202
32203         * doc/plugins.texi (Loading Plugins): Document short
32204         -fplugin=foo option.
32205         (Plugin API): Mention default_plugin_dir_name function.
32206
32207         * gcc.c (find_file_spec_function): Add new declaration.
32208         (static_spec_func): Use it for "find-file".
32209         (find_file_spec_function): Add new function.
32210         (cc1_options): Add -iplugindir option if -fplugin* options found.
32211
32212         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
32213
32214         * plugin.c (add_new_plugin): Updated comment, and handle short
32215         plugin name.
32216         (default_plugin_dir_name): Added new function.
32217
32218         * common.opt (iplugindir): New option to set the plugin directory.
32219
32220 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
32221
32222         * config/i386/i386.md (any_rotate): New code iterator.
32223         (rotate_insn): New code attribute.
32224         (rotate): Ditto.
32225         (SWIM124): New mode iterator.
32226         (<rotate_insn>ti3): New expander.
32227         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
32228         any_rotate code iterator.
32229         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
32230         using any_rotate code iterator and SWIM124 mode iterator.
32231         (ix86_rotlti3): New insn_and_split pattern.
32232         (ix86_rotrti3): Ditto.
32233         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
32234         ix86_rotl{di,ti}3 patterns.
32235         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
32236         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
32237         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
32238         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
32239         code iterator and SWI mode iterator.
32240         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
32241         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
32242         code iterator.
32243         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
32244         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
32245         (bswap rotatert splitter): Add splitter.
32246         (bswap splitter): Macroize splitter using any_rotate code iterator.
32247         Add insn predicate to split only for TARGET_USE_XCHGB or when
32248         optimizing function for size.
32249
32250 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32251
32252         * config/pa/pa.c (emit_move_sequence): Remove use of
32253         deleted variable flag_argument_noalias.
32254
32255 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32256
32257         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
32258         configurations.
32259         Add to unsupported targets list.
32260         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
32261         sparc*-sun-solaris2.[567]* from target lists.
32262         * configure: Regenerate.
32263         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
32264         removal.
32265         Remove Solaris 7 patch references.
32266         (Specific, sparc-sun-solaris2.7): Removed.
32267         (sparc-sun-solaris2*): Update Solaris 7 example.
32268         (sparc64-*-solaris2*): Likewise.
32269
32270 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32271
32272         * config.build (alpha*-dec-osf4*): Remove.
32273         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
32274         of obsolete configurations.
32275         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
32276         support.
32277         * config/alpha/t-osf4: Renamed to ...
32278         * config/alpha/t-osf5: ... this.
32279         * config/alpha/osf.h: Renamed to ...
32280         * config/alpha/osf5.h: ... this.
32281         Merged old osf5.h contents.
32282         Update comments.
32283         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
32284         (EXTRA_SPECS): Removed.
32285         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
32286         reflect removal of Tru64 UNIX V4.0/V5.0 support.
32287         Document that.
32288
32289 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32290
32291         * doc/contrib.texi (Contributors, Rainer Orth): Update.
32292
32293 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
32294
32295         PR/43702
32296         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
32297         __thiscall convention.
32298
32299 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32300
32301         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
32302         orig_base.
32303         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
32304
32305 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32306
32307         * function.c (assign_parms_initialize_all): Add unused attribute
32308         to fntype.
32309
32310 2010-04-12  Richard Guenther  <rguenther@suse.de>
32311
32312         * gsstruct.def (GSS_CALL): New.
32313         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
32314         * gimple.h: Include tree-ssa-alias.h.
32315         (struct gimple_statement_call): New.
32316         (union gimple_statement_struct_d): Add gimple_call member.
32317         (gimple_call_reset_alias_info): Declare.
32318         (gimple_call_use_set): New function.
32319         (gimple_call_clobber_set): Likewise.
32320         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
32321         * gimple.c (gimple_call_reset_alias_info): New function.
32322         (gimple_build_call_1): Call it.
32323         * lto-streamer-in.c (input_gimple_stmt): Likewise.
32324         * tree-inline.c (remap_gimple_stmt): Likewise.
32325         (expand_call_inline): Remove callused handling.
32326         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
32327         * tree-dfa.c (dump_variable): Likewise.
32328         * tree-parloops.c (parallelize_loops): Likewise.
32329         * tree-ssa.c (init_tree_ssa): Likewise.
32330         (delete_tree_ssa): Likewise.
32331         * tree-flow-inline.h (is_call_used): Remove.
32332         * tree-flow.h (struct gimple_df): Remove callused member.
32333         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
32334         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
32335         (ref_maybe_used_by_call_p_1): Simplify.
32336         (call_may_clobber_ref_p_1): Likewise.
32337         * tree-ssa-structalias.c (compute_points_to_sets): Set
32338         the call stmt used and clobbered sets.
32339         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
32340         (find_tail_calls): Verify the tail call.
32341
32342 2010-04-12  Richard Guenther  <rguenther@suse.de>
32343
32344         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
32345         single-iteration always-inline inlining.
32346         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
32347         (cgraph_decide_inlining): Do not handle always-inline specially.
32348         (try_inline): Remove always-inline cycle detection special case.
32349         Do not recurse on always-inlines.
32350         (cgraph_early_inlining): Do not iterate if not optimizing.
32351         (cgraph_gate_early_inlining): remove.
32352         (pass_early_inline): Run unconditionally.
32353         (gate_cgraph_decide_inlining): New function.
32354         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
32355         not inlining or optimizing.
32356         (cgraph_decide_inlining_of_small_functions): Also consider
32357         always-inline functions.
32358         (cgraph_default_inline_p): Return true for nodes which should
32359         disregard inline limits.
32360         (estimate_function_body_sizes): Assume zero size and time for
32361         nodes which are marked as disregarding inline limits.
32362         (cgraph_decide_recursive_inlining): Do not perform recursive
32363         inlining on always-inline nodes.
32364
32365 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
32366
32367         PR bootstrap/43699
32368         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
32369         for exprs satisfying handled_component_p.
32370
32371 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
32372
32373         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
32374         non-constant aggregate elements.
32375
32376         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
32377         is a real initialization.
32378
32379 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
32380
32381         PR c/36774
32382         * c-decl.c (start_function): Move forward check for nested function.
32383
32384 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
32385
32386         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
32387         * config/sh/sh.c: Include reload.h.
32388         (sh_legitimize_reload_address): New.
32389         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
32390         sh_legitimize_reload_address.
32391
32392 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32393
32394         * config/sh/sh.md (*movqi_pop): New insn pattern.
32395         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
32396
32397 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32398
32399         * config/i386/i386.md (any_shiftrt): New code iterator.
32400         (shiftrt_insn): New code attribute.
32401         (shiftrt): Ditto.
32402         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
32403         using any_shiftrt code iterator.
32404         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
32405         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
32406         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
32407         pattern from corresponding peephole2 patterns.
32408         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
32409         using any_shiftrt code iterator.
32410         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
32411         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
32412         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
32413         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
32414         *{ashr,lshr}<mode>3_cmp_zext.
32415         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
32416
32417 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32418
32419         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
32420         scratch register.
32421         (*lshr<mode>3_cconly): Ditto.
32422
32423 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32424
32425         * config/i386/i386.md (lshr<mode>3): Macroize expander from
32426         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
32427         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32428         pattern from *lshr{di,ti}3_1 and corresponding splitters using
32429         DWI mode iterator.
32430         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
32431         from corresponding peephole2 patterns.
32432         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
32433         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
32434         and *lshrdi3_1_rex64 using SWI mode iterator.
32435         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
32436         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
32437         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
32438         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
32439         and *lshrdi3_cmp_rex64 using SWI mode iterator.
32440         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
32441         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
32442         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
32443         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
32444         SWI mode iterator.
32445
32446 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
32447
32448         * config/i386/i386.md (ashr<mode>3): Macroize expander from
32449         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
32450         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32451         pattern from *ashr{di,ti}3_1 and corresponding splitters using
32452         DWI mode iterator.
32453         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
32454         from corresponding peephole2 patterns.
32455         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
32456         (ashrsi3_cvt): Rename from ashrsi3_31.
32457         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
32458         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
32459         and x86_64_shift_adj_3 using SWI48 mode iterator.
32460         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
32461         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
32462         and *ashrdi3_1_rex64 using SWI mode iterator.
32463         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
32464         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
32465         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
32466         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
32467         and *ashrdi3_cmp_rex64 using SWI mode iterator.
32468         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
32469         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
32470         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
32471         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
32472         SWI mode iterator.
32473         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
32474         * config/i386/i386.c (ix86_split_ashr): Update for renamed
32475         x86_shift<mode>_adj_3 expanders.
32476
32477 2010-04-10  Wei Guozhi  <carrot@google.com>
32478
32479         PR target/42601
32480         * config/arm/arm.c (arm_pic_static_addr): New function.
32481         (legitimize_pic_address): Call arm_pic_static_addr when it detects
32482         a static symbol.
32483         (arm_output_addr_const_extra): Output expression for new pattern.
32484         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
32485
32486 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
32487
32488         * ira-costs.c (record_reg_classes): Ignore alternatives that are
32489         not enabled.
32490
32491         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
32492         * web.c: Include "insn-config.h" and "recog.h".
32493         (union_match_dups): New function.
32494         (web_main): Call it.
32495         (union_defs): Don't try to recognize match_dups.
32496
32497         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
32498         if doing so would replace the entire pattern.
32499
32500 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
32501
32502         PR target/43707
32503         PR target/43709
32504         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
32505         and splitter pattern.  Change splitter operand 1 predicate to
32506         nonmemory_operand.
32507
32508 2010-04-09  Martin Jambor  <mjambor@suse.cz>
32509
32510         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
32511         lattices are addresses of CONST_DECLs with the same initial value.
32512         (ipcp_print_all_lattices): Print values of CONST_DECLs.
32513         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
32514
32515 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
32516             Bernd Schmidt  <bernds@codesourcery.com>
32517
32518         * loop-invariant.c (replace_uses): New static function.
32519         (move_invariant_reg): Use it to ensure we can replace the uses.
32520
32521 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
32522
32523         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
32524         function template.
32525         (picochip_override_options): Enable section anchors only above -O1.
32526         (picochip_reorg): Fixed a couple of build warnings.
32527
32528 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32529
32530         * configure.ac (plugin -rdynamic test): Log result.
32531         * configure: Regenerate.
32532         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
32533         (RDYNAMIC_SPEC): Define.
32534         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
32535
32536 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32537
32538         * configure.ac: Determine Sun ld version numbers.
32539         (comdat_group): Restrict GNU ld version checks to gld.
32540         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
32541         (enable_comdat): Support --enable-comdat.
32542         * configure: Regenerate.
32543         * doc/install.texi (Configuration): Document --enable-comdat.
32544
32545 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32546
32547         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
32548         * config/sol2-gld.h: ... here.
32549         * config.gcc (sparc*-*-solaris2*): Reflect this.
32550         (i[34567]86-*-solaris2*): Use it.
32551
32552 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
32553
32554         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
32555         setup_clocks_p.
32556         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
32557
32558 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32559
32560         PR 42965
32561         * diagnostic.c (diagnostic_initialize): Initialize
32562         some_warnings_are_errors.
32563         (diagnostic_finish): New.
32564         (diagnostic_action_after_output): Call it before exiting.
32565         (diagnostic_report_diagnostic): Do not print message here. Set
32566         some_warnings_are_errors.
32567         * diagnostic.h (diagnostic_context): Delete
32568         issue_warnings_are_errors_message. Add some_warnings_are_errors.
32569         (diagnostic_finish): Declare.
32570         * toplev.c (toplev_main): Call it before exit.
32571
32572 2010-04-09  Jason Merrill  <jason@redhat.com>
32573
32574         PR c++/42623
32575         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
32576         for incomplete type.
32577
32578         PR c++/41788
32579         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
32580         based on a warning flag.
32581
32582 2010-04-09  Richard Guenther  <rguenther@suse.de>
32583
32584         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
32585
32586 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
32587
32588         PR bootstrap/43684
32589         * varasm.c (default_assemble_visibility): Wrap vars that are
32590         set, but unused, by targets without GAS.
32591         * config/rs6000/rs6000.c (paired_emit_vector_compare):
32592         Remove set, but unused, vars.
32593         (rs6000_legitimize_tls_address): Likewise.
32594         (altivec_expand_dst_builtin): Likewise.
32595         * config/darwin.c (machopic_classify_symbol): Likewise.
32596         (machopic_indirection_name): Likewise.
32597
32598 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
32599
32600         * config/i386/i386.md (DWI): New mode iterator.
32601         (S): New mode attribute.
32602         (shift_operand): Ditto.
32603         (shift_immediate_operand): Ditto.
32604         (ashl_input_operand): Ditto.
32605         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
32606         using SDWIM mode iterator.
32607         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32608         pattern from *ashl{di,ti}3_1 and corresponding splitters using
32609         DWI mode iterator.
32610         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
32611         from corresponding peephole2 patterns.
32612         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
32613         and x86_64_shift_adj_1 using SWI48 mode iterator.
32614         (x86_shift<mode>_adj_2): Ditto.
32615         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
32616         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
32617         using SWI48 mode iterator.
32618         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
32619         *ashldi3_cmp_rex64 using SWI mode iterator.
32620         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
32621         *ashldi3_cconly_rex64 using SWI mode iterator.
32622         * config/i386/i386.c (ix86_split_ashl): Update for renamed
32623         x86_shift<mode>_adj_{1,2}.
32624         (ix86_split_ashr): Ditto.
32625         (ix86_split_lshr): Ditto.
32626
32627 2010-04-09  Richard Guenther  <rguenther@suse.de>
32628
32629         * target.h (builtin_conversion): Pass in input and output types.
32630         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
32631         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
32632         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
32633         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
32634
32635         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
32636         Handle AVX modes.
32637         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
32638
32639 2010-04-09  Richard Guenther  <rguenther@suse.de>
32640
32641         PR target/43152
32642         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
32643
32644 2010-04-09  Richard Guenther  <rguenther@suse.de>
32645
32646         * tree-vectorizer.h (struct _stmt_vec_info): Document
32647         that vectype is the type of the LHS.
32648         (supportable_widening_operation, supportable_narrowing_operation):
32649         Get both input and output vector types as arguments.
32650         (vect_is_simple_use_1): Declare.
32651         (get_same_sized_vectype): Likewise.
32652         * tree-vect-loop.c (vect_determine_vectorization_factor):
32653         Set STMT_VINFO_VECTYPE to the vector type of the def.
32654         (vectorizable_reduction): Adjust.
32655         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
32656         Adjust.  Specify the output vector type.
32657         (vect_pattern_recog_1): Adjust.
32658         * tree-vect-stmts.c (get_same_sized_vectype): New function.
32659         (vectorizable_call): Adjust.
32660         (vectorizable_conversion): Likewise.
32661         (vectorizable_operation): Likewise.
32662         (vectorizable_type_demotion): Likewise.
32663         (vectorizable_type_promotion): Likewise.
32664         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
32665         the def.
32666         (vect_is_simple_use_1): New function.
32667         (supportable_widening_operation): Get both input and output
32668         vector types.
32669         (supportable_narrowing_operation): Likewise.
32670         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
32671
32672 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
32673
32674         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
32675         __thiscall and _thiscall as predefined macros.
32676         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
32677         thiscall attribute handling.
32678         (ix86_comp_type_attributes): Likewise.
32679         (ix86_function_regparm): Likewise.
32680         (ix86_return_pops_args): Likewise.
32681         (init_cumulative_args): Likewise.
32682         (find_drap_reg): Likewise.
32683         (ix86_static_chain): Likewise.
32684         (x86_this_parameter): Likewise.
32685         (x86_output_mi_thunk): Likewise.
32686         (ix86_attribute_table): Add description for thiscall attribute.
32687         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
32688         * doc/extend.texi: Add documentation for thiscall.
32689
32690 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32691
32692         PR c++/28584
32693         * c.opt (Wint-to-pointer-cast): Available in C++.
32694         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
32695
32696 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
32697
32698         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
32699         * calls.c (expand_call): Pass the function type to aggregate_value_p.
32700         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
32701         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
32702         function type instead.  Reorder and simplify checks.
32703
32704         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
32705
32706 2010-04-08  Jing Yu  <jingyu@google.com>
32707             Zdenek Dvorak  <ook@ucw.cz>
32708
32709         PR tree-optimization/42720
32710         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
32711         loop unswitch conditions here from ...
32712         (tree_unswitch_single_loop): ... here.
32713
32714 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
32715
32716         * tree-if-conv.c: Fix comments and simplify logic.
32717
32718 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
32719
32720         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
32721         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
32722         (main_tree_if_conversion): Update call to tree_if_conversion.
32723
32724 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32725
32726         PR 42485
32727         * doc/invoke.texi (-b,-V): Delete.
32728         * doc/tm.texi: Do not mention -b.
32729         * gcc.c (display_help): Delete -b and -V.
32730         (process_command): Delete -b and -V.
32731         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
32732
32733 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
32734             Wolfgang Gellerich  <gellerich@de.ibm.com>
32735
32736         Implement target hook for loop unrolling
32737         * target.h (loop_unroll_adjust): Add a new target hook function.
32738         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
32739         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
32740         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
32741         (s390_loop_unroll_adjust): Implement the new target hook for s390.
32742         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
32743         target hook.
32744         (decide_unroll_stupid): Likewise.
32745
32746 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32747
32748         PR target/43643
32749         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
32750
32751 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32752
32753         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
32754         (Specific, *-*-solaris2*): Likewise.
32755         Don't prefer Sun as over GNU as.
32756
32757 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
32758
32759         * config/s390/s390.c (override_options): Adjust the z10 defaults
32760         for max-unroll-times, max-completely-peeled-insns
32761         and max-completely-peel-times.
32762
32763 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32764
32765         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
32766         instructions for z10.
32767         (s390_expand_setmem): Likewise.
32768         (s390_expand_cmpmem): Likewise.
32769
32770 2010-04-08  Richard Guenther  <rguenther@suse.de>
32771
32772         PR tree-optimization/43679
32773         * tree-ssa-pre.c (eliminate): Only propagate copies.
32774
32775 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
32776
32777         PR bootstrap/43681
32778         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
32779         set but not used variable warning.
32780
32781 2010-04-08  Wei Guozhi  <carrot@google.com>
32782
32783         PR target/41653
32784         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
32785         (arm_size_rtx_costs): Call the new function when optimized for size.
32786
32787 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
32788
32789         PR debug/43670
32790         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
32791         op0 is not a MEM, just return NULL instead of assertion
32792         failure.
32793         (discover_nonconstant_array_refs): Don't walk debug stmts.
32794
32795 2010-04-08  Doug Kwan  <dougkwan@google.com>
32796
32797         * configure.ac: Recognize gold and do not use its version number
32798         to test ld features.
32799         * configure: Regenerate.
32800
32801 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
32802
32803         PR middle-end/40815
32804         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
32805         (negate_value): Move code to push elements to broken_up_substracts ...
32806         (eliminate_plus_minus_pair): ... here.  Push operands that have no
32807         negative pair to plus_negates.
32808         (repropagate_negates, init_reassoc, fini_reassoc): Update.
32809
32810 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32811
32812         * doc/install.texi (Configuration): Move description of
32813         --enable-lto, --with-libelf*, --enable-gold from Java section to
32814         general section.
32815
32816         * doc/generic.texi (Working with declarations)
32817         (Function Properties, C and C++ Trees): Fix typos.
32818         * doc/sourcebuild.texi (Top Level): Likewise.
32819
32820 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
32821
32822         PR c/18624
32823         * tree.h (DECL_READ_P): Define.
32824         (struct tree_decl_common): Add decl_read_flag.
32825         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
32826         a set but not used warning.
32827         (merge_decls): Merge DECL_READ_P flag.
32828         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
32829         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
32830         * c-common.c (handle_used_attribute, handle_unused_attribute):
32831         Likewise.
32832         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
32833         New prototypes.
32834         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
32835         New functions.
32836         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
32837         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
32838         c_parser_binary_expression, c_parser_cast_expression,
32839         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
32840         Call default_function_array_read_conversion instead of
32841         default_function_array_conversion where needed.
32842         (c_parser_unary_expression, c_parser_conditional_expression,
32843         c_parser_postfix_expression_after_primary, c_parser_initelt):
32844         Likewise.  Call mark_exp_read where needed.
32845         (c_parser_statement_after_labels, c_parser_asm_operands,
32846         c_parser_typeof_specifier, c_parser_sizeof_expression,
32847         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
32848         where needed.
32849         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
32850         New.
32851         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
32852         (warn_unused_but_set_parameter): Default to warn_unused
32853         && extra_warnings.
32854         * doc/invoke.texi: Document -Wunused-but-set-variable and
32855         -Wunused-but-set-parameter.
32856
32857         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
32858         used count variable.
32859         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
32860         when operandN variables aren't used in the body of the expander
32861         or splitter.
32862         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
32863         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
32864         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
32865         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
32866         FOR_EACH_IMM_USE_ON_STMT): Likewise.
32867         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
32868         * tree.c (PROCESS_ARG): Likewise.
32869
32870 2010-04-07  Simon Baldwin  <simonb@google.com>
32871
32872         * diagnostic.h (diagnostic_override_option_index): New macro to
32873         set a diagnostic's option_index.
32874         * c-tree.h (c_cpp_error): Add warning reason argument.
32875         * opts.c (_warning_as_error_callback): New.
32876         (register_warning_as_error_callback): Store callback for
32877         warnings enabled via enable_warning_as_error.
32878         (enable_warning_as_error): Call callback, minor code tidy.
32879         * opts.h (register_warning_as_error_callback): Declare.
32880         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
32881         response to -Werror=.
32882         (c_common_init_options): Register warning_as_error_callback in opts.c.
32883         * common.opt: Add -Wno-cpp option.
32884         * c-common.c (struct reason_option_codes_t): Map cpp warning
32885         reason codes to gcc option indexes.
32886         * (c_option_controlling_cpp_error): New function, lookup the gcc
32887         option index for a cpp warning reason code.
32888         * (c_cpp_error): Add warning reason argument, call
32889         c_option_controlling_cpp_error for diagnostic_override_option_index.
32890         * doc/invoke.texi: Document -Wno-cpp.
32891
32892 2010-04-07  Richard Guenther  <rguenther@suse.de>
32893
32894         * ipa-reference.c (mark_load): Use get_base_address.
32895         (mark_store): Likewise.
32896
32897         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
32898         inserting GIMPLE_NOPs into the IL.
32899         * tree-ssa-structalias.c (get_constraint_for_component_ref):
32900         Explicitly strip handled components and indirect references.
32901
32902         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
32903         folding address expressions.
32904         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
32905         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
32906         operand_equal_p to compare decls.
32907         (ptr_deref_may_alias_decl_p): Likewise.
32908         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
32909         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
32910         Handle reversed comparison ops.
32911         * tree-sra.c (asm_visit_addr): Use get_base_address.
32912         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
32913         * ipa-reference.c (mark_address): Use get_base_address.
32914
32915 2010-04-07  Richard Guenther  <rguenther@suse.de>
32916
32917         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
32918         Propagate constants everywhere.
32919
32920 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
32921
32922         PR debug/43516
32923         * tree.c (MAX_INT_CACHED_PREC): Define.
32924         (nonstandard_integer_type_cache): New array.
32925         (build_nonstandard_integer_type): Cache results for precision
32926         <= MAX_INT_CACHED_PREC.
32927
32928 2010-04-07  Richard Guenther  <rguenther@suse.de>
32929
32930         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
32931         -fargument-noalias-global, -fargument-noalias-anything): Remove.
32932         * common.opt: Likewise.
32933         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
32934         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
32935         (nonoverlapping_memrefs_p): Likewise.
32936         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
32937         * opts.c (common_handle_option): Handle OPT_fargument_alias,
32938         OPT_fargument_noalias, OPT_fargument_noalias_anything and
32939         OPT_fargument_noalias_global for backward compatibility.
32940
32941 2010-04-07  Richard Guenther  <rguenther@suse.de>
32942
32943         PR tree-optimization/43270
32944         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
32945         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
32946         * tree-ssa-pre.c (phi_translate_1): Adjust.
32947         (fully_constant_expression): Split out vn_reference handling to ...
32948         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
32949         Fold reads from constant strings.
32950         (vn_reference_lookup): Handle fully constant references.
32951         (vn_reference_lookup_pieces): Likewise.
32952         * Makefile.in (expmed.o-warn): Add -Wno-error.
32953
32954 2010-04-07  Martin Jambor  <mjambor@suse.cz>
32955
32956         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
32957
32958 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
32959
32960         PR driver/41594
32961         * gcc.c: Add -static-libstdc++ to list of recognized options.
32962
32963 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32964
32965         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
32966
32967 2010-04-07  Richard Guenther  <rguenther@suse.de>
32968
32969         PR middle-end/42617
32970         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
32971         bases build simple mem attributes to retain points-to information.
32972
32973 2010-04-07  Richard Guenther  <rguenther@suse.de>
32974
32975         PR middle-end/42617
32976         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
32977         preserve points-to related information.
32978
32979 2010-04-07  Richard Guenther  <rguenther@suse.de>
32980
32981         PR middle-end/42617
32982         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
32983         discard plain indirect references.
32984         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
32985         * tree.c (tree_nop_conversion): Likewise.
32986
32987 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
32988
32989         PR debug/43628
32990         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
32991
32992 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
32993
32994         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
32995         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
32996
32997 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
32998
32999         * tree-if-conv.c: Fix indentation and comments.
33000
33001 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33002
33003         * tree-if-conv.c: Sort static functions in topological order.
33004
33005 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33006
33007         * tree-if-conv.c: Fix indentation and comments.
33008
33009 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33010
33011         PR middle-end/43519
33012         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
33013         lang_hooks.types.type_for_size instead of
33014         build_nonstandard_integer_type.
33015         When converting an unsigned type to signed, double its precision.
33016         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
33017         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
33018         (graphite_create_new_loop_guard): When ub + 1 wraps around,
33019         use lb <= ub.
33020
33021 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33022
33023         PR middle-end/43519
33024         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
33025         POINTER_PLUS_EXPR for pointer types.
33026
33027 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33028
33029         PR middle-end/43519
33030         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
33031         * graphite-clast-to-gimple.c: Include langhooks.h.
33032         (max_signed_precision_type): New.
33033         (max_precision_type): Takes two types as arguments.
33034         (precision_for_value): New.
33035         (precision_for_interval): New.
33036         (gcc_type_for_interval): New.
33037         (gcc_type_for_value): New.
33038         (gcc_type_for_clast_term): New.
33039         (gcc_type_for_clast_red): New.
33040         (gcc_type_for_clast_bin): New.
33041         (gcc_type_for_clast_expr): Split up into several functions.
33042         (gcc_type_for_clast_eq): Rewritten.
33043         (compute_bounds_for_level): New.
33044         (compute_type_for_level_1): New.
33045         (compute_type_for_level): New.
33046         (gcc_type_for_cloog_iv): Removed.
33047         (gcc_type_for_iv_of_clast_loop): Rewritten.
33048         (graphite_create_new_loop): Compute the lower and upper bound types
33049         with gcc_type_for_clast_expr.
33050         (graphite_create_new_loop_guard): Same.
33051         (find_cloog_iv_in_expr): Removed.
33052         (compute_cloog_iv_types_1): Removed.
33053         (compute_cloog_iv_types): Removed.
33054         (gloog): Do not call compute_cloog_iv_types.
33055         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
33056         GBB_CLOOG_IV_TYPES.
33057         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
33058         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
33059         (GBB_CLOOG_IV_TYPES): Removed.
33060
33061 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33062
33063         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
33064         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
33065         (detect_commutative_reduction): Same.
33066
33067 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33068
33069         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
33070         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
33071         argument.
33072         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
33073         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
33074         (rewrite_commutative_reductions_out_of_ssa): Same.
33075         * passes.c (execute_function_todo): Call verify_ssa for every pass
33076         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
33077         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
33078         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
33079         with an extra argument.
33080         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
33081         verify_ssa only when the extra argument is true.
33082         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
33083         with an extra argument.
33084         (tree_transform_and_unroll_loop): Same.
33085
33086 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33087
33088         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
33089         for all the passes of the LNO having LOOP_CLOSED_SSA.
33090         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
33091         * tree-loop-distribution.c (pass_loop_distribution): Same.
33092         * tree-pass.h (TODO_verify_loops): Removed.
33093         * tree-ssa-loop.c (pass_tree_loop_init): Same.
33094         (pass_lim): Same.
33095         (pass_tree_unswitch): Same.
33096         (pass_predcom): Same.
33097         (pass_vectorize): Same.
33098         (pass_linear_transform): Same.
33099         (pass_graphite_transforms): Same.
33100         (pass_iv_canon): Same.
33101         (pass_complete_unroll): Same.
33102         (pass_complete_unrolli): Same.
33103         (pass_parallelize_loops): Same.
33104         (pass_loop_prefetch): Same.
33105         (pass_iv_optimize): Same.
33106
33107 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
33108
33109         PR middle-end/32824
33110         * passes.c (init_optimization_passes): Move pass_lim before
33111         pass_copy_prop and pass_dce_loop.
33112
33113 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33114
33115         PR target/43667
33116         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
33117         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
33118         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
33119         MULTI_* defines for 4 argument vpermil2p* builtins.
33120
33121 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33122
33123         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
33124         * config/i386/i386.c (x86_maybe_negate_const_int): New.
33125         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
33126         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
33127         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
33128         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
33129         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
33130         Use x86_maybe_negate_const_int to output insn mnemonic.
33131         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
33132         check from instruction predicate.  Update comments.
33133         * config/i386/sync.md (sync_add<mode>): Use
33134         x86_maybe_negate_const_int to output insn mnemonic.
33135
33136 2010-04-06  Jan Hubicka  <jh@suse.cz>
33137
33138         PR tree-optimization/42906
33139         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
33140         IGNORE_SELF argument.  Set visited_control_parents for fully
33141         processed BBs.
33142         (find_obviously_necessary_stmts): Update call of
33143         mark_control_dependent_edges_necessary.
33144         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
33145
33146 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33147
33148         * config/i386/i386.md: Remove comment about 'e' and 'E'
33149         operand modifier.
33150
33151 2010-04-06  Richard Guenther  <rguenther@suse.de>
33152
33153         PR tree-optimization/43627
33154         * tree-vrp.c (extract_range_from_unary_expr): Widenings
33155         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
33156         not varying.
33157
33158 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33159
33160         * BASE-VER: Change to 4.6.0.
33161
33162         PR target/43638
33163         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
33164         handling.
33165
33166 2010-04-06  Richard Guenther  <rguenther@suse.de>
33167
33168         PR middle-end/43661
33169         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
33170
33171 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33172
33173         * doc/invoke.texi (Optimize Options): Document that LTO
33174         won't remove object access purely due to incompatible
33175         declarations.
33176
33177 2010-04-04  Matthias Klose  <doko@ubuntu.com>
33178
33179         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
33180         Initialize variable.
33181
33182 2010-04-03  Richard Guenther  <rguenther@suse.de>
33183
33184         PR middle-end/42509
33185         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
33186         require a non-NULL MEM_OFFSET.
33187
33188 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
33189
33190         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
33191         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
33192         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
33193         config/alpha/predicates.md, config/arm/arm.md,
33194         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
33195         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
33196         config/darwin9.h, config/darwin.c, config/darwin.h,
33197         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
33198         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
33199         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
33200         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
33201         config/mips/mips.md, config/mn10300/mn10300.c,
33202         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
33203         config/rs6000/aix.h, config/rs6000/dfp.md,
33204         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
33205         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
33206         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
33207         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
33208         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
33209         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
33210         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
33211         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
33212         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
33213         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
33214         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
33215         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
33216         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
33217         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
33218         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
33219         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
33220         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
33221         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
33222         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
33223         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
33224         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
33225         opt-functions.awk, opth-gen.awk, params.def, passes.c,
33226         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
33227         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
33228         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
33229         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
33230         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
33231         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
33232         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
33233         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
33234         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
33235         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
33236         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
33237         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
33238         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
33239         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
33240
33241 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33242
33243         PR other/43620
33244         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
33245         * aclocal.m4: Regenerate.
33246
33247 2010-04-02  Richard Guenther  <rguenther@suse.de>
33248
33249         PR tree-optimization/43629
33250         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
33251         if we have seen a constant value.
33252
33253 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
33254
33255         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
33256
33257 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
33258
33259         PR target/43469
33260         * arm.c (legitimize_tls_address): Adjust call to
33261         gen_tls_load_dot_plus_four.
33262         (arm_note_pic_base): New function.
33263         (arm_cannot_copy_insn_p): Use it.
33264         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
33265         constraint.
33266
33267 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33268
33269         PR bootstrap/43531
33270
33271         Revert:
33272         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33273
33274         * Makefile.in ($(out_object_file)): Depend on
33275         gt-$(basename $(notdir $(out_file))).h.
33276
33277 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
33278
33279         * config.gcc (lm32-*-rtems*): Add t-lm32.
33280
33281 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
33282
33283         * config.gcc: Add lm32-*-rtems*.
33284         * config/lm32/rtems.h: New file.
33285
33286 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
33287
33288         PR target/42609
33289         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
33290
33291 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
33292
33293         * dwarf2out.c (output_compilation_unit_header): For
33294         -gdwarf-4 use version 4 instead of version 3.
33295         (output_line_info): For version 4 and above emit additional
33296         maximum ops per insn header field.
33297         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
33298
33299         * dwarf2out.c (is_c_family, is_java): Remove.
33300         (lower_bound_default): New function.
33301         (add_bound_info, gen_descr_array_type_die): Use it.
33302
33303 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
33304
33305         PR debug/43325
33306         * dwarf2out.c (gen_variable_die): Allow debug info for variable
33307         re-declaration when it happens in a function.
33308
33309 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
33310
33311         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
33312         (cgraph_remove_function_insertion_hook): Same.
33313         (cgraph_call_function_insertion_hooks): Same.
33314
33315 2010-04-01  Richard Guenther  <rguenther@suse.de>
33316
33317         PR middle-end/43614
33318         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
33319         and TREE_THIS_VOLATILE.
33320         (copy_ref_info): Likewise.
33321         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
33322         * tree.c (build6_stat): Ignore side-effects of all but arg5
33323         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
33324         TARGET_MEM_REF.
33325
33326 2010-04-01  Richard Guenther  <rguenther@suse.de>
33327
33328         PR tree-optimization/43607
33329         * ipa-type-escape.c (check_call): Do not access non-existing
33330         arguments.
33331
33332 2010-04-01  Richard Guenther  <rguenther@suse.de>
33333
33334         PR middle-end/43602
33335         Revert
33336         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
33337                     Jack Howarth  <howarth@bromo.med.uc.edu>
33338
33339         * tree-profile.c (tree_init_ic_make_global_vars): Make static
33340         variables TLS.
33341
33342 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33343
33344         * doc/install.texi (Prerequisites): Document libelf usability on
33345         IRIX 5/6 and Solaris 2.
33346         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
33347         Update GNU as, GNU ld requirements.
33348         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
33349         Document Sun Studio compiler download.
33350         Update and simplify as, ld recommendations.
33351         (Specific, *-*-solaris2.7): Note obsoletion, removal.
33352
33353 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33354
33355         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
33356         with_tune_32 to pentium4.
33357
33358 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
33359
33360         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
33361
33362 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33363
33364         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
33365         obsoletion, removal.
33366         Update IDO URL.
33367         Document GNU as requirement.
33368         Update configure requirements.
33369         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
33370         Recomment IRIX 6.5.18+.
33371         Document IDF/IDL requirement.
33372         Document GNU as requirement.
33373         Document GNU ld bootstrap failure.
33374         Remove freeware.sgi.com reference.
33375
33376 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33377
33378         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
33379         UNIX V4.0, V5.0 obsoletion, removal.
33380         Remove --with-gc=simple reference.
33381         Update VM requirements during bootstrap.
33382         Remove -oldas bootstrap description.
33383         Update binutils reference.
33384         Remove comparison failure note.
33385
33386 2010-03-31  Richard Guenther  <rguenther@suse.de>
33387             Zdenek Dvorak  <ook@ucw.cz>
33388             Sebastian Pop  <sebastian.pop@amd.com>
33389
33390         PR middle-end/43464
33391         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
33392         with multiple arguments.
33393         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
33394
33395 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33396
33397         * graphite-dependences.c (print_pddr): Call print_pdr with an
33398         extra argument.
33399         * graphite-poly.c (debug_pdr): Add an extra argument for the
33400         verbosity level.
33401         (print_pdr): Same.
33402         (print_pbb_domain): Same.
33403         (print_pbb): Same.
33404         (print_scop_context): Same.
33405         (print_scop): Same.
33406         (print_cloog): Same.
33407         (debug_pbb_domain): Same.
33408         (debug_pbb): Same.
33409         (print_pdrs): Same.
33410         (debug_pdrs): Same.
33411         (debug_scop_context): Same.
33412         (debug_scop): Same.
33413         (debug_cloog): Same.
33414         (print_scop_params): Same.
33415         (debug_scop_params): Same.
33416         (print_iteration_domain): Same.
33417         (print_iteration_domains): Same.
33418         (debug_iteration_domain): Same.
33419         (debug_iteration_domains): Same.
33420         (print_scattering_function): Same.
33421         (print_scattering_functions): Same.
33422         (debug_scattering_function): Same.
33423         (debug_scattering_functions): Same.
33424         * graphite-poly.h (debug_pdr): Update declaration.
33425         (print_pdr): Same.
33426         (print_pbb_domain): Same.
33427         (print_pbb): Same.
33428         (print_scop_context): Same.
33429         (print_scop): Same.
33430         (print_cloog): Same.
33431         (debug_pbb_domain): Same.
33432         (debug_pbb): Same.
33433         (print_pdrs): Same.
33434         (debug_pdrs): Same.
33435         (debug_scop_context): Same.
33436         (debug_scop): Same.
33437         (debug_cloog): Same.
33438         (print_scop_params): Same.
33439         (debug_scop_params): Same.
33440         (print_iteration_domain): Same.
33441         (print_iteration_domains): Same.
33442         (debug_iteration_domain): Same.
33443         (debug_iteration_domains): Same.
33444         (print_scattering_function): Same.
33445         (print_scattering_functions): Same.
33446         (debug_scattering_function): Same.
33447         (debug_scattering_functions): Same.
33448
33449 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33450
33451         * graphite-poly.c (print_scattering_function_1): New.
33452         (print_scattering_function): Call it.
33453         (print_scop_params): Remove spaces at the end of lines.
33454         (print_cloog): New.
33455         (debug_cloog): New.
33456         * graphite-poly.h (print_cloog): Declared.
33457         (debug_cloog): Declared.
33458
33459 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33460
33461         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
33462         in loop->header.
33463         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
33464         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
33465         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
33466         to switch between adding the IV bump in loop->latch or in loop->header.
33467
33468 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33469
33470         * graphite-poly.c (print_scattering_function): Pretty print following
33471         the scoplib format.
33472         (print_pdr): Same.
33473         (print_pbb_domain): Same.
33474         (dump_gbb_cases): Same.
33475         (dump_gbb_conditions): Same.
33476         (print_pdrs): Same.
33477         (print_pbb): Same.
33478         (print_scop_params): Same.
33479         (print_scop_context): Same.
33480         (print_scop): Same.
33481         (print_pbb_body): New.
33482         (lst_indent_to): New.
33483         (print_lst): Start new lines with a #.
33484         * graphite-poly.h (pbb_bb): New.
33485         (pbb_index): Use pbb_bb.
33486         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
33487         disjuncts.
33488         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
33489
33490 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
33491
33492         * dwarf2out.c (size_of_die): For -gdwarf-4 use
33493         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
33494         and 0 instead of 1 for dw_val_class_flag.
33495         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
33496         dw_val_class_range_list, dw_val_class_loc_list,
33497         dw_val_class_lineptr and dw_val_class_macptr, use
33498         DW_FORM_flag_present for dw_val_class_flag and
33499         DW_FORM_exprloc for dw_val_class_loc.
33500         (output_die): For -gdwarf-4 print dw_val_class_loc
33501         size as uleb128 instead of 1 or 2 bytes and don't print
33502         anything for dw_val_class_flag.
33503
33504         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
33505         instead of cselib_lookup following by tweaking locs->setting_insn.
33506
33507         PR bootstrap/43596
33508         * cselib.c (cselib_process_insn): Clear cselib_current_insn
33509         even before returning from label, setjmp call or volatile asm
33510         handling.
33511
33512 2010-03-31  Richard Guenther  <rguenther@suse.de>
33513
33514         PR middle-end/43600
33515         * cgraphunit.c (cgraph_output_in_order): Do not allocate
33516         temporary data on stack.
33517
33518 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33519
33520         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
33521         (PUSHSECTION_ASM_OP): Remove.
33522         (POPSECTION_ASM_OP): Remove.
33523         (PUSHSECTION_FORMAT): Remove.
33524         * config/sol2.h (PUSHSECTION_FORMAT): Define.
33525         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
33526         * config/sol2.c (solaris_output_init_fini): Use it.
33527
33528 2010-03-31  Jie Zhang  <jie@codesourcery.com>
33529
33530         PR 43574
33531         * opt-functions.awk (var_type_struct): Use signed char type
33532         for simple variables.
33533
33534 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33535
33536         * config/sol2.c: Include output.h.
33537         (solaris_assemble_visibility): New function.
33538         * config/t-sol2 (sol2.o): Add output.h dependency.
33539         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
33540         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
33541         Redefine.
33542
33543 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
33544
33545         PR target/43580
33546         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
33547         V2SImode or XFmode on PRE_DEC.
33548
33549         PR debug/43557
33550         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
33551         BLKmode.
33552
33553 2010-03-31  Jie Zhang  <jie@codesourcery.com>
33554
33555         PR 43562
33556         * reload.h (caller_save_initialized_p): Declare.
33557         * toplev.c (backend_init_target): Don't call
33558         init_caller_save but set caller_save_initialized_p to false.
33559         * caller-save.c (caller_save_initialized_p): Define.
33560         (init_caller_save): Check caller_save_initialized_p.
33561         * ira.c (ira): Call init_caller_save if flag_caller_saves.
33562
33563 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33564
33565         PR target/39048
33566         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
33567         and soft-fp/t-softfp to tmake_file.
33568         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
33569         (LIBGCC2_TF_CEXT): Define.
33570         (TF_SIZE): Define.
33571
33572 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
33573
33574         PR debug/42977
33575         * cselib.c (n_useless_values): Document handling of debug locs.
33576         (n_useless_debug_values, n_debug_values): New variables.
33577         (new_elt_loc_list): Don't add to debug values, keep count.
33578         (promote_debug_loc): New.
33579         (cselib_reset_table): Zero new variables.
33580         (entry_and_rtx_equal_p): Promote debug locs.
33581         (discard_useless_locs): Increment n_useless_debug_values for
33582         debug values.
33583         (remove_useless_values): Adjust n_useless_values and n_debug_values
33584         with n_useless_debug_values.
33585         (add_mem_for_addr): Promote debug locs.
33586         (cselib_lookup_mem): Likewise.
33587         (cselib_lookup_addr): Renamed to...
33588         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
33589         (cselib_log_lookup): ... this.  Turn into...
33590         (cselib_lookup_addr): ... new wrapper.
33591         (cselib_lookup_from_insn): New.
33592         (cselib_invalidate_regno): Increment n_useless_debug_values for
33593         debug values.
33594         (cselib_invalidate_mem): Likewise.
33595         (cselib_process_insn): Take n_deleted and n_debug_values into
33596         account to guard remove_useless_value call.
33597         (cselib_finish): Zero n_useless_debug_values.
33598         * cselib.h (cselib_lookup_from_insn): Declare.
33599         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
33600         (sched_analyze_2): Likewise.
33601
33602 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
33603
33604         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
33605         functions.
33606         (adjust_mems): Replace narrowing SUBREG of expression containing
33607         just PLUS, MINUS, MULT and ASHIFT of registers and constants
33608         with operations in the narrower mode.
33609
33610         PR debug/43593
33611         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
33612         regs_invalidated_by_call instead all call_used_reg_set registers.
33613
33614 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
33615
33616         PR middle-end/43430
33617         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
33618         pointer comparisons with types_compatible_p.
33619         * tree-vect-stmts.c (vectorizable_call): Same.
33620         (vectorizable_condition): Same.
33621
33622 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33623
33624         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
33625         stack check if the mask would be zero.
33626
33627 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
33628             Jack Howarth  <howarth@bromo.med.uc.edu>
33629
33630         * tree-profile.c (tree_init_ic_make_global_vars): Make static
33631         variables TLS.
33632
33633 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
33634
33635         PR other/25232
33636         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
33637         and __unordtf2.
33638         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
33639         Include ___unordxf2 and ___unordtf2.
33640         * config/i386/libgcc-glibc.ver: Do not define inheritance from
33641         GCC_4.4.0 here.
33642
33643 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
33644
33645         * config/lm32/t-lm32: New file.
33646         * config.gcc: Use the above file when targetting lm32.
33647
33648 2010-03-28  Duncan Sands  <baldrick@free.fr>
33649
33650         * Makefile.in (PLUGIN_HEADERS): Add except.h.
33651
33652 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
33653
33654         PR middle-end/43431
33655         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
33656         Improve vectorization cost model diagnostic.
33657
33658 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
33659
33660         PR middle-end/43436
33661         * tree-vect-data-refs.c (vect_analyze_data_refs): When
33662         compute_data_dependences_for_loop returns false, early exit
33663         and output an extra diagnostic for the failed data reference
33664         analysis.
33665
33666 2010-03-29  Richard Guenther  <rguenther@suse.de>
33667
33668         PR tree-optimization/43560
33669         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
33670         (can_sm_ref_p): Treat stores to readonly locations as trapping.
33671
33672 2010-03-29  Jie Zhang  <jie@codesourcery.com>
33673
33674         PR 43564
33675         * toplev.c (process_options): Set optimization_default_node
33676         and optimization_current_node.
33677         * opts.c (decode_options): Don't set optimization_default_node
33678         and optimization_current_node.
33679
33680 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
33681
33682         * config/rtems.h: Abandon -qrtems_debug.
33683
33684 2010-03-28  Jan Hubicka  <jh@suse.cz>
33685
33686         PR tree-optimization/43505
33687         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
33688         map should not be copied.
33689
33690 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
33691
33692         PR middle-end/41674
33693         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
33694         cdtors, set DECL_PRESERVE_P.
33695         * ipa.c (cgraph_externally_visible_p): Return true if declaration
33696         should be preseved.
33697
33698 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
33699
33700         PR tree-optimization/43528
33701         * stor-layout.c (place_field): Check that constant fits into
33702         unsigned HWI when skipping calculation of MS bitfield layout.
33703
33704 2010-03-27  Jan Hubicka  <jh@suse.cz>
33705
33706         PR middle-end/43391
33707         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
33708         notice_global_symbol work.
33709
33710 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
33711
33712         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
33713         instead of dwarf2out_decl.
33714         (struct var_loc_node): Remove section_label field.
33715         (dwarf2out_function_decl): New function.
33716         (dwarf2out_var_location): Don't set section_label field.
33717         (dwarf2out_begin_function): Don't empty decl_loc_table here.
33718
33719 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
33720
33721         PR tree-optimization/43544
33722         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
33723         First argument for builtin vectorized function hook is now a
33724         tree to be able to distinguish between machine specific and
33725         standard builtins.
33726         * targhooks.c (default_builtin_vectorized_function): Ditto.
33727         * targhooks.h (default_builtin_vectorized_function): Ditto.
33728         * target.h (struct gcc_target): Ditto.
33729         * tree-vect-stmts.c (vectorizable_function): Ditto.
33730         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
33731         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
33732         Ditto.
33733
33734 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
33735
33736         PR c/43381
33737         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
33738         nested binding iff it is a FUNCTION_DECL.
33739         (store_parm_decls_newstyle): Pass nested=true to bind for
33740         FUNCTION_DECLs amongst parameters.
33741
33742 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
33743
33744         * var-tracking.c (vt_expand_loc_callback): Don't run
33745         cselib_expand_value_rtx_cb in dummy mode if
33746         cselib_dummy_expand_value_rtx_cb returned false.
33747
33748         * var-tracking.c (emit_note_insn_var_location): For one part
33749         notes with offset 0, don't add EXPR_LIST around the location.
33750         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
33751         add_location_or_const_value_attribute): Adjust for that change.
33752
33753         PR debug/43540
33754         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
33755         into first operand and location into second.
33756         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
33757         dw_cfi_oprnd_loc for DW_CFA_expression.
33758         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
33759         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
33760         assume first argument is regnum and second argument is location.
33761
33762 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
33763
33764         PR target/42113
33765         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
33766         of scratch register to DImode.  Split to DImode comparison operator.
33767         Use SImode subreg of scratch register in the multiplication.
33768         (*cmp_sadd_sidi): Ditto.
33769         (*cmp_ssub_si): Ditto.
33770         (*cmp_ssub_sidi): Ditto.
33771
33772 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
33773
33774         PR target/43524
33775         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
33776         Remove invalid assert and wrong comment.
33777
33778 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
33779
33780         PR debug/43516
33781         * flags.h (final_insns_dump_p): New extern.
33782         * final.c (final_insns_dump_p): New variable.
33783         (rest_of_clean_state): Set it before -fdump-final-insns=
33784         dumping, clear afterwards.
33785         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
33786         MEM_ALIAS_SET on MEMs.
33787
33788 2010-03-26  David S. Miller  <davem@davemloft.net>
33789
33790         * configure.ac: Fix sparc GOTDATA_OP bug check.
33791         * configure: Rebuild.
33792
33793 2010-03-26  Alan Modra  <amodra@gmail.com>
33794
33795         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
33796
33797 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33798
33799         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
33800         TLS_SECTION_ASM_FLAG.
33801
33802 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
33803
33804         PR bootstrap/43511
33805         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
33806         Clear first_function_block_is_cold.
33807
33808         PR c/43385
33809         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
33810         argument if the argument is truth_value_p.
33811
33812 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
33813
33814         * config/rs6000/constraints.md: Update copyright year for my changes.
33815
33816         PR target/43484
33817         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
33818         used in reg+reg addressing, swap registers.
33819
33820 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
33821
33822         PR debug/43293
33823         * target.h (struct gcc_target): Add code_end hook.
33824         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
33825         if not yet defined.
33826         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
33827         * toplev.c (compile_file): Call targetm.asm_out.code_end
33828         hook before unwind info/debug info output.
33829         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
33830         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
33831         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
33832         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
33833         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
33834         * config/i386/i386.c (ix86_file_end): Renamed to...
33835         (ix86_code_end): ... this.  Make static.  Don't call
33836         file_end_indicate_exec_stack.  Emit unwind info using
33837         final_start_function/final_end_function.
33838         (darwin_x86_file_end): Remove.
33839         (TARGET_ASM_CODE_END): Define.
33840         * config/i386/i386.h (TARGET_ASM_FILE_END,
33841         NEED_INDICATE_EXEC_STACK): Don't define.
33842         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
33843         (TARGET_ASM_FILE_END): Define to darwin_file_end.
33844         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
33845         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
33846
33847         PR target/43498
33848         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
33849         at the beginning and final_end_function at the end.
33850         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
33851
33852 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33853
33854         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
33855         and Sun as TLS syntax.
33856         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
33857         * configure: Regenerate.
33858         * config.in: Regenerate.
33859         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
33860         (default_elf_asm_named_section): Use it.
33861         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
33862         (i386_output_dwarf_dtprel): Likewise.
33863         (output_addr_const_extra): Likewise.
33864         (output_pic_addr_const): Lowercase @GOTTPOFF.
33865         (output_addr_const_extra): Likewise.
33866         (output_pic_addr_const): Lowercase @GOTNTPOFF.
33867         (output_addr_const_extra): Likewise.
33868         (output_pic_addr_const): Lowercase @INDNTPOFF.
33869         (output_addr_const_extra): Likewise.
33870         (output_pic_addr_const): Lowercase @NTPOFF.
33871         (output_addr_const_extra): Likewise.
33872         (output_pic_addr_const): Lowercase @TPOFF.
33873         (output_addr_const_extra): Likewise.
33874         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
33875         (*tls_global_dynamic_64): Likewise.
33876         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
33877         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
33878
33879         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
33880         (ASM_OUTPUT_TLS_COMMON): Use it.
33881         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
33882
33883         PR target/38118
33884         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
33885         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
33886         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
33887         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
33888         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
33889         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
33890
33891 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33892
33893         * config/i386/i386.c (override_options): Don't accept
33894         -mtls-dialect=sun any longer.
33895         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
33896         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
33897         (*tls_local_dynamic_base_32_sun): Likewise.
33898         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
33899
33900 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
33901
33902         PR debug/43508
33903         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
33904         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
33905
33906         PR debug/43479
33907         * ira.c (adjust_cleared_regs): New function.
33908         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
33909
33910         PR debug/19192
33911         PR debug/43479
33912         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
33913         from gimple_block.
33914         * expr.c (expand_expr_real): Restore previous
33915         curr_insn_source_location and curr_insn_block after
33916         expand_expr_real_1 call.
33917         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
33918         instead of expand_expr_real_1.
33919
33920 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
33921
33922         PR rtl-optimization/43413
33923         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
33924         hard regs too.
33925
33926 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
33927
33928         PR target/43348
33929         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
33930         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
33931
33932 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
33933
33934         * config/i386/i386.c (ix86_target_string): Add -mfma.
33935         Fix a typo in comment.
33936
33937 2010-03-22  Mike Stump  <mikestump@comcast.net>
33938
33939         PR target/23071
33940         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
33941         Don't overly align based upon packed packed fields.
33942
33943 2010-03-22  Jason Merrill  <jason@redhat.com>
33944
33945         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
33946         Use () rather than [], and move before the element type.
33947
33948 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33949
33950         * doc/configfiles.texi (Configuration Files): Removed
33951         fixinc/Makefile*, intl/Makefile.*.
33952         * doc/makefile.texi: Fixed markup. Abstract from version
33953         control system used.
33954         (Makefile): Removed obsolete java/parse.y example.
33955         * doc/sourcebuild.texi: Likewise.
33956         (Top Level): Added config, gnattools, libdecnumber, libgcc,
33957         libgomp, libssp.  Removed fastjar.
33958         (Miscellaneous Docs): Clarify location.
33959         Added COPYING3, COPYING3.LIB.
33960         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
33961
33962 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33963
33964         PR target/38085
33965         * config/i386/i386.c (x86_function_profiler)
33966         [!NO_PROFILE_COUNTERS]: Fix typo.
33967         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
33968         instead of callq.
33969
33970 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
33971             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33972
33973         * doc/sourcebuild.texi (Test Directives): Split into six
33974         subsections, with most of the current text in new subsections
33975         Directives, Selectors, and Final Actions.
33976         (Directives): Split list of test directives into multiple
33977         subsubsections.
33978         (Selectors): Describe use and syntax of selectors.
33979         (Effective-Target Keywords): Describe all existing keywords.
33980         (Add Options): Describe features for dg-add-options.
33981         (Require Support): Describe variants of dg-require-support.
33982         (Final Actions): Describe commands to use in dg-final.
33983
33984 2010-03-22  Michael Matz  <matz@suse.de>
33985
33986         PR middle-end/43475
33987         * recog.c (validate_replace_rtx_group): Replace also in
33988         REG_EQUAL and REG_EQUIV notes.
33989
33990 2010-03-22  Richard Guenther  <rguenther@suse.de>
33991
33992         PR tree-optimization/43390
33993         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
33994         sure vector extracts are type correct.
33995
33996 2010-03-22  Richard Guenther  <rguenther@suse.de>
33997
33998         PR middle-end/40106
33999         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
34000         x * sqrt (x) even when optimizing for size if the target
34001         has native support for sqrt.
34002
34003 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
34004
34005         * varasm.c (make_decl_rtl_for_debug): Also clear
34006         flag_mudflap for the duration of make_decl_rtl call.
34007
34008         PR debug/43443
34009         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
34010         locs from preserved VALUEs.
34011
34012 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34013
34014         PR middle-end/42718
34015         * pa.md (movmemsi): Set align to one if zero.
34016         (movmemdi): Likewise.
34017
34018 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
34019
34020         PR target/42321
34021         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
34022         with their corresponding prologue pushes.
34023
34024 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
34025
34026         PR target/43156
34027         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
34028         at the begining or end.
34029         (spu_expand_epilogue): Likewise.
34030
34031 2010-03-20  Richard Guenther  <rguenther@suse.de>
34032
34033         PR rtl-optimization/43438
34034         * combine.c (make_extraction): Properly zero-/sign-extend an
34035         extraction of the low part of a CONST_INT.  Also handle
34036         CONST_DOUBLE.
34037
34038 2010-03-19  Mike Stump  <mikestump@comcast.net>
34039
34040         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
34041         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
34042         (override_options): Use SUBTARGET32_DEFAULT_CPU.
34043
34044 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
34045
34046         PR c/43211
34047         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
34048         an error.
34049
34050 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
34051
34052         PR rtl-optimization/42258
34053         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
34054         use that may match DEF.
34055
34056         PR target/40697
34057         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
34058         the cost of loading the constant rather than assuming
34059         COSTS_N_INSNS (1).
34060         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
34061         outer code is AND, do the same tests as the andsi3 expander and
34062         return COSTS_N_INSNS (1) if and is cheap.
34063
34064         * optabs.c (avoid_expensive_constant): Fix formatting.
34065
34066 2010-03-19  Michael Matz  <matz@suse.de>
34067
34068         PR c++/43116
34069         * attribs.c (decl_attributes): When rebuilding a function pointer
34070         type use the same qualifiers as the original pointer type.
34071
34072 2010-03-19  Martin Jambor  <mjambor@suse.cz>
34073
34074         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
34075         and is_gimple_ip_invariant_address.
34076
34077 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34078
34079         Revert
34080         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34081
34082         * config/arm/arm.c (arm_override_options): Turn off
34083         flag_dwarf2_cfi_asm for AAPCS variants.
34084
34085 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34086
34087         PR target/43399
34088         * config/arm/arm.c (emit_multi_reg_push): Update comments.
34089         Use PRE_MODIFY instead of PRE_DEC.
34090         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
34091         (vfp_emit_fstmd): Likewise.
34092
34093 2010-03-19  Michael Matz  <matz@suse.de>
34094
34095         PR target/43305
34096         * builtins.c (expand_builtin_interclass_mathfn,
34097         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
34098         if that fails.
34099
34100 2010-03-19  Richard Guenther  <rguenther@suse.de>
34101
34102         PR tree-optimization/43415
34103         * tree-ssa-pre.c (phi_translate): Split out worker to ...
34104         (phi_translate_1): ... this.
34105         (phi_translate): Move all caching here.  Cache all NARY
34106         and REFERENCE translations.
34107
34108 2010-03-19  David S. Miller  <davem@davemloft.net>
34109
34110         With help from Eric Botcazou.
34111         * config/sparc/sparc.c: Include dwarf2out.h.
34112         (emit_pic_helper): Delete.
34113         (pic_helper_symbol_name): Delete.
34114         (pic_helper_emitted_p): Delete.
34115         (pic_helper_needed): New.
34116         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
34117         (get_pc_thunk_name): New.
34118         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
34119         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
34120         Set pic_helper_needed to true.  Don't call emit_pic_helper.
34121         (sparc_expand_prologue): Update load_pic_register call.
34122         (sparc_output_mi_thunk): Likewise.
34123         (sparc_file_end): Emit a hidden comdat symbol for the PIC
34124         thunk if possible.  Output CFI information as needed.
34125
34126 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
34127             Jack Howarth  <howarth@bromo.med.uc.edu>
34128
34129         PR target/36399
34130         * config/i386/i386.h: Fix ABI on darwin x86-32.
34131
34132 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
34133
34134         * tree.h: Declare make_decl_rtl_for_debug.
34135         * varasm.c (make_decl_rtl_for_debug): New.
34136         * dwarf2out.c (rtl_for_decl_location): Call it.
34137         * cfgexpand.c (expand_debug_expr): Call it.
34138
34139 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34140
34141         PR bootstrap/43399
34142         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
34143         mem_mode.
34144
34145         PR bootstrap/43403
34146         * var-tracking.c (vt_init_cfa_base): Do nothing if
34147         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
34148
34149 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
34150
34151         PR debug/42873
34152         * var-tracking.c (canonicalize_vars_star): New.
34153         (dataflow_post_merge_adjust): Use it.
34154
34155 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34156
34157         PR debug/43058
34158         * var-tracking.c (non_suitable_const): New function.
34159         (add_uses): For DEBUG_INSNs with constants, don't record any
34160         value, instead just the constant value itself.
34161         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
34162         is not VAR_LOC_UNKNOWN_P, set var to the constant.
34163         (emit_notes_in_bb): Likewise.
34164         (emit_note_insn_var_location): For onepart variables if
34165         cur_loc is a VOIDmode constant, use DECL_MODE.
34166
34167 2010-03-18  Martin Jambor  <mjambor@suse.cz>
34168
34169         PR middle-end/42450
34170         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
34171         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
34172         all non-clones.  Moved call redirection...
34173         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
34174         (cgraph_materialize_all_clones): Dispose of all
34175         combined_args_to_skip bitmaps.
34176         (verify_cgraph_node): Do not check for edges pointing to wrong
34177         nodes in inline clones.
34178         * tree-inline.c (copy_bb): Call
34179         cgraph_redirect_edge_call_stmt_to_callee.
34180         * ipa.c (cgraph_remove_unreachable_nodes): Call
34181         cgraph_node_remove_callees even when there are used clones.
34182
34183 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
34184
34185         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
34186
34187 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
34188
34189         PR target/43383
34190         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
34191         for 32bit.
34192
34193 2010-03-18  Michael Matz  <matz@suse.de>
34194
34195         PR middle-end/43419
34196         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
34197         into sqrt(x) if we need to preserve signed zeros.
34198
34199 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
34200             Eric Botcazou  <ebotcazou@adacore.com>
34201
34202         PR rtl-optimization/43360
34203         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
34204         note if we don't know its invariant status.
34205
34206 2010-03-18  Michael Matz  <matz@suse.de>
34207
34208         PR tree-optimization/43402
34209         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
34210         PHI chains of ssa names registered for update.
34211
34212 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
34213
34214         PR target/42427
34215         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
34216         non-offsettable and pre_modify update addressing.
34217         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
34218         and "2" alternatives "#".
34219         (*movdd_softfloat32): Make all alternatives "#";
34220         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
34221         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
34222         (*movdf_softfloat32): Make all alternatives "#";
34223         (movdi): Use the new DIFD mode iterator to create a common splitter
34224         for movdi, movdf and movdd patterns.
34225
34226 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
34227
34228         * common.opt (dumpdir): Remove redundant tab.
34229
34230 2010-03-17  Martin Jambor  <mjambor@suse.cz>
34231
34232         PR tree-optimization/43347
34233         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
34234         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
34235
34236 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
34237
34238         PR rtl-optimization/42216
34239         * regrename.c (create_new_chain): New function, broken out from...
34240         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
34241         appending a use to an empty chain.
34242         (build_def_use): Remove previous changes that convert OP_INOUT to
34243         OP_OUT operands; instead detect the case where an OP_INOUT operand
34244         uses a previously untracked register and create an empty chain for it.
34245
34246 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34247
34248         * doc/extend.texi (Function Attributes): Rewrite unfinished
34249         sentence in ms_abi documentation.
34250
34251 2010-03-17  Alan Modra  <amodra@gmail.com>
34252
34253         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
34254         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
34255         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
34256         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
34257
34258 2010-03-16  Richard Henderson  <rth@redhat.com>
34259
34260         PR middle-end/43365
34261         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
34262         (lower_try_finally): Save and restore eh_seq around the expansion
34263         of the try-finally.
34264
34265 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
34266
34267         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
34268         statements before splitting block.
34269
34270 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34271
34272         * doc/sourcebuild.texi (Testsuites): Fix markup.
34273         Use pathnames relative to gcc/testsuite.
34274         (Test Directives): Move description of how timeout is determined.
34275         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
34276         (C Tests): Correct gcc.misc-tests directory.
34277         Framework tests now live in gcc.test-framework.
34278
34279 2010-03-16  Richard Guenther  <rguenther@suse.de>
34280
34281         PR middle-end/43379
34282         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
34283         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
34284
34285 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
34286             Alexandre Oliva  <aoliva@redhat.com>
34287
34288         PR tree-optimization/42917
34289         * lambda-code.c (remove_iv): Skip debug statements.
34290         (lambda_loopnest_to_gcc_loopnest): Likewise.
34291         (not_interesting_stmt): Debug statements are not interesting.
34292
34293 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
34294
34295         PR debug/43051
34296         PR debug/43092
34297         * cselib.c (cselib_preserve_constants,
34298         cfa_base_preserved_val): New static variables.
34299         (preserve_only_constants): New function.
34300         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
34301         clear its REG_VALUES.  If cselib_preserve_constants, don't
34302         empty the whole hash table, but preserve there VALUEs with constants,
34303         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
34304         (cselib_preserve_cfa_base_value): New function.
34305         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
34306         (cselib_init): Change argument to int bitfield.  Set
34307         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
34308         is in it.
34309         (cselib_finish): Clear cselib_preserve_constants and
34310         cfa_base_preserved_val.
34311         * cselib.h (enum cselib_record_what): New enum.
34312         (cselib_init): Change argument to int.
34313         (cselib_preserve_cfa_base_value): New prototype.
34314         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
34315         * dse.c (dse_step1): Likewise.
34316         * cfgcleanup.c (thread_jump): Likewise.
34317         * sched-deps.c (sched_analyze): Likewise.
34318         * gcse.c (local_cprop_pass): Likewise.
34319         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
34320         If FN is non-NULL, call the callback always and whenever it returns
34321         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
34322         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
34323         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
34324         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
34325         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
34326         * var-tracking.c: Include recog.h.
34327         (bb_stack_adjust_offset): Remove.
34328         (vt_stack_adjustments): Don't call it, instead just gather the
34329         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
34330         (adjust_stack_reference): Remove.
34331         (compute_cfa_pointer): New function.
34332         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
34333         (struct adjust_mem_data): New type.
34334         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
34335         functions.
34336         (get_address_mode): New function.
34337         (replace_expr_with_values): Use it.
34338         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
34339         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
34340         (adjust_sets): Remove.
34341         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
34342         Use get_address_mode.
34343         (get_adjusted_src): Remove.
34344         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
34345         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
34346         (add_with_sets): Don't call adjust_sets.
34347         (fp_setter, vt_init_cfa_base): New functions.
34348         (vt_initialize): Change return type to bool.  Move most of pool etc.
34349         initialization to the beginning of the function from end.  Pass
34350         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
34351         If !frame_pointer_needed, call vt_stack_adjustment before mos
34352         vector is filled, call vt_init_cfa_base if argp/framep has been
34353         eliminated to sp.  If frame_pointer_needed and argp/framep has
34354         been eliminated to hard frame pointer, set
34355         hard_frame_pointer_adjustment and call vt_init_cfa_base after
34356         encountering fp setter in the prologue.  For MO_ADJUST, call
34357         log_op_type before pusing the op into mos vector, not afterwards.
34358         Call adjust_insn before cselib_process_insn/add_with_sets,
34359         call cancel_changes (0) afterwards.
34360         (variable_tracking_main_1): Adjust for vt_initialize calling
34361         vt_stack_adjustments and returning whether it succeeded or not.
34362
34363 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
34364
34365         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
34366         debug statements.
34367
34368 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
34369
34370         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
34371         has been set.
34372         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
34373         drap_reg has not been set.
34374
34375 2010-03-15  Michael Matz  <matz@suse.de>
34376
34377         PR middle-end/43300
34378         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
34379         use it to expand block copies.
34380         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
34381         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
34382         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
34383
34384 2010-03-15  Richard Guenther  <rguenther@suse.de>
34385
34386         PR tree-optimization/43367
34387         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
34388         elimination check.
34389
34390 2010-03-15  Richard Guenther  <rguenther@suse.de>
34391
34392         PR tree-optimization/43317
34393         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
34394
34395 2010-03-15  Martin Jambor  <mjambor@suse.cz>
34396
34397         PR tree-optimization/43141
34398         * tree-sra.c (create_abstract_origin): New function.
34399         (modify_function): Call create_abstract_origin.
34400
34401 2010-03-15  Chris Demetriou  <cgd@google.com>
34402
34403         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
34404         wasn't copied.
34405
34406 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34407
34408         PR middle-end/43354
34409         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
34410         call insert_out_of_ssa_copy for default definitions.
34411
34412 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34413
34414         * graphite-clast-to-gimple.c (my_long_long): Defined.
34415         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
34416         * graphite-sese-to-poly.c (my_long_long): Defined.
34417         (scop_ivs_can_be_represented): Use it.
34418
34419 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34420
34421         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
34422         graphite-max-bbs-per-function, and loop-block-tile-size.
34423         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
34424         with "maximum".
34425         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
34426
34427 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34428
34429         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
34430         forward declaration.
34431         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
34432         (add_upper_bounds_from_estimated_nit): New.
34433         (build_loop_iteration_domains): Use it.
34434
34435 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34436
34437         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
34438
34439 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34440
34441         PR middle-end/43306
34442         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
34443         should be an INTEGER_CST.  Also handle CASE_CONVERT.
34444
34445 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34446
34447         * graphite.c (graphite_initialize): To bound the number of bbs per
34448         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
34449         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
34450         * doc/invoke.texi: Document it.
34451
34452 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34453
34454         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
34455         * graphite-sese-to-poly.h (build_poly_scop): Same.
34456
34457 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34458
34459         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
34460         the number of parameters in the scop.  Use as an upper bound
34461         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
34462         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
34463         * doc/invoke.texi: Document it.
34464
34465 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
34466
34467         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
34468         * doc/c-tree.texi: Remove.
34469         * doc/generic.texi: Merge c-tree.texi here.
34470         * doc/gccint.texi (Trees): Remove menu entry.
34471         (c-tree.texi): Remove @include.
34472         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
34473         * doc/languages.texi (Reading RTL): Ditto.
34474
34475 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
34476
34477         PR target/42869
34478         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
34479
34480 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
34481
34482         PR middle-end/42431
34483         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
34484         code added to work around reload clobbering CONST insns.
34485
34486 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
34487
34488         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
34489         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
34490         (cselib_preserve_only_values): Remove retain argument, don't
34491         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
34492         * cselib.h (cselib_preserve_only_values): Remove retain argument.
34493         * var-tracking.c (micro_operation): Move insn field before union.
34494         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
34495         (struct variable_tracking_info_def): Remove n_mos field, change
34496         mos into a vector of micro_operations.
34497         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
34498         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
34499         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
34500         changing into a vector.
34501         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
34502         come before all other uops generated by add_stores.
34503         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
34504         argument removal.
34505         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
34506         a vector.  Run just one pass over the bbs instead of separate counting
34507         and computation phase.
34508         (vt_finalize): Free VTI (bb)->mos vector instead of array.
34509
34510         PR debug/43329
34511         * tree-inline.c (remap_decls): Put old_var rather than origin_var
34512         into *nonlocalized_list vector.
34513         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
34514         even if origin is non-NULL.
34515         (gen_variable_die): Likewise.
34516         (process_scope_var): Don't change origin.
34517         (gen_decl_die): Likewise.
34518         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
34519         before adding new edges instead of after it, fix moving over
34520         debug stmts.
34521
34522 2010-03-11  David S. Miller  <davem@davemloft.net>
34523
34524         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
34525         of four.
34526         * configure: Rebuild.
34527
34528 2010-03-11  Martin Jambor  <mjambor@suse.cz>
34529
34530         PR tree-optimization/43257
34531         * tree.c (assign_assembler_name_if_neeeded): New function.
34532         (free_lang_data_in_cgraph): Assembler name assignment moved to the
34533         above new function.
34534         * tree.h (assign_assembler_name_if_neeeded): Declare.
34535         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
34536         the function if needed.
34537
34538 2010-03-11  Chris Demetriou  <cgd@google.com>
34539
34540         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
34541         include/stdint-gcc.h, and include/stdint.h world-readable.
34542
34543 2010-03-11  Richard Guenther  <rguenther@suse.de>
34544
34545         PR tree-optimization/43255
34546         * tree-vrp.c (process_assert_insertions_for): Do not insert
34547         asserts for trivial conditions.
34548
34549 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34550
34551         PR tree-optimization/43280
34552         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
34553         generation.  Move calculation of size out of the if branch.
34554         (find_bswap): Modify compare number generation.
34555
34556 2010-03-11  Richard Guenther  <rguenther@suse.de>
34557
34558         PR lto/43200
34559         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
34560         (input_gimple_stmt): Fixup handled component types during
34561         operand read.  Also fix up decls in ADDR_EXPRs.
34562
34563 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
34564
34565         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
34566         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
34567
34568 2010-03-10  Jan Hubicka  <jh@suse.cz>
34569
34570         PR c/43288
34571         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
34572         * varasm.c (get_variable_section): Don't do that here...
34573         (make_decl_rtl): ... and here.
34574         (do_assemble_alias): Produce decl RTL.
34575         (assemble_alias): Likewise.
34576
34577 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
34578
34579         PR debug/43290
34580         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
34581         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
34582         of fde->vdrap_reg.
34583         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
34584         (based_loc_descr): Only express drap or vdrap regno based expressions
34585         using DW_OP_fbreg when not optimizing.
34586         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
34587         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
34588         REG_CFA_SET_VDRAP note.
34589
34590 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
34591
34592         PR tree-optimization/43236
34593         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
34594         error in calculation of base address in reverse iteration case.
34595         (generate_builtin): Take number of latch executions if the statement
34596         is in the latch.
34597
34598 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
34599
34600         PR middle-end/42859
34601         * tree-eh.c: Include pointer-set.h.
34602         (lower_eh_dispatch): Filter out duplicate case labels and
34603         remove the unneeded edge when the label is unused.  Return
34604         true when some edges are removed.
34605         (execute_lower_eh_dispatch): When any lowering resulted in
34606         removing an edge, also delete unreachable blocks.
34607
34608 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
34609
34610         PR bootstrap/43287
34611         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
34612         UNSPEC_MACHOPIC_OFFSET.
34613
34614 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
34615
34616         PR target/43294
34617         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
34618         (m68k_delegitimize_address): New function.
34619
34620 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
34621
34622         PR debug/43299
34623         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
34624
34625         PR debug/43299
34626         * var-tracking.c (adjust_sets): New function.
34627         (count_with_sets, add_with_sets): Use it.
34628         (get_adjusted_src): New inline function.
34629         (add_stores): Use it.
34630
34631         PR debug/43304
34632         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
34633         call cselib_dummy_expand_value_rtx_cb instead of
34634         cselib_expand_value_rtx_cb.
34635
34636         PR debug/43293
34637         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
34638         * config/i386/i386.c: Include debug.h and dwarf2out.h.
34639         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
34640         and .cfi_endproc around the pic thunks.
34641         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
34642         all queued unwind info register saves are saved before the call.
34643         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
34644         considered as sp-=4 for unwind info and the pop as sp+=4 which
34645         also clobbers dest, but doesn't actually restore it.
34646
34647         PR debug/43290
34648         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
34649         RTX_FRAME_RELATED_P.
34650
34651 2010-03-09  Jie Zhang  <jie@codesourcery.com>
34652
34653         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
34654         whitespaces in output template.
34655
34656 2010-03-09  Jie Zhang  <jie@codesourcery.com>
34657
34658         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
34659         out array boundary.
34660
34661 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
34662
34663         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
34664         builtins.exp in a separate job.
34665
34666 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34667
34668         * graphite-sese-to-poly.c (add_param_constraints): Use
34669         lower_bound_in_type and upper_bound_in_type.
34670
34671 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34672
34673         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
34674         instead of unsigned_type_node.
34675
34676 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34677             Reza Yazdani  <reza.yazdani@amd.com>
34678
34679         PR middle-end/43065
34680         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
34681         on pointer type parameters.
34682
34683 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
34684
34685         PR middle-end/42644
34686         PR middle-end/42130
34687         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
34688         handle conversions from pointer to integers.
34689         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
34690         induction variable, to be able to work with code generated by CLooG.
34691         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
34692         (build_poly_scop): Bail out if we cannot codegen a loop.
34693
34694 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
34695
34696         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
34697         code generation with gloog_error.
34698
34699 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34700
34701         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
34702         Call fold_convert on all the returned values.
34703         (expand_scalar_variables_expr): Pass to
34704         expand_scalar_variables_ssa_name the type of the resulting expression.
34705
34706 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34707
34708         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
34709         ppl_min_for_le_pointset.
34710         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
34711         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
34712
34713 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34714
34715         * graphite-dependences.c (map_into_dep_poly): Removed.
34716         (dependence_polyhedron_1): Use combine_context_id_scat.
34717
34718 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34719
34720         * graphite-poly.h (struct poly_scattering): Add layout documentation.
34721         (struct poly_bb): Same.
34722         (combine_context_id_scat): New.
34723
34724 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34725
34726         PR middle-end/42326
34727         * sese.c (name_defined_in_loop_p): Return false for default
34728         definitions.
34729
34730 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34731
34732         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
34733         and clean up the logic.
34734
34735 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34736
34737         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
34738         early return.
34739
34740 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
34741
34742         * var-tracking.c (remove_cselib_value_chains): Define only for
34743         ENABLE_CHECKING.
34744         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
34745         delete_slot_part, emit_notes_for_differences_1): Don't call
34746         remove_cselib_value_chains here.
34747         (set_slot_part, emit_notes_for_differences_2): Don't call
34748         add_cselib_value_chains here.
34749         (preserved_values): New vector.
34750         (preserve_value): New function.
34751         (add_uses, add_stores, vt_add_function_parameters): Use it
34752         instead of cselib_preserve_value.
34753         (changed_values_stack): New vector.
34754         (check_changed_vars_0): New function.
34755         (check_changed_vars_1, check_changed_vars_2): Use it.
34756         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
34757         changed_values_stack VALUEs.
34758         (vt_emit_notes): For all preserved_values call
34759         add_cselib_value_chains.  If ENABLE_CHECKING call
34760         remove_cselib_value_chains before verifying value_chains is empty.
34761         Initialize and free changed_values_stack.
34762         (vt_initialize): Initialize preserved_values.
34763         (vt_finalize): Free preserved_values.
34764
34765 2010-03-08  Richard Guenther  <rguenther@suse.de>
34766
34767         PR tree-optimization/43269
34768         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
34769         region detection.
34770
34771 2010-03-08  Martin Jambor  <mjambor@suse.cz>
34772
34773         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
34774         (ipa_is_param_called): Removed.
34775         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
34776         (ipa_print_node_params): Do not print the called flag.
34777         (ipa_write_node_info): Do not stream the called flag.
34778         (ipa_read_node_info): Likewise.
34779
34780 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
34781
34782         PR debug/43176
34783         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
34784         * cselib.c (struct expand_value_data): Add dummy field.
34785         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
34786         dummy to false.
34787         (cselib_dummy_expand_value_rtx_cb): New function.
34788         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
34789         any rtl.
34790         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
34791         * var-tracking.c: Include pointer-set.h.
34792         (variable): Change n_var_parts to char from int.  Add
34793         cur_loc_changed and in_changed_variables fields.
34794         (variable_canonicalize): Remove.
34795         (shared_var_p): New inline function.
34796         (unshare_variable): Maintain cur_loc_changed and
34797         in_changed_variables fields.  If var was in changed_variables,
34798         replace it there with new_var.  Just copy cur_loc instead of
34799         resetting it to something else.
34800         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
34801         (dataflow_set_union): Don't call variable_canonicalize.
34802         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
34803         of their DEBUG_EXPR_TREE_DECLs.
34804         (canonicalize_loc_order_check): Verify that cur_loc is NULL
34805         and in_changed_variables and cur_loc_changed is false.
34806         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
34807         and cur_loc_changed.  Don't update cur_loc here.
34808         (variable_merge_over_src): Don't call variable_canonicalize.
34809         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
34810         removing loc that is equal to cur_loc, clear cur_loc,
34811         set cur_loc_changed and ensure variable_was_changed is called.
34812         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
34813         compare pointers in cur_loc check, if it is equal to loc,
34814         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
34815         (variable_different_p): Remove compare_current_location argument,
34816         don't compare cur_loc.
34817         (dataflow_set_different_1): Adjust variable_different_p caller.
34818         (variable_was_changed): If dv had some var in changed_variables
34819         already, reset in_changed_variables flag for it and propagate
34820         cur_loc_changed over to the new variable.  On empty var
34821         always set cur_loc_changed.  Set in_changed_variables on whatever
34822         var is added to changed_variables.
34823         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
34824         Use shared_var_p.  When removing loc that is equal to cur_loc,
34825         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
34826         end, don't set it to something else, just call variable_was_changed.
34827         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
34828         loc being removed, clear cur_loc and set cur_loc_changed.
34829         Set cur_loc_changed if all locations have been removed.
34830         (struct expand_loc_callback_data): New type.
34831         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
34832         allocated.  Always create SUBREGs if simplify_subreg failed.
34833         Prefer to use cur_loc, when that fails and still in
34834         changed_variables (and seen first time) recompute it.  Set
34835         cur_loc_changed of variables which had to change cur_loc and
34836         compute elcd->cur_loc_changed if any of the subexpressions used
34837         had to change cur_loc.
34838         (vt_expand_loc): Adjust to pass arguments in
34839         expand_loc_callback_data structure.
34840         (vt_expand_loc_dummy): New function.
34841         (emitted_notes): New variable.
34842         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
34843         that weren't used for any other decl in current
34844         emit_notes_for_changes call call vt_expand_loc_dummy to update
34845         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
34846         first loc_chain location if NULL before.  Always use just
34847         cur_loc instead of first loc_chain location.  When cur_loc_changed
34848         is false, when not --enable-checking=rtl just don't emit any note.
34849         When rtl checking, compute the note and assert it is the same
34850         as previous note.  Clear cur_loc_changed and in_changed_variables
34851         at the end before removing from changed_variables.
34852         (check_changed_vars_3): New function.
34853         (emit_notes_for_changes): Traverse changed_vars to call
34854         check_changed_vars_3 on each changed var.
34855         (emit_notes_for_differences_1): Clear cur_loc_changed and
34856         in_changed_variables.  Recompute cur_loc of new_var.
34857         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
34858         (vt_emit_notes): Initialize and destroy emitted_notes.
34859
34860 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
34861
34862         PR rtl-optimization/42220
34863         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
34864         Use verify_reg_tracked to determine if we should use OP_OUT rather
34865         than OP_INOUT.
34866         (build_def_use): If we see an in-out operand for a register that we
34867         know nothing about, treat is an output if possible, fail the block if
34868         not.
34869
34870 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
34871
34872         PR debug/42897
34873         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
34874         permanently.
34875
34876 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
34877
34878         PR debug/42897
34879         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
34880         uses of relevant DEFs that are dead outside the loop too.
34881
34882 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
34883
34884         * var-tracking.c (dataflow_set_merge): Swap src and src2.
34885         Reverted:
34886         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
34887         PR debug/41371
34888         * var-tracking.c (values_to_unmark): New variable.
34889         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
34890         values_to_unmark vector.  Moved body to...
34891         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
34892         instead queue it into values_to_unmark vector.
34893         (vt_find_locations): Free values_to_unmark vector.
34894
34895 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
34896
34897         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
34898         (site.exp): Export them when plugins are enabled.
34899
34900 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
34901
34902         PR middle-end/42326
34903         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
34904         that contain scevs.
34905         (chrec_fold_multiply): Same.
34906
34907 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
34908
34909         PR c/43248
34910         * c-decl.c (build_compound_literal): Return early if init is
34911         an error_mark_node.
34912
34913 2010-03-04  Martin Jambor  <mjambor@suse.cz>
34914
34915         PR tree-optimization/43164
34916         PR tree-optimization/43191
34917         * tree-sra.c (type_consists_of_records_p): Reject records with
34918         zero-size bit-fields at the end.
34919
34920 2010-03-04  Mike Stump  <mikestump@comcast.net>
34921
34922         * Makefile.in (TAGS): Remove *.y.
34923
34924 2010-03-04  Richard Guenther  <rguenther@suse.de>
34925
34926         PR tree-optimization/40761
34927         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
34928         in reverse order.
34929         (my_rev_post_order_compute): New function.
34930         (init_pre): Call it.
34931
34932 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
34933
34934         PR middle-end/43209
34935         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
34936         decrease the cost of an IV candidate when the cost is infinite.
34937
34938 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34939
34940         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
34941         Use '3DNow!' for the extension of that name, ensure normal space
34942         after the string.
34943         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
34944
34945 2010-03-03  Jeff Law  <law@redhat.com>
34946
34947         * PR middle-end/32693
34948         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
34949         than gen_rtx_SUBREG.
34950         (extract_bit_field_1): Likewise.
34951
34952 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
34953
34954         * doc/sourcebuild.texi (Test directives): Document that arguments
34955         include-opts and exclude-opts are now optional for dg-skip-if,
34956         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
34957
34958 2010-03-03  Jason Merrill  <jason@redhat.com>
34959
34960         PR c++/12909
34961         * cgraph.h (varpool_node): Add extra_name field.
34962         * varpool.c (varpool_extra_name_alias): New.
34963         (varpool_assemble_decl): Emit extra name aliases.
34964         (varpool_mark_needed_node): Look past an extra name alias.
34965         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
34966         * lto-streamer-in.c (lto_input_tree): Read it.
34967         * lto-streamer-out.c (output_unreferenced_globals): Write it.
34968
34969 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
34970
34971         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
34972         (sparc*-*-solaris2*): ...this.
34973
34974 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
34975
34976         PR debug/43229
34977         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
34978         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
34979         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
34980         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
34981
34982         PR debug/43237
34983         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
34984         fallthrough to default handling, just with want_address 0 instead of 2.
34985         For single element lists, add_AT_loc directly, otherwise create an
34986         artificial variable DIE and stick location list to it.
34987
34988         PR debug/43177
34989         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
34990         (VAL_EXPR_HAS_REVERSE): Define.
34991         (reverse_op): New function.
34992         (add_stores): For reversible operations add an extra MO_VAL_USE.
34993
34994 2010-03-02  Jason Merrill  <jason@redhat.com>
34995
34996         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
34997
34998 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
34999
35000         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
35001         (sparc64-*-linux*): Likewise.
35002         (sparc64-*-solaris2*): Include assembler files before linker ones.
35003         (sparc-*-solaris2*): Simplify and reorder to match previous case.
35004         * config/sparc/gas.h: Delete.
35005         * config/sparc/sol2-64.h: Add copyright notice.
35006         * config/sparc/sol2-gas-bi.h: Likewise.
35007         * config/sparc/sol2-gld.h: Likewise.
35008         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
35009         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
35010         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
35011         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
35012         (sparc_elf_asm_named_section): Rename into...
35013         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
35014
35015 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
35016
35017         * config/alpha/alpha.c (override_options): Fix -mtune error message.
35018
35019 2010-03-02  Jeff Law  <law@redhat.com>
35020
35021         PR middle-end/42431
35022         * reload1.c (rtx_p, substitute_stack): Declare.
35023         (substitute): Record addresses of changed rtxs.
35024         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
35025         Restore the original rtx when complete.
35026         (reload): Free subsitute_stack when complete.
35027
35028 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
35029
35030         * doc/gccint.texi (menu): Add Testsuites as a chapter.
35031         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
35032         new chapter.
35033         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
35034         LTO Testing, gcov Testing, profopt Testing, compat Testing,
35035         Torture Tests): Change from subsection to section.
35036
35037 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
35038             Steven Bosscher  <steven@gcc.gnu.org>
35039
35040         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
35041         instead of bb.
35042
35043 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
35044
35045         PR middle-end/42640
35046         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
35047         the assignment from the new induction variable to the assignment
35048         of the value from the original loop PHI function.
35049
35050 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
35051             Daniel Jacobowitz  <dan@codesourcery.com>
35052
35053         * doc/sourcebuild.texi (Test directives): Clarify options to
35054         dg-skip-if.
35055
35056 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35057
35058         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
35059         Disable cfi directives unless GCC and gas agree on using read-only
35060         .eh_frame sections for 64-bit.
35061         * configure: Regenerate.
35062
35063 2010-03-01  Richard Guenther  <rguenther@suse.de>
35064
35065         PR tree-optimization/43220
35066         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
35067         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
35068
35069 2010-03-01  Richard Guenther  <rguenther@suse.de>
35070             Martin Jambor  <mjambor@suse.cz>
35071
35072         PR middle-end/41250
35073         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
35074         gimplified parameters.
35075
35076 2010-03-01  Christian Bruel  <christian.bruel@st.com>
35077
35078         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
35079
35080 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
35081
35082         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
35083
35084 2010-03-01  Richard Guenther  <rguenther@suse.de>
35085
35086         PR middle-end/43213
35087         * expr.c (expand_assignment): Use the alias-oracle to tell
35088         if the rhs aliases the result decl.
35089
35090 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35091
35092         PR pch/14940
35093         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
35094         to sol_gt_pch_get_address.
35095         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
35096         64-bit, SPARC and x86.
35097         (sol_gt_pch_get_address): New function.
35098
35099 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
35100
35101         * toplev.h (inform_n, error_n): Declare.
35102         * diagnostic.c (inform_n, error_n): New function.
35103
35104 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
35105
35106         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
35107         has no rtl yet when processing local_decls, queue it and recheck
35108         if deferred stack allocation hasn't assigned it rtl.
35109
35110 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
35111
35112         * config/sh/sh.c (unspec_bbr_uid): New.
35113         (gen_block_redirect): Use it instead of INSN_UID.
35114         (gen_far_branch): Likewise.
35115
35116 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
35117
35118         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
35119         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
35120
35121 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35122
35123         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
35124         (Warning Options): -Wno-conversion-null is valid for
35125         Objective-C++ as well.
35126         * doc/tm.texi (Named Address Spaces): Likewise.
35127         * doc/plugins.texi (Plugins): Replace TABs with spaces.
35128         * doc/tree-ssa.texi (Tree SSA): Likewise.
35129
35130 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35131
35132         PR bootstrap/43202
35133         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
35134         by default.  Don't set the default arch for
35135         i[34567]86-*-darwin*|x86_64-*-darwin*.
35136
35137 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35138
35139         PR bootstrap/43202
35140         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
35141         default.  Set the default 32bit/64bit archs with $with_arch
35142         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
35143
35144 2010-02-27  Richard Guenther  <rguenther@suse.de>
35145
35146         PR tree-optimization/43186
35147         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
35148         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
35149         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
35150         unroller iterations.
35151
35152 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35153
35154         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
35155         required and i[34567]86-*-* targets don't support 64bit ISA.
35156
35157 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
35158
35159         PR ada/43096
35160         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
35161         the same alias set.
35162
35163 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
35164
35165         * config.gcc: Set the default arch at least to Prescott for
35166         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
35167         if SSE math is enabled.
35168
35169 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35170
35171         * diagnostic.c (diagnostic_initialize): Update.
35172         (diagnostic_report_diagnostic): Test inhibit_notes_p for
35173         informative notes.
35174         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
35175         (diagnostic_inhibit_notes): New.
35176         * toplev.c (process_options): inhibit notes with -fcompare-debug.
35177
35178 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35179
35180         PR c/20631
35181         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
35182         * doc/standards.texi: Likewise.
35183         * doc/extend.texi: Likewise.
35184         * doc/trouble.texi: Likewise.
35185         * doc/cppopts.texi: Likewise.
35186         * doc/install.texi: Likewise.
35187         * c.opt (std=c90,std=gnu90): New options.
35188         * c-opts.c (c_common_handle_option): Handle them.
35189
35190 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35191
35192         PR c/24577
35193         * c-decl.c (undeclared_variable): Use an informative note.
35194
35195 2010-02-26  Richard Guenther  <rguenther@suse.de>
35196
35197         PR tree-optimization/43186
35198         * gimple.h (gimple_fold): Remove.
35199         * gimple.c (gimple_fold): Remove.  Inline into single user ...
35200         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
35201         Try harder for conditions.
35202
35203 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
35204
35205         PR debug/43190
35206         * function.c (used_types_insert): Don't skip through named pointer
35207         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
35208         and it is different from the main variant's type.
35209
35210 2010-02-26  Nick Clifton  <nickc@redhat.com>
35211
35212         * config/rx/rx.md (sminsi3): Remove bogus alternative.
35213
35214 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
35215
35216         * config.gcc: Support --with-fpmath=sse for x86.
35217
35218         * config/i386/ssemath.h: New.
35219
35220         * doc/install.texi (--with-fpmath=sse): Documented.
35221
35222 2010-02-26  Richard Guenther  <rguenther@suse.de>
35223
35224         PR tree-optimization/43188
35225         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
35226         vector types of over-aligned element type.
35227
35228 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
35229
35230         PR target/43175
35231         * config/i386/i386.c (expand_vec_perm_blend): Use correct
35232         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
35233
35234 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
35235
35236         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
35237
35238 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
35239
35240         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
35241         * var-tracking.c: Include diagnostic.h.
35242         (debug_dv): New function.
35243         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
35244
35245         PR debug/43160
35246         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
35247         (add_value_chain, add_value_chains, remove_value_chain,
35248         remove_value_chains): Handle DEBUG_EXPRs.
35249         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
35250
35251         PR debug/43161
35252         * regcprop.c (struct queued_debug_insn_change): New type.
35253         (struct value_data_entry): Add debug_insn_changes field.
35254         (struct value_data): Add n_debug_insn_changes field.
35255         (debug_insn_changes_pool): New variable.
35256         (free_debug_insn_changes, apply_debug_insn_changes,
35257         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
35258         (kill_value_one_regno): Call free_debug_insn_changes if needed.
35259         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
35260         fields.
35261         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
35262         changes for them.
35263         (copyprop_hardreg_forward_1): Don't call apply_change_group for
35264         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
35265         changes, call cprop_find_used_regs via note_stores.
35266         (copyprop_hardreg_forward): When copying vd from predecessor
35267         which has any queued DEBUG_INSN changes, make sure the pointers are
35268         cleared.  At the end call df_analyze and then if there are any
35269         DEBUG_INSN changes queued at the end of some basic block for still
35270         live registers, apply them.
35271         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
35272
35273 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
35274
35275         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
35276         (arm*-*-*): Ditto.
35277
35278 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
35279
35280         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
35281         targets.  Set the default with_cpu/with_arch from arch/cpu.
35282         Allow x86-64 and native for with_cpu/with_arch.
35283
35284 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
35285
35286         * ebitmap.c: Change calls to verify_popcount with calls to
35287         sbitmap_verify_popcount.
35288         (ebitmap_clear_bit): Fixed map->cacheindex test and
35289         map>cache update when bit clearing results in an empty
35290         element.
35291
35292 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
35293
35294         PR target/43154
35295         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
35296         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
35297         and support both V2DF and V2DI modes.
35298         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
35299         support both V2DF and V2DI modes.
35300         (general): Delete trailing whitespace from a few patterns.
35301
35302         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
35303         V2DF/V2DI interleave high/low builtins.
35304
35305         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
35306         new VSX builtins.
35307
35308         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
35309         interleave high/low functions.
35310
35311 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
35312
35313         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
35314         #pragma extern_prefix.
35315
35316 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
35317
35318         PR debug/43166
35319         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
35320         BLKmode, assert op0 is a MEM and just adjust its mode.
35321
35322         PR debug/43165
35323         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
35324         if bitpos isn't multiple of mode's bitsize.
35325
35326 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35327
35328         * c.opt (-ftemplate-depth=): New.
35329         (-ftemplate-depth-): Deprecate.
35330         * optc-gen.awk: Handle -ftemplate-depth=.
35331         * opth-gen.awk: Likewise.
35332         * c-opts.c (c_common_handle_option): Likewise.
35333         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
35334
35335 2010-02-24  Jason Merrill  <jason@redhat.com>
35336
35337         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
35338
35339 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35340
35341         * cfg.c (alloc_aux_for_block): Remove inline.
35342         (alloc_aux_for_edge): Likewise.
35343
35344 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35345
35346         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
35347
35348 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35349
35350         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
35351         * config/i386/sol2-gas.h: New file.
35352         * config.gcc (i[34567]86-*-solaris2*): Use it.
35353
35354 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35355
35356         PR c/43128
35357         * c-typeck.c (ep_convert_and_check): New.
35358         (build_conditional_expr): Use it.
35359         (build_binary_op): Likewise.
35360
35361 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
35362
35363         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
35364
35365         PR debug/43150
35366         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
35367         bounds even for -O+.
35368         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
35369         expr needs to have DECL_NAME set.
35370
35371 2010-02-24  Nick Clifton  <nickc@redhat.com>
35372
35373         * config/mep/mep.c: Include gimple.h.
35374         (mep_function_uses_sp): Delete unused function.
35375         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
35376         parameters.  Use unsigned integers to count args.  Return a
35377         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
35378
35379 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
35380
35381         PR target/43107
35382         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
35383         greater or equal to nelt instead of 2 * nelt.
35384         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
35385         with nelt - 1.
35386
35387 2010-02-23  Jason Merrill  <jason@redhat.com>
35388
35389         PR debug/42800
35390         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
35391         in cfun->local_decls even if they have register types.
35392
35393         PR c++/42837
35394         * stor-layout.c (place_field): Don't warn about unnecessary
35395         DECL_PACKED if the type is packed.
35396
35397 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
35398
35399         PR target/43139
35400         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
35401         GOTOFF relocs, even when the base reg isn't pic pointer.
35402
35403 2010-02-23  Michael Matz  <matz@suse.de>
35404
35405         PR debug/43077
35406         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
35407         (expand_gimple_basic_block): Generate and use debug temps if there
35408         are debug uses left after the last real use of TERed ssa names.
35409         Unlink debug immediate uses when they are expanded.
35410
35411 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35412
35413         PR 43123
35414         * config/i386/i386.c (override_options): Reorganise to provide
35415         better error messages.
35416
35417 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35418
35419         PR middle-end/43083
35420         * graphite-scop-detection.c (create_single_exit_edge): Move
35421         the call to find_single_exit_edge to....
35422         (create_sese_edges): ...here.  Don't handle multiple edges
35423         exiting the function.
35424         (build_graphite_scops): Don't handle multiple edges
35425         exiting the function.
35426
35427 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35428
35429         PR middle-end/43097
35430         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
35431         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
35432
35433 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35434
35435         PR middle-end/43026
35436         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
35437
35438 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35439
35440         PR c++/43126
35441         * c-typeck.c (convert_arguments): Print declaration location.
35442         * c-common.c (validate_nargs): Rename as
35443         builtin_function_validate_nargs.
35444         (check_builtin_function_arguments): Update.
35445
35446 2010-02-22  Richard Guenther  <rguenther@suse.de>
35447
35448         PR lto/43045
35449         * tree-inline.c (declare_return_variable): Use the type of
35450         the call stmt lhs if available.
35451
35452 2010-02-22  Duncan Sands  <baldrick@free.fr>
35453
35454         * passes.c (register_pass): Always consider all pass lists when
35455         ref_pass_instance_number is zero.
35456
35457 2010-02-22  Richard Guenther  <rguenther@suse.de>
35458
35459         PR tree-optimization/42749
35460         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
35461         parameter.  Do arithmetic in the original type.
35462         (update_accumulator_with_ops): Likewise.
35463         (adjust_accumulator_values): Adjust.
35464
35465 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35466
35467         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
35468         (QI to BLKmode splitter): New splitter.
35469
35470 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
35471
35472         * config/i386/i386.c (initial_ix86_tune_features): Turn on
35473         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
35474
35475 2010-02-22  Richard Guenther  <rguenther@suse.de>
35476
35477         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
35478
35479 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
35480
35481         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
35482         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
35483         ($(T)crti.o, $(T)crtn.o): Remove rules.
35484
35485 2010-02-21  Tobias Burnus  <burnus@net-b.de>
35486
35487         PR fortran/35259
35488         * doc/invoke.texi (-fassociative-math): Document that this
35489         option is automatically enabled for Fortran.
35490
35491 2010-02-20  David S. Miller  <davem@davemloft.net>
35492
35493         * configure.ac: Test if linker and assembler properly support
35494         GOTDATA_OP relocations.
35495         * configure: Rebuild.
35496         * config.in: Likewise.
35497         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
35498         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
35499         (movsi_high_pic): Likewise.
35500         (movdi_lo_sum_pic): Likewise.
35501         (movdi_high_pic): Likewise.
35502         (movsi_pic_gotdata_op): New pattern.
35503         (movdi_pic_gotdata_op): Likewise.
35504         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
35505         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
35506
35507 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
35508
35509         PR target/43067
35510         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
35511         attribute to ssemul.
35512         (xop_mulv2div2di3_high): Ditto.
35513
35514 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35515
35516         PR c++/35669
35517         * c.opt (Wconversion-null): New option.
35518         * doc/invoke.texi (Wconversion-null): Document.
35519
35520 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35521
35522         * common.opt (Wlarger-than-): Add Undocumented.
35523
35524 2010-02-19  Mike Stump  <mikestump@comcast.net>
35525
35526         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
35527
35528 2010-02-19  Jason Merrill  <jason@redhat.com>
35529
35530         PR target/40332
35531         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
35532         * configure: Likewise.
35533
35534 2010-02-20  Alan Modra  <amodra@gmail.com>
35535
35536         PR middle-end/42344
35537         * cgraph.h (cgraph_make_decl_local): Declare.
35538         * cgraph.c (cgraph_make_decl_local): New function.
35539         (cgraph_make_node_local): Use it.
35540         * cgraphunit.c (cgraph_function_versioning): Likewise.
35541         * ipa.c (function_and_variable_visibility): Likewise.
35542
35543 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
35544
35545         PR bootstrap/43121
35546         * except.c (sjlj_emit_function_enter): Don't call
35547         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
35548         directly.
35549         * rtl.h (add_reg_br_prob_note): Remove prototype.
35550
35551 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35552
35553         PR 41779
35554         * c-common.c (conversion_warning): Remove widening conversions
35555         before checking the conversion of integers to reals.
35556
35557 2010-02-19  Mike Stump  <mikestump@comcast.net>
35558
35559         PR middle-end/43125
35560         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
35561
35562         PR objc/43061
35563         * cgraphunit.c (process_function_and_variable_attributes): Check
35564         DECL_PRESERVE_P instead of looking up attribute "used".
35565         * ipa-pure-const.c (check_decl): Likewise.
35566         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
35567         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
35568         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
35569         instead of attribute "used".
35570         * config/sol2-c.c (solaris_pragma_init): Likewise.
35571         (solaris_pragma_fini): Likewise.
35572
35573 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
35574
35575         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
35576         Use XCNEW instead of xcalloc.
35577         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
35578         XNEW instead of xmalloc.
35579         (get_fields): Use XNEWVEC instead of xmalloc.
35580
35581         PR debug/43084
35582         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
35583         populate vars array.
35584         (create_new_general_access): For debug stmts just reset value.
35585         (get_stmt_accesses): For accesses within debug stmts just record them
35586         using add_access_to_acc_sites instead of preventing the peeling or
35587         counting them as accesses.
35588
35589         PR middle-end/42233
35590         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
35591
35592 2010-02-19  Richard Guenther  <rguenther@suse.de>
35593
35594         PR tree-optimization/42916
35595         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
35596         instructions.
35597
35598 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
35599
35600         * configure.ac: Replace all uses of changequote in macro arguments
35601         with proper quoting.
35602
35603 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
35604
35605         PR middle-end/42233
35606         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
35607
35608 2010-02-19  Richard Guenther  <rguenther@suse.de>
35609
35610         PR tree-optimization/42944
35611         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
35612         test for aliasing with errno.
35613
35614 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
35615
35616         PR middle-end/42233
35617         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
35618         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
35619         * dojump.c: Include output.h.
35620         (inv): New inline function.
35621         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
35622         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
35623         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
35624         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
35625         argument, pass it down to other calls.
35626         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
35627         add REG_BR_PROB note to the conditional jump.
35628         * cfgexpand.c (add_reg_br_prob_note): Removed.
35629         (expand_gimple_cond): Don't call it, add the probability
35630         as last argument to jumpif_1/jumpifnot_1.
35631         * Makefile.in (dojump.o): Depend on output.h.
35632         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
35633         callers.
35634         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
35635         * stmt.c (do_jump_if_equal): Likewise.
35636         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
35637         * loop-unswitch.c (compare_and_jump_seq): Likewise.
35638         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
35639         Likewise.
35640         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
35641         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
35642         jumpifnot_1 callers.
35643         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
35644         callers.
35645         (store_expr): Adjust jumpifnot caller.
35646         (store_constructor): Adjust jumpif caller.
35647
35648         PR middle-end/42233
35649         * gimplify.c (gimple_boolify): For __builtin_expect call
35650         gimple_boolify also on its first argument.
35651
35652 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
35653
35654         * configure.ac (gnu-unique-object): Wrap regexps using [] in
35655         changequote block.
35656         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
35657         * configure: Regenerated.
35658
35659 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
35660
35661         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
35662         lang_hooks.types_compatible_p instead of comptypes.
35663
35664 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
35665
35666         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
35667         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
35668         if __prefer_thumb__ is defined.
35669
35670 2010-02-18  Martin Jambor  <mjambor@suse.cz>
35671
35672         PR tree-optimization/43066
35673         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
35674         array with zero-sized element type.
35675
35676 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
35677
35678         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
35679         rtx, allocate struct var_loc_node here and return it to the
35680         caller, and only if it is actually needed.
35681         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
35682         move it earlier and return immediately if it returns NULL.
35683
35684 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
35685
35686         * config/sparc/gas.h: New file.  Restore
35687         TARGET_ASM_NAMED_SECTION to its ELF default.
35688         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
35689         check !HAVE_GNU_AS.
35690         * config/sparc/sparc.c (sparc_elf_asm_named_section):
35691         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
35692         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
35693         after sparc/sysv4.h.
35694
35695 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
35696
35697         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
35698
35699 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
35700
35701         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
35702         patterns from predicated pattern.
35703
35704 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
35705
35706         PR target/43103
35707         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
35708         for insn mnemonic suffix.
35709
35710 2010-02-17  Richard Guenther  <rguenther@suse.de>
35711
35712         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
35713         to loop PHI nodes.
35714
35715 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
35716
35717         PR debug/42918
35718         * caller-save.c (save_call_clobbered_regs): If BB ends with
35719         a DEBUG_INSN, move any notes in between last real insn and the last
35720         DEBUG_INSN after the last DEBUG_INSN.
35721
35722 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
35723
35724         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
35725         Fix return type.  Fix argument type.  Explain meaning of return value.
35726
35727 2010-02-16  Richard Guenther  <rguenther@suse.de>
35728
35729         PR tree-optimization/41043
35730         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
35731         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
35732         statements ...
35733         (vrp_visit_phi_node): ... but only for loop PHI nodes.
35734
35735 2010-02-16  Ira Rosen  <irar@il.ibm.com>
35736
35737         PR tree-optimization/43074
35738         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
35739         * tree-vect-loop.c (vect_analyze_loop_operations): Add
35740         vectorizable cycles in hybrid SLP check.
35741         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
35742
35743 2010-02-16  Richard Guenther  <rguenther@suse.de>
35744
35745         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
35746         (true_dependence): If memrefs_conflict_p computes must-alias
35747         trust it.  Move TBAA check after offset-based disambiguation.
35748         (canon_true_dependence): Likewise.
35749
35750 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
35751
35752         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
35753         * doc/invoke.texi: Document it.
35754         * var-tracking.c: Include toplev.h and params.h.
35755         (vt_find_locations): Return bool indicating success.  Compute
35756         hash sizes unconditionally.  Check new parameter, report.
35757         (variable_tracking_main_1): Check vt_find_locations results and
35758         retry.  Renamed from...
35759         (variable_tracking_main): ... this.  New wrapper to preserve
35760         flag_var_tracking_assignments.
35761         * Makefile.in (var-tracking.o): Adjust dependencies.
35762
35763 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
35764             Jakub Jelinek  <jakub@redhat.com>
35765
35766         PR target/42854
35767         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
35768         if weak_import attribute is present.
35769         * config/darwin.c (machopic_select_section): Likewise.
35770
35771 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
35772
35773         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
35774         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
35775         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
35776         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
35777
35778         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
35779         types.
35780
35781         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
35782         Fix argument types.
35783
35784         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
35785         Rewrite text to refer to the names.
35786
35787 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
35788
35789         * config/i386/i386-builtin-types.def
35790         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
35791         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
35792         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
35793         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
35794         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
35795         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
35796         IX86_BUILTIN_VPERMIL2PS256.
35797         (MULTI_ARG_4_DF2_DI_I): Defined.
35798         (MULTI_ARG_4_DF2_DI_I1): Defined.
35799         (MULTI_ARG_4_SF2_SI_I): Defined.
35800         (MULTI_ARG_4_SF2_SI_I1): Defined.
35801         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
35802         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
35803         __builtin_ia32_vpermil2ps256.
35804         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
35805         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
35806         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
35807         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
35808         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
35809         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
35810         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
35811         CODE_FOR_xop_vpermil2v8sf3.
35812         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
35813         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
35814         * config/i386/xopintrin.h (_mm_permute2_pd): New.
35815         (_mm256_permute2_pd): New.
35816         (_mm_permute2_ps): New.
35817         (_mm256_permute2_ps): New.
35818
35819 2010-02-15  Nick Clifton  <nickc@redhat.com>
35820
35821         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
35822         boolean parameters.  Use emit_jump_insn when emitting a pop
35823         instruction containing a return insn.
35824         (push): Use 'true' rather than '1' as second parameter to F.
35825         (h8300_expand_prologue): Likewise.
35826         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
35827         (h8300_expand_epilogue): Likewise.
35828
35829 2010-02-15  Richard Guenther  <rguenther@suse.de>
35830
35831         PR middle-end/43068
35832         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
35833         if that is zero.
35834
35835 2010-02-15  Nick Clifton  <nickc@redhat.com>
35836
35837         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
35838         delta.
35839
35840 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
35841
35842         * intl.c (fake_ngettext): New function.
35843         * intl.h (fake_ngettext): Declare.
35844         (ngettext): Define macro.
35845         * collect2.c (notice_translated): New function.
35846         (main): Use notice_translated and ngettext.
35847         * collect2.h (notice_translated): Declare.
35848
35849 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
35850
35851         * reorg.c (delete_computation): Comment fixes.
35852         * caller-save.c (setup_save_areas): Idem.
35853         * sel-sched-dump.c (dump_lv_set): Idem.
35854         * rtl.def: Idem.
35855
35856 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35857
35858         * config/s390/s390.c (s390_sched_init): New function.
35859         (TARGET_SCHED_INIT): Target hook defined.
35860
35861 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
35862             Jack Howarth  <howarth@bromo.med.uc.edu>
35863             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
35864
35865         PR target/42982
35866         Partial revert of unintended change in fix for PR41605.
35867         * config/darwin.h: Fix typo.
35868         * config/darwin9.h: Same.
35869
35870 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
35871
35872         * c-pch.c (pch_init): Clear v.
35873
35874 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
35875
35876         PR middle-end/42930
35877         * graphite-scop-detection.c (graphite_can_represent_scev): Call
35878         graphite_can_represent_init for MULT_EXPR.
35879
35880 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
35881
35882         PR middle-end/42914
35883         PR middle-end/42530
35884         * graphite-sese-to-poly.c (remove_phi): New.
35885         (translate_scalar_reduction_to_array): Call remove_phi.
35886
35887 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
35888
35889         PR middle-end/42771
35890         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
35891         * graphite-clast-to-gimple.h (gloog): Update declaration.
35892         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
35893         * graphite-poly.h (struct poly_bb): Add missing comments.
35894         (struct scop): Add poly_scop_p field.
35895         (POLY_SCOP_P): New.
35896         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
35897         * graphite.c (graphite_transform_loops): Build the polyhedral
35898         representation for each scop before code generation.
35899         * sese.c (rename_variables_in_operand): Removed.
35900         (rename_variables_in_expr): Return the renamed expression.
35901         (rename_sese_parameters): New.
35902         * sese.h (rename_sese_parameters): Declared.
35903
35904 2010-02-11  Richard Guenther  <rguenther@suse.de>
35905
35906         PR tree-optimization/42998
35907         * tree-ssa-pre.c (create_expression_by_pieces): Treat
35908         POINTER_PLUS_EXPR properly.
35909
35910 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
35911             Changpeng Fang  <changpeng.fang@amd.com>
35912
35913         PR middle-end/40886
35914         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
35915         the cost of an IV candidate when the IV is used in a test against zero.
35916
35917         * gcc.dg/tree-ssa/ivopts-3.c: New.
35918
35919 2010-02-11  Richard Guenther  <rguenther@suse.de>
35920
35921         PR lto/41664
35922         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
35923         pointer-vs-decl case by swapping refs.  Handle some cases
35924         of pointer-vs-decl disambiguations more conservatively.
35925         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
35926         to false after expanding.
35927
35928 2010-02-11  Richard Guenther  <rguenther@suse.de>
35929
35930         PR driver/43021
35931         * gcc.c (process_command): Handle LTO file@offset case more
35932         appropriately.
35933
35934 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
35935
35936         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
35937         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
35938         of DEBUG_INSNs.
35939         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
35940
35941         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
35942         if MEM's mode size isn't DWARF2_ADDR_SIZE.
35943         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
35944         Optimize eq/ne comparisons when both arguments are known to be
35945         zero-extended.
35946         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
35947         Don't mask operands unnecessarily if they are known to be already
35948         zero-extended.
35949
35950 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
35951
35952         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
35953         instead of loop.
35954
35955 2010-02-10  Richard Guenther  <rguenther@suse.de>
35956
35957         PR tree-optimization/43017
35958         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
35959         for wrapping signed arithmetic.
35960
35961 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
35962
35963         PR debug/43010
35964         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
35965         if no debug info should be emitted for it.
35966
35967 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
35968
35969         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
35970         note when flag_exceptions is set.
35971
35972 2010-02-10  Duncan Sands  <baldrick@free.fr>
35973
35974         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
35975
35976 2010-02-10  Richard Guenther  <rguenther@suse.de>
35977
35978         PR c/43007
35979         * tree.c (get_unwidened): Handle constants.
35980         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
35981
35982 2010-02-10  Martin Jambor  <mjambor@suse.cz>
35983
35984         PR lto/42985
35985         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
35986         check for variable argument counts independently.
35987
35988 2010-02-10  Christian Bruel  <christian.bruel@st.com>
35989
35990         PR target/42841
35991         * config/sh/sh.c (find_barrier): Increase length for non delayed
35992         conditional branches.
35993
35994 2010-02-10  Christian Bruel  <christian.bruel@st.com>
35995
35996         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
35997
35998 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
35999
36000         * builtins.c (set_builtin_user_assembler_name): Also handle
36001         ffs if int is smaller than word.
36002
36003 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
36004
36005         PR middle-end/42973
36006         * ira-conflicts.c (get_dup): Remove.
36007         (process_reg_shuffles): Add new parameter.  Use it as an
36008         additional guard for copy generation.
36009         (add_insn_allocno_copies): Rewrite.
36010
36011 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
36012
36013         * common.opt (fsched2-use-traces): Preserved for backward
36014         compatibility.
36015         * doc/invoke.texi: Remove the documentation about option
36016         -fsched2-use-traces.
36017         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
36018         flag_sched2_use_traces.
36019         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
36020         the backward compatibility flag section.
36021
36022 2010-02-09  Richard Guenther  <rguenther@suse.de>
36023
36024         PR tree-optimization/43008
36025         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
36026         make HEAP variables initialized from global memory if they
36027         are not known builtin functions.
36028         (find_func_aliases): Adjust.
36029
36030 2010-02-09  Richard Guenther  <rguenther@suse.de>
36031
36032         PR tree-optimization/43000
36033         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
36034         arithmetic manually.
36035
36036 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
36037
36038         PR tree-optimization/42931
36039         * tree-loop-linear.c (try_interchange_loops): Don't call
36040         double_int_mul if estimated_loop_iterations failed.
36041
36042 2010-02-08  Martin Jambor  <mjambor@suse.cz>
36043
36044         PR middle-end/42898
36045         * tree-sra.c (build_accesses_from_assign): Do not mark in
36046         should_scalarize_away_bitmap if stmt has volatile ops.
36047         (sra_modify_assign): Do not process assigns piecemeal if if stmt
36048         has volatile ops.
36049
36050 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
36051
36052         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
36053
36054 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
36055
36056         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
36057         before the pattern.
36058
36059 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
36060
36061         PR middle-end/42946
36062         * df-core.c (df_finish_pass): Change type of saved_flags to int.
36063
36064 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36065
36066         PR middle-end/42988
36067         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
36068         to unknown_dependence.
36069         (graphite_legal_transform_dr): Handle the unknown_dependence.
36070         (graphite_carried_dependence_level_k): Same.
36071
36072 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36073
36074         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
36075
36076 2010-02-07  Richard Guenther  <rguenther@suse.de>
36077
36078         PR middle-end/42991
36079         * expr.c (get_inner_reference): Always initialize *pbitsize.
36080
36081 2010-02-07  Richard Guenther  <rguenther@suse.de>
36082
36083         PR middle-end/42956
36084         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
36085         new ARRAY_REFs on variable size element or minimal index arrays.
36086         Complete.
36087         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
36088         gimple_fold_indirect_ref.
36089
36090 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
36091
36092         PR target/42957
36093         * arm.c (arm_override_options): Just return if the user has specified
36094         an invalid fpu name.
36095
36096 2010-02-03  Jason Merrill  <jason@redhat.com>
36097
36098         PR c++/42870
36099         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
36100         i386_pe_maybe_record_exported_symbol.
36101
36102 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
36103
36104         PR target/42924
36105         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
36106         (pa_delegitimize_address): New function.
36107
36108 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
36109
36110         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
36111         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
36112
36113 2010-02-05  Richard Guenther  <rguenther@suse.de>
36114
36115         PR lto/42762
36116         * lto-streamer-in.c (get_resolution): Deal with references
36117         to undefined functions.
36118
36119 2010-02-05  Richard Guenther  <rguenther@suse.de>
36120
36121         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
36122         (fold_const_aggregate_ref): Likewise.
36123         (ccp_fold_stmt): Substitute loads.
36124         (maybe_fold_reference): Verify types before substituting.
36125         Unshare properly.
36126         (fold_gimple_assign): Unshare properly.
36127         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
36128
36129 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
36130
36131         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
36132         for rs6000_gen_cell_microcode.
36133
36134 2010-02-04  Richard Guenther  <rguenther@suse.de>
36135
36136         PR rtl-optimization/42952
36137         * dse.c (const_or_frame_p): Remove MEM handling.
36138
36139 2010-02-04  Nick Clifton  <nickc@redhat.com>
36140
36141         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
36142         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
36143         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
36144         (mn10300_asm_output_mi_thunk): New function.
36145         (mn10300_can_output_mu_thunk): New function.
36146         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
36147         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
36148         (FUNCTION_ARG): Delete incorrect comment.
36149
36150 2010-02-03  Jason Merrill  <jason@redhat.com>
36151
36152         PR c++/40138
36153         * fold-const.c (operand_equal_p): Handle erroneous types.
36154
36155 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
36156
36157         * config/h8300/h8300.md (can_delay): Fix attibute condition.
36158
36159 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
36160
36161         PR rtl-optimization/42941
36162         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
36163         of xmalloc.
36164
36165 2010-02-03  Jason Merrill  <jason@redhat.com>
36166
36167         PR c++/35652
36168         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
36169
36170 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
36171
36172         PR debug/42896
36173         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
36174         (cselib_reset_table): Renamed from...
36175         (cselib_reset_table_with_next_value): ... this.
36176         (cselib_get_next_uid): Renamed from...
36177         (cselib_get_next_unknown_value): ... this.
36178         * cselib.c (next_uid): Renamed from...
36179         (next_unknown_value): ... this.
36180         (cselib_clear_table): Adjust.
36181         (cselib_reset_table): Adjust.  Renamed from...
36182         (cselib_reset_table_with_next_value): ... this.
36183         (cselib_get_next_uid): Adjust.  Renamed from...
36184         (cselib_get_next_unknown_value): ... this.
36185         (get_value_hash): Use hash.
36186         (cselib_hash_rtx): Likewise.
36187         (new_cselib_val): Adjust.  Set and dump uid.
36188         (cselib_lookup_mem): Pass next_uid as hash.
36189         (cselib_subst_to_values): Likewise.
36190         (cselib_log_lookup): Dump uid.
36191         (cselib_lookup): Pass next_uid as hash.  Adjust.
36192         (cselib_process_insn): Adjust.
36193         (cselib_init): Initialize next_uid.
36194         (cselib_finish): Adjust.
36195         (dump_cselib_table): Likewise.
36196         * dse.c (canon_address): Dump value uid.
36197         * print-rtl.c (print_rtx): Print value uid.
36198         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
36199         (dvuid): New type.
36200         (dv_uid): New function, sort of renamed from...
36201         (dv_htab_hash): ... this, reimplemented in terms of it and...
36202         (dv_uid2hash): ... this.  New.
36203         (variable_htab_eq): Drop excess assertions.
36204         (tie_break_pointers): Removed.
36205         (canon_value_cmp): Compare uids.
36206         (variable_post_merge_New_vals): Print uids.
36207         (vt_add_function_parameters): Adjust.
36208         (vt_initialize): Reset table.  Adjust.
36209
36210 2010-02-03  Richard Guenther  <rguenther@suse.de>
36211
36212         PR tree-optimization/42944
36213         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
36214         (call_may_clobber_ref_p_1): Likewise.  Properly handle
36215         malloc and calloc clobbering errno.
36216
36217 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
36218
36219         * doc/invoke.texi: Fix name of sched1 dump.
36220
36221         * opts.c (decode_options): Set flag_tree_switch_conversion
36222         only conditionally on optimize >= 2.
36223
36224         * gcse.c: Assorted comment fixes in pass description.
36225
36226 2010-02-03  Anthony Green  <green@moxielogic.com>
36227
36228         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
36229         nop padding in order to maintain alignment of storage location of
36230         target function address.
36231         (moxie_trampoline_init): Store target function address at newly
36232         aligned location.
36233         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
36234         to 32.
36235         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
36236
36237 2010-02-03  Richard Guenther  <rguenther@suse.de>
36238
36239         PR middle-end/42927
36240         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
36241
36242 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36243
36244         * config.gcc: Reenable check for obsolete targets.
36245         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
36246         mips-sgi-irix6.[0-4]*.
36247
36248 2010-02-02  Nick Clifton  <nickc@redhat.com>
36249
36250         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
36251         constant size of 4 as being the same as 0.
36252         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
36253         can take values in the range 0..4.
36254
36255 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
36256
36257         PR java/41991
36258         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
36259         as _darwin10_Unwind_FindEnclosingFunction().
36260         * libgcc-libsystem.ver: New.
36261
36262 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
36263
36264         PR target/41399
36265         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
36266         implicitly set registers.
36267
36268 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
36269
36270         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
36271         (arm_override_options): Allow automatic selection of the thread
36272         pointer register if thumb2.
36273         (legitimize_pic_address): Improve code sequences for Thumb2.
36274         (arm_call_tls_get_addr): Likewise.
36275         (legitimize_tls_address): Likewise.
36276         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
36277         (pic_load_addr_32bit): ... this.  New named pattern.
36278         * thumb2.md (pic_load_addr_thumb2): Delete.
36279         (pic_load_dot_plus_four): Delete.
36280         (tls_load_dot_plus_four): New named pattern.
36281
36282 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36283
36284         PR libgomp/29986
36285         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
36286         Document fix for TLS bug.
36287
36288 2010-01-31  Richard Guenther  <rguenther@suse.de>
36289
36290         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
36291         conservatively correct.
36292
36293 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36294
36295         PR target/42850
36296         Revert:
36297         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36298
36299         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
36300
36301 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
36302
36303         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
36304
36305 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
36306
36307         * config.gcc: Adjust order of makefile fragments for mingw targets.
36308
36309 2010-01-31  Richard Guenther  <rguenther@suse.de>
36310
36311         PR middle-end/42898
36312         * gimplify.c (gimplify_init_constructor): For volatile LHS
36313         initialize a temporary.
36314
36315 2010-01-31  Matthias Klose  <doko@ubuntu.com>
36316
36317         * configure.ac: Fix __stack_chk_fail check for cross builds configured
36318         --with-headers
36319         * configure: Regenerate.
36320
36321 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
36322
36323         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
36324         the same alias set and their sizes different constantness.
36325         (aliasing_component_refs_p): Revert 2009-10-24 change.
36326
36327 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36328
36329         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
36330         unused.
36331
36332 2010-01-29  Richard Guenther  <rguenther@suse.de>
36333
36334         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
36335         Assert we successfully updated the call.
36336
36337 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
36338
36339         PR rtl-optimization/42889
36340         * df.h (df_set_bb_dirty_nonlr): New prototype.
36341         * df-core.c (df_set_bb_dirty_nonlr): New function.
36342         * df-scan.c (df_insn_rescan): Call it instead of
36343         df_set_bb_dirty for DEBUG_INSNs.
36344
36345 2010-01-29  Richard Guenther  <rguenther@suse.de>
36346
36347         PR middle-end/37448
36348         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
36349         quadratic behavior in most cases.
36350
36351 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
36352
36353         PR target/42891
36354         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
36355         in the call to gen_x86_movsicc_0_m1.
36356
36357 2010-01-28  Richard Guenther  <rguenther@suse.de>
36358
36359         PR tree-optimization/42871
36360         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
36361
36362 2010-01-28  Richard Guenther  <rguenther@suse.de>
36363
36364         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
36365         into call arguments.
36366
36367 2010-01-28  Richard Guenther  <rguenther@suse.de>
36368
36369         PR middle-end/42883
36370         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
36371         the forwarder if the destination is an EH landing pad.
36372
36373 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
36374
36375         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
36376         block list passed to gimple_duplicate_sese_tail.
36377         (parallelize_loops): Avoid parallelization when the function
36378         has_nonlocal_label.
36379         Avoid parallelization when the preheader is IRREDUCIBLE.
36380         Try to optimize when estimated_loop_iterations_int is unresolved.
36381         Add the loop's location to the dump file.
36382         * tree-cfg.c (add_phi_args_after_redirect): Remove.
36383         (gimple_duplicate_sese_tail): Remove the check for the latch.
36384         Redirect nexits to the exit block.
36385         Remove handling of the incoming edges to the latch.
36386         Redirect the backedge from the copied latch to the exit bb.
36387
36388 2010-01-28  Michael Matz  <matz@suse.de>
36389
36390         PR target/42881
36391         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
36392         Wrap force_reg into a sequence, emit it before user.
36393
36394 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
36395
36396         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
36397         (arm_rev): New.
36398         (arm_legacy_rev): Likewise.
36399         (thumb_legacy_rev): Likewise.
36400
36401 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
36402
36403         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
36404         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
36405         on MEM's address failed, try avoid_constant_pool_reference and
36406         recurse if it returned something different.
36407         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
36408         address, try avoid_constant_pool_reference and recurse if it
36409         returned something different.
36410         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
36411         address and avoid_constant_pool_reference returned something
36412         different, don't set have_address.
36413
36414 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
36415
36416         PR debug/42861
36417         * var-tracking.c (val_store): Add modified argument, obey it.
36418         Adjust callers.
36419         (count_uses): Move down logging of main.
36420         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
36421         don't need resolution.
36422         (emit_notes_in_bb): Likewise.
36423
36424 2010-01-27  Richard Guenther  <rguenther@suse.de>
36425
36426         PR middle-end/42878
36427         * tree-inline.c (remap_decl): Delay remapping of SSA name
36428         default definitions until we need them.
36429
36430 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
36431
36432         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
36433         (rs6000_delegitimize_address): New function.
36434
36435         * config/s390/s390.c (s390_delegitimize_address): Call
36436         delegitimize_mem_from_attrs.
36437
36438         PR middle-end/42874
36439         * tree-inline.c (cannot_copy_type_1): Removed.
36440         (copy_forbidden): Don't forbid copying of functions containing
36441         records/unions with variable length fields.
36442
36443 2010-01-27  Christian Bruel  <christian.bruel@st.com>
36444
36445         Revert:
36446         PR target/42841
36447         * config/sh/sh.c (find_barrier): Increase length for non delayed
36448         conditional branches.
36449
36450 2010-01-27  Matthias Klose  <doko@ubuntu.com>
36451
36452         * configure.ac (gnu-unique-object): Fix ldd version check.
36453         * configure: Regenerate.
36454
36455 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36456
36457         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
36458         HAVE_GNU_AS value.
36459         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
36460         Test for HAVE_GNU_AS value.
36461
36462 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36463
36464         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
36465         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
36466         INT64_TYPE): Define.
36467         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
36468         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
36469         INT_LEAST64_TYPE): Define.
36470         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
36471         UINT_LEAST64_TYPE): Define.
36472         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
36473         INT_FAST64_TYPE): Define.
36474         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
36475         UINT_FAST64_TYPE): Define.
36476         (INTMAX_TYPE, UINTMAX_TYPE): Define.
36477         (INTPTR_TYPE, UINTPTR_TYPE): Define.
36478         (SIG_ATOMIC_TYPE): Define.
36479
36480 2010-01-26  Richard Guenther  <rguenther@suse.de>
36481
36482         * df-scan.c (df_scan_set_bb_info): Remove assert.
36483         (df_insn_rescan_debug_internal): Merge asserts.
36484         (df_install_ref): Likewise.
36485         (df_mark_reg): Use bitmap_set_range.
36486         (df_hard_reg_used_p): Remove assert.
36487         (df_hard_reg_used_count): Likewise.
36488
36489 2010-01-26  Richard Guenther  <rguenther@suse.de>
36490
36491         PR rtl-optimization/42685
36492         * web.c (web_main): Ignore DEBUG_INSNs.
36493
36494 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
36495
36496         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
36497
36498         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
36499         Fix types of fndecl and arglist parameters.
36500
36501 2010-01-26  Richard Guenther  <rguenther@suse.de>
36502
36503         PR middle-end/42806
36504         * tree-eh.c (unsplit_eh): Skip debug insns.
36505
36506 2010-01-26  Richard Guenther  <rguenther@suse.de>
36507
36508         PR tree-optimization/42250
36509         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
36510
36511 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
36512
36513         PR fortran/42866
36514         * omp-low.c (expand_omp_sections): Only use single_pred if
36515         l2_bb is single_pred_p.
36516
36517 2010-01-25  Christian Bruel  <christian.bruel@st.com>
36518
36519         PR target/42841
36520         * config/sh/sh.c (find_barrier): Increase length for non delayed
36521         conditional branches.
36522         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
36523
36524 2010-01-24  David S. Miller  <davem@davemloft.net>
36525
36526         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
36527         define if not using GAS.
36528         * config/sparc/sparc.c (sparc_elf_asm_named_section):
36529         Likewise.  Delete SECTION_MERGE code, which is only applicable
36530         when using GAS.
36531
36532 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
36533
36534         PR c++/42748
36535         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
36536         mangling of va_list in system headers.
36537
36538 2010-01-23  Toon Moene  <toon@moene.org>
36539
36540         * tree-predcom.c (combine_chains): Return NULL, not false.
36541
36542 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
36543
36544         * tree-loop-distribution.c (distribute_loop): Fix declaration and
36545         initialization of variable res to agree with return type.
36546
36547 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
36548
36549         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
36550         * tree-sra.c: Add include of expr.h.
36551
36552 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
36553
36554         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
36555         insert the debug stmt on the single non-EH edge from the stmt.
36556
36557 2010-01-22  Richard Henderson  <rth@redhat.com>
36558
36559         PR tree-opt/42833
36560         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
36561         the RHS until after generate_subtree_copies has insertted its
36562         code before the current statement.
36563
36564 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
36565
36566         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
36567
36568         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
36569
36570 2010-01-21  Martin Jambor  <mjambor@suse.cz>
36571
36572         PR tree-optimization/42585
36573         * tree-sra.c (struct access): New field grp_total_scalarization.
36574         (dump_access): Dump the new field.
36575         (should_scalarize_away_bitmap): New variable.
36576         (cannot_scalarize_away_bitmap): Likewise.
36577         (sra_initialize): Allocate new bitmaps.
36578         (sra_deinitialize): Free new bitmaps.
36579         (create_access_1): New function.
36580         (create_access): Parts moved to create_access_1.
36581         (type_consists_of_records_p): New function.
36582         (completely_scalarize_record): Likewise.
36583         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
36584         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
36585         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
36586         access.
36587         (analyze_all_variable_accesses): Completely scalarize small eligible
36588         records.
36589
36590 2010-01-21  Martin Jambor  <mjambor@suse.cz>
36591
36592         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
36593
36594 2010-01-21  Andrew Haley  <aph@redhat.com>
36595
36596         * gcc.c (process_command): Move lang_specific_driver before
36597         setting cc_libexec_prefix.
36598
36599 2010-01-21  Richard Guenther  <rguenther@suse.de>
36600
36601         PR middle-end/19988
36602         * fold-const.c (negate_expr_p): Pretend only negative
36603         real constants are easily negatable.
36604
36605 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
36606             Jason Merrill  <jason@redhat.com>
36607
36608         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
36609         (TYPE_TRANSPARENT_AGGR): this, for union and record.
36610         * calls.c (initialize argument_information): Handle it.
36611         * c-common.c (handle_transparent_union_attribute): Use new name.
36612         * c-decl.c (finish_struct): Ditto.
36613         * c-typeck.c (type_lists_compatible_p): Ditto.
36614         (convert_for_assignment): Use new name and also handle record.
36615         * function.c (aggregate_value_p): Handle it.
36616         (pass_by_reference): Ditto.
36617         (assign_parm_data_types): Ditto.
36618         * print-tree.c (print_node): Ditto.
36619         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
36620         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
36621         * tree.c (first_field): New fn.
36622
36623 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
36624
36625         PR target/42818
36626         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
36627         even when linking statically, for now.
36628
36629 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
36630
36631         PR debug/42715
36632         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
36633         without a cselib val.
36634         (count_uses): Accept MO_VAL_SET with no val on stores.
36635         (add_stores): Likewise.
36636
36637 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
36638
36639         * var-tracking.c (check_value_val): Add a compile time assertion.
36640         (dv_is_decl_p): Simplify.
36641         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
36642         gcc_assert if ENABLE_CHECKING.
36643
36644 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
36645
36646         PR debug/42782
36647         * var-tracking.c: Include tree-flow.h.
36648         (mem_dies_at_call): New.
36649         (dataflow_set_preserve_mem_locs): Use it.
36650         (dataflow_set_remove_mem_locs): Likewise.
36651         (dump_var): Renamed from dump_variable.  Adjust all callers.
36652         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
36653         * Makefile.in (var-tracking.o): Adjust deps.
36654
36655 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
36656
36657         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
36658
36659 2010-01-20  Richard Guenther  <rguenther@suse.de>
36660
36661         PR tree-optimization/42717
36662         * tree-ssa-dce.c (get_live_post_dom): Remove.
36663         (forward_edge_to_pdom): Take an arbitrary edge to copy
36664         degenerate PHI args from.
36665         (remove_dead_stmt): Use the first post-dominator even if it
36666         does not contain live statements as redirection destination.
36667
36668 2010-01-20  Richard Guenther  <rguenther@suse.de>
36669
36670         * tree-inline.c (estimate_num_insns): Handle EH builtins.
36671
36672 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
36673
36674         * sel-sched.c (create_speculation_check): Remove set but not used
36675         variable twin.
36676         (try_transformation_cache): Remove set but not used variable ds.
36677         (calculate_privileged_insns): Remove set but not used variables
36678         cur_insn and min_spec_insn.
36679         (find_best_expr): Remove set but not used variable avail_n.
36680         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
36681         variable e.
36682         * cgraphunit.c (assemble_thunk): Remove set but not used variable
36683         false_label.
36684         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
36685         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
36686         new_scop_exit_edge.
36687
36688 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
36689
36690         PR bootstrap/42786
36691         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
36692         cpu types.  Add support for *-sse3 cpu types.
36693         (x86_64-*-*): Ditto.
36694
36695 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
36696
36697         PR middle-end/42803
36698         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
36699         argument, call initializer_constant_valid_p_1 instead of
36700         initializer_constant_valid_p, pass CACHE to it, return NULL
36701         immediately if first call returns NULL.
36702         (initializer_constant_valid_p_1): New function.
36703         (initializer_constant_valid_p): Use it.
36704
36705 2010-01-20  Thomas Quinot  <quinot@adacore.com>
36706
36707         * tree.def (PLACEHOLDER_EXPR): Fix comment.
36708
36709 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
36710
36711         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
36712         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
36713         (loc_list_from_tree): Don't handle unsigned division.  Handle
36714         signed modulo using DW_OP_{over,over,div,mul,minus}.
36715         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
36716         modulo instead of signed.
36717
36718 2010-01-20  DJ Delorie  <dj@redhat.com>
36719
36720         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
36721         (Fpa): Pass it
36722         (h8300_emit_stack_adjustment): Propogate it.
36723         (push): Pass it.
36724         (h8300_expand_prologue): Likewise.
36725         (h8300_expand_epilogue): Likewise.
36726
36727 2010-01-19  Michael Matz  <matz@suse.de>
36728
36729         PR tree-optimization/41783
36730         * tree-data-ref.c (toplevel): Include flags.h.
36731         (dump_data_dependence_relation):  Also dump the inputs if the
36732         result will be unknown.
36733         (split_constant_offset_1): Look through some conversions.
36734         * tree-predcom.c (determine_roots_comp): Restart a new chain if
36735         the offset from last element is too large.
36736         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
36737         (reassociate_to_the_same_stmt): Handle vector registers.
36738         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
36739         (e.g. conversions).
36740         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
36741         wide_prolog_niters argument, emit widening instructions.
36742         (vect_do_peeling_for_alignment): Adjust caller, use widened
36743         variant of the iteration cound.
36744         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
36745
36746 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36747
36748         PR target/38697
36749         * config/arm/neon-testgen.m (emit_automatics): New parameter
36750         features. Adjust for Fixed_return_reg feature.
36751         (test_intrinsic): Call emit_automatics with new feature.
36752         * config/arm/neon.ml: Update copyright years.
36753         (features): New Fixed_return_reg feature.
36754         (ops): Update feature for Vget_low.
36755
36756 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
36757
36758         PR tree-optimization/42719
36759         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
36760         stmt uses.
36761
36762         PR debug/42728
36763         * fwprop.c (all_uses_available_at): Return false if def_set dest
36764         is a REG that is used in def_insn.
36765
36766 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
36767
36768         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
36769
36770         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
36771         Add argument names.
36772
36773         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
36774
36775         * target.h (struct gcc_target) <secondary_reload>: Change type
36776         of last argument to secondary_reload_info *.
36777
36778 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
36779
36780         PR target/42774
36781         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
36782         memory references with unaligned offsets.  Remove CQImode handling.
36783         (unaligned_memory_operand): Return 1 for memory references with
36784         unaligned offsets.  Remove CQImode handling.
36785
36786 2010-01-18  Richard Guenther  <rguenther@suse.de>
36787
36788         PR middle-end/39954
36789         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
36790         builtin calls.
36791
36792 2010-01-18  Richard Guenther  <rguenther@suse.de>
36793
36794         PR tree-optimization/42781
36795         * tree-ssa-structalias.c (find_what_var_points_to): Skip
36796         restrict processing only if the original variable was artificial.
36797
36798 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
36799
36800         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
36801         find number of popped argument bytes.
36802
36803         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
36804         Fix the text that describes the return value for invalid insns.
36805
36806         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
36807
36808         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
36809         Clarify what 'cost of the -dependence' is.  Fix quoting.
36810
36811         * toplev.c (default_get_pch_validity): Rename argument to "sz".
36812         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
36813
36814 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
36815
36816         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
36817         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
36818
36819 2010-01-17  Richard Guenther  <rguenther@suse.de>
36820
36821         PR middle-end/42248
36822         * function.c (split_complex_args): Take a VEC to modify.
36823         (assign_parms_augmented_arg_list): Build a VEC instead of
36824         a chain of PARM_DECLs.
36825         (assign_parms_unsplit_complex): Take a VEC of arguments.
36826         Do not fixup unmodified parms.
36827         (assign_parms): Deal with the VEC.
36828         (gimplify_parameters): Likewise.
36829
36830 2010-01-17  Richard Guenther  <rguenther@suse.de>
36831
36832         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
36833         node existence check.
36834         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
36835         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
36836         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
36837         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
36838         (gimple_execute_on_growing_pred): Likewise.
36839
36840 2010-01-17  Richard Guenther  <rguenther@suse.de>
36841
36842         PR tree-optimization/42773
36843         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
36844         (compute_antic_aux): Likewise.
36845         (compute_partial_antic_aux): Likewise.
36846
36847 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
36848
36849         PR debug/42767
36850         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
36851         and US_TRUNCATE.
36852
36853 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
36854
36855         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
36856         appearance.
36857
36858         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
36859         Fix markup for strict argument.
36860
36861         (TARGET_SCHED_REORDER2): Fix argument types.
36862
36863         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
36864         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
36865
36866         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
36867         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
36868
36869         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
36870         Add argument name.
36871
36872         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
36873         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
36874         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
36875         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
36876         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
36877
36878         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
36879
36880         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
36881
36882         (TARGET_ASM_RELOC_RW_MASK): Add return type.
36883         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
36884
36885         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
36886
36887         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
36888         Use prototype.
36889
36890         (TARGET_ASM_NAMED_SECTION): Fix argument list.
36891
36892         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
36893         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
36894
36895         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
36896
36897         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
36898
36899         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
36900         referring to it.  Fix language.
36901
36902         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
36903
36904         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
36905
36906         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
36907
36908         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
36909
36910         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
36911         '@var{stream}.  Remove stray 'and'.
36912
36913         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
36914
36915         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
36916
36917         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
36918
36919         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
36920         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
36921
36922         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
36923         Fix description of return value.
36924         Rename argument "sz" to "len."
36925
36926         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
36927         Clarify meaning of 'true' return value.
36928
36929         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
36930
36931         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
36932         rep_mode versus mode_rep.
36933
36934         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
36935
36936         (TARGET_BUILTIN_DECL): Fix name.
36937
36938         (TARGET_COMMUTATIVE_P): Fix type of first argument.
36939
36940         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
36941
36942         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
36943
36944         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
36945
36946         (TARGET_RELAXED_ORDERING): Use @deftypevr.
36947
36948         (TARGET_GET_DRAP_RTX): Note that this is a hook.
36949         Clarify language.
36950
36951         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
36952         Rename argument tm_fn to md_fn.
36953
36954         (TARGET_OPTION_PRINT): Fix argument list.
36955
36956 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
36957
36958         PR target/42664
36959         * config/i386/i386.c (ix86_fixup_binary_operands):
36960         Revert FMA4 fixup of operands.
36961
36962 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36963
36964         PR other/42525
36965         * Makefile.in (write_entries_to_file, install-plugin):
36966         Use \012 instead of \n with tr.
36967
36968 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
36969
36970         * configure.ac (HAVE_AS_REF): New C macro.
36971         * configure: Regenerate.
36972         * config.in: Likewise.
36973         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
36974         if HAVE_AS_REF.
36975         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
36976         if HAVE_AS_REF.
36977
36978 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
36979
36980         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
36981
36982         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
36983
36984         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
36985
36986         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
36987
36988         (TARGET_IN_SMALL_DATA_P): Fix argument type.
36989
36990         (TARGET_BINDS_LOCAL_P): Fix argument type.
36991
36992         (TARGET_ASM_FILE_END): Use prototype.
36993
36994         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
36995
36996         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
36997
36998         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
36999
37000         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
37001
37002         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
37003         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
37004
37005         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
37006         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
37007
37008         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
37009         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
37010         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
37011         (TARGET_ADDR_SPACE_CONVERT): Likewise.
37012
37013         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
37014
37015         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
37016
37017         (TARGET_INIT_BUILTINS): Use prototype.
37018
37019         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
37020         Put 'const char *' in braces.  Fix parameter types.
37021         (TARGET_INVALID_CONVERSION): Fix parameter types.
37022         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
37023         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
37024
37025         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
37026         Fix argument type.
37027
37028         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
37029
37030         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
37031
37032 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
37033
37034         * doc/tm.texi (TARGET_HELP): Fix return type.
37035
37036         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
37037         in braces.  Fix argument types.
37038
37039         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
37040
37041         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
37042
37043         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
37044
37045         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
37046         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
37047
37048         (TARGET_MANGLE_TYPE): Fix argument types.
37049
37050         (TARGET_IRA_COVER_CLASSES): Use prototype.
37051
37052         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
37053
37054         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
37055
37056         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
37057
37058         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
37059
37060         (TARGET_CALLEE_COPIES): Fix argument types.
37061
37062         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
37063
37064         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
37065
37066         (TARGET_FUNCTION_VALUE): Fix argument types.
37067
37068         (TARGET_RETURN_IN_MSB): Fix argument type.
37069
37070         (TARGET_RETURN_IN_MEMORY): Fix argument types.
37071
37072         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
37073
37074         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
37075
37076         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
37077         agree with return type.
37078
37079         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
37080
37081 2010-01-15  Jing Yu  <jingyu@google.com>
37082
37083         PR rtl-optimization/42691
37084         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
37085         a pseudo to a constant and are merged, and adjust comments.
37086
37087 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
37088
37089         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
37090
37091 2010-01-15  Richard Guenther  <rguenther@suse.de>
37092
37093         PR middle-end/42739
37094         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
37095         labels of computed or non-local gotos to the destination.
37096         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
37097         landing pad label is the first label.
37098
37099 2010-01-15  Richard Guenther  <rguenther@suse.de>
37100
37101         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
37102
37103 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
37104
37105         PR target/42747
37106         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
37107         to allow generation of the xssqrtdp instruction on power7.
37108         (sqrtdf2_fpr): Ditto.
37109
37110 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37111
37112         PR middle-end/42674
37113         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
37114         functions with noreturn attribute.
37115
37116         PR c++/42608
37117         * varasm.c (declare_weak): Add weak attribute to decl if it
37118         doesn't have one already.
37119         (assemble_external): Only add decls to weak_decls if they also
37120         have weak attribute.
37121
37122 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
37123
37124         * var-tracking.c (var_reg_delete): Don't delete the association
37125         between REGs and values or one-part variables if the register
37126         isn't clobbered.
37127
37128 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37129
37130         PR debug/42657
37131         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
37132         because its first operand is a non-localized variable.
37133
37134 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37135
37136         PR tree-optimization/42706
37137         * tree-sra.c (encountered_recursive_call): New variable.
37138         (encountered_unchangable_recursive_call): Likewise.
37139         (sra_initialize): Initialize both new variables.
37140         (callsite_has_enough_arguments_p): New function.
37141         (scan_function): Call decl and flags check only for IPA-SRA, check
37142         whether there is a recursive call and whether it has enough arguments.
37143         (all_callers_have_enough_arguments_p): New function.
37144         (convert_callers): Look for recursive calls only when
37145         encountered_recursive_call is set.
37146         (ipa_early_sra): Bail out either if
37147         !all_callers_have_enough_arguments_p or
37148         encountered_unchangable_recursive_call.
37149
37150 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37151
37152         * sel-sched.c: Add 2010 to copyright years.
37153         * sel-sched-ir.c: Likewise.
37154         * sel-sched-ir.h: Likewise.
37155
37156 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37157
37158         PR tree-optimization/42714
37159         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
37160         constructors specially.
37161
37162 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37163
37164         * config/i386/drivers-i386.c (detect_caches_intel):
37165         Add l2sizekb parameter and fill in.
37166         (host_detect_local_cpu): Add l2sizekb, fill in.
37167         Add Atom small cache heuristic.
37168
37169 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37170
37171         * config/i386/drivers-i386.c (detect_caches_cpuid4):
37172         Add level3 parameter and fill in.
37173         (detect_caches_intel): Handle level3 cache.
37174
37175 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37176
37177         * config/i386/drivers-i386.c (host_detect_local_cpu):
37178         Fix core duo detection.
37179
37180 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37181
37182         * config/i386/drivers-i386.c (host_detect_local_cpu):
37183         Fix Atom detection.
37184
37185 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37186
37187         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
37188         (rs6000_variable_issue_1): this.  Use...
37189         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
37190
37191 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37192
37193         * sel-sched-ir.c (sel_restore_other_notes): Rename to
37194         sel_restore_notes.  Update all callers.  Call reemit_notes
37195         for all insns.
37196
37197 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37198
37199         PR rtl-optimization/42246
37200         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
37201         loops.
37202
37203 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37204
37205         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
37206         all successors is the same as number of successors in current region.
37207
37208 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37209
37210         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
37211         to rename is not separable.  Otherwise check that its LHS is not NULL.
37212
37213 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37214
37215         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
37216
37217 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37218
37219         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
37220         available registers when failed to discover LHS register class.
37221         Fix indentation.  Update comment.
37222
37223 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37224             Alexander Monakov  <amonakov@ispras.ru>
37225
37226         PR rtl-optimization/42389
37227         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
37228         to can_issue_more.
37229         (advance_state_on_fence): Likewise.
37230         (sel_target_adjust_priority): Print debug output only when
37231         sched_verbose >= 4, not 2.
37232         (get_expr_cost): Do not issue all unique insns on the next cycle.
37233         (fill_insns): Initialize can_issue_more from the value saved
37234         with the fence.
37235         * sel-sched-ir.c (flist_add): New parameter issue_more.
37236         Init FENCE_ISSUE_MORE with it.
37237         (merge_fences): Likewise.
37238         (init_fences): Update call to flist_add.
37239         (add_to_fences, add_clean_fence_to_fences)
37240         (add_dirty_fence_to_fences): Likewise.
37241         (move_fence_to_fences): Update call to merge_fences.
37242         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
37243         sched groups.
37244         * sel-sched-ir.h (struct _fence): New field issue_more.
37245         (FENCE_ISSUE_MORE): New accessor macro.
37246
37247 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37248
37249         PR rtl-optimization/42388
37250         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
37251         that have no predecessors nor successors.  Do not call move_bb_info
37252         for empty blocks outside of current region.
37253
37254 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37255
37256         PR rtl-optimization/42294
37257         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
37258         * sel-sched.c (move_exprs_to_boundary): Transitively add all
37259         originators' originators.
37260
37261 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37262
37263         PR rtl-optimization/39453
37264         PR rtl-optimization/42246
37265         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
37266         for pipelining_p.
37267         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
37268
37269 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37270             Alexander Monakov  <amonakov@ispras.ru>
37271
37272         PR middle-end/42245
37273         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
37274         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
37275         argument.  Update all callers.
37276         (tidy_control_flow): ... and here.  Recompute topological order
37277         of basic blocks in region if necessary.
37278         (sel_redirect_edge_and_branch): Change return type.  Return true
37279         if topological order might have been invalidated.
37280         (purge_empty_blocks): Export and move from...
37281         * sel-sched.c (purge_empty_blocks): ... here.
37282         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
37283         (maybe_tidy_empty_bb): Delete prototype.
37284         (purge_empty_blocks): Declare.
37285
37286 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37287
37288         PR rtl-optimization/42249
37289         * sel-sched.c (try_replace_dest_reg): When chosen register
37290         and original register is the same, do not bail out early, but
37291         still check all original insns for validity of replacing destination
37292         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
37293         in this case.
37294
37295 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37296
37297         PR c/42721
37298         Port from no-undefined-overflow branch:
37299         2009-03-09  Richard Guenther  <rguenther@suse.de>
37300
37301         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
37302
37303 2010-01-14  Richard Guenther  <rguenther@suse.de>
37304
37305         PR lto/42665
37306         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
37307
37308 2010-01-14  Ira Rosen  <irar@il.ibm.com>
37309
37310         PR tree-optimization/42709
37311         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
37312         as scalar type in creation of constant vector operand.
37313
37314 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37315
37316         PR testsuite/42414
37317         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
37318         (check-parallel-%): Match `testsuite' directory component only
37319         at the end.
37320
37321 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
37322
37323         PR translation/39521
37324         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
37325         strings with _().
37326
37327 2010-01-13  Richard Guenther  <rguenther@suse.de>
37328
37329         PR tree-optimization/42730
37330         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
37331         offset zero.
37332
37333 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
37334
37335         PR target/pr42542
37336         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
37337         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
37338         them signed.
37339
37340 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
37341
37342         * config/bfin/libgcc-bfin.ver: Regenerate based on current
37343         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
37344         ___umulsi3_highpart.
37345
37346         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
37347         rather than schedule_insns if the pass is enabled.
37348
37349 2010-01-13  Martin Jambor  <mjambor@suse.cz>
37350
37351         PR tree-optimization/42704
37352         * tree-sra.c (sra_modify_assign): Do not delete assignments to
37353         SSA_NAMEs.
37354
37355 2010-01-13  Martin Jambor  <mjambor@suse.cz>
37356
37357         PR tree-optimization/42703
37358         * tree-sra.c (analyze_access_subtree): Check that we can build a
37359         reference to the original data within the aggregate.
37360
37361 2010-01-13  Richard Guenther  <rguenther@suse.de>
37362
37363         PR tree-optimization/42705
37364         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
37365
37366 2010-01-13  Richard Guenther  <rguenther@suse.de>
37367
37368         PR middle-end/42716
37369         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
37370
37371 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
37372
37373         PR debug/41371
37374         * var-tracking.c (values_to_unmark): New variable.
37375         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
37376         values_to_unmark vector.  Moved body to...
37377         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
37378         instead queue it into values_to_unmark vector.
37379         (vt_find_locations): Free values_to_unmark vector.
37380
37381 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
37382
37383         * config/s390/s390.c (override_options): Set
37384         default of max-pending-list-length to 256
37385
37386 2010-01-13  Richard Guenther  <rguenther@suse.de>
37387
37388         PR lto/42678
37389         * tree-pass.h (PROP_gimple_lcx): New.
37390         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
37391         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
37392         before the final cleanup_eh.
37393         (dump_properties): Dump PROP_gimple_lcx.
37394         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
37395         (tree_lower_complex_O0): Remove.
37396         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
37397         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
37398         tree_lower_complex, schedule TODO_update_ssa.
37399         * lto-streamer-out.c (output_function): Stream the functions
37400         properties.
37401         * lto-streamer-in.c (input_function): Likewise.
37402         (lto_read_body): Do not override them here.
37403
37404 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
37405
37406         PR c/42708
37407         * c-typeck.c (build_c_cast): Fold value cast to union type before
37408         wrapping it in a CONSTRUCTOR.
37409
37410 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
37411
37412         PR rtl-optimization/42699
37413         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
37414         involved.
37415
37416 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37417
37418         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
37419         SUBTARGET_WARN_UNUSED_SPEC): Move ...
37420         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
37421         SUBTARGET_WARN_UNUSED_SPEC): ... here
37422         * config/mips/iris5.h (LIBGCC_SPEC): Define.
37423
37424 2010-01-12  Julian Brown  <julian@codesourcery.com>
37425
37426         * config/arm/neon-schedgen.ml (Utils): Don't try to
37427         open missing module.
37428         (find_with_result): New.
37429
37430 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
37431
37432         PR debug/42662
37433         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
37434         sharing when canonicalizing ({lt,ge}u (plus a b) b).
37435
37436         PR tree-optimization/42645
37437         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
37438         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
37439         decl_map, set processing_debug_stmt to -1 and return name without
37440         any remapping.
37441
37442 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
37443
37444         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
37445         binutils version, and reword target configuration description.
37446
37447 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
37448
37449         * config/avr/avr.h (LINKER_NAME): Remove.
37450
37451 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
37452
37453         PR target/42416
37454         * config/rs6000/rs6000.c (rs6000_override_options): On targets
37455         that support VSX, warn for -mno-altivec if vsx is not disabled,
37456         and disable vsx.
37457
37458 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
37459             Shujing Zhao  <pearly.zhao@oracle.com>
37460
37461         PR translation/42469
37462         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
37463         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
37464         character between option name and help text.
37465         * c.opt (imultilib): Likewise.
37466
37467 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
37468
37469         * lto-streamer-out.c (output_unreferenced_globals): Output static
37470         variables.
37471
37472 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
37473
37474         PR rtl-optimization/42621
37475         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
37476         optimizing for size.
37477         (duplicate_computed_gotos): Remove now-redundant check.
37478
37479 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
37480
37481         PR target/37454
37482         * configure.ac: Save and restore LDFLAGS and LIBS
37483         * configure: Regenerate.
37484
37485 2010-01-10  Richard Guenther  <rguenther@suse.de>
37486
37487         PR middle-end/42667
37488         * builtins.c (fold_builtin_strlen): Add type argument and
37489         convert the resulting length to it.
37490         (fold_builtin_1): Adjust.
37491
37492 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
37493
37494         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
37495         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
37496         1 insn.
37497         (num_insns_constant_wide): Adjust for that change.
37498
37499 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37500
37501         PR debug/42631
37502         * web.c (union_defs): Add used argument, to combine uses of
37503         uninitialized regs.
37504         (entry_register): Adjust type and tests of used argument.
37505         (web_main): Widen used for new use.  Pass it to union_defs.
37506         * df.h (union_defs): Adjust prototype.
37507
37508 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37509
37510         PR debug/42630
37511         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
37512         uses in new incoming argument.  Free body.
37513         (reset_debug_uses_in_loop): New.
37514         (analyze_insn_to_expand_var): Call the latter if the former found
37515         anything.  Fix whitespace.  Reject invalid dest overlaps before
37516         going through all insns in the loop.
37517
37518 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37519
37520         PR debug/42629
37521         * haifa-sched.c (dying_use_p): Debug insns don't count.
37522
37523 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37524
37525         PR middle-end/42363
37526         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
37527         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
37528         (verify_gimple_call): Reject LHS in noreturn calls.
37529
37530 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37531
37532         PR debug/42604
37533         PR debug/42395
37534         * tree-vect-loop-manip.c (adjust_info): New type.
37535         (adjust_vec): New pointer to vector.
37536         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
37537         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
37538         (slpeel_update_phis_for_duplicate_loop): Use them.
37539         (slpeel_update_phi_nodes_for_guard1): Likewise.
37540         (slpeel_update_phi_nodes_for_guard2): Likewise.
37541         (slpeel_tree_peel_loop_to_edge): Likewise.
37542         (vect_update_ivs_after_vectorizer): Likewise.
37543
37544 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37545
37546         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
37547         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
37548
37549 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37550
37551         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
37552         bogus uninitialized warning.
37553
37554 2010-01-09  Richard Guenther  <rguenther@suse.de>
37555
37556         PR middle-end/42512
37557         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
37558         the evolution is compatible with the initial condition.
37559
37560 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
37561
37562         * gcc.c (process_command): Update copyright notice dates.
37563         * gcov.c (print_version): Likewise.
37564         * gcov-dump.c (print_version): Likewise.
37565         * mips-tfile.c (main): Likewise.
37566         * mips-tdump.c (main): Likewise.
37567
37568 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
37569
37570         PR target/41885
37571         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
37572         (rotlhi3): Delete.
37573         (rotlhi3_8): Delete.
37574         (rotlsi3): Delete.
37575         (rotlsi3_8): Delete.
37576         (rotlsi3_16): Delete.
37577         (rotlsi3_24): Delete.
37578         (rotl<mode>3): New.
37579         (*rotw<mode>3): New.
37580         (*rotb<mode>3): New.
37581         * config/avr/avr.c (avr_rotate_bytes): New function.
37582         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
37583
37584 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
37585
37586         PR target/37454
37587         * configure.ac: Modify -rdynamic check.
37588         * configure: Regenerate.
37589
37590 2010-01-08  DJ Delorie  <dj@redhat.com>
37591
37592         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
37593         register popping order.
37594
37595 2010-01-08  Richard Guenther  <rguenther@suse.de>
37596
37597         PR lto/42528
37598         * c.opt (fsigned-char): Also let LTO handle this option.
37599         (funsigned-char): Likewise.
37600
37601 2010-01-07  Richard Guenther  <rguenther@suse.de>
37602
37603         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
37604         (gimple_op): Likewise.
37605         (gimple_op_ptr): Likewise.
37606         (gimple_assign_set_lhs): Remove gcc_assert.
37607         (gimple_assign_set_rhs1): Likewise.
37608         (gimple_assign_set_rhs2): Likewise.
37609         (gimple_call_set_lhs): Likewise.
37610         (gimple_call_set_fn): Likewise.
37611         (gimple_call_set_fndecl): Likewise.
37612         (gimple_call_fndecl): Likewise.
37613         (gimple_call_return_type): Likewise.
37614         (gimple_call_set_chain): Likewise.
37615         (gimple_call_num_args): Likewise.
37616         (gimple_call_set_arg): Likewise.
37617         (gimple_cond_set_code): Likewise.
37618         (gimple_cond_set_lhs): Likewise.
37619         (gimple_cond_set_rhs): Likewise.
37620         (gimple_cond_set_true_label): Likewise.
37621         (gimple_cond_set_false_label): Likewise.
37622         (gimple_label_set_label): Likewise.
37623         (gimple_goto_set_dest): Likewise.
37624         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
37625         (gimple_debug_bind_get_value): Likewise.
37626         (gimple_debug_bind_get_value_ptr): Likewise.
37627         (gimple_debug_bind_set_var): Likewise.
37628         (gimple_debug_bind_set_value): Likewise.
37629         (gimple_debug_bind_reset_value): Likewise.
37630         (gimple_debug_bind_has_value_p): Likewise.
37631         (gimple_return_retval_ptr): Remove gcc_assert.
37632         (gimple_return_retval): Likewise.
37633         (gimple_return_set_retval): Likewise.
37634         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
37635         (safe_referenced_var_iterator): Remove.
37636         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
37637         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
37638         (fill_referenced_var_vec): Remove.
37639         (first_readonly_imm_use): Remove redundant gcc_assert.
37640         (phi_arg_index_from_use): Combine gcc_asserts.
37641         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
37642         (first_imm_use_stmt): Remove redundant gcc_assert.
37643         * tree-cfg.c (verify_gimple_call): Verify function and chain
37644         operands.  Verify arguments.
37645         (verify_types_in_gimple_stmt): Verify condition code and labels.
37646
37647 2010-01-07  Richard Guenther  <rguenther@suse.de>
37648
37649         PR tree-optimization/42641
37650         * sese.c (rename_map_elt_info): Use the SSA name version, do
37651         not hash pointers.
37652
37653 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
37654
37655         PR tree-optimization/42625
37656         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
37657         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
37658
37659 2010-01-07  Duncan Sands  <baldrick@free.fr>
37660
37661         * Makefile.in (PLUGIN_HEADERS): Add version.h.
37662
37663 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
37664
37665         PR target/42511
37666         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
37667         note itself is not function_invariant_p.
37668
37669 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
37670
37671         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
37672         Do not add the DF_NOTE problem.
37673         * store-motion.c (execute_rtl_store_motion): Likewise.
37674
37675 2010-01-07  Martin Jambor  <mjambor@suse.cz>
37676
37677         PR tree-optimization/42157
37678         * tree-sra.c (compare_access_positions): Stabilize sort if both
37679         accesses have integer types, return zero immediately if they are the
37680         same.
37681
37682 2010-01-06  Richard Henderson  <rth@redhat.com>
37683
37684         PR middle-end/41883
37685         * haifa-sched.c (add_to_note_list): Merge into ...
37686         (concat_note_lists): ... here, and ...
37687         (unlink_other_notes, rm_other_notes): Merge into...
37688         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
37689         NOTE_INSN_EPILOGUE_BEG.
37690
37691 2010-01-06  Richard Guenther  <rguenther@suse.de>
37692
37693         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
37694         not inline regular functions into always-inline functions.
37695
37696 2010-01-06  Nick Clifton  <nickc@redhat.com>
37697
37698         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
37699         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
37700         used together.
37701         (OVERRIDE_OPTIONS): Delete.
37702         (OPTIMIZATION_OPTIONS): Define.
37703         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
37704         * config/rx/rx.c (rx_handle_option): Issue an error message if
37705         -mcpu=rx200 and -fpu are used together.
37706         (rx_set_optimization_options): New function.  Issue an error
37707         message if an optimization attribute attempts to reset the FPU/
37708         math optimization pairing.
37709         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
37710         * config/rx/rx.opt: Set the default to 32-bit doubles.
37711         * config/rx/t-rx: Add multilibs for -nofpu option.
37712         * doc/invoke.texi: Update documentation of RX options.
37713
37714 2010-01-06  Richard Guenther  <rguenther@suse.de>
37715
37716         * tree-ssa-pre.c (name_to_id): New global.
37717         (alloc_expression_id): Simplify SSA name handling.
37718         (lookup_expression_id): Likewise.
37719         (init_pre): Zero name_to_id.
37720         (fini_pre): Free it.
37721
37722 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
37723
37724         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
37725
37726 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
37727
37728         PR target/42542
37729         * config/i386/sse.md (smaxv2di3): New.
37730         (umaxv2di3): Likewise.
37731         (sminv2di3): Likewise.
37732         (uminv2di3): Likewise.
37733
37734 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
37735
37736         PR target/42564
37737         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
37738         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
37739         (legitimize_tls_address): Likewise.
37740         (sparc_tls_referenced_p): Likewise.
37741         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
37742         and adjust calls to legitimize_pic_address.
37743         (legitimate_constant_p) Use sparc_tls_referenced_p.
37744         (legitimate_pic_operand_p): Likewise.
37745         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
37746         (sparc_tls_symbol_ref_1): Delete.
37747         (sparc_tls_referenced_p): Make static, recognize specific patterns.
37748         (legitimize_tls_address): Make static, handle CONST patterns.
37749         (legitimize_pic_address): Make static, remove unused parameter and
37750         adjust recursive calls.
37751         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
37752         and adjust call to legitimize_pic_address.
37753         (sparc_output_mi_thunk): Likewise.
37754
37755 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
37756             H.J. Lu  <hongjiu.lu@intel.com>
37757
37758         PR target/42542
37759         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
37760         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
37761         operands to make them signed.
37762
37763         Revert:
37764         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
37765
37766         PR target/42542
37767         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
37768         GTU to GT for V4SI and V2DI.
37769
37770         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
37771         (umin<mode>3): Removed.
37772         (uminv8hi3): New.
37773         (uminv4si3): Likewise.
37774
37775 2010-01-05  Martin Jambor  <mjambor@suse.cz>
37776
37777         PR tree-optimization/42462
37778         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
37779         current_function_decl to helper functions and macros.
37780
37781 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37782
37783         PR bootstrap/41771
37784         * flags.h: Don't include real.h.
37785         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
37786         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
37787         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
37788         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
37789         * dominance.c: Update copyright.
37790         * gimple.c (walk_gimple_op): Remove inline.
37791         * tree-ssa-reassoc.c: Include real.h.
37792         * Makefile.in (FLAGS_H): Remove $(REAL_H).
37793         (tree-ssa-reassoc.o): Depend on $(REAL_H).
37794
37795 2010-01-05  Nick Clifton  <nickc@redhat.com>
37796
37797         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
37798         register to push into the stack frame when the accumulator has to
37799         be saved during interrupts.
37800
37801 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
37802
37803         * doc/invoke.texi: Remove the documentation about option
37804         -Wunreachable-code.
37805         * common.opt (Wunreachable-code):  Preserved for backward
37806         compatibility.
37807         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
37808         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
37809         the backward compatibility flag section.
37810
37811 2010-01-05  Richard Guenther  <rguenther@suse.de>
37812
37813         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
37814
37815 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
37816
37817         PR other/42611
37818         * cfgexpand.c (expand_one_var): Diagnose too large variables.
37819
37820         PR tree-optimization/42508
37821         * tree-sra.c (convert_callers): Check for recursive call
37822         by comparing cgraph nodes instead of decls.
37823         (modify_function): Call ipa_modify_formal_parameters also
37824         on all same_body aliases.
37825
37826         * cgraphunit.c (cgraph_materialize_all_clones): Compare
37827         cgraph nodes when checking for same_body aliases.
37828
37829 2010-01-05  Richard Guenther  <rguenther@suse.de>
37830
37831         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
37832         allocation and lookup.
37833         (get_or_alloc_expr_for_constant): Likewise.
37834         (phi_translate): Sink allocation.
37835
37836 2010-01-04  Richard Guenther  <rguenther@suse.de>
37837
37838         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
37839         a new entry only if needed.
37840         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
37841         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
37842         hashtable lookup.
37843         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
37844         the result array.
37845         (phi_translate): Handle CONSTANTs early.
37846
37847 2010-01-04  Martin Jambor  <mjambor@suse.cz>
37848
37849         PR tree-optimization/42398
37850         * tree-sra.c (struct access): Removed flag grp_different_types.
37851         (dump_access): Do not dump the removed flag.
37852         (sort_and_splice_var_accesses): Do not set the removed flag.
37853         (sra_modify_expr): Check for type compatibility directly.
37854
37855 2010-01-04  Martin Jambor  <mjambor@suse.cz>
37856
37857         PR tree-optimization/42366
37858         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
37859         edges with variable number of parameters.
37860         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
37861         flag instead of asserting it.
37862         (ipa_read_node_info): Read uses_analysis_done flag.
37863
37864 2010-01-04  Richard Guenther  <rguenther@suse.de>
37865
37866         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
37867         iterative_hash_* as intended.
37868         (vn_reference_compute_hash): Likewise.  Simplify hashing
37869         SSA names.
37870         (vn_reference_lookup_2): Likewise.
37871         (vn_nary_op_compute_hash): Likewise.
37872         (vn_phi_compute_hash): Likewise.
37873         (expressions_equal_p): Remove strange code.
37874         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
37875         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
37876         (bitmap_insert_into_set_1): Take value-id as parameter.
37877         (add_to_value): Pass it.
37878         (bitmap_insert_into_set): Likewise.
37879         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
37880
37881 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
37882
37883         PR driver/42442
37884         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
37885         (do_self_spec): For switches with SWITCH_IGNORE set set also
37886         SWITCH_IGNORE_PERMANENTLY.
37887         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
37888         of SWITCH_IGNORE.
37889
37890 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
37891
37892         * lto-streamer-out.c (output_unreferenced_globals): Output the full
37893         tree of an unreferenced global var.
37894
37895 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
37896
37897         PR target/42542
37898         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
37899         GTU to GT for V4SI and V2DI.
37900
37901         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
37902         (umin<mode>3): Removed.
37903         (uminv8hi3): New.
37904         (uminv4si3): Likewise.
37905
37906 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
37907
37908         PR lto/42581
37909         * collect2.c (main): Turn on trace in collect2 if -v is passed
37910         to gcc with LTO.
37911
37912 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
37913
37914         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
37915         description of expression operand.
37916
37917 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
37918
37919         * configure.ac: Add install-html to target_list for Make-hooks.
37920         * configure: Regenerate.
37921         * fortran/Make-lang.in (F95_HTMLFILES): New.
37922         (fortran.html): Use it.
37923         (fortran.install-html): New.
37924         * Makefile.in (install-html): Add lang.install-html.
37925         * java/Make-lang.in (JAVA_HTMLFILES): New.
37926         (java.html): Use it.
37927         (java.install-html): New.
37928         * objc/Make-lang.in (objc.install-html): New.
37929         * objcp/Make-lang.in (obj-c++.install-html): New.
37930         * cp/Make-lang.in (c++.install-html): New.
37931         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
37932         * lto/Make-lang.in (lto.install-html): New.
37933
37934 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
37935
37936         PR lto/42520
37937         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
37938
37939 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
37940
37941         PR rtl-optimization/41862
37942         * store-motion.c (store_killed_in_insn, compute_store_table,
37943         remove_reachable_equiv_notes, replace_store_insn,
37944         build_store_vectors): Ignore all DEBUG_INSNs.
37945
37946 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
37947
37948         PR lto/41564
37949         * common.opt: Add dumpdir.
37950
37951         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
37952         isn't specified.
37953         (option_map): Add --dumpdir.
37954
37955         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
37956
37957         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
37958
37959         * opts.c (decode_options): Try dump_dir_name first if
37960         dump_base_name isn't an absolute path.
37961         (common_handle_option): Handle OPT_dumpdir.
37962
37963         * toplev.c (dump_dir_name): New.
37964         (print_switch_values): Also ignore -dumpdir.
37965
37966         * toplev.h (dump_dir_name): New.
37967
37968 2010-01-03  Richard Guenther  <rguenther@suse.de>
37969
37970         PR tree-optimization/42589
37971         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
37972         double-word expansion of bswap32.
37973
37974 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
37975
37976         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
37977         with BLOCK_FOR_INSN.
37978         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
37979         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
37980         noce_process_if_block): Likewise.
37981         * gcse.c (compute_local_properties, insert_expr_in_table,
37982         insert_set_in_table, canon_list_insert, find_avail_set,
37983         pre_insert_copy_insn): Likewise.
37984
37985         * basic-block.h (BLOCK_NUM): Move from here...
37986         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
37987
37988 2010-01-03  Richard Guenther  <rguenther@suse.de>
37989
37990         PR tree-optimization/42438
37991         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
37992         contains_may_not_return_call flag.
37993         (BB_MAY_NOTRETURN): New.
37994         (valid_in_sets): Trapping nary operations are not valid
37995         in blocks that may not return.
37996         (insert_into_preds_of_block): Remove check for trapping expressions.
37997         (compute_avail): Compute also BB_MAY_NOTRETURN.
37998
37999 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
38000
38001         * doc/invoke.texi: Add 2010 to copyright years.
38002
38003 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
38004
38005         * config/sparc/sparc.c: Fix formatting nits.
38006
38007 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
38008             Alexander Monakov  <amonakov@ispras.ru>
38009
38010         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
38011
38012 2010-01-02  Richard Guenther  <rguenther@suse.de>
38013
38014         PR middle-end/42577
38015         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
38016         (simplify_switch_using_ranges): Mark to be removed edges
38017         as non-executable.
38018
38019 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
38020
38021         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
38022
38023         * collect2.c (scan_libraries): Add missing argument in call to
38024         scan_prog_file.
38025
38026 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
38027
38028         PR target/42448
38029         * config/alpha/predicates.md (aligned_memory_operand): Return false
38030         for CQImode.
38031         (unaligned_memory_operand): Return true for CQImode.
38032         * config/alpha/alpha.c (get_aligned_mem): Assert that location
38033         doesn not cross aligned SImode word boundary.
38034
38035 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
38036
38037         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
38038         Remove.
38039         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
38040         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
38041
38042 2010-01-02  Richard Guenther  <rguenther@suse.de>
38043
38044         PR lto/41597
38045         * toplev.c (compile_file): Emit LTO marker properly.  Change
38046         it to __gnu_lto_v1.
38047         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
38048
38049 2010-01-01  Richard Guenther  <rguenther@suse.de>
38050
38051         PR debug/42455
38052         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
38053
38054 2010-01-01  Richard Guenther  <rguenther@suse.de>
38055
38056         PR c/42570
38057         * c-decl.c (grokdeclarator): For zero-size arrays force
38058         structural equality checks as layout_type does.
38059
38060 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38061
38062         * builtins.c: Update copyright to 2010.
38063
38064 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38065
38066         PR lto/42531
38067         * lto-streamer-out.c (produce_asm): Revert the last change.
38068         (copy_function): Likewise.
38069
38070         * lto-streamer.c (lto_get_section_name): Skip any leading
38071         asterisk in name.
38072
38073 2010-01-01  Richard Guenther  <rguenther@suse.de>
38074
38075         PR middle-end/42559
38076         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
38077         for LABEL_DECLs.
38078
38079 \f
38080 Copyright (C) 2010 Free Software Foundation, Inc.
38081
38082 Copying and distribution of this file, with or without modification,
38083 are permitted in any medium without royalty provided the copyright
38084 notice and this notice are preserved.