Include coretypes.h in gcc-plugin.h & Add hard-reg-set.h in FUNCTION_H.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>
2
3         * gcc-plugin.h: Include coretypes.h.
4         * Makefile.in (FUNCTION_H): Add hard-reg-set.h.
5
6 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7
8         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
9         * ggc-none.c (ggc_internal_alloc_zone_stat)
10         (ggc_internal_cleared_alloc_zone_stat): New.
11
12 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
13
14         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
15         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
16         (rs6000_emit_prologue): Don't set PIC register if
17         TARGET_SINGLE_PIC_BASE.
18         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
19         * doc/invoke.texi (msingle-pic-base): Document.
20
21 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
22
23         PR driver/46712
24         * exec-tool.in (id): New.
25         Check and export LT_RCU_$id instead of LT_RCU.
26
27 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
28
29         PR tree-optimization/46675
30         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
31         in offset calculation.
32
33 2010-11-29  Jan Hubicka  <jh@suse.cz>
34
35         * collect2.c (main): Do not imply verbose output with
36         LTO and linker plugin.
37
38 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
39
40         * dwarf2out.c (print_die): Print the address of the current DIE or
41         of any DIE referenced by the current one.
42
43 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
44
45         PR debug/46101
46         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New
47         function.
48         (scope_die_for, gen_type_die_for_member): Replace uses of
49         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
50
51 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
52
53         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
54         (darwin_asm_declare_object_name): Correct spelling.
55         (darwin_output_aligned_bss): Likewise.
56
57 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
58             Mike Stump  <mrs@gcc.gnu.org>
59
60         PR target/26427
61         PR target/33120
62         PR testsuite/35710
63         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
64         (ASM_OUTPUT_LOCAL): Likewise.
65         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
66         (darwin_output_aligned_bss): Likewise.
67         (darwin_asm_output_aligned_decl_local): Likewise.
68         (darwin_asm_output_aligned_decl_common): Likewise.
69         (darwin_use_anchors_for_symbol_p): Likewise.
70         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
71         (TARGET_ASM_OUTPUT_ANCHOR): Define.
72         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
73         (DARWIN_SECTION_ANCHORS): Set to 1.
74         * config/darwin.c (emit_aligned_common): New var.
75         (darwin_init_sections): Check that the Darwin private zero-size section
76         marker is in range.
77         (darwin_text_section): Check for zero-sized objects.
78         (darwin_mergeable_string_section): Likewise.
79         (darwin_mergeable_constant_section): Likewise.
80         (machopic_select_section): Adjust to check for zero-sized objects.
81         Assert that OBJC meta data are non-zero sized.
82         (darwin_asm_declare_object_name): New.
83         (darwin_asm_declare_constant_name): Adjust for zero-sized
84         object sections.
85         (BYTES_ZFILL): Define.
86         (darwin_emit_weak_or_comdat): New.
87         (darwin_emit_local_bss): New.
88         (darwin_emit_common): New.
89         (darwin_output_aligned_bss): New.
90         (darwin_asm_output_aligned_decl_common): New.
91         (darwin_asm_output_aligned_decl_local): New.
92         (darwin_file_end): Disable subsections_via_symbols when section
93         anchoring is active.
94         (darwin_asm_output_anchor): Re-enable.
95         (darwin_use_anchors_for_symbol_p): New.
96         (darwin_override_options): Check for versions that can emit
97         aligned common.  Update usage of flags to current.
98         * config/darwin-sections.def: Update comments and flags for
99         non-anchor sections.  zobj_const_section, zobj_data_section,
100         zobj_bss_section, zobj_const_data_section: New.
101         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
102         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
103         (L2_MAX_OFILE_ALIGNMENT): Define.
104         (ASM_OUTPUT_ALIGNED_BSS): Define.
105         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
106         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
107         (SECTION_NO_ANCHOR): Define.
108         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
109         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
110
111 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
112
113         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
114         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
115         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
116         Conditionally define.
117         (GET_ENVIRONMENT): Poison.
118         * configure.ac: Don't test for mincore.
119         * configure: Regenerate.
120         * config.in: Regenerate.
121         * collect2-aix.c: Don't include <sys/mman.h>.
122         * collect2.c: Don't include <signal.h>.
123         (SIGCHLD): Don't define.
124         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
125         * config/alpha/alpha.c: Include "splay-tree.h" instead of
126         <splay-tree.h>.
127         * config/arm/arm.c (arm_target_help): Use getenv instead of
128         GET_ENVIRONMENT.
129         * config/avr/driver-avr.c: Don't include <stdlib.h>.
130         * config/frv/frv.c: Don't include <ctype.h>.
131         * config/host-darwin.c: Don't include <sys/mman.h>.
132         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
133         (MAP_FAILED): Don't define.
134         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
135         * config/host-solaris.c: Don't include <sys/mman.h>.
136         * config/i386/cygming.h: Don't include <stdio.h>.
137         * config/i386/driver-i386.c: Don't include <stdlib.h>.
138         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
139         * config/iq2000/iq2000.c: Don't include <signal.h>.
140         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
141         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
142         * config/mep/mep-pragma.c: Don't include <stdio.h>.
143         * config/microblaze/microblaze.c: Don't include <signal.h>.
144         * config/mips/mips.c: Don't include <signal.h>.
145         * config/rs6000/host-darwin.c: Don't include <signal.h>.
146         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
147         * defaults.h (GET_ENVIRONMENT): Don't define.
148         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
149         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
150         (SIGCHLD, MAP_FAILED, kill): Don't define.
151         (process_command): Use getenv instead of GET_ENVIRONMENT.
152         * genhooks.c: Don't include <string.h>.
153         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
154         <sys/types.h>.
155         (MAP_FAILED): Don't define.
156         * ggc-page.c Don't include <sys/mman.h>.
157         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
158         * ggc-zone.c: Don't include <sys/mman.h>.
159         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
160         * graph.c: Include "config.h" instead of <config.h>.
161         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
162         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
163         (SIGCHLD, kill): Don't define.
164         * mips-tfile.c: Don't include <signal.h>.
165         * opts.c: Don't include <signal.h> or <sys/resource.h>.
166         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
167         * passes.c: Don't include <signal.h>, <sys/resource.h> or
168         <sys/times.h>.
169         * sparseset.h: Don't include <assert.h>.
170         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
171         * tlink.c: Don't include "libiberty.h".
172         * toplev.c: Don't include <signal.h> or <sys/times.h>.
173         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
174         * tree-switch-conversion.c: Don't include <signal.h>.
175         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
176
177 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
178
179         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
180         c_parser_objc_try_catch_finally_statement for consistency with the
181         C++ parser.  Parse @catch(...) and pass NULL_TREE to
182         objc_begin_catch_clause() in that case.  Improved error recovery.
183         Reorganized code to be almost identical to
184         cp_parser_objc_try_catch_finally_statement.
185
186 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
187
188         PR tree-optimization/46621
189         * gimple.h: Don't include tm.h or hard-reg-set.h .
190         * Makefile.in (GIMPLE_H): Remove $(TM_H).
191
192         PR bootstrap/44756
193         * cppbuiltin.c: Include target.h .
194         (define_builtin_macros_for_type_sizes):
195         Use targetm.float_words_big_endian.
196
197 2010-11-27  Jan Hubicka  <jh@suse.cz>
198
199         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
200         and output cold_text_section_label.
201         (dwarf2out_init): Don't do that there.
202         (dwarf2out_finish): Handle cold section end label only if cold
203         section was used.
204
205 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
206
207         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
208         VLA variables.
209
210 2010-11-27  Richard Guenther  <rguenther@suse.de>
211
212         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
213         (gimple_assign_ssa_name_copy_p): Likewise.
214         (gimple_assign_unary_nop_p): Use is_gimple_assign.
215         (is_gimple_cast): Remove.
216         (gimple_assign_single_p): Move ...
217         * gimple.h (gimple_assign_single_p): ... here.
218         (is_gimple_cast): Remove.
219         (gimple_assign_rhs_code): Simplify.
220         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
221         instead of is_gimple_cast.
222         * ipa-type-escape.c (look_for_casts): Likewise.
223
224 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
225
226         * doc/options.texi (Enum, EnumValue): Document new record types.
227         (Enum): Document new option flag.
228         * opt-functions.awk
229         * optc-gen.awk: Handle enumerated option arguments.
230         * opth-gen.awk: Handle enumerated option arguments.
231         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
232         enum_value_to_arg): New.
233         (decode_cmdline_option): Handle enumerated arguments.
234         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
235         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
236         * opts.c (print_filtered_help, print_specific_help): Take
237         lang_mask arguments.
238         (print_filtered_help): Handle printing values of enumerated
239         options.  Print possible arguments for enumerated options.
240         (print_specific_help): Update call to print_filtered_help.
241         (common_handle_option): Update calls to print_specific_help.  Use
242         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
243         handle OPT_ffp_contract_, OPT_fexcess_precision_,
244         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
245         OPT_fira_region_ here.
246         * opts.h (enum cl_var_type): Add CLVC_ENUM.
247         (struct cl_option): Add var_enum.
248         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
249         struct cl_enum, cl_enums, cl_enums_count): New.
250         (CL_ERR_ENUM_ARG): Define.
251         (CL_ERR_NEGATIVE): Update value.
252         (enum_value_to_arg): Declare.
253         * common.opt (flag_ira_algorithm, flag_ira_region,
254         flag_fp_contract_mode, flag_excess_precision_cmdline,
255         default_visibility, flag_tls_default): Remove Variable entries.
256         (help_enum_printed): New Variable.
257         (fdiagnostics-show-location=): Use Enum.  Add associated
258         SourceInclude, Enum and EnumValue entries.
259         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
260         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
261         associated Enum and EnumValue entries.
262
263 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
264
265         PR target/46623
266         * config/microblaze/microblaze.c (microblaze_block_move_straight):
267         Use XALLOCAVEC.
268         (microblaze_option_override): Don't use C++ style comments.
269         (save_restore_insns): Remove unused variable base_offset.
270         (microblaze_expand_prologue): Remove unused variable insn.
271         (microblaze_secondary_reload): Adjust type to match target.h .
272         (microblaze_elf_in_small_data_p): Move declarations to start of block.
273         (microblaze_expand_move): Likewise.
274         * config/microblaze/microblaze.h (LARGE_INT):
275         Avoid signed / unsigned comparisons.
276         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
277         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
278         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
279
280 2010-11-26  Michael Matz  <matz@suse.de>
281
282         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
283
284         * passes.c (init_optimization_passes): Remove superfluous
285         copy-prop pass.
286
287 2010-11-26  Richard Guenther  <rguenther@suse.de>
288
289         PR lto/46648
290         * gimple.c (gtc_visit): Do not return true for members of an
291         SCC still being processed but the current lattice value of
292         the member.  Treat SCC members comparison state as lattice,
293         starting at equal, eventually dropping to unequal.
294         (gimple_types_compatible_p_1): Likewise.
295
296 2010-11-26  Richard Guenther  <rguenther@suse.de>
297
298         PR middle-end/46559
299         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
300         for location list processing.
301
302 2010-11-26  Richard Guenther  <rguenther@suse.de>
303
304         PR lto/46560
305         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
306         flags manually.
307
308 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
309
310         * config/s390/s390.c (print_operand_address): Replace assert with
311         error message.
312         (print_operand): Replace assertions, gcc_unreachable and
313         fatal_insn with error messages.
314
315 2010-11-26  Richard Guenther  <rguenther@suse.de>
316
317         PR tree-optimization/46665
318         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
319
320 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
321
322         * config/arm/arm.c (arm_option_override): enable loop array
323         prefetching at -O3 for suitable targets, and configure params.
324         * config/arm/arm-protos.h (struct tune_params): Add fields for
325         configuring loop array prefetching.
326
327 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
328
329         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
330
331 2010-11-26  Richard Guenther  <rguenther@suse.de>
332
333         PR tree-optimization/46664
334         * tree-affine.c (aff_combination_to_tree): Add rest last.
335
336 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
337
338         PR target/33637
339         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
340         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
341         * configure: Regenerated.
342         * exec-tool.in: Not quoting command, may have extra arguments.
343
344 2010-11-26  Richard Guenther  <rguenther@suse.de>
345
346         PR tree-optimization/46528
347         PR debug/46338
348         * profile.c (branch_prob): Do not split blocks based on locations
349         from debug statements.
350
351 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
352
353         PR middle-end/46647
354         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
355         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
356
357         PR bootstrap/45700
358         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
359         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
360         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
361         build6_loc): Define.
362         * fold-const.c (protected_set_expr_location_unshare): New inline.
363         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
364         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
365         pedantic_omit_one_operand_loc, omit_two_operands_loc,
366         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
367         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
368         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
369         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
370         instead of buildN followed by SET_EXPR_LOCATION or
371         protected_set_expr_location.
372         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
373         Use buildN_stat_loc instead of buildN_stat followed by
374         SET_EXPR_LOCATION.
375
376 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
377
378         * Makefile.in (s-tm-texi): Remove spurous tab.
379
380 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
381
382         PR debug/46258
383         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
384         debug stmts.
385
386 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
387
388         * toplev.c (finalize): Add no_backend parameter.  Don't finish
389         passes when preprocessing only.  Adjust...
390         (do_compile): ... caller.
391
392 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
393
394         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
395         flag_unsafe_math_optimizations.
396         (negsf2): Likewise.
397         Move fnegabs related patterns together.  Only use fmpynfadd instruction
398         to negate a multiply if !flag_signed_zeros is true.
399
400 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
401
402         * gengtype-state.c (read_state_structures): Initialize "previous".
403
404 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
405             Jeremie Salvucci  <jeremie.salvucci@free.fr>
406
407         * gengtype-state.c: Add new file.
408
409         * gengtype.c (type count): New variable.
410         (new_structure, find_param_structure, create_pointer)
411         (create_array): Use it to set state_number in types.
412         (dump_everything): Improve comment.
413         (main): Call read_state and write_state. Print type_count.
414
415         * gengtype.h (type_lineloc): New function.
416         (read_state, write_state): New declarations.
417
418         * Makefile.in (GENGTYPE_FLAGS): New variable.
419         (s-gtype): Run gengtype twice and generate gtype.state.
420         (build/gengtype-state.o): New rule.
421         (build/gengtype$(build_exeext)): Link gengtype-state.o.
422         (mostlyclean): Update comment.  Remove gtype.state.
423
424 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
425
426         PR middle-end/46637
427         * combine.c (try_combine): When substing i2dest for i2src, pass
428         1 as last argument even if
429         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
430
431 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
432
433         PR middle-end/46647
434         * builtins.c (target_char_cast): Check INTEGER_CST instead of
435         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
436
437 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
438
439         * target.def (supports_split_stack, except_unwind_info): Take
440         gcc_options parameters.
441         * targhooks.c (default_except_unwind_info,
442         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
443         gcc_options parameters.
444         * targhooks.h (default_except_unwind_info,
445         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
446         prototypes.
447         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
448         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
449         Document that hooks must not be modified.
450         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
451         * doc/tm.texi: Regenerate.
452         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
453         &global_options to targetm.except_unwind_info.
454         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
455         dwarf2out_begin_prologue, dwarf2out_frame_init,
456         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
457         &global_options to targetm.except_unwind_info.
458         * except.c (init_eh, finish_eh_generation,
459         gate_convert_to_eh_region_ranges,
460         output_one_function_exception_table): Pass &global_options to
461         targetm.except_unwind_info.
462         * expr.c (build_personality_function): Pass &global_options to
463         targetm.except_unwind_info.
464         * function.c (expand_function_end): Pass &global_options to
465         targetm.except_unwind_info.
466         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
467         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
468         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
469         and targetm.supports_split_stack.  Remove assertions about opts
470         and opts_set.
471         (common_handle_option): Remove assertions about opts, opts_set and dc.
472         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
473         &global_options to targetm.except_unwind_info.
474         * tree.c (build_common_builtin_nodes: Pass &global_options to
475         targetm.except_unwind_info.
476         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
477         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
478         thumb1_expand_prologue, thumb1_output_function_prologue,
479         arm_unwind_emit, arm_output_fn_unwind): Update calls to
480         arm_except_unwind_info.
481         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
482         parameter.
483         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
484         parameter.
485         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
486         ia64_reorg, ia64_asm_unwind_emit): Update calls to
487         ia64_except_unwind_info.
488         * config/pa/pa.c (pa_option_override): Pass &global_options to
489         targetm.except_unwind_info.
490         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
491         Remove prototype.
492
493 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
494
495         * cgraphunit.c (process_function_and_variable_attributes):
496         Mark dllexport-ed function/variables as needed.
497         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
498         as externally visible.
499
500 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
501
502         PR rtl-optimization/46585
503         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
504         (vinsn_init): Skip computation of dependencies for local NOPs.
505         (vinsn_delete): Don't try to free regsets for local NOPs.
506         (setup_nop_and_exit_insns): Change definition of nop_pattern.
507
508 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
509
510         PR rtl-optimization/46602
511         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
512         (tidy_control_flow): Here.
513
514 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
515             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
516
517         PR bootstrap/45888
518         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
519         Fix target.def pathname in timestamp comparison.
520
521 2010-11-24  Richard Henderson  <rth@redhat.com>
522
523         * config/ia64/predicates.md (pmpyshr_operand): New.
524         * config/ia64/ia64.c (ia64_expand_unpack): New.
525         (ia64_expand_widen_mul_v4hi): New.
526         (ia64_expand_widen_sum): Update for pattern renames.
527         (ia64_expand_dot_prod_v8qi): Likewise.
528         * config/ia64/ia64-protos.h: Update.
529         * config/ia64/vect.md (vecwider): New mode attribute.
530         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
531         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
532         (pmpyshr2, pmpyshr2_u): New.
533         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
534         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
535         (mulv2si3): New.
536         (vec_pack_ssat_v4hi): Rename from pack2_sss.
537         (vec_pack_usat_v4hi): Rename from *pack2_uss.
538         (vec_pack_ssat_v2si): Rename from pack4_sss.
539         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
540         vec_select operation.
541         (vec_interleave_highv8qi): Similarly.
542         (mux1_alt): Rename from *mux1_alt.
543         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
544         (vec_interleave_lowv4hi): Rename from unpack2_l.
545         (vec_interleave_highv4hi): Rename from unpack2_h.
546         (mix2_r): Rename from *mix2_r.
547         (mix2_l): Similarly.
548         (vec_extract_evenodd_helper): New.
549         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
550         (vec_interleave_lowv2si): Rename from *unpack4_l.
551         (vec_interleave_highv2si): Rename from *unpack4_h.
552         (vec_extract_evenv2si, vec_extract_oddv2si): New.
553         (vec_interleave_lowv2sf): Rename from fmix_r.
554         (vec_interleave_highv2sf): Rename from *fmix_l.
555         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
556         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
557         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
558         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
559
560 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
561
562         * targhooks.c (default_except_unwind_info): Remove
563         MUST_USE_SJLJ_EXCEPTIONS case.
564         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
565         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
566         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
567         * doc/tm.texi: Regenerate.
568         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
569
570 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
571
572         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
573         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
574         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
575         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
576         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
577
578 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
579
580         PR target/46519
581         * config/i386/i386.c (ix86_expand_call): Don't check
582         TREE_THIS_VOLATILE.
583
584 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
585
586         PR target/46519
587         * config/i386/i386.c (upper_128bits_state): New.
588         (block_info_def): Remove upper_128bits_set and done.  Add state,
589         referenced, count, processed and rescanned.
590         (check_avx256_stores): Updated.
591         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
592         Call note_stores only if needed.  Set referenced and count.
593         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
594         (rescan_move_or_delete_vzeroupper): New.
595         (move_or_delete_vzeroupper):  Process and rescan all all basic
596         blocks instead of predecessor blocks of all exit points.
597         (ix86_option_override_internal): Enable vzeroupper optimization
598         only for -fexpensive-optimizations and not optimizing for size.
599         (use_avx256_p): Removed.
600         (init_cumulative_args): Don't set use_avx256_p.
601         (ix86_function_arg): Likewise.
602         (ix86_expand_move): Likewise.
603         (ix86_expand_vector_move_misalign): Likewise.
604         (ix86_local_alignment): Likewise.
605         (ix86_minimum_alignment): Likewise.
606         (ix86_expand_epilogue): Don't check use_avx256_p when generating
607         vzeroupper.
608         (ix86_expand_call): Likewise.
609
610         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
611         and use_avx256_p.  Add rescan_vzeroupper_p.
612
613 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
614
615         * toplev.c: Include <signal.h>.
616
617 2010-11-24  Richard Guenther  <rguenther@suse.de>
618
619         PR lto/43218
620         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
621         conflicting function signatures as non-inlineable.
622
623 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
624
625         PR rtl-optimization/46614
626         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
627          (deps_analyze_insn): Mark JUMP_INSNs in
628         last_pending_memory_flush that weren't added through
629         flush_pending_lists with NON_FLUSH_JUMP_KIND.
630         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
631         on INSN_LIST instead of JUMP_P check on its operand.
632         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
633
634 2010-11-24  Richard Guenther  <rguenther@suse.de>
635
636         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
637
638 2010-11-24  Richard Guenther  <rguenther@suse.de>
639
640         PR lto/46606
641         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
642         a FIELD_DECL that is type correct issue a warning and fixup
643         with a VIEW_CONVERT_EXPR.
644
645 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
646
647         * doc/invoke.texi (Options for Debugging Your Program or GCC):
648         Explain static numbering of dump files.
649
650 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
651
652         * common.opt (user_vect_verbosity_level): New Variable entry.
653         (ftree-vectorizer-verbose=): Mark as UInteger.
654         * flag-types.h (enum vect_verbosity_levels): Move from enum
655         verbosity_levels in tree-vectorizer.h.
656         * opts.c: Don't include tree.h.
657         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
658         gcc_options parameter; take integer option argument.
659         (common_handle_option): Update call to vect_set_verbosity_level.
660         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
661         (vect_set_verbosity_level): Move to opts.c.
662         (vect_verbosity_level, vect_print_dump_info): Update for change of
663         enum name.
664         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
665         (vect_print_dump_info): Update for change of enum name.
666         * tree.h (vect_set_verbosity_level): Remove.
667         * Makefile.in (opts.o): Update dependencies.
668
669 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
670
671         PR middle-end/46629
672         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
673         instead of insn with any_condjump_p.
674
675 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
676
677         * config/mips/loongson.md: Change the description comment of the file
678         and update the copyright years.
679         (define_insn "<u>div<mode>3): Add loongson3a support.
680         (define_insn "<u>mod<mode>3"): Likewise.
681         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
682         mul<mode>3_mul3_loongson.
683         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
684         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
685
686 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
687
688         * common.opt (initial_max_fld_align, flag_debug_asm,
689         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
690         flag_print_asm_name, graph_dump_format, help_printed,
691         help_columns, flag_opts_finished): New Variable entries.
692         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
693         frandom-seed=): Mark deferred.
694         (fsched-verbose=): Use UInteger and Var.
695         * flags.h (set_struct_debug_option, flag_print_asm_name,
696         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
697         graph_dump_format): Don't declare here.
698         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
699         * opts-global.c: Include dbgcnt.h and debug.h.
700         (decode_options): Pass location to finish_options.
701         (handle_common_deferred_options): Check flag_dump_all_passed.
702         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
703         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
704         OPT_fstack_limit.
705         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
706         (set_struct_debug_option): Add location_t parameter.  Update
707         recursive call.  Use error_at.
708         (default_options_optimization): Use error_at.
709         (finish_options): Add location_t parameter.  Use
710         opts->x_flag_opts_finished instead of first_time_p.  Use
711         opts->x_optimize instead of optimize.  Use error_at.  Pass
712         location to inform.
713         (print_filtered_help): Use opts->x_help_printed to track what
714         options have been printed.
715         (print_specific_help): Use opts->x_help_columns to track number of
716         columns.
717         (common_handle_option): Pass locations and gcc_options pointers to
718         more functions.  Use warning_at instead of fnotice and warning.
719         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
720         OPT_fdebug_prefix_map_.  Use error_at.  Set
721         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
722         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
723         OPT_fsched_verbose_.
724         (handle_param): Add location_r parameter.  Use error_at.
725         (set_debug_level): Add location_r parameter.  Use error_at and
726         warning_at.
727         (setup_core_dumping): Add diagnostic_context parameter.
728         (decode_d_option): Add gcc_options, location_t and
729         diagnostic_context parameters and use them instead of global
730         state.  Use warning_at.
731         (enable_warning_as_error): Use error_at.
732         * opts.h (finish_options): Update prototype.
733         (set_struct_debug_option): Declare here.
734         * rtl.h (fix_sched_param): Remove.
735         * stor-layout.c (initial_max_fld_align): Remove.
736         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
737         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
738         (process_options): Set maximum_field_alignment.
739         * tree.h (initial_max_fld_align) Don't declare here.
740         * Makefile.in (opts.o, opts-global.o): Update dependencies.
741
742 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
743
744         * flag-types.h (struct visibility_flags): Don't declare here.
745         * flags.h (strip_off_ending, fast_math_flags_set_p,
746         fast_math_flags_struct_set_p): Declare here.
747         (visibility_options): Don't declare here.
748         * opts-common.c (option_enabled, get_option_state): Move from
749         opts.c.
750         * opts-global.c: Include diagnostic.h instead of
751         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
752         and toplev.h.
753         (const_char_p, ignored_options, in_fnames, num_in_fnames,
754         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
755         print_ignored_options, unknown_option_callback,
756         post_handling_callback, lang_handle_option, add_input_filename,
757         read_cmdline_options, initial_lang_mask, init_options_once,
758         decode_cmdline_options_to_array_default_mask,
759         set_default_handlers, decode_options): Move from opts.c.
760         (print_ignored_options): Use warning_at instead of saving and
761         restoring input_location.
762         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
763         instead of expr.h.  Don't include langhooks.h, except.h or
764         lto-streamer.h.  Add more comments on includes.
765         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
766         toplev.c.
767         (visibility_options): Move to c-family/c-common.c.
768         (const_char_p, ignored_options, in_fnames, num_in_fnames,
769         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
770         print_ignored_options, unknown_option_callback,
771         post_handling_callback, lang_handle_option, add_input_filename,
772         read_cmdline_options, initial_lang_mask, init_options_once,
773         decode_cmdline_options_to_array_default_mask,
774         set_default_handlers, decode_options): Move to opts-global.c.
775         (target_handle_option, default_options_optimization,
776         finish_options, common_handle_option): Remove static.
777         (option_enabled, get_option_state): Move to opts-common.c.
778         * opts.h (common_handle_option, target_handle_option,
779         finish_options, default_options_optimization): Declare.
780         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
781         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
782         opts.c.
783         * toplev.h (strip_off_ending, decode_d_option,
784         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
785         declare here.
786         * Makefile.in (opts.o, opts-global.o): Update dependencies.
787
788 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
789
790         PR driver/42690
791         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
792         options, replace by call of pass-through-libs spec function to process
793         link_gcc_c_sequence spec.
794         (lto_libgcc_spec): Delete variable.
795         (static_specs[]): Remove related entry.
796         (static_spec_functions[]): Add new entry for pass-through-libs.
797         (main): Don't generate deleted lto_libgcc_spec.
798         (pass_through_libs_spec_func): New function to implement the new
799         pass-through-libs spec function.
800         * doc/invoke.texi (pass-through-libs): Document new spec function.
801
802 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
803
804         * doc/options.texi (Warning, Optimization): Document.
805
806 2010-11-23  Jan Hubicka  <jh@suse.cz>
807
808         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
809         (tree_decl_with_vis): Add implicit_section_name_p.
810         * targhooks.h (default_function_section): Declare.
811         * target.def (function_section): New hook.
812         * defaults.h (HOT_TEXT_SECTION_NAME,
813         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
814         * predict.c (choose_function_section): Remove.
815         (estimate_bb_frequencies): Do not use choose_function_section.
816         * coretypes.h (enum node_frequency): Move here from cgraph.h
817         * cgraph.h (enum node_frequency): Remove.
818         * varasm.c (initialize_cold_section_name, unlikely_text_section,
819         unlikely_text_section_p): Remove.
820         (named_subsection_entry): New structure.
821         (get_text_section): New function.
822         (default_function_section): New function.
823         (function_section_1): Break out from ...; handle profile info.
824         (function_section): ... here.
825         (unlikely_text_section): Remove.
826         (unlikely_text_section_p): Use function_section_1.
827         (assemble_start_function): Do not initialize cold section.
828         (default_section_type_flags): Do not special case cold subsection.
829         (switch_to_section): Likewise.
830         * output.h (get_text_section): Define.
831         * config/i386/winnt.c: Do not special case cold section.
832         * config/darwin-protos.h (darwin_function_section): Declare.
833         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
834         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
835         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
836         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
837         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
838         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
839         * config/darwin.c (machopic_select_section): Use
840         darwin_function_section.
841         (darwin_function_section): New function.
842         * config/darwin.h (HOT_TEXT_SECTION_NAME,
843         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
844         (TARGET_ASM_FUNCTION_SECTION): Define.
845         * system.h (HOT_TEXT_SECTION_NAME,
846         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
847
848 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
849
850         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
851         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
852
853 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
854
855         PR middle-end/46499
856         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
857         following unconditional jumps.
858
859 2010-11-23  Richard Guenther  <rguenther@suse.de>
860
861         * doc/md.texi (386 constraints): Clarify A constraint documentation.
862
863 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
864             Jeremie Salvucci  <jeremie.salvucci@free.fr>
865
866         * gengtype.c (enum typekind, struct options)
867         (struct nested_ptr_data, struct pair, NUM_PARAM)
868         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
869         Move to gengtype.h.
870         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
871         Remove static, add zero state_number.
872         (typedefs, structures, param_structs, variables): Remove static.
873         (create_option): Remove.
874         (create_string_option, create_type_option, create_nested_option):
875         New functions.
876         (create_nested_ptr_option): Use create_nested_option.
877         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
878         new create*option functions.
879         (process_gc_options): Adjust for discriminated option.
880         (output_mangled_typename): Handle TYPE_NONE.
881         (walk_type): Test option kinds.
882         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
883         (write_func_for_structure, write_type, write_local, write_root)
884         (write_roots, note_def_vec, dump_options): Adjust for
885         discriminated option.
886
887         * gengtype.h (typedefs, structures, param_structs, variables
888         enum typekind): Move from gengtype.c
889         (enum option_kind): New discriminating enumeration.
890         (struct options): Becomes discriminated.
891         (struct nested_ptr_data): Nove from gengtype.c
892         (create_string_option, create_type_option, create_nested_option)
893         (create_nested_ptr_option): New functions
894         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
895         (UNION_OR_STRUCT_P): Move from gengtype.c
896
897         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
898         discriminated options.
899
900 2010-11-23  Richard Guenther  <rguenther@suse.de>
901
902         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
903         twice.  Avoid re-allocating the ops vector all the time.
904
905 2010-11-23  Richard Guenther  <rguenther@suse.de>
906
907         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
908         is_gimple_min_invariant, group tree code checks to allow
909         combining them.
910         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
911         of is_gimple_reg.
912
913 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
914
915         * config.gcc (sparc*-*-*): Reorder.
916
917 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
918
919         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
920         Remove ENABLE_CHECKING around DBGPRINTF.
921
922 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
923
924         * common.opt (exit_after_options, write_symbols, debug_info_level,
925         use_gnu_debug_info_extensions): New Variable entries.
926         (fprofile-dir=): Use Var.
927         * flag-types.h (enum debug_info_level): Rename to enum
928         debug_info_levels.
929         * flags.h (write_symbols, debug_info_level,
930         use_gnu_debug_info_extensions): Remove declarations.
931         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
932         (set_struct_debug_option): Make static variables const.
933         (use_gnu_debug_info_extensions): Remove.
934         (set_debug_level, print_filtered_help, print_specific_help,
935         fast_math_flags_set_p): Take gcc_options parameters and use them
936         in place of global variables.
937         (print_filtered_help): Make new_help non-static.
938         (print_specific_help): Update call to print_filtered_help.
939         (common_handle_option): Update calls to print_specific_help.  Use
940         gcc_options structure for more settings.  Make --help table
941         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
942         set_debug_level.
943         * toplev.c (profile_data_prefix): Remove.
944         * toplev.h (profile_data_prefix, exit_after_options): Remove
945         declarations.
946         (fast_math_flags_set_p): Update prototype.
947         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
948         Update call to fast_math_flags_set_p.
949
950 2010-11-22  Richard Henderson  <rth@redhat.com>
951
952         PR target/46434
953         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
954         return the address register extracted.
955         (crx_decompose_address): Update the extracted address register.
956
957 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
958
959         PR driver/43335
960         * gcc.c (main): Don't crash when lto-wrapper program is not found.
961
962 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
963
964         PR target/46608
965         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
966         * config/picochip/picochip-protos.h: Don't include "target.h" .
967         (picochip_secondary_reload): Don't declare.
968
969         PR target/46613
970         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
971         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
972         static.
973
974 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
975
976         PR bootstrap/46609
977         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
978         (source_dot_c_frul): Likewise.
979
980 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
981
982         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
983
984 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
985
986         PR bootstrap/44970
987         * Makefile.in (fwprop.o) Add sparseset.h.
988         * fwprop.c: Include sparseset.h
989         (struct find_occurrence_data, find_occurrence_callback,
990         find_occurrence): Remove.
991         (active_defs, active_defs_check, register_active_defs,
992         update_df_init, update_uses): New.
993         (update_df): Rewrite.
994         (try_fwprop_subst, forward_propagate_asm): Add calls to
995         update_df_init and update_df.
996         (fwprop_init): Allocate active_defs and active_defs_check.
997         (fwprop_done): Free them.
998         (fwprop, fwprop_addr): Adjust comments.
999         * df.h (df_uses_create): Declare.
1000         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
1001         (df_ref_create): Return result of df_ref_create_structure directly.
1002         (df_ref_create_structure): Call df_install_ref_incremental when
1003         no collection_rec is passed.
1004         (df_ref_record): Do not create multiword hard reg info when no
1005         collection_rec is passed.
1006         (df_uses_create): New.
1007
1008 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1009
1010         PR middle-end/43057
1011         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
1012         setting location.
1013
1014 2010-11-22  Richard Guenther  <rguenther@suse.de>
1015
1016         * gimple-fold.c (maybe_fold_reference): When canonicalizing
1017         MEM_REFs, preserve volatileness.
1018         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
1019         addresses.
1020
1021 2010-11-22  Richard Guenther  <rguenther@suse.de>
1022
1023         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
1024
1025 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
1026
1027         PR rtl-optimization/45652
1028         * alias.c (get_reg_base_value): New.
1029         * rtl.h (get_reg_base_value): Add prototype.
1030         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
1031         non-null REG_BASE_VALUE for renaming.
1032
1033 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
1034             Basile Starynkevitch  <basile@starynkevitch.net>
1035
1036         * gengtype.c: Include xregex.h and obstack.h
1037         Added comments about role of get_output_file_with_visibility and
1038         our regexpr machinery.
1039         (frul_actionrout_t, struct file_rule_st): New.
1040         (hader_dot_h_frul, source_dot_c_frul): New functions.
1041         (NULL_REGEX,  NULL_FRULACT): New.
1042         (files_rules): New.
1043         (matching_file_name_substitute): New function.
1044         (get_output_file_with_visibility): Updated comments and rewritten
1045         to use the new files_rules machinery.
1046
1047         * Makefile.in (XREGEX_H): Added variable.
1048         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
1049
1050 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1051
1052         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
1053
1054 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1055
1056         * target.def (conditional_register_usage): Define.
1057         * reginfo.c (init_reg_sets_1): Call
1058         targetm.conditional_register_usage.
1059         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
1060         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
1061         for making it a hook.
1062         * doc/tm.texi: Regenerate.
1063         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1064         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
1065         New function.
1066         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1067         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1068         * config/arc/arc.c (arc_conditional_register_usage): ...here.
1069         New function.
1070         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1071         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1072         * config/arm/arm.c (arm_conditional_register_usage): ...here.
1073         New function.
1074         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1075         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
1076         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
1077         * config/bfin/bfin.c (conditional_register_usage): Move code into...
1078         (bfin_conditional_register_usage): ...here.  New function.
1079         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1080         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
1081         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
1082         * config/cris/cris.c (cris_conditional_register_usage): Make static.
1083         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1084         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
1085         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
1086         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
1087         * config/frv/frv.c (frv_conditional_register_usage): Make static.
1088         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1089         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1090         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
1091         New function.
1092         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1093         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
1094         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
1095         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
1096         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1097         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
1098         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
1099         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
1100         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1101         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1102         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
1103         New function.
1104         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1105         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
1106         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
1107         Delete.
1108         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
1109         static.
1110         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1111         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
1112         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
1113         * config/mep/mep.c (mep_conditional_register_usage): Make static.
1114         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1115         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
1116         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
1117         * config/mips/mips.c (mips_conditional_register_usage): Make static.
1118         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1119         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
1120         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
1121         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
1122         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1123         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1124         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
1125         ...here.  New function.
1126         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1127         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1128         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
1129         * config/pa/pa.c (pa_conditional_register_usage): ...here.
1130         New function.
1131         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1132         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1133         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
1134         New function.
1135         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1136         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
1137         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
1138         Delete.
1139         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
1140         static.
1141         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1142         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
1143         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
1144         * config/rx/rx.c (rx_conditional_register_usage): Make static.
1145         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1146         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
1147         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
1148         * config/s390/s390.c (s390_conditional_register_usage): Make static.
1149         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1150         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1151         * config/score/score.c (score_conditional_register_usage): ...here.
1152         New function.
1153         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1154         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1155         * config/sh/sh.c (sh_conditional_register_usage): ...here.
1156         New function.
1157         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1158         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1159         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
1160         New function.
1161         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1162         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
1163         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
1164         * config/spu/spu.c (spu_conditional_register_usage): Make static.
1165         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1166         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1167         * config/v850/v850.c (v850_conditional_register_usage): ...here.
1168         New function.
1169         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1170
1171 2010-11-21  Jan Hubicka  <jh@suse.cz>
1172             Dominique d'Humieres <dominiq@lps.ens.ft>
1173
1174         PR target/46510
1175         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
1176         finalize external decls.
1177
1178 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
1179
1180         * system.h (strerror): Poison.
1181
1182 2010-11-21  Richard Henderson  <rth@redhat.com>
1183
1184         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
1185         for infq/huge_valq.
1186
1187 2010-11-21  Richard Henderson  <rth@redhat.com>
1188
1189         PR rtl-optimization/46571
1190         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
1191         (compute_hash_table_work): Use NONDEBUG_INSN_P.
1192
1193 2010-11-21  Paul Koning  <ni1d@arrl.net>
1194
1195         * config/mips/pdp11.md (negsi2): Fix wrong code.
1196
1197 2010-11-21  Paul Koning  <ni1d@arrl.net>
1198
1199         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
1200         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1201
1202 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
1203
1204         * config/mips/mips.c (machine_function): Rename load_label_length to
1205         load_label_num_insns.
1206         (mips_load_label_length): Rename to...
1207         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
1208         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
1209
1210 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1211
1212         PR target/46533
1213         * config/alpha/predicates.md (direct_call_operand): Return false
1214         for !TARGET_SMALL_TEXT targets.
1215
1216 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
1217
1218         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
1219         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
1220         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
1221         * doc/tm.texi: Regenerate.
1222         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
1223         HANDLE_PRAGMA_WEAK): Poison.
1224         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1225         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1226         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
1227         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
1228         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1229         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1230         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1231         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
1232         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1233         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
1234         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1235         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
1236         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1237         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1238         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1239         (HANDLE_PRAGMA_WEAK): Don't undefine.
1240         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1241         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
1242         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1243         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
1244         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1245         (HANDLE_PRAGMA_WEAK): Don't undefine.
1246         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1247         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
1248         (HANDLE_PRAGMA_PACK): Don't undefine.
1249         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
1250         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1251         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1252         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1253         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
1254         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1255         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1256         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1257         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
1258         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1259         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
1260         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1261         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1262         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1263         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1264         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
1265         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1266
1267 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
1268
1269         PR target/31100
1270         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
1271         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
1272         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
1273
1274 2010-11-20  Jan Hubicka  <jh@suse.cz>
1275
1276         * cgraph.c (ld_plugin_symbol_resolution_names): New.
1277         (dump_cgraph_node): Dump resolution.
1278         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
1279         (cgraph_comdat_can_be_unshared_p): Dclare.
1280         * lto-streamer-out.c (produce_symtab): Use
1281         cgraph_comdat_can_be_unshared_p.
1282         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
1283         (cgraph_comdat_can_be_unshared_p): New function based on logic
1284         in cgraph_externally_visible_p.
1285         (cgraph_externally_visible_p): Use it.
1286         (varpool_externally_visible_p): Virtual tables can be unshared.
1287         * varpool.c (dump_varpool_node): Dump resolution.
1288
1289 2010-11-20  Jan Hubicka  <jh@suse.cz>
1290
1291         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
1292
1293 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1294
1295         PR other/46202
1296         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
1297         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
1298         shell quoting.
1299         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
1300         (install-strip): New target.
1301         (STRIPPROG): New variable, exported if STRIP is set.
1302         * doc/install.texi (Final install): Minor markup and code style
1303         fixes.  Document install-strip target.
1304
1305 2010-11-20  Paul Koning  <ni1d@arrl.net>
1306
1307         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
1308         pdp11_regno_reg_class): New functions.
1309         * config/pdp11/pdp11.md (define_constants): Add register numbers.
1310         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
1311         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
1312         functions.
1313         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
1314         frame pointer and argument pointer pseudo-registers.
1315         (ARG_POINTER_REGNUM): Define.
1316         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
1317         argument pointer.
1318         (FIRST_PARM_OFFSET): Update for argument pointer.
1319         (INITIAL_FRAME_POINTER_OFFSET): Delete.
1320         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
1321         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
1322         frame pointer and argument pointer.
1323
1324 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
1325
1326         PR debug/46561
1327         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
1328         when looking for immediate uses.
1329
1330         PR tree-optimization/45830
1331         * stmt.c (expand_switch_using_bit_tests_p): New function.
1332         (expand_case): Use it.
1333         * tree.h (expand_switch_using_bit_tests_p): New prototype.
1334         * tree-switch-conversion.c (struct switch_conv_info): Add
1335         bit_test_uniq, bit_test_count and bit_test_bb fields.
1336         (check_range): Fix a comment.
1337         (check_process_case): Compute bit_test_uniq and bit_test_count.
1338         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
1339         allocation.
1340         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
1341         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
1342         (array_value_type): New function.
1343         (build_one_array): Use it, if it returned different type,
1344         fold_convert all constructor fields and convert back to the
1345         wider type in the generated code.
1346         (process_switch): Initialize bit_test_uniq, bit_test_count and
1347         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
1348         returned true.
1349
1350 2010-11-19  Michael Matz  <matz@suse.de>
1351
1352         PR tree-optimization/46077
1353         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
1354
1355 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
1356
1357         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1358         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
1359         function.
1360         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1361
1362 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
1363
1364         * mode-switching.c (optimize_mode_switching): Use
1365         FOR_BB_INSNS instead of open-coded loop.
1366         * cfgrtl.c (redirect_branch_edge): Ditto.
1367
1368 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
1369
1370         PR target/46436
1371         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
1372         to accomodate 32 bit HOST_WIDE_INT.
1373         (m68hc11_emit_logical): Remove unused variable insn.
1374         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
1375         this_insn_uses_iy before use.
1376
1377         PR target/46434
1378         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
1379
1380 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
1381
1382         PR c/46547
1383         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
1384         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
1385
1386 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
1387
1388         * doc/extend.texi (Function attributes): Document PowerPC target
1389         attributes that are supported.
1390         (Pragmas): Document that PowerPC now supports target pragmas.
1391
1392         * doc/options.texi (TargetVariable): Document TargetVariable,
1393         HeaderInclude, and SourceInclude.
1394
1395         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
1396         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
1397         -ffp-contract=off.
1398
1399         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
1400         SourceInclude directives.  Fix a cut+paste error with target save
1401         enum variables.  Sort enums in the structures after ints and
1402         before shorts.
1403         * opth-gen.awk: Ditto.
1404
1405         * configure.ac: Add support for HeaderInclude and SourceInclude option
1406         directives to add the appropriate files to the dependency lists.
1407         * configure: Regenerate.
1408         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
1409         (OPTIONS_C_EXTRA): New variable for SourceInclude.
1410         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
1411         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
1412         (gcc-options.o): Ditto.
1413         * opt-include.awk: New awk script to handle HeaderInclude and
1414         TargetInclude.
1415
1416         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
1417         gets saved in the target options.
1418         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
1419         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
1420         (-mprototype): Ditto.
1421         (-mbit-word): ditto.
1422         (-mregnames): Ditto.
1423         (-msecure-plt): Ditto.
1424         (-mbss-plt): Ditto.
1425         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
1426         (-mpowerpc-gfxopt): Ditto.
1427         (-mmfcrf): Ditto.
1428         (-mpopcntb): Ditto.
1429         (-mfprnd): Ditto.
1430         (-mcmpb): Ditto.
1431         (-mmmfpgpr): Ditto.
1432         (-maltivec): Ditto.
1433         (-mhard-dfp): Ditto.
1434         (-mmulhw): Ditto.
1435         (-mdlmzb): Ditto.
1436         (-mmultiple): Ditto.
1437         (-mstring): Ditto.
1438         (-mpopcntd): Ditto.
1439         (-mfriz): Ditto.
1440         (-mvsx): Ditto.
1441         (-mno-update): Ditto.
1442         (-mavoid-indexed-addresses): Ditto.
1443         (-mtls-markers): Ditto.
1444         (-msched-epilog): Ditto.
1445         (-msched-prolog): Ditto.
1446         (-maix-struct-return): Ditto.
1447         (-msvr4-struct-return): Ditto.
1448         (-mxl-compat): Ditto.
1449         (-mrecip-precision): Ditto.
1450         (-mfp-in-toc): Ditto.
1451         (-msum-in-toc): Ditto.
1452         (-mvrsave): Ditto.
1453         (-mblock-move-inline-limit=): Ditto.
1454         (-misel): Ditto.
1455         (-mpaired): Ditto.
1456         (-mlongcall): Ditto.
1457         (-mgen-cell-microcode): Ditto.
1458         (-mwarn-cell-microcode): Ditto.
1459         (-mwarn-altivec-long): Ditto.
1460         (-mprioritize-restricted-insns=): Ditto.
1461         (-msingle-float): Ditto.
1462         (-mdouble-float): Ditto.
1463         (-msimple-fpu): Ditto.
1464         (-mxilinx-fpu): Ditto.
1465         * config/rs6000/aix64.opt (-mpe): Ditto.
1466
1467         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
1468         (rs6000_cpu): Move variable to be a target variable.  Rename
1469         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
1470         -mdebug=<xxx> variables into a single int.
1471         (rs6000_always_hint): Ditto.
1472         (rs6000_sched_groups): Ditto.
1473         (rs6000_align_branch_targets): Ditto.
1474         (rs6000_sched_costly_dep): Ditto.
1475         (rs6000_sched_insert_nops): Ditto.
1476         (rs6000_long_double_type_size): Ditto.
1477         (rs6000_ieeequad): Ditto.
1478         (rs6000_altivec_abi): Ditto.
1479         (rs6000_spe): Ditto.
1480         (rs6000_spe_abi): Ditto.
1481         (rs6000_float_gprs): Ditto.
1482         (rs6000_darwin64_abi): Ditto.
1483         (can_override_loop_align): Ditto.
1484         (rs6000_sdata): Ditto.
1485         (rs6000_tls_size): Ditto.
1486         (rs6000_current_abi): Ditto.
1487         (rs6000_traceback): Ditto.
1488         (rs6000_alignment_flags): Ditto.
1489         (rs6000_current_cmodel): Ditto.
1490         (rs6000_recip_control): Ditto.
1491         (rs6000_cpu_index): Ditto.
1492         (rs6000_tune_index): Ditto.
1493         (rs6000_debug): Ditto.
1494         (rs6000_target_flags_explict): Ditto.
1495
1496         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
1497         declaration.
1498
1499         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
1500         cmodel.  Change all uses.
1501
1502         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
1503         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
1504         Rename cmodel to rs6000_current_cmodel.
1505         (rs6000_sched_groups): Ditto.
1506         (rs6000_align_branch_targets): Ditto.
1507         (rs6000_sched_costly_dep): Ditto.
1508         (rs6000_sched_insert_nops): Ditto.
1509         (rs6000_long_double_type_size): Ditto.
1510         (rs6000_ieeequad): Ditto.
1511         (rs6000_altivec_abi): Ditto.
1512         (rs6000_spe): Ditto.
1513         (rs6000_spe_abi): Ditto.
1514         (rs6000_float_gprs): Ditto.
1515         (rs6000_darwin64_abi): Ditto.
1516         (can_override_loop_align): Ditto.
1517         (rs6000_sdata): Ditto.
1518         (rs6000_tls_size): Ditto.
1519         (rs6000_current_abi): Ditto.
1520         (rs6000_traceback): Ditto.
1521         (rs6000_alignment_flags): Ditto.
1522         (rs6000_current_cmodel): Ditto.
1523         (rs6000_recip_control): Ditto.
1524         (rs6000_cpu_index): Ditto.
1525         (rs6000_tune_index): Ditto.
1526         (rs6000_debug): Ditto.
1527         (rs6000_target_flags_explict): Ditto.
1528         (rs6000_sched_insert_nops_str): Make static.
1529         (rs6000_sched_costly_dep_str): Ditto.
1530         (rs6000_recip_name): Ditto.
1531         (rs6000_abi_name): Ditto.
1532         (rs6000_sdata_name): Ditto.
1533         (enum rs6000_traceback_name): Move to rs6000-opts.h.
1534         (rs6000_parse_tls_size_option): Delete.
1535         (rs6000_valid_attribute_p): New function for target attributes and
1536         pragmas.
1537         (rs6000_function_specific_save): Ditto.
1538         (rs6000_function_specific_restore): Ditto.
1539         (rs6000_function_specific_print): Ditto.
1540         (rs6000_can_inline_p): Ditto.
1541         (rs6000_set_current_function): Ditto.
1542         (rs6000_inner_target_options): Ditto.
1543         (rs6000_debug_target_options): Ditto.
1544         (rs6000_pragma_target_parse): Ditto.
1545         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
1546         attributes and pragmas.
1547         (TARGET_OPTION_SAVE): Ditto.
1548         (TARGET_OPTION_RESTORE): Ditto.
1549         (TARGET_OPTION_PRINT): Ditto.
1550         (TARGET_CAN_INLINE_P): Ditto.
1551         (TARGET_SET_CURRENT_FUNCTION): Ditto.
1552         (POWER_MASKS): Move to file level scope from the
1553         rs6000_option_override_internal function.
1554         (POWERPC_MASKS): Ditto.
1555         (ISA_*_MASKS): Ditto.
1556         (struct rs6000_ptt): Ditto.
1557         (processor_target_table): Ditto.
1558         (rs6000_cpu_name_lookup): Map cpu name to an index in
1559         processor_target_table.
1560         (rs6000_debug_reg_global): Print more information on processor
1561         options for -mdebug=reg.
1562         (rs6000_init_hard_regno_mode_ok): Add support for target
1563         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
1564         Allow -mdebug=val1,val2.  Rename cmodel variable.
1565         (rs6000_option_override_internal): Ditto.
1566         (rs6000_option_override): Ditto.
1567         (rs6000_handle_option): Ditto.
1568         (rs6000_conditional_register_usage): Add debug trace message.
1569         (struct rs6000_opt_mask): New for target attribute/pragma support.
1570         (rs6000_opt_masks): Ditto.
1571         (struct rs6000_opt_var): Ditto.
1572         (rs6000_opt_vars): Ditto.
1573         (rs6000_previous_function): Ditto.
1574
1575         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
1576         wasn't already included.
1577         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
1578         (enum processor_type): Ditto.
1579         (rs6000_cpu): Ditto.
1580         (enum fpu_type_t): Ditto.
1581         (fpu_type): Ditto.
1582         (enum rs6000_dependence_cost): Ditto.
1583         (enum rs6000_nop_insertion): Ditto.
1584         (enum group_termination): Ditto.
1585         (rs6000_long_double_type_size): Ditto.
1586         (rs6000_ieeequad): Ditto.
1587         (rs6000_altivec_abi): Ditto.
1588         (rs6000_spe_abi): Ditto.
1589         (rs6000_spe): Ditto.
1590         (rs6000_float_gprs): Ditto.
1591         (rs6000_alignment_flags): Ditto.
1592         (rs6000_sched_insert_nops): Ditto.
1593         (enum rs6000_vector): Ditto.
1594         (enum rs6000_abi): Ditto.
1595         (rs6000_current_opt): Ditto.
1596         (rs6000_debug_*): Delete.
1597         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
1598         (TARGET_DEBUG*): Ditto.
1599
1600         * config/rs6000/rs6000-opts.h: New header file to define the enums
1601         that are used in target variables that are now defined in rs6000.opt.
1602
1603         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
1604         rs6000-opts.h.
1605         (rs6000_sdata): Ditto.
1606         (rs6000_abi_name): Delete.
1607         (rs6000_sdata_name): Ditto.
1608         (rs6000_tls_size_string): Ditto.
1609
1610 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
1611
1612         * common.opt (debug_struct_ordinary, debug_struct_generic): New
1613         Variable entries.
1614         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
1615         should_emit_struct_debug): Move from opts.c.
1616         * flag-types.h (enum debug_struct_file): Move from opts.c.
1617         * flags.h (should_emit_struct_debug): Remove.
1618         (base_of_path): Declare.
1619         (set_struct_debug_option): Add gcc_options parameter.
1620         * optc-gen.awk, opth-gen.awk: Handle array variables.
1621         * opts.c (enum debug_struct_file, debug_struct_ordinary,
1622         debug_struct_generic): Remove.
1623         (set_struct_debug_option): Add gcc_options parameter.
1624         (base_of_path): Remove static.
1625         (main_input_basename, main_input_baselength, matches_main_base,
1626         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
1627         Remove.
1628         * toplev.c (main_input_basename, main_input_baselength): Define
1629         here.
1630         * toplev.h (main_input_basename, main_input_baselength): Declare
1631         here.
1632
1633 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
1634
1635         * common.opt (flag_instrument_functions_exclude_functions,
1636         flag_instrument_functions_exclude_files): New Variable definitions.
1637         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
1638         * gimplify.c (char_p): Declare type and vectors.
1639         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
1640         * opts.c (flag_instrument_functions_exclude_functions,
1641         flag_instrument_functions_exclude_files): Remove.
1642         (add_comma_separated_to_vector): Take void **.
1643         (flag_instrument_functions_exclude_p): Move to gimplify.c.
1644         (common_handle_option): Use options structure for
1645         -finstrument-functions-exclude- options.
1646
1647 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
1648
1649         * doc/options.texi (Var): Document effects of Defer.
1650         (Defer): Document.
1651         * opt-functions.awk (var_type, var_set): Handle deferred options.
1652         * opts-common.c (set_option): Handle CLVC_DEFER.
1653         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
1654         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
1655         fstack-limit-symbol=): Mark as deferred.
1656         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
1657         plugin.h.
1658         (print_filtered_help): Don't report state of CLVC_DEFER options.
1659         (common_handle_option): Move code for OPT_fcall_used_,
1660         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
1661         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
1662         OPT_fstack_limit_symbol_ to opts-global.c.
1663         (option_enabled, get_option_state): Handle CLVC_DEFER.
1664         * opts.h: Include vec.h.
1665         (enum cl_var_type): Add CLVC_DEFER.
1666         (cl_deferred_option): Define type and vectors.
1667         (handle_common_deferred_options): Declare.
1668         * opts-global.c: New.
1669         * toplev.c (toplev_main): Call handle_common_deferred_options
1670         * Makefile.in (OPTS_H): Include $(VEC_H).
1671         (OBJS-common): Include opts-global.o.
1672         (opts.o): Update dependencies.
1673         (opts-global.o): Add dependencies.
1674
1675 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
1676
1677         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
1678         to objc_declare_protocols.
1679
1680 2010-11-19  Richard Guenther  <rguenther@suse.de>
1681
1682         PR lto/45789
1683         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
1684         IDENTIFIERs do not stream TREE_TYPE.
1685         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
1686
1687 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
1688
1689         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
1690
1691 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
1692
1693         PR target/45870
1694         * dwarf2out.c (const_ok_for_output_1): Don't complain about
1695         non-delegitimized TLS UNSPECs.
1696
1697 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
1698             Ian Lance Taylor  <iant@google.com>
1699
1700         * config/darwin-c.c (darwin_additional_format_types): Export.
1701
1702 2010-11-18  Paul Koning  <ni1d@arrl.net>
1703
1704         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
1705         pointer.
1706
1707 2010-11-18  Paul Koning  <ni1d@arrl.net>
1708
1709         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
1710         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
1711         * config/pdp11/pdp11.opt (-mabshi): Delete.
1712
1713 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
1714
1715         * resource.h (struct resources): Fix typo in the comment.
1716
1717 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
1718
1719         PR target/46546
1720         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
1721
1722 2010-11-18  Richard Henderson  <rth@redhat.com>
1723
1724         PR middle-end/46515
1725         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
1726         maybe_copy_epilogue_insn; handle prologue insns as well.
1727         * rtl.h, cfglayout.c: Update for rename.
1728         * recog.c (peep2_attempt): Copy prologue/epilogue data for
1729         RTX_FRAME_RELATED_P insns.
1730
1731 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
1732
1733         PR middle-end/46534
1734         * builtins.c (fold_builtin_printf): Don't copy and modify string
1735         before build_string_literal, instead modify what
1736         build_string_literal returned.
1737
1738 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
1739
1740         PR c/33193
1741         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
1742         REALPART_EXPR and IMAGPART_EXPR.
1743
1744 2010-11-18  Richard Guenther  <rguenther@suse.de>
1745
1746         PR tree-optimization/46172
1747         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
1748         function.
1749         (slpeel_tree_peel_loop_to_edge): Call it.
1750
1751 2010-11-18  Jeff Law  <law@redhat.com>
1752
1753         PR middle-end-optimization/46297
1754         * postreload.c (reload_combine_note_store): Deal with embedded
1755         side effects in MEM expressions.
1756
1757 2010-11-18  Richard Guenther  <rguenther@suse.de>
1758
1759         PR lto/45089
1760         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
1761         when checking is not enabled.
1762
1763 2010-11-18  Richard Guenther  <rguenther@suse.de>
1764
1765         PR lto/46525
1766         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
1767         type leaders.
1768         (gimple_register_canonical_type): Also cache the canoncial type
1769         for non type leaders.
1770
1771 2010-11-18  Richard Guenther  <rguenther@suse.de>
1772
1773         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
1774
1775 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
1776
1777         PR middle-end/46518
1778         * sel-sched-ir.c (init_expr): Use the correct type for
1779         target_available.
1780         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
1781
1782 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
1783
1784         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
1785         as well as -mrelocatable at the same time.
1786
1787 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
1788
1789         PR target/46422
1790         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
1791         Call the clz builtin.
1792
1793 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
1794             Steve Ellcey  <sje@cup.hp.com>
1795
1796         PR middle-end/31490
1797         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
1798         if section attribute used.
1799
1800 2010-11-17  Jan Hubicka  <jh@suse.cz>
1801
1802         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
1803         expand errno setting variant when optimizing for size.
1804
1805 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
1806
1807         * postreload.c (reload_combine): Call control_flow_insn_p only once.
1808         Reverse backward loop.  Fix formatting issues.
1809
1810 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
1811
1812         * c-parser.c (c_token_is_qualifier,
1813         c_parser_next_token_is_qualifier): New.
1814         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
1815         Improve error message on specs->tagdef_seen_p.
1816         (c_parser_struct_or_union_specifier): Improve error recovery.
1817         (c_parser_declspecs): Move exit condition on C_ID_ID early.
1818         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
1819         using c_parser_next_token_is_qualifier; extend it to cover
1820         a ctsk_tagdef typespec and !typespec_ok in general.
1821
1822 2010-11-17  Richard Guenther  <rguenther@suse.de>
1823
1824         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
1825         (gimple_mod_pow2_value_transform): Likewise.
1826         (gimple_mod_subtract_transform): Likewise.
1827
1828 2010-11-17  Richard Guenther  <rguenther@suse.de>
1829
1830         PR lto/46504
1831         * gimple.c (gimple_register_canonical_type): Make sure to only
1832         make type leaders canonical types.
1833
1834 2010-11-17  Michael Matz  <matz@suse.de>
1835
1836         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
1837         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
1838         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
1839         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
1840         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
1841         (pass_build_ssa): ... but here.
1842         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
1843         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
1844         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
1845         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
1846         * predict.c (rebuild_frequencies): Ditto.
1847         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
1848         * emit-rtl.c (verify_rtl_sharing): Ditto.
1849         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
1850         * tree-ssa-live.c (remove_unused_locals): Ditto.
1851         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
1852         * tree-ssa.c (pass_early_warn_uninitialized,
1853         execute_update_addresses_taken, pass_update_address_taken): Ditto.
1854         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
1855         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
1856         * passes.c (pass_postreload, execute_todo): Ditto.
1857         * tree-ssanames.c (pass_release_ssa_names): Ditto.
1858
1859 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
1860
1861         * doc/invoke.texi (-dy): Remove.
1862         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
1863         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
1864         * langhooks.c (lhd_do_nothing_i): Remove.
1865         * langhooks.h (lang_hooks.parse_file): Take no arguments.
1866         * toplev.c (set_yydebug): Remove.
1867         (compile_file): Update call to lang_hooks.parse_file.
1868         (decode_d_option): Don't handle -dy.
1869
1870 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
1871
1872         PR rtl-optimization/46440
1873         * combine.c (update_cfg_for_uncondjump): When changing
1874         an indirect jump into unconditional jump, remove BARRIERs
1875         from bb's footer.
1876
1877 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
1878
1879         * opts.c (target_handle_option): Do not assert that loc ==
1880         UNKNOWN_LOCATION.
1881
1882 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
1883             Richard Guenther  <rguenther@suse.de>
1884
1885         PR middle-end/45838
1886         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
1887         call_may_clobber_ref_p_1): Return true for __sync_* and some
1888         OpenMP builtins that act as threading barriers.
1889
1890 2010-11-17  Richard Guenther  <rguenther@suse.de>
1891
1892         PR tree-optimization/46498
1893         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
1894
1895 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1896
1897         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
1898         (xtensa_function_arg_boundary): ...this.
1899         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
1900         thinko in declaration.
1901         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
1902         number of parameters to picochip_function_arg_boundary.
1903         (picochip_arg_advance): Likewise.
1904
1905 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
1906
1907         PR target/46512
1908         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
1909         under check for type.
1910
1911 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1912
1913         * ifcvt.c (dead_or_predicable): Fix typo.
1914
1915 2010-11-16  Richard Henderson  <rth@redhat.com>
1916
1917         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
1918         * config/s390/s390.opt (mfused-madd): Remove.
1919         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
1920         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
1921         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
1922         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
1923
1924 2010-11-16  Richard Henderson  <rth@redhat.com>
1925
1926         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
1927         * config/rs6000/rs6000.opt (mfused-madd): Remove.
1928         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
1929         (*altivec_vmaddfp_1): Remove.
1930         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
1931         (altivec_mulv4sf3): Expand to FMA directly.
1932         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
1933         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
1934         * config/rs6000/paired.md (paired_madds0): Use FMA.
1935         (paired_madds1): Likewise.
1936         (*paired_madd): Rename from paired_madd; use FMA.
1937         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
1938         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
1939         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
1940         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
1941         (rs6000_emit_madd): Use fma_optab.
1942         (rs6000_emit_msub): Use fms_optab.
1943         (rs6000_emit_nmsub): Expand the FMA pattern directly.
1944         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
1945         (*fmasf4_fpr): Rename from fmasf4_fpr.
1946         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
1947         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
1948         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
1949         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
1950         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
1951         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
1952         (*fmadf4_fpr): Rename from fmadf4_fpr.
1953         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
1954         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
1955         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
1956         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
1957         (fmasf4, fmadf4): Macroize into...
1958         (fma<FMA_F>4): ... here.
1959         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
1960         (nfma<FMA_F>4, nfms<FMA_F>4): New.
1961         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
1962         TARGET_FUSED_MADD.
1963         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
1964         (*vsx_fmadd<mode>4_1): Remove.
1965         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
1966         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
1967         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
1968         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
1969         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
1970         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
1971         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
1972
1973 2010-11-16  Richard Henderson  <rth@redhat.com>
1974
1975         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
1976         (fmasf4, fnmadf4, fnmasf4): Likewise.
1977         (unnamed plus+mult insns and splitters): Delete.
1978
1979 2010-11-16  Richard Henderson  <rth@redhat.com>
1980
1981         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
1982         (fnma<VSF>4): Rename from fnms_<VSF>.
1983         (fms<VSF>4): Rename from fms_<VSF>.
1984         (fma<VDF>4): Rename from fma_<VDF>.
1985         (fms<VDF>4): Rename from fms_<VDF>.
1986         (nfma<VDF>4): Rename from fnma_<VDF>.
1987         (nfms<VDF>4): Rename from fnms_<VDF>.
1988         (fnma<VDF>4, fnms<VDF>4): New expanders.
1989         (floatunsdisf2): Update for the renames.
1990         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
1991         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
1992
1993 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1994
1995         PR rtl-optimization/46490
1996         * combine.c (expand_compound_operation): Fix thinko.
1997
1998 2010-11-16  Richard Henderson  <rth@redhat.com>
1999
2000         PR target/46470
2001         * recog.c (peep2_attempt): Convert frame-related info when possible.
2002         (peep2_fill_buffer): Allow frame-related insns into the buffer.
2003         (peephole2_optimize): Allow peep2_attempt to fail.
2004
2005 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2006
2007         PR rtl-optimization/46315
2008         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
2009         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
2010         extracted from...
2011         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
2012         (remove_reg_equal_equiv_notes_for_defs): ...this.
2013         (delete_unmarked_insns): Adjust to above renaming.
2014         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
2015         referring to registers set in the insns being moved, if any.
2016
2017         * df-core.c (df_ref_dump): New function extracted from...
2018         (df_refs_chain_dump): ...here.  Call it.
2019         (df_regs_chain_dump): Likewise.
2020         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
2021         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
2022
2023 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
2024
2025         PR rtl-optimization/46395
2026         * postreload.c (reload_combine): Invalidate register use
2027         information on all control flow insns.
2028
2029         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
2030         LABEL_REF in UNSPEC operand.
2031
2032 2010-11-16  Jan Hubicka  <jh@suse.cz>
2033
2034         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
2035         when !flag_toplevel_reorder do not remove unless variable is
2036         COMDAT or ARTIFICIAL.
2037         * ipa.c (varpool_can_remove_if_no_refs): ... here.
2038         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
2039         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
2040         * varpool.c (decide_is_variable_needed): Do not handle visibility
2041         issues.
2042         (varpool_finalize_decl): Likewise.
2043         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
2044         update outdated comment on DECL_RTL_SET_P check.
2045
2046 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2047
2048         * config/sol2.h (NM_FLAGS): Define.
2049         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
2050         * doc/tm.texi: Update.
2051
2052 2010-11-16  Nick Clifton  <nickc@redhat.com>
2053
2054         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
2055         (msubsf4): Rename to fmssf4, and use fma.
2056         (nmaddsf4): Rename to fnmasf4 and use fma.
2057         (nmsubsf4): Rename to fnmssf4 and use fma.
2058
2059 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
2060
2061         PR target/44762
2062         * config/score/score3.c (score3_return_in_memory): Constify arguments.
2063         (score3_in_small_data_p, score3_function_value): Likewise.
2064         (score3_trampoline_init): Use LCT_NORMAL.
2065         (score3_print_operand): Initialize code as UNKNOWN.
2066         * config/score/predicates.md (score_load_multiple_operation):
2067         Remove unused variable.
2068         (score_store_multiple_operation): Likewise.
2069         * config/score/score7.c (score7_return_in_memory): Constify arguments.
2070         (score7_in_small_data_p, score7_function_value): Likewise.
2071         (score7_trampoline_init): Use LCT_NORMAL.
2072         (score7_print_operand): Initialize code as UNKNOWN.
2073         * config/score/score3.h (score3_return_in_memory): Update prototype.
2074         (score3_in_small_data_p, score3_function_value): Likewise.
2075         * config/score/score-protos.h (score_function_value): Likewise.
2076         * config/score/score7.h (score7_return_in_memory): Update prototype.
2077         (score7_in_small_data_p, score7_function_value): Likewise.
2078         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
2079         (score_return_in_memory, score_pass_by_reference): Constify arguments.
2080         (score_output_mi_thunk, score_function_prologue): Don't return a value.
2081         (score_function_epilogue, score_in_small_data_p): Likewise.
2082         (score_option_override, score_asm_trampoline_template): Likewise.
2083         (score_trampoline_init, score_print_operand): Likewise.
2084         (score_print_operand_address, score_prologue): Likewise.
2085         (score_epilogue, score_call, score_call_value): Likewise.
2086         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
2087         (score_function_arg_advance): Likewise. Make static.
2088         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
2089         (score_function_arg, score_legitimate_address_p): Make static.
2090         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
2091         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
2092         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
2093         Allow (W) == HOST_BITS_PER_WIDE_INT.
2094
2095         PR java/46386
2096         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
2097         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
2098
2099 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2100
2101         * config/arc/arc.c: Delete pasto.
2102         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
2103
2104 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
2105
2106         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
2107         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
2108         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
2109         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2110         (mn10300_preferred_reload_class,
2111         mn10300_preferred_output_reload_class): New functions.
2112
2113 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2114
2115         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
2116         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
2117         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
2118         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
2119
2120 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2121
2122         * builtins.c (std_gimplify_va_arg_expr): Use
2123         targetm.calls.function_arg_boundary.
2124         * function.c (assign_parms, locate_and_pad_parm): Likewise.
2125         * calls.c (struct arg_data): Update comment.
2126         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
2127         * target.def (function_arg_boundary): Define.
2128         * targhooks.h (default_function_arg_boundary): Declare.
2129         * targhooks.c (default_function_arg_boundary): Define.
2130         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
2131         TARGET_FUNCTION_ARG_BOUNDARY.
2132         (FUNCTION_ARG_BOUNDARY): Delete.
2133         (TARGET_FUNCTION_ARG_BOUNDARY): New.
2134         * doc/tm.texi: Regenerate.
2135         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
2136         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
2137         * config/arc/arc.c (arc_function_arg_boundary): Define.
2138         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2139         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
2140         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
2141         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
2142         (arm_function_arg_boundary): Define.
2143         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2144         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
2145         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
2146         * config/frv/frv.c (frv_function_arg_boundary): Make static.
2147         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2148         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
2149         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
2150         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
2151         (ix86_compat_function_arg_boundary): Take and return unsigned int.
2152         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2153         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
2154         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
2155         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
2156         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2157         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
2158         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
2159         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2160         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
2161         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
2162         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
2163         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2164         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
2165         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
2166         * config/mips/mips.c (mips_function_arg_boundary): Make static.
2167         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2168         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
2169         * config/pa/pa.c (pa_function_arg_boundary): Define.
2170         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2171         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
2172         * config/picochip/picochip-protos.h
2173         (picochip_get_function_arg_boundary): Delete.
2174         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
2175         Rename to...
2176         (picochip_function_arg_boundary): ...this.  Make static.
2177         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
2178         (picochip_arg_advance): Adjust.
2179         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2180         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
2181         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
2182         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
2183         (rs6000_function_arg_boundary): ...this.  Make static.
2184         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
2185         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2186         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
2187         * config/rx/rx.c (rx_function_arg_boundary): Define.
2188         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2189         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
2190         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
2191         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2192         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
2193         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
2194         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
2195         (xtensa_function_arg_boundary): ...this.  Make static.
2196         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2197
2198 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2199
2200         * expr.c (alignment_for_piecewise_move): New function.
2201         (widest_int_mode_for_size): New function.
2202         (move_by_pieces, move_by_pieces_ninsns): Call them.
2203         (can_store_by_pieces, store_by_pieces_1): Likewise.
2204
2205 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2206
2207         * gcc.c (char_p): Define.  Define a VEC of it.
2208         (n_linker_options, n_assembler_options, n_preprocessor_options):
2209         Delete.
2210         (linker_options, assembler_options, preprocessor_options): Convert
2211         to a VEC.
2212         (add_preprocessor_option): Adjust.
2213         (add_assembler_option): Adjust.
2214         (add_linker_option): Adjust.
2215         (do_specs_vec): New function.
2216         (do_spec_1): Call it.  Adjust for new types.
2217
2218 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2219
2220         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
2221         (sreal.o, statistics.o, stringpool.o): Likewise.
2222
2223 2010-11-16  Richard Guenther  <rguenther@suse.de>
2224
2225         PR tree-optimization/44545
2226         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
2227         statements are not reassociatable.
2228         (reassociate_bb): Likewise.
2229
2230 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2231
2232         * bitmap.c: Delete unnecessary includes.
2233         * ebitmap.c: Likewise.
2234         * et-forest.c: Likewise.
2235         * sreal.c: Likewise.
2236         * statistics.c: Likewise.
2237         * stringpool.c: Likewise.
2238         * double-int.c: Add comment for inclusion of tm.h.
2239
2240 2010-11-16  Richard Guenther  <rguenther@suse.de>
2241
2242         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
2243         (visit_nary_op): ... this.
2244         (visit_binary_op): Remove.
2245         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
2246
2247 2010-11-16  Richard Guenther  <rguenther@suse.de>
2248
2249         PR middle-end/45172
2250         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
2251
2252 2010-11-16  Nick Clifton  <nickc@redhat.com>
2253
2254         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
2255         record is packed.
2256
2257 2010-11-15  Richard Henderson  <rth@redhat.com>
2258
2259         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
2260         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
2261         DOT_PROD_EXPR.
2262
2263 2010-11-15  Richard Henderson  <rth@redhat.com>
2264
2265         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
2266         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
2267         fma rtx_code.
2268
2269 2010-11-15  Richard Henderson  <rth@redhat.com>
2270
2271         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
2272         and *mulsubsf4 respectively.  Use fma rtx_code.
2273
2274 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
2275
2276         * gcc.c: Include "vec.h".
2277         (argbuf): Make into a VEC.
2278         (argbuf_length, argbuf_index): Remove.
2279         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
2280         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
2281         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
2282         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
2283         (gcc.o): Depend on $(VEC_H).
2284
2285 2010-11-15  Richard Henderson  <rth@redhat.com>
2286
2287         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
2288         via FMA if unsafe math.
2289         (insert_var_expansion_initialization): Handle FMA.
2290         (combine_var_copies_in_loop_exit): Likewise.
2291
2292 2010-11-15  Richard Henderson  <rth@redhat.com>
2293
2294         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
2295         * config/ia64/ia64.opt: Remove mfused-madd.
2296         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
2297         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
2298         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
2299         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
2300         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
2301         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
2302         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
2303         (fmav2sf4): Rename from fpma; use FMA code.
2304         (fmsv2sf4): Rename from fpms; use FMA code.
2305         (fnmav2sf4): Rename from *fpnma; use FMA code.
2306         * config/ia64/ia64.md (MODE_SDF): New iterator.
2307         (suffix): New mode attribute.
2308         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
2309         (fmssf4): Rename from *fmssf4.
2310         (fnmasf4): Rename from *nfmasf4.
2311         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
2312         (*nmadddf4, *nmadddf4_truncsf): Remove.
2313         (fmsdf4): Rename from *fmsdf4.
2314         (fnmadf4): Rename from *nfmadf4.
2315         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
2316         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
2317         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
2318         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
2319         (fmsxf4): Rename from *fmsxf4.
2320         (fnmaxf4): Rename from *nfmaxf4.
2321         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
2322         (*fnmaxf_trunc_<MODE_SDF>): New.
2323
2324 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2325
2326         PR tree-optimization/46461
2327         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
2328         a gimple val.
2329
2330 2010-11-15  Ian Lance Taylor  <iant@google.com>
2331
2332         * godump.c: New file.
2333         * common.opt (fdump-go-spec=): New option.
2334         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
2335         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
2336         (TYPE_SYMTAB_IS_DIE): Define.
2337         (struct tree_type): Change GTY for symtab field to use
2338         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
2339         to pick the union field.
2340         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
2341         (dump_go_spec_init): Declare.
2342         * toplev.c (process_options): Handle flag_dump_go_spec.
2343         * debug.c: Include "tree.h".
2344         (do_nothing_debug_hooks): Set tree_type_symtab_field.
2345         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
2346         * dbxout.c (dbx_debug_hooks): Likewise.
2347         (xcoff_debug_hooks): Likewise.
2348         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
2349         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
2350         SDB_DEBUGGING_INFO is not defined.
2351         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
2352         (Overall Options): Document -fdump-go-spec.
2353         * Makefile.in (OBJS-common): Add godump.o.
2354         (debug.o): Add dependency on $(TREE_H).
2355         (godump.o): New target.
2356         (GTFILES): Add $(srcdir)/godump.c.
2357
2358 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2359
2360         PR debug/46095
2361         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
2362         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
2363         style < 0, add REG_FRAME_RELATED_EXPR.
2364
2365         PR debug/46387
2366         * rtl.h (vt_equate_reg_base_value): New prototype.
2367         * alias.c (vt_equate_reg_base_value): New function.
2368         * var-tracking.c (vt_init_cfa_base): Use it.
2369
2370 2010-11-15  Jan Hubicka  <jh@suse.cz>
2371             Diego Novillo  <dnovillo@google.com>
2372
2373         PR lto/41528
2374         * doc/lto.texi: Add.
2375         * doc/gccint.texi: Add reference to lto.texi.
2376         * doc/invoke.texi: Update user documentation for LTO.
2377         Move internal flags to lto.texi
2378
2379 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
2380
2381         * c-typeck.c (build_unary_op): Use
2382         objc_build_incr_expr_for_property_ref to build the pre/post
2383         increment/decrement of an Objective-C property ref, and skip the
2384         lvalue_or_else check in that case.
2385
2386 2010-11-15  Martin Jambor  <mjambor@suse.cz>
2387
2388         PR tree-optimization/46349
2389         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
2390         (contains_vce_or_bfcref_p): Likewise.
2391         (sra_modify_assign): Use them.
2392
2393 2010-11-15  Richard Guenther  <rguenther@suse.de>
2394
2395         PR tree-optimization/46467
2396         * tree-ssa-structalias.c (do_structure_copy): Properly treat
2397         variables without subvars.
2398
2399 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
2400
2401         * config/picochip/picochip.c (file header): Picochip name change.
2402         * config/picochip/picochip.md (file header): Likewise.
2403         * config/picochip/predicates.md (file header): Likewise.
2404         * config/picochip/dfa_space.md (file header): Likewise.
2405         * config/picochip/dfa_speed.md (file header): Likewise.
2406         * config/picochip/picochip.h(file header): Likewise.
2407         * config/picochip/constraints.md (file header): Likewise.
2408         * config/picochip/picochip-protos.h (file header): Likewise.
2409         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
2410         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
2411         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
2412         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
2413         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
2414         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
2415         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
2416         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
2417         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
2418         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
2419         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
2420         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
2421         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
2422         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
2423
2424 2010-11-15  Richard Guenther  <rguenther@suse.de>
2425
2426         PR bootstrap/46474
2427         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
2428
2429 2010-11-15  Nick Clifton  <nickc@redhat.com>
2430
2431         * config/stormy16/stormy16.c (direct_return): Do not generate a
2432         direct return for interrupt handlers.
2433
2434 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
2435
2436         * Makefile.in (tm.texi): Replace with rule for:
2437         ($(srcdir)/doc/tm.texi).
2438         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
2439         $(srcdir)/doc/tm.texi .
2440         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
2441         tm.texi .
2442
2443         PR target/46427
2444         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
2445
2446         PR bootstrap/45444
2447         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
2448         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
2449
2450         PR target/46432
2451         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
2452
2453 2010-11-15  Richard Guenther  <rguenther@suse.de>
2454
2455         PR lto/44150
2456         * lto-opts.c (lto_write_options): Write -fexceptions even if
2457         not set by the user.
2458
2459 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2460
2461         PR c/46462
2462         * c-decl.c (declspecs_add_type): Make variables with error types
2463         integers.
2464         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
2465         do not start a declaration before an Objective-C foreach.
2466         (c_parser_declaration_or_fndef): Improve recovery after unknown
2467         type name.
2468         (c_parser_for_statement): Hoist entrance of "foreach context"
2469         before ifs, add corresponding reset where it was missing.  Do
2470         not set objc_could_be_foreach_context for C.
2471
2472 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
2473
2474         PR tree-optimization/45722
2475         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
2476         this is a reference to a component.
2477         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
2478         (ipa_note_param_call): Adjust comment.
2479
2480 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
2481
2482         * config/mips/mips.c (machine_function): Remove
2483         initialized_mips16_gp_pseudo_p.
2484         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
2485         detect whether a pseudo has already been created.  Unconditionally
2486         create a new one if not.
2487         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
2488         expanding to rtl.  Create a new pseudo otherwise, if allowed.
2489
2490 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
2491
2492         PR target/43440
2493         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
2494         * tm.texi: Regenerated.
2495         * output.h (decode_reg_name_and_count): Declare.
2496         * varasm.c (decode_reg_name_and_count): New function.
2497         (decode_reg_name): Reimplement using decode_reg_name_and_count.
2498         * reginfo.c (fix_register): Use decode_reg_name_and_count and
2499         iterate over all regs used.
2500         * stmt.c (expand_asm_operands): Likewise.
2501         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
2502         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
2503         multiple machine registers.
2504
2505 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
2506
2507         * stor-layout.c (place_union_field): Do not put location information
2508         on offset expressions.
2509         (place_field): Likewise.
2510         (finalize_record_size): Likewise on size expressions.
2511         (finalize_type_size): Likewise.
2512         (layout_type): Likewise.
2513
2514 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
2515
2516         PR debug/42889
2517         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
2518         * df-core.c (df_set_bb_dirty_nonrl): Remove.
2519         * df.h (df_set_bb_dirty_nonlr): Likewise.
2520
2521 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
2522
2523         * config/mips/mips.md (call_internal): Pass curr_insn to
2524         mips_split_call.
2525         (call_internal_direct): Ditto.
2526         (call_value_internal): Ditto.
2527         (call_value_internal_direct): Ditto.
2528         (call_value_multiple_internal): Ditto.
2529         * config/mips/mips.c (mips_split_call): Do not copy
2530         CALL_INSN_FUNCTION_USAGE here.
2531
2532 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
2533
2534         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
2535         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
2536         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
2537         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
2538         (TUNE_LOONGSON_3A): Define.
2539         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
2540         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
2541         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
2542         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
2543         (mips_rtx_cost_data): Add Loongson-3A.
2544
2545 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
2546
2547         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
2548         switches.
2549
2550 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
2551
2552         * dwarf2out.c (macinfo_entry): New struct.
2553         (output_comp_unit): Emit the section start label here and flag that we
2554         will emit an info section.
2555         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
2556         emitting directly.
2557         (dwarf2out_end_source_file): Likewise.
2558         (dwarf2out_define): Likewise.
2559         (dwarf2out_undef): Likewise.
2560         (output_macinfo): New.
2561         (dwarf2out_init): Do not emit debug section switches here, allocate a
2562         vec for macinfo, when required.
2563         (dwarf2out_finish): First switch to debug_abbrev_section here.
2564         debug_line_section,  debug_macinfo_section, Likewise.
2565         Check that the pubtypes table has at least one unpruned entry before
2566         trying to emit it.
2567
2568 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2569
2570         PR c/20385
2571         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
2572         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
2573         token lookahead.
2574         (c_parser_compound_statement_nostart, c_parser_label,
2575         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
2576         (c_parser_declaration_or_fndef): Detect the case now matched by
2577         c_parser_next_tokens_start_declaration, give error and correct it.
2578
2579 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2580
2581         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
2582         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
2583         with typespec_kind.
2584         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
2585         (shadow_tag_warned, check_compound_literal_type): Adjust
2586         uses of tag_defined_p.
2587         (declspecs_add_type): Set typespec_kind.
2588         * c-parser.c (c_parser_declaration_or_fndef,
2589         c_parser_declspecs, c_parser_struct_declaration,
2590         c_parser_parameter_declaration, c_parser_type_name,
2591         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
2592         of type_seen_p.
2593         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
2594         tag_defined_p, pass ctsk_firstref through.
2595
2596 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2597
2598         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
2599         (struct format_wanted_type): Replace field "name" with "kind", add
2600         "format_start" and "format_length".
2601         (check_format_info_main): Fill in new fields.  Fill in
2602         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
2603         after the final NUL outside the while loop.  Do not include
2604         width and precision modifiers in the format_start/format_length
2605         of the main format.
2606         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
2607         arguments.  Compute WANTED_TYPE first so that format_type_warning
2608         can be called for missing arguments.  Adjust calls to
2609         format_type_warning.
2610         (format_type_warning): Fetch as much information as possible
2611         from format_wanted_type.  Adjust printing now that every
2612         warning has a "descr", as well as for missing argument warnings
2613         and to include % sign for format specifiers.
2614
2615 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
2616
2617         PR rtl-optimization/46204
2618         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
2619         Update all callers.  Do not recompute topological order.  Adjust
2620         fallthrough edges following a degenerate conditional jump.
2621
2622 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
2623
2624         * opts-common.c (control_warning_option): New.
2625         * opts.c (set_default_handlers): New.
2626         (decode_options): Use set_default_handlers and
2627         control_warning_option.
2628         (common_handle_option): Update call to enable_warning_as_error.
2629         (enable_warning_as_error): Take gcc_options parameters.  Use
2630         control_warning_option.
2631         * opts.h (set_default_handlers, control_warning_option): Declare.
2632
2633 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
2634
2635         * Makefile.in (OPTS_H): Define.
2636         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
2637         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
2638         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
2639         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
2640         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
2641         * gcc.c (driver_handle_option): Take location_t parameter.
2642         (process_command, do_self_spec): Update calls to
2643         read_cmdline_option.
2644         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
2645         * langhooks.c (lhd_handle_option): Take location_t parameter.
2646         * langhooks.h (handle_option): Take location_t parameter.
2647         * lto-opts.c (lto_reissue_options): Update call to set_option.
2648         * opts-common.c (handle_option): Make static.  Take location_t
2649         parameter and pass it to other functions.
2650         (handle_generated_option): Take location_t parameter and pass it
2651         to other functions.
2652         (read_cmdline_option): Take location_t parameter and pass it to
2653         other functions.  Use warning_at and error_at.
2654         (set_option): Take location_t parameter and pass it to other
2655         functions.
2656         * opts.c (common_handle_option): Take location_t parameter and
2657         pass it to other functions.
2658         (enable_warning_as_error): Make static.  Take location_t parameter
2659         and pass it to other functions.
2660         (lang_handle_option): Take location_t parameter and pass it to
2661         other functions.
2662         (target_handle_option): Take location_t parameter.
2663         (read_cmdline_options, maybe_default_option,
2664         maybe_default_options, default_options_optimization,
2665         decode_options): Take location_t parameter and pass it to other
2666         functions.
2667         * opts.h: Include input.h.
2668         (struct cl_option_handler_func, decode_options, set_option,
2669         handle_generated_option, read_cmdline_option): Take location_t
2670         parameters.
2671         (handle_option, enable_warning_as_error): Remove.
2672         * toplev.c (toplev_main): Update call to decode_options.
2673
2674 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
2675
2676         * graphite-cloog-util.c (oppose_constraint,
2677         cloog_matrix_to_ppl_constraint,
2678         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
2679         CLooG isl uses unsigned integers.  This triggered a warning.
2680
2681 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
2682
2683         PR target/46438
2684         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
2685         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
2686         (xtensa_function_arg_1): De-constify cum.
2687         (xtensa_expand_prologue): Use add_reg_note.
2688
2689         PR target/46435
2690         * config/cris/cris.c (saved_regs_mentioned): Delete.
2691         (cris_reload_address_legitimized): Cast itype to enum reload_type.
2692         Remove unused variable op0p.
2693         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
2694         (cris_emit_movem_store): Use add_reg_note.
2695
2696         PR bootstrap/46456
2697         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
2698
2699 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
2700
2701         * function.c (expand_function_end): Set the locator of the prologue on
2702         the stack checking insns.
2703
2704 2010-11-12  Richard Henderson  <rth@redhat.com>
2705
2706         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
2707         * config/xtensa/xtensa.opt (mfused-madd): Remove.
2708         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
2709         MASK_FUSED_MADD.
2710         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
2711         (fnmasf4): Rename from mulsubsf3; use fma.
2712
2713 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
2714             Richard Henderson  <rth@redhat.com>
2715
2716         PR target/46428
2717         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
2718         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
2719         comparison.
2720
2721 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
2722
2723         * opts-common.c (decode_cmdline_option): Initialize separate_args.
2724
2725 2010-11-12  Jan Hubicka  <jh@suse.cz>
2726
2727         * doc/invoke.texi (early-inlining-insns): Update default.
2728         * params.def (early-inlining-insns): Default to 10.
2729
2730 2010-11-12  Olivier Hainque  <hainque@adacore.com>
2731
2732         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
2733
2734 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2735
2736         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
2737         (SUPPORTS_INIT_PRIORITY): Define.
2738
2739 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
2740
2741         PR target/46430
2742         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
2743         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
2744         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
2745         (avr_device_to_devicelib): Likewise.
2746         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
2747         into block.
2748         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
2749         (zero_extendhidi2, zero_extendsidi2): Likewise.
2750         * config/avr/avr.c (avr_num_arg_regs): Constify type.
2751         (avr_return_addr_rtx): De-constify tem.
2752         (avr_rotate_bytes): Move declarations to start of block.
2753         Don't use variable length array.  Put nested if/else into block.
2754
2755         PR rtl-optimization/46433
2756         * var-tracking.c: Include tm_p.h .
2757
2758         PR bootstrap/44756
2759         PR build/44767
2760         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
2761         should be unsigned.
2762         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
2763         * doc/tm.texi: Regenerate.
2764
2765         PR target/46412
2766         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
2767         * config/bfin/bfin.c: Include sel-sched.h .
2768         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
2769         (expand_interrupt_handler_prologue): Remove unused variable insn.
2770         (bfin_load_pic_reg): Likewise.
2771         (bfin_rtx_costs): Make code / outer_code variables of type
2772         enum rtx_code, copied from re-named parameters.
2773         (bfin_local_alignment): Change align argument and return type
2774         to unsigned.
2775         (bfin_adjust_cost): Remove unused variable insn_type.
2776         Declare variables at start of block.
2777         (struct loop_info): Rename to...
2778         (struct loop_info_d).
2779         (workaround_rts_anomaly): Change type of icode to int.
2780         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
2781         with int-typed variable.
2782         (note_np_check_stores): Likewise.
2783         (trapping_loads_p): Remove unused variable pat.
2784         (bfin_expand_binop_builtin): Use expand_normal.
2785         (bfin_expand_unop_builtin): Likewise.
2786         (bfin_expand_builtin): Likewise.  Set tmode before use.
2787
2788         PR middle-end/44769
2789         * final.c (split_double): Don't use BITS_PER_WORD directly in
2790         shift count.
2791
2792         PR target/46431
2793         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
2794         assignment.
2795
2796         PR target/46450
2797         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
2798         Use add_reg_note.
2799         (xstormy16_function_arg): Dereference cum.
2800         (xstormy16_expand_builtin): Use expand_normal.
2801         Change type of omode to enum machine_mode.
2802         (combine_bnp): Rename and to and_insn.
2803
2804         PR target/46437
2805         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
2806         localreg.
2807
2808 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
2809
2810         PR debug/46375
2811         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
2812
2813 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
2814
2815         PR lto/46376
2816         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
2817
2818 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
2819
2820         PR c/44782
2821         * common.opt (fmax-errors=): New option.
2822         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
2823         * diagnostic.h (struct diagnostic_context): Add max_errors field.
2824         * diagnostic.c (diagnostic_initialize): Initialize it.
2825         (diagnostic_action_after_output): Exit if more than max_errors
2826         have been output.
2827         * doc/invoke.texi (Warning Options): Add -fmax-errors.
2828         (-fmax-errors): Document.
2829
2830 2010-11-11  Richard Henderson  <rth@redhat.com>
2831
2832         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
2833
2834 2010-11-11  Richard Henderson  <rth@redhat.com>
2835
2836         * config/fused-madd.opt: New file.
2837         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
2838         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
2839         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
2840         * config/i386/i386.opt (mfused-madd): Remove.
2841         * config/i386/sse.md (split_fma): Remove.
2842         (split_fms, split_fnma, split_fnms): Remove.
2843
2844 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
2845
2846         PR target/46088
2847         * config/i386/i386.md (*ashl<mode>3_cconly,
2848         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
2849         change nonimmediate_operand predicate to register_operand.
2850
2851 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
2852
2853         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
2854
2855 2010-11-11  Jan Hubicka  <jh@suse.cz>
2856
2857         * opts.c (finish_options): Do not error on -flto-partition alone.
2858
2859         * doc/invoke.texi (-fwhopr): Merge into -flto section.
2860         (-flto-partition): Document none.
2861         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
2862         * lto-wrapper.c: Update comment.
2863         (run_gcc): Update LTO option parsing.
2864         * opts.c (finish_options): add support -flto-partition=none
2865         (common_handle_option): Remove fwhopr.
2866         * common.opt: Turn fwhopr into flto.
2867         * collect2.c (main): Update option handling.
2868         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
2869         * ipa-split.c (execute_split_functions): Remove flag_whopr.
2870         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
2871         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
2872         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
2873
2874 2010-11-11  Jan Hubicka  <jh@suse.cz>
2875
2876         PR tree-optimize/40436
2877         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
2878         (eliminated_by_inlining_prob): ... this one; return 50% probability
2879         for SRA.
2880         (estimate_function_body_sizes): Update use of
2881         eliminated_by_inlining_prob; estimate static function size
2882         for 2 instructions.
2883
2884 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
2885
2886         PR target/44749
2887         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
2888         declare.  Change type of 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.c (mep_legitimize_reload_address): Change type of
2893         argument four to type int.
2894         (mep_secondary_input_reload_class): Returns enum reg_class.
2895         (mep_secondary_output_reload_class): Likewise.
2896         (mep_function_value): Change types of arguments to cont_tree.
2897         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
2898         mep_regno_reg_class to enum reg_class.
2899
2900 2010-11-11  Richard Henderson  <rth@redhat.com>
2901
2902         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
2903         that the target has the exact fma operation that we matched.
2904
2905 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
2906
2907         * reginfo.c (fix_register): Avoid inserting English word in
2908         diagnostic sentence.  Use %qs for quoting and %'.
2909
2910 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
2911
2912         * config/i386/driver-i386.c (host_detect_local_cpu): Support
2913         Intel processor family 6, model 0x2c.
2914
2915 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
2916
2917         * opts.c (warning_as_error_callback,
2918         register_warning_as_error_callback): Remove.
2919         (enable_warning_as_error): Don't use warning_as_error_callback.
2920         * opts.h (register_warning_as_error_callback): Remove.
2921
2922 2010-11-11  Richard Henderson  <rth@redhat.com>
2923
2924         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
2925         in between the MULT and the PLUS/MINUS.
2926
2927 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
2928
2929         PR middle-end/46388
2930         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
2931         BLKmode mode for it.
2932         (expand_expr_real_1): Similarly for op0.
2933
2934 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2935
2936         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
2937         Document optional target selector.
2938
2939 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
2940
2941         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
2942         assembling high and low parts of size if not using 32-bit HWINT; else
2943         use DECL_SIZE_UNITS, not DECL_SIZE.
2944
2945 2010-11-11  Martin Jambor  <mjambor@suse.cz>
2946
2947         PR tree-optimization/46383
2948         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
2949         offsets.
2950         (compute_complex_ancestor_jump_func): Likewise.
2951         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
2952
2953 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
2954
2955         PR debug/46150
2956         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
2957         true if expr1->hash != expr2->hash.
2958
2959 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
2960
2961         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
2962         diagnostics with lowercase letters.
2963         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
2964         lowercase letters.
2965         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
2966         diagnostic.
2967         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2968         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
2969         lowercase letters.
2970         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2971         Remove trailing ' ' from diagnostic.
2972         * config/avr/avr.c (print_operand_address): Start diagnostic with
2973         a lowercase letter and remove trailing '.'.
2974         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
2975         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
2976         with lowercase letters.  Use %' in diagnostics.  Remove trailing
2977         '.' from diagnostics.
2978         (bfin_handle_longcall_attribute): Use %' in diagnostic.
2979         * config/cris/cris.c (cris_split_movdx,
2980         cris_expand_pic_call_address): Start diagnostics with lowercase
2981         letters.
2982         (cris_asm_output_label_ref): Use %' in diagnostic.
2983         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
2984         letter.
2985         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
2986         lowercase letter.
2987         * config/darwin-c.c (version_as_macro): Start diagnostic with a
2988         lowercase letter.
2989         * config/darwin-driver.c (darwin_default_min_version): Use %' in
2990         diagnostic.
2991         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
2992         diagnostic.
2993         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
2994         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
2995         diagnostics.
2996         * config/i386/i386.c (ix86_option_override_internal): Write
2997         diagnostic as a single sentence without trailing '.'.  Use %' in
2998         diagnostics.
2999         (ix86_function_sseregparm, classify_argument): Start diagnostics
3000         with lowercase letters.
3001         (ix86_expand_prologue): Use %' in diagnostic.
3002         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
3003         diagnostic.
3004         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
3005         lowercase letter.
3006         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
3007         diagnostic.
3008         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3009         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
3010         '`' in help text.
3011         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
3012         lowercase letter.
3013         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
3014         lowercase letters.
3015         * config/microblaze/microblaze.c (microblaze_handle_option):
3016         Remove trailing '.' from diagnostic.
3017         (print_operand): Start diagnostic with a lowercase letter.
3018         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
3019         lowercase letters.  Avoid '`' in diagnostics.
3020         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
3021         lowercase letters.  Avoid '`' in diagnostics.
3022         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
3023         lowercase letters.  Avoid '`' in diagnostics.
3024         * config/picochip/picochip.c (picochip_option_override,
3025         picochip_emit_save_register, picochip_function_arg,
3026         picochip_output_label, picochip_output_internal_label,
3027         picochip_asm_output_opcode, picochip_output_cbranch,
3028         picochip_output_compare, picochip_output_branch,
3029         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
3030         diagnostics. Start diagnostics with lowercase letters.  Use %' in
3031         diagnostics.
3032         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
3033         "SPE" capitalization.  Start diagnostic with a lowercase letter.
3034         (rs6000_handle_option): Start diagnostics with lowercase letters.
3035         (def_builtin): Remove trailing '.' from diagnostic.
3036         (rs6000_savres_routine_name): Start diagnostic with a lowercase
3037         letter.
3038         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
3039         diagnostic.
3040         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
3041         lowercase letter.
3042         * config/s390/s390.c (s390_option_override) Start diagnostics with
3043         lowercase letters.  Use %' in diagnostic.
3044         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
3045         lowercase letters.
3046         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
3047         diagnostic.
3048         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
3049         diagnostic.
3050         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
3051         diagnostic.
3052         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3053         * config/spu/spu.c (spu_option_override): Start diagnostics with
3054         lowercase letters.  Use %qs for quoting in diagnostics.
3055         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
3056         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
3057         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
3058         from diagnostic.
3059         * convert.c (convert_to_integer, convert_to_vector): Use %' in
3060         diagnostics.
3061         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
3062         letter and use "cannot" spelling.
3063         * expmed.c (extract_fixed_bit_field): Start diagnostic with
3064         lowercase letter and format as a single sentence without '.'.
3065         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
3066         Use %' in diagnostics.
3067         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3068         Use %' in diagnostics.
3069         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3070         Use %' in diagnostics.
3071         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
3072         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
3073         with lowercase letters and remove tailing '.' and '\n'.
3074         * lto-cgraph.c (input_profile_summary): Start diagnostic with
3075         lowercase letter and remove trailing '.'.
3076         (input_cgraph): Start diagnostics with lowercase letters and
3077         remove trailing '\n'.
3078         * opts.c (finish_options, common_handle_option): Start diagnostics
3079         with lowercase letters and remove trailing '.'.  Fix typo in
3080         diagnostic.
3081         * passes.c (position_pass): Start diagnostic with lowercase letter.
3082         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
3083         register_callback, try_init_one_plugin): Start diagnostics with
3084         lowercase letters.
3085         * reload1.c (spill_failure): Use %' in diagnostic.
3086         (gen_reload): Start diagnostic with a lowercase letter.
3087         * stor-layout.c (place_field): Start diagnostic with a lowercase
3088         letter.
3089         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
3090         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
3091         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
3092         Start diagnostics with lowercase letters, remove trailing '.' and
3093         use %' in diagnostics.
3094         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
3095         (verify_ssa): Don't split diagnostic across two error calls.
3096         Spell out "number" and use %' in diagnostic.
3097         * value-prof.c (visit_hist, check_counter): Start diagnostics with
3098         lowercase letters.
3099
3100 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
3101
3102         PR middle-end/46419
3103         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
3104         (_mm_cvtpu16_ps): Ditto.
3105
3106 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3107
3108         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
3109         warn_larger_than, larger_than_size, warn_frame_larger_than,
3110         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
3111         default_visibility, flag_tls_default): New Variable declarations.
3112         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
3113         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
3114         (v): Declare as Common and document here.
3115         * flags.h (default_visibility, flag_generate_lto,
3116         warn_larger_than, larger_than_size, warn_frame_larger_than,
3117         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
3118         flag_shlib, flag_excess_precision_cmdline): Remove.
3119         (set_Wstrict_aliasing): Update prototype.
3120         * gcc.c (verbose_flag): Remove.
3121         (driver_handle_option): Add diagnostic_context parameter.  Don't
3122         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
3123         incrementing it.
3124         * opts-common.c (handle_option): Pass dc to handler.
3125         * opts.c (warn_larger_than, larger_than_size,
3126         warn_frame_larger_than, frame_larger_than_size,
3127         default_visibility): Remove.
3128         (common_handle_option): Add diagnostic_context parameter.
3129         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
3130         gcc_options parameters.
3131         (lang_handle_option, target_handle_option, read_cmdline_options,
3132         decode_options): Add diagnostic_context parameters.
3133         (finish_options): Access option state through opts pointer where
3134         possible.
3135         (common_handle_option): Access option state through opts pointer
3136         where possible.  Do not set local static variable verbose.  Do not
3137         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
3138         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
3139         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
3140         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
3141         OPT_fwhopr_.  Do not explicitly set .opt file variables for
3142         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
3143         (set_Wstrict_aliasing): Add gcc_options parameter.
3144         * opts.h (struct cl_option_handler_func): Add diagnostic_context
3145         parameter to handler.
3146         (decode_options): Add diagnostic_context parameter.
3147         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
3148         asm_file_name, flag_generate_lto, flag_gen_aux_info,
3149         aux_info_file_name, flag_shlib, flag_tls_default,
3150         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
3151         (toplev_main): Pass global_dc to decode_options.
3152         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
3153         aux_info_file_name, asm_file_name): Remove.
3154         * tree.h (flag_tls_default): Remove.
3155
3156 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
3157
3158         PR target/45986
3159         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
3160         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
3161
3162 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
3163
3164         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
3165         (x86_64-*-*): Likewise.
3166         * config/i386/cpuid.h: Define TBM bit.
3167         * config/i386/driver-i386.c (host_detect_local_cpu): Define
3168         and set has_tbm.
3169         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3170         isa_flag for TBM.
3171         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
3172         (OPTION_MASK_ISA_TBM_UNSET): New.
3173         (ix86_handle_option): Handle -mtbm.
3174         (isa_opts): Add -mtbm.
3175         (enum pta_flags): Add PTA_TBM.
3176         (ix86_option_override_internal): Add TBM support.
3177         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
3178         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
3179         (IX86_BUILTIN_BEXTRI64): Likewise.
3180         (bdesc_args): Add TBM intrinsics.
3181         (ix86_expand_builtin): Add TBM specific case.
3182         * config/i386/i386.h (TARGET_TBM): New for TBM.
3183         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
3184         (tbm_bextri_<mode>): Likewise.
3185         (*tbm_blcfill_<mode>): Likewise.
3186         (*tbm_blci_<mode>): Likewise.
3187         (*tbm_blcic_<mode>): Likewise.
3188         (*tbm_blcmsk_<mode>): Likewise.
3189         (*tbm_blcs_<mode>): Likewise.
3190         (*tbm_blsfill_<mode>): Likewise.
3191         (*tbm_blsic_<mode>): Likewise.
3192         (*tbm_t1mskc_<mode>): Likewise.
3193         (*tbm_tzmsk_<mode>): Likewise.
3194         * config/i386/i386.opt: Add -mtbm.
3195         * config/i386/tbmintrin.h (__bextri_u32): New.
3196         (__blcfill_u32): Likewise.
3197         (__blci_u32): Likewise.
3198         (__blcic_u32): Likewise.
3199         (__blcmsk_u32): Likewise.
3200         (__blcs_u32): Likewise.
3201         (__blsfill_u32): Likewise.
3202         (__blsic_u32): Likewise.
3203         (__t1mskc_u32): Likewise.
3204         (__tzmsk_u32): Likewise.
3205         (__bextri_u64): Likewise.
3206         (__blcfill_u64): Likewise.
3207         (__blci_u64): Likewise.
3208         (__blcic_u64): Likewise.
3209         (__blcmsk_u64): Likewise.
3210         (__blcs_u64): Likewise.
3211         (__blsfill_u64): Likewise.
3212         (__blsic_u64): Likewise.
3213         (__t1mskc_u64): Likewise.
3214         (__tzmsk_u64): Likewise.
3215         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
3216         * doc/invoke.texi: Document -mtbm.
3217         * doc/extend.texi: Document TBM built-in functions.
3218
3219 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
3220
3221         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
3222         (x86_64-*-*): Likewise.
3223         * config/i386/cpuid.h: Define BMI bit.
3224         * config/i386/driver-i386.c (host_detect_local_cpu): Define
3225         and set has_bmi.
3226         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3227         isa_flag for BMI.
3228         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
3229         (OPTION_MASK_ISA_BMI_UNSET): New.
3230         (ix86_handle_option): Handle -mbmi.
3231         (isa_opts): Add -mbmi.
3232         (enum pta_flags): Add PTA_BMI.
3233         (ix86_option_override_internal): Add BMI support.
3234         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
3235         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
3236         (IX86_BUILTIN_BEXTR64): Likewise.
3237         (IX86_BUILTIN_CTZS): Likewise.
3238         (bdesc_args): Add BMI intrinsics.
3239         (ix86_expand_args_builtin): Add BMI specific cases.
3240         * config/i386/i386.h (TARGET_BMI): New for BMI.
3241         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
3242         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
3243         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
3244         (UNSPEC_TZCNT): Likewise.
3245         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
3246         (bmi_andn_<mode>): New for BMI.
3247         (bmi_bextr_<mode>): Likewise.
3248         (bmi_blsi_<mode>): Likewise.
3249         (bmi_blsmsk_<mode>): Likewise.
3250         (bmi_blsr_<mode>): Likewise.
3251         * config/i386/i386.opt: Add -mbmi.
3252         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
3253         * config/i386/bmiintrin.h (__lzcnt_u16): New.
3254         (__tzcnt_u16): Likewise.
3255         (__andn_u32): Likewise.
3256         (__bextr_u32): Likewise.
3257         (__blsi_u32): Likewise.
3258         (__blsmsk_u32): Likewise.
3259         (__blsr_u32): Likewise.
3260         (__lzcnt_u32): Likewise.
3261         (__tzcnt_u32): Likewise.
3262         (__andn_u64): Likewise.
3263         (__bextr_u64): Likewise.
3264         (__blsi_u64): Likewise.
3265         (__blsmsk_u64): Likewise.
3266         (__blsr_u64): Likewise.
3267         (__lzcnt_u64): Likewise.
3268         (__tzcnt_u64): Likewise.
3269         * doc/invoke.texi: Document -mbmi and -mno-bmi.
3270         * doc/extend.texi: Document BMI built-in functions.
3271
3272 2010-11-10  Jan Hubicka  <jh@suse.cz>
3273
3274         PR tree-optimize/46228
3275         * doc/invoke.texi (comdat-sharing-probability): Document.
3276         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
3277         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
3278
3279 2010-11-10  Jan Hubicka  <jh@suse.cz>
3280
3281         PR tree-optimize/46228
3282         * cgraph.c (cgraph_propagate_frequency): Fix typo.
3283
3284 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
3285
3286         PR tree-optimization/46414
3287         * tree-inline.c (estimate_move_cost): Check preferred vector
3288         mode for vector type.
3289
3290 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3291
3292         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
3293
3294 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
3295
3296         PR tree-optimization/45971
3297         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
3298         for phi nodes analyzable by scev.
3299
3300 2010-11-10  Richard Guenther  <rguenther@suse.de>
3301
3302         PR tree-optimization/44964
3303         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
3304
3305 2010-11-10  Martin Jambor  <mjambor@suse.cz>
3306
3307         PR tree-optimization/46351
3308         PR tree-optimization/46377
3309         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
3310         aggregate bit-fields.
3311
3312 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3313
3314         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3315         * doc/tm.texi: Regenerate.
3316         * opts-common.c (tm.h): Don't include.
3317         (target_option_translations): Remove.
3318         (decode_cmdline_options_to_array): Don't handle translating options.
3319         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
3320         * config/darwin-driver.c: Don't condition includes on
3321         CROSS_DIRECTORY_STRUCTURE.
3322         (darwin_default_min_version): Make static.
3323         (darwin_driver_init): New.  Call darwin_default_min_version if not
3324         CROSS_DIRECTORY_STRUCTURE.
3325         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3326         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
3327         (ASM_SPEC): Add %{static}.
3328         (darwin_default_min_version): Don't declare.
3329         (darwin_driver_init): Declare.
3330         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
3331         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
3332         * config/darwin.opt (all_load, allowable_client,
3333         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
3334         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
3335         exported_symbols_list, filelist, findirect-virtual-calls,
3336         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
3337         framework, fterminated-vtables, gfull, gused, image_base, init,
3338         install_name, multi_module, multiply_defined,
3339         multiply_defined_unused, no_dead_strip_inits_and_terms,
3340         seg_addr_table, seg_addr_table_filename, segaddr,
3341         segs_read_only_addr, segs_read_write_addr, single_module,
3342         umbrella, unexported_symbols_list, weak_reference_mismatches,
3343         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
3344         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
3345         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
3346         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
3347         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
3348         (ASM_SPEC): Add %{static}.
3349         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
3350         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3351         (DRIVER_SELF_SPECS): Handle options formerly in
3352         TARGET_OPTION_TRANSLATE_TABLE.
3353         * config/mep/mep.opt (mfar): New.
3354         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3355         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
3356         TARGET_OPTION_TRANSLATE_TABLE.
3357         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
3358         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
3359         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
3360         ffix-and-continue, findirect-data): New.
3361         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3362         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
3363         (mnofpu): Define mask and use Report here.
3364
3365 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3366
3367         * config/s390/s390.c (s390_emit_prologue): Report the stack
3368         size if -fstack-usage is used.
3369
3370 2010-11-10  Richard Guenther  <rguenther@suse.de>
3371
3372         PR tree-optimization/46398
3373         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
3374
3375 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
3376
3377         PR target/44760
3378         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
3379         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
3380         GP_REG_OR_PSEUDO_STRICT_P.
3381         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
3382         unexpected alternative.
3383         (*movsf_internal): Likewise.
3384         (indirect_jump): Replace call to non-existant function with call to
3385         internal_error.
3386         (tablejump): Likewise.
3387         * config/iq2000/iq2000.c: Include df.h .
3388         (iq2000_function_arg_advance): Use CONST_CAST2.
3389         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
3390         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
3391         a non-zero function address.
3392         (iq2000_initial_elimination_offset): Add gcc_unreachable for
3393         unexpected value of FROM.
3394         (symbolic_expression_p): Delete.
3395         (iq2000_function_value): Constify func.
3396         (expand_one_builtin): Use expand_normal.
3397         (iq2000_print_operand): Don't print VALUE if calculating it failed.
3398
3399         PR rtl-optimization/44764
3400         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
3401
3402         PR target/46407
3403         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
3404         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
3405         with ATTRIBUTE_UNUSED.
3406         (valid_psw_flag): Constify parameter which.
3407         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
3408
3409         PR target/46415
3410         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
3411         (mmix_dbx_register_number): Likewise.
3412         * config/mmix/mmix.c: Include df.h .
3413         (mmix_local_alignment): Change argument basic_align and return type
3414         to unsigned.
3415         (mmix_dbx_register_number): Change argument and return type to
3416         unsigned.
3417         (mmix_expand_prologue): Use add_reg_note.
3418
3419         PR target/46417
3420         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
3421         (spu_split_store): Use aform.
3422         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
3423
3424 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3425
3426         PR/46268
3427         * doc/gty.texi (GTY Options): Clarify that variable_size produces
3428         allocators taking size in bytes, compare with length option.  Add
3429         size calculation example.
3430         (Invoking the garbage collector): Ensure that sentences are
3431         followed by two spaces.  Describe that pointer fields must be
3432         initialized at ggc_collect call.
3433         (Troubleshooting): New section.
3434
3435 2010-11-09  Jan Hubicka  <jh@suse.cz>
3436
3437         PR tree-optimization/40436
3438         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
3439         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
3440         normal instructions; be sure bultin is not implemented in this file;
3441         compute non-zero return cost.
3442         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
3443         * tree-inline.h (eni_weights_d): Add return cost.
3444
3445 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
3446
3447         * c-parser.c (c_parser_struct_declaration): Handle declaration
3448         specifiers followed by CPP_CLOSE_BRACE.
3449
3450 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3451
3452         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
3453         split occurs before reload, and we allocate memory at the time of
3454         the split, not during expansion.  Add attributes.
3455         (floatsi<mode>2_lfiwax_mem): Ditto.
3456         (floatunssi<mode>2_lfiwzx): Ditto.
3457         (floatunssi<mode>2_lfiwzx_mem): Ditto.
3458         (floatsidf2): Ditto.
3459         (floatunssisf2): Ditto.
3460         (floatunssidf2): Ditto.
3461         (fix_trunc<mode>si2): Ditto.
3462         (fix_trunc<mode>si2_stfiwx): Ditto.
3463         (fix_trunc<mode>si2_internal): Ditto.
3464         (fix_trunc<mode>si2): Ditto.
3465         (fix_trunc<mode>di2): Ditto.
3466         (fixuns_trunc<mode>si2_stfiwx): Ditto.
3467         (floatsisf2): Ditto.
3468         (floatdidf2_mem): Ditto.
3469         (floatunsdidf2_mem): Ditto.
3470         (floatunsdidf2): Ditto.
3471         (floatdisf2_internal1): Ditto.
3472         (floatdisf2_mem): Ditto.
3473         (floatunsdisf2_mem): Ditto.
3474         (floatsi<mode>2_lfiwax_mem2): Delete.
3475         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
3476         (fix_trunc<mode>si2_mem): Ditto.
3477         (fixuns_trunc<mode>si2_mem): Ditto.
3478         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
3479         type operations to reduce copying the values to multiple memory slots.
3480         (roundu32<mode>2_fprs): Ditto.
3481
3482         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
3483         PRE_INC, PRE_DEC, PRE_MODIFY.
3484         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
3485
3486         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
3487         Delete prototype.
3488
3489 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
3490
3491         PR target/43808
3492         * cfgexpand.c (partition_stack_vars): Call
3493         update_alias_info_with_stack_vars unconditionally.
3494         (update_alias_info_with_stack_vars): Allow unused
3495         unreferenced vars when not optimizing.
3496
3497 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
3498
3499         PR tree-optimization/46036
3500         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
3501         add_to_dst_predicate_list.
3502
3503 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
3504
3505         PR debug/46171
3506         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
3507         earlier.
3508         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
3509         argument, call dead_debug_reset when adding REG_UNUSED note.
3510         (dead_debug_reset): New function.
3511         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
3512         df_create_unused_note callers.
3513
3514 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
3515
3516         * config/fr30/fr30.c: Include "df.h".
3517
3518 2010-11-09  Richard Guenther  <rguenther@suse.de>
3519
3520         PR tree-optimization/46355
3521         * tree-loop-distribution.c (tree_loop_distribution): Do not
3522         distribute loops without a single exit.
3523
3524 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3525
3526         PR rtl-optimization/46237
3527         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
3528         saved hard regs if they might get partially clobbered.
3529
3530 2010-11-09  Paul Koning  <ni1d@arrl.net>
3531
3532         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
3533
3534 2010-11-09  Richard Guenther  <rguenther@suse.de>
3535
3536         PR tree-optimization/46177
3537         * tree-loop-distribution.c (prop_phis): Remove.
3538         (generate_builtin): Re-use the old loop exit edge to avoid
3539         needing to update PHI nodes.
3540
3541 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
3542
3543         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
3544         type of args_size to unsigned HOST_WIDE_INT.
3545
3546         PR target/44755
3547         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
3548         * config/t-pnt16-warn: New file.
3549         * config/picochip/picochip.c (picochip_emit_stack_allocate):
3550         Use add_reg_note.
3551         (picochip_emit_save_register): Likewise.
3552         (picochip_emit_restore_register): Remove variable insn.
3553         (picochip_legitimize_address): Don't use C++ style comments.
3554         (picochip_legitimize_reload_address): Likewise.
3555         (reorder_var_tracking_notes): Remove variable vliw_start.
3556         (picochip_reorg): Cast first arguemnt to emit_note_after to
3557         enum insn_note.
3558         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
3559         (picochip_expand_builtin_3op): Likewise.
3560         (picochip_expand_builtin_2opvoid): Likewise.
3561         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
3562         (picochip_expand_array_testport): Likewise.
3563         (picochip_init_builtins): Remove unused variables.
3564         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
3565         to unsigned long, and output it as such.
3566         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
3567         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
3568         (schedType): Cast result of picochip_schedule_type to
3569         enum attr_schedType.
3570
3571         PR target/44759
3572         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
3573         conditional to type of S.
3574         (mn10300_function_arg): Remove unused variable align.
3575         (mn10300_arg_partial_bytes): Likewise.
3576         * config/mn10300/mn10300.md (attribute cpu): Cast value to
3577         enum attr_cpu.
3578
3579 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
3580
3581         PR bootstrap/46392
3582         * gengtype-parse.c (type): Call get_input_file_name to get file name.
3583
3584 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3585
3586         * tree.h (contains_placeholder_p): Fix comment.
3587         (type_contains_placeholder_p): Adjust comment.
3588         * tree.c (contains_placeholder_p): Fix comment.
3589         (type_contains_placeholder_1): Do not recurse on pointed-to types and
3590         adjust comment.
3591         (type_contains_placeholder_p): Add comment.
3592
3593 2010-11-09  Paul Koning  <ni1d@arrl.net>
3594
3595         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
3596         output of byte values.
3597
3598 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
3599
3600         PR middle-end/46360
3601         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
3602         not in SSA mode.
3603
3604 2010-11-09  Richard Guenther  <rguenther@suse.de>
3605
3606         PR middle-end/46221
3607         * varasm.c (compute_visible_aliases): New function.
3608         (remove_unreachable_alias_pairs): Aliases make a target available
3609         even though we reclaimed the cgraph node.
3610         (finish_aliases_1): Likewise.
3611         * Makefile.in (varasm.o): Add pointer-set.h dependency.
3612
3613 2010-11-09  Nick Clifton  <nickc@redhat.com>
3614
3615         * config/mn10300/mn10300-modes.def: New file.
3616
3617 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
3618             Jeremie Salvucci  <jeremie.salvucci@free.fr>
3619
3620         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
3621         (plugin_files, get_file_basename, get_file_realbasename)
3622         (get_file_langdir, error_at_line, gt_files, this_file)
3623         (system_h_file, read_input_list, create_field_all)
3624         (get_file_srcdir_relative_path, get_file_basename)
3625         (get_file_langdir, get_file_gtfilename)
3626         (get_output_file_with_visibility, get_output_file_name)
3627         (struct flist, put_mangled_filename, walk_type)
3628         (put_mangled_filename, finish_root_table, write_roots): Use
3629         input_file-s.
3630         (lang_dir_names, num_lang_dirs): Remove static.
3631         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
3632         (main): Use input_file-s.
3633
3634         * gengtype.h: (struct input_file_st, input_file): New type.
3635         (struct fileloc): Use it.
3636         (gt_files, num_gt_files, this_file, system_h_file)
3637         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
3638         (get_input_file_name): New function.
3639         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
3640         use input_file.
3641         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
3642         (get_output_file_name): Ditto.
3643
3644         * gengtype-lex.l (yybegin): Use input_file.
3645
3646         * gengtype-parse.c (parse_error): Use input_file.
3647
3648 2010-11-08  Xinliang David Li  <davidxl@google.com>
3649
3650         PR tree-optimization/46316
3651         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
3652         * double-int.h (double_int_mul_with_sign): New function.
3653         * double-int.c (double_int_mul_with_sign): New function.
3654
3655 2010-11-08  Paul Koning  <ni1d@arrl.net>
3656
3657         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
3658
3659 2010-11-08  Paul Koning  <ni1d@arrl.net>
3660
3661         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
3662
3663 2010-11-08  Paul Koning  <ni1d@arrl.net>
3664
3665         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
3666         to 8 bits.
3667
3668 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
3669
3670         PR target/46378
3671         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
3672         turn on ISA 2.04 rounding instructions for power5.
3673
3674         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
3675         not ISA 2.02.
3676
3677         PR target/45585
3678         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
3679         in FPR registers.
3680         (movdi_low_st): Ditto.
3681
3682 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
3683             Richard Henderson  <rth@redhat.com>
3684
3685         PR target/44758
3686         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
3687         (attribute acc_group): Cast value to enum attr_acc_group.
3688         (*movdi_nodouble+6): Use gen_int_mode.
3689         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
3690         if RTX_CODE is defined or not.
3691         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
3692         struct frv_io.
3693         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
3694         (frv_frame_access, frv_expand_prologue): Remove unused variables.
3695         (frv_expand_block_clear): Likewise.
3696         (frv_trampoline_init): Use LCT_NORMAL.
3697         (struct frv_packet_group): New struct, broken out of type of
3698         frv_packet.
3699         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
3700         use cast in loop counter increment.
3701         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
3702         assigning to io->type.
3703         (bdesc_set): Use rtx_code UNKNOWN in initializer.
3704         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
3705         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
3706         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
3707         (frv_read_argument): Use expand_normal.
3708
3709         PR target/44757
3710         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
3711         lm32_legitimate_constant_p.
3712         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
3713         * config/lm32/lm32.c (gen_int_relational): Make new block for
3714         LE / LT / LEU / LTU case.  Declare variables at start of block.
3715         (lm32_block_move_inline): Use XALLOCAVEC.
3716
3717 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3718
3719         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
3720
3721 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
3722
3723         * gengtype (get_output_file_for_structure): Ensure type is union
3724         or struct.
3725         (write_splay_tree_allocator_def): Use
3726         get_output_file_with_visibility.
3727
3728 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3729
3730         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
3731         to defined values in case of an error.
3732         (s390_option_override): Skip further processing if the -march
3733         parameter wasn't recognized.
3734
3735 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
3736
3737         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
3738         assert that REG is a hard register number before using it as an index.
3739
3740         PR bootstrap/46358
3741         * config/i386/i386.c (ix86_expand_split_stack_prologue):
3742         Avoid warnings when HOST_WIDE_INT is 32 bit.
3743
3744 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
3745
3746         PR target/46208
3747         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
3748         (sparc_promote_prototypes): Likewise.
3749         (sparc_promote_function_mode): Promote in 32-bit mode as well.
3750         (sparc_return_in_memory): Remove superfluous parentheses.
3751         (sparc_struct_value_rtx): Fix long lines.
3752         (sparc_function_value_1): Promote in 32-bit mode as well.
3753
3754 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
3755
3756         PR rtl-optimization/45352
3757         * sel-sched.c (find_best_expr): Do not set pneed_stall when
3758         the variable_issue hook is not implemented.
3759         (fill_insns): Remove dead variable stall_iterations.
3760         (init_seqno_1): Force EBB start for resetting sched cycles on any
3761         successor blocks of the rescheduled region.
3762         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
3763         (reset_sched_cycles_in_current_ebb): Add debug printing.
3764         New variable issued_insns.  Advance state when we have issued
3765         issue_rate insns.
3766
3767 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
3768
3769         * gengtype (main): Get here's position using POS_HERE macro for
3770         do*typedef calls.
3771
3772 2010-11-07  Ian Lance Taylor  <iant@google.com>
3773
3774         PR target/46089
3775         * config/i386/i386.c (split_stack_fn_large): New static variable.
3776         (ix86_expand_split_stack_prologue): Handle large model.
3777
3778 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
3779
3780         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
3781         all possible addressing modes.
3782
3783 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
3784
3785         PR tree-optimization/46346
3786         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
3787
3788 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
3789
3790         * config/mips/mips.c: Revert previous patch.
3791         * config/mips/mips.md: Likewise.
3792
3793 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
3794
3795         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
3796         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
3797         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
3798         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
3799         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
3800         to use FMA.
3801         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
3802         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
3803         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
3804         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
3805
3806 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
3807
3808         PR c/43384
3809         * c-decl.c (lookup_label): Labels can only be referenced in a
3810         function's scope.
3811         (store_parm_decls_oldstyle): Skip erroneous parameters.
3812
3813 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
3814
3815         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
3816         LIBCALL_VALUE): Remove macros.
3817         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3818         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3819         (fr30_function_value_regno_p, fr30_function_value,
3820         fr30_libcall_value): New functions.
3821
3822 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
3823
3824         PR middle-end/46314
3825         * target.def (generate_internal_label): New asm_out hook.
3826         * output.h (default_generate_internal_label): Declare.
3827         * varasm.c (default_generate_internal_label): Define.
3828
3829 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
3830
3831         PR target/44981
3832         * doc/extend.tex (format): Document NSString extension.
3833         (format_arg): Likewise.
3834         (Darwin Format Checks): New section.
3835         * doc/tm.texi: Document string object hooks (generated).
3836         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
3837         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
3838         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
3839         * target.def (objc_construct_string_object): Rename, amend
3840         documentation.
3841         (string_object_ref_type_p): New hook.
3842         (check_string_object_format_arg): New hook.
3843         * c-parser.c (c_parser_attributes): Allow objective-c class names as
3844         attribute identifiers.
3845         * config/darwin-c.c (darwin_cfstring_ref_p): New.
3846         (darwin_check_cfstring_format_arg): New.
3847         (darwin_additional_format_types): New.
3848         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
3849         (darwin_check_cfstring_format_arg): New.
3850         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
3851         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
3852         (TARGET_N_FORMAT_TYPES): New.
3853         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
3854
3855 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
3856             Pascal Obry  <obry@adacore.com>
3857
3858         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
3859         in 64-bit mode and 17 otherwise.
3860
3861 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3862
3863         PR debug/45939
3864         * var-tracking.c (emit_note_insn_var_location): Make sure that
3865         call related var location notes come before the normal ones.
3866
3867 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
3868
3869         PR target/46326
3870         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
3871         in the last change.
3872
3873 2010-11-05  Ian Lance Taylor  <iant@google.com>
3874
3875         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
3876
3877 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
3878
3879         PR c/44772
3880         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
3881         pointer_set_contains if DECL_NAME is NULL.
3882
3883 2010-11-05  Ian Lance Taylor  <iant@google.com>
3884
3885         PR target/46084
3886         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
3887         request enough additional space for alignment, and force alignment.
3888
3889 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
3890
3891         * config/i386/i386.c (legitimate_pic_address_disp_p):
3892         Handle UNSPEC_PCREL.
3893         (ix86_legitimate_address_p): Likewise.
3894         (legitimize_pic_address): Likewise.
3895         (output_pic_addr_const): Likewise.
3896         (ix86_delegitimize_address): Likewise.
3897         (ix86_find_base_term): Likewise.
3898         (memory_address_length): Likewise.
3899         (x86_output_mi_thunk): Handle special case x64
3900         for non local binding.
3901         * config/i386/i386.md (UNSPEC_PCREL): New.
3902         * config/i386/winnt.c (i386_pe_binds_local_p):
3903         Allow weak symbol for x64 windows with non-local binding.
3904
3905 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
3906
3907         PR target/45670
3908         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
3909         instead of EXPAND_NORMAL for base expansion.
3910
3911 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
3912
3913         * config.gcc: Support --with-fpmath=avx for x86.
3914         * config/i386/avxmath.h: New.
3915         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
3916
3917 2010-11-05  Ian Lance Taylor  <iant@google.com>
3918
3919         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
3920         * gengtype.c (walk_type): Don't recognize descbits option.
3921
3922 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
3923
3924         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
3925         WORD_SWITCH_TAKES_ARG): Remove.
3926         * doc/options.texi (Args): Document.
3927         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
3928         * doc/tm.texi: Regenerate.
3929         * opt-functions.awk (switch_flags): Handle Args.
3930         * opts-common.c: Update comment on tm.h include.
3931         (decode_cmdline_option): Handle options with multiple arguments.
3932         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
3933         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
3934         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
3935         CL_COMMON): Update values.
3936         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
3937         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
3938         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
3939         sectobjectsymbols, sectorder, segcreate, segprot): New.
3940
3941 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
3942             Uros Bizjak  <ubizjak@gmail.com>
3943
3944         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
3945         256bit AVX register is used.
3946         (ix86_expand_vector_move_misalign): Likewise.
3947         (ix86_expand_vector_move): Replace use_avx256_p with
3948         VALID_AVX256_REG_MODE.
3949
3950 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
3951
3952          PR target/44750
3953         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
3954         change.  Set $@-warn.o to -Wno-error.
3955
3956         PR bootstrap/44756
3957         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
3958         comparing it to a signed value.
3959
3960         PR middle-end/44766
3961         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
3962         PR bootstrap/44770
3963         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
3964         to i.
3965
3966         PR target/44754
3967         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
3968         (m32c_function_arg).  Add comma between arguments two and three.
3969         (m32c_promote_prototypes): Remove declaration.
3970         (current_function_special_page_vector): Likewise.
3971         (m32c_regno_reg_class): Change return type to enum reg_class.
3972         (m32c_pushm_popm): Use add_reg_note.
3973         (m32c_push_rounding): Change return type to unsigned int.
3974         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
3975         enum reload_type.
3976         (m32c_insert_attributes): Constify variable name.
3977         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
3978         (m32c_prepare_shift): Remove variable lref.
3979         (m32c_expand_movcc): Remove variable cmp.
3980         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
3981         (m32c_compare_redundant): Remove variable op2.
3982         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
3983         (m32c_pragma_memregs): Assign the number to target_memregs.
3984         (m32c_pragma_address): Remove variable var_str.
3985         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
3986         enum reg_class.
3987         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
3988         * config/m32c/bitops.md (andsi3): Add default case to switch.
3989         (iorsi3, xorsi3): Likewise.
3990         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
3991         * config/m32c/jump.md (call, call_value): Likewise.
3992         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
3993         (m32c_regno_reg_class): Likewise.
3994         (current_function_special_page_vector): Declare.
3995
3996 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
3997
3998         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
3999
4000         PR tree-optimization/46099
4001         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
4002         if it is NULL and uid wasn't found in the hash table.  Just fold the
4003         result if it is NULL otherwise.  Insert other potentially needed
4004         stmts right before current stmt instead of on the entry edge.
4005         (struct elv_data): Add gsi and reset fields.
4006         (eliminate_local_variables_1): Adjust caller.  If take_address_of
4007         failed for debug stmt, set dta->reset and return.
4008         (eliminate_local_variables_stmt): Change STMT argument for GSI,
4009         pass GSI through to the callback, handle resetting of debug stmts.
4010         (eliminate_local_variables): Adjust caller.  Process debug stmts
4011         in second phase.
4012
4013         PR middle-end/43690
4014         * gimplify.c (gimplify_asm_expr): If a "m" input is a
4015         {pre,post}{in,de}crement, fail.
4016
4017         PR debug/46307
4018         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
4019         * tree-pretty-print.c (dump_generic_node): Likewise.
4020         (op_code_prio): Likewise.
4021         * cfgexpand.c (expand_debug_expr): Likewise.
4022
4023 2010-11-04  Paul Koning  <ni1d@arrl.net>
4024
4025         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
4026         constraints.
4027
4028 2010-11-04  Chao-ying Fu  <fu@mips.com>
4029
4030         * configure.ac: Test assembler support for DSP Rev1 mult.
4031         * configure: Regenerate.
4032         * config.in: Regenerate.
4033         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
4034         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
4035         (CODE_FOR_mips_multu): New define.
4036         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
4037         dspr2_32 to dsp_32.
4038         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
4039         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
4040         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
4041         New define_expand patterns.
4042         * config/mips/constraints.md (ka): Update the constraint to test
4043         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
4044         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
4045         mips_multu): Delete.
4046         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
4047         Change target constraint to "ka".
4048         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
4049         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
4050         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4051         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
4052         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4053         (<u>maddsidi4): Likewise.
4054         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
4055         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
4056
4057 2010-11-04  Paul Koning  <ni1d@arrl.net>
4058
4059         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
4060
4061 2010-11-04  Paul Koning  <ni1d@arrl.net>
4062
4063         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
4064
4065 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
4066
4067         Fixed using the Objective-C 2.0 dot-syntax with class names.
4068         * c-parser.c (c_parser_next_token_starts_declspecs): In
4069         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
4070         (c_parser_next_token_starts_declaration): Same.
4071         (c_parser_postfix_expression): Parse the Objective-C 2.0
4072         dot-syntax with a class name.
4073
4074 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
4075
4076         * final.c (compute_alignments): Compute/free loop info all the time.
4077         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
4078         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
4079         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
4080         * config/rs6000/rs6000.c (cfgloop.h): Include.
4081         (can_override_loop_align): New.
4082         (rs6000_option_override_internal): Set it.
4083         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
4084         (rs6000_loop_align): New function.
4085         (rs6000_loop_align_max_skip): Likewise.
4086
4087 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4088
4089         PR driver/45703
4090         * collect2.c (main): Print --help output to stdout.  Do not
4091         exit right away, so ld --help is appended.  Add empty lines
4092         to separate output suitably.
4093
4094 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
4095
4096         PR tree-optimization/46233
4097         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
4098         after calling analyze_function, not before.
4099
4100         PR target/46234
4101         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
4102         instead of build_va_arg_indirect_ref.
4103         * config/spu/spu.c (spu_va_start): Likewise.
4104         * config/s390/s390.c (s390_va_start): Likewise.
4105
4106 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
4107
4108         PR middle-end/46292
4109         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
4110         if the innermode is not vector mode, determine the mode of a subreg
4111         by using mode_for_size of inner_size.
4112
4113 2010-11-04  Richard Guenther  <rguenther@suse.de>
4114
4115         PR rtl-optimization/46183
4116         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
4117         (execute_rtl_pre): Likewise.
4118         (execute_rtl_hoist): Likewise.
4119
4120 2010-11-04  Richard Guenther  <rguenther@suse.de>
4121
4122         PR tree-optimization/46068
4123         * ipa-split.c (consider_split): Remove gcc_unreachable.
4124
4125 2010-11-04  Richard Guenther  <rguenther@suse.de>
4126
4127         * tree-nested.c (build_addr): Use build_fold_addr_expr.
4128
4129 2010-11-04  Richard Guenther  <rguenther@suse.de>
4130
4131         PR tree-optimization/45991
4132         * gimplify.c (force_gimple_operand_1): Use the provded test
4133         function in the initial test.
4134
4135 2010-11-04  Jeff Law  <law@redhat.com>
4136
4137         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
4138         of readonly memory equivalances for const/pure calls.
4139
4140 2010-11-04  Richard Guenther  <rguenther@suse.de>
4141
4142         PR tree-optimization/45733
4143         * tree-vect-stmts.c (reverse_vec_elements): Honor the
4144         permute builtins function return type.
4145
4146 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
4147
4148         PR middle-end/44765
4149         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
4150         as an index, check it is not INVALID_REGNUM.
4151
4152         PR bootstrap/44756
4153         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
4154         unsignedp.
4155         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
4156
4157         PR bootstrap/44756
4158         * function.c (thread_prologue_and_epilogue_insns): Add
4159         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
4160
4161         PR bootstrap/44756
4162         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
4163
4164         PR target/44750
4165         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
4166         (pdp11_preferred_reload_class): Rename class to rclass.
4167         (pdp11_preferred_output_reload_class): Likewise.
4168         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
4169         ALL_COMPILERFLAGS .
4170         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
4171
4172         PR bootstrap/44756
4173         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
4174         iteration variables to enum machine_mode.
4175
4176         PR target/44751
4177         * config/h8300/h8300.c: Include df.h.
4178         (push, pop): Use add_reg_note.
4179         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
4180         (compute_a_shift_cc): Likewise.
4181         (expand_a_shift): Argument code has type enum rtx_code.
4182         (struct shift_insn): Member cc_valid has type enum attr_cc.
4183         (struct shift_info) <cc_inline, cc_special>: Likewise.
4184         enum attr_cc.
4185         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
4186         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
4187
4188 2010-11-04  Ira Rosen  <irar@il.ibm.com>
4189
4190         PR tree-optimization/46213
4191         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
4192         MINUS_EXPR only if the first operand is reduction operand.
4193
4194 2010-11-04  Richard Guenther  <rguenther@suse.de>
4195             Richard Henderson  <rth@redhat.com>
4196
4197         * tree.def (FMA_EXPR): New tree code.
4198         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
4199         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
4200         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
4201         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
4202         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
4203         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
4204         (execute_optimize_widening_mul): Call it.  Reorganize to allow
4205         dead stmt removal.  Move TODO flags ...
4206         (pass_optimize_widening_mul): ... here.
4207         * flag-types.h (enum fp_contract_mode): New enum.
4208         * common.opt (flag_fp_contract_mode): New variable.
4209         (-ffp-contract): New option.
4210         * opts.c (common_handle_option): Handle it.
4211         * doc/invoke.texi (-ffp-contract): Document.
4212         * tree.h (fold_fma): Declare.
4213         * builtins.c (fold_fma): New function.
4214         (fold_builtin_fma): Likewise.
4215         (fold_builtin_3): Call it for fma.
4216         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
4217         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
4218         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
4219         New expanders.
4220         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
4221         named patterns.
4222         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
4223         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
4224         (fms_optab, fnma_optab, fnms_optab): New defines.
4225         * gimplify.c (gimplify_expr): Handle binary truth expressions
4226         explicitly.  Handle FMA_EXPR.
4227         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
4228         operations.
4229
4230 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
4231             Richard Guenther  <rguenther@suse.de>
4232
4233         * passes.c (init_optimization_passes): Move veclower after SSA.
4234         * tree-vect-generic.c (uniform_vector_p): New function.
4235         (expand_vector_operations_1): Handle conversion.
4236         (pass_lower_vector): Update SSA form.
4237
4238 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
4239
4240         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
4241         plugin capabilities.
4242         * configure: Regenerate.
4243
4244 2010-11-03  Xinliang David Li  <davidxl@google.com>
4245
4246         PR target/46200
4247         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
4248         Adjust cbase if the use stmt is after iv update.
4249
4250 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4251
4252         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
4253
4254 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4255
4256         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
4257         comment.  Pass true to the last argument of output_stack_adjust.
4258
4259 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4260
4261         PR target/46295
4262         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
4263         if 256bit AVX register is used.
4264
4265 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
4266
4267         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
4268         xsmindp/xsmaxdp on VSX for single precision min/max.
4269         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
4270         (vsx_sminsf3): Ditto.
4271
4272 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4273
4274         * combine.c (try_combine): Fix formatting issues, improve comments and
4275         fix a pasto.
4276
4277 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4278
4279         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
4280         of the result before building binary expressions.
4281
4282 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4283
4284         PR rtl-optimization/45865
4285         * Makefile.in (df-problems.o): Revert revision 164552.
4286         * basic-block.h (enum bb_flags): Likewise.
4287         * cfgcleanup.c (block_was_dirty): Likewise.
4288         (try_forward_edges): Likewise.
4289         (try_crossjump_bb): Likewise.
4290         (try_head_merge_bb): Likewise.
4291         (try_optimize_cfg): Likewise.
4292         (cleanup_cfg): Likewise.
4293         * df-core.c (df_set_bb_dirty): Likewise.
4294         * df-problems.c: Likewise.
4295         (df_simulate_find_uses): Likewise.
4296         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
4297         (find_memory, find_memory_store): Likewise.
4298         (can_move_insns_across): Likewise.
4299         * df.h (can_move_insns_across): Likewise.
4300         * ifcvt.c (find_memory): Likewise.
4301         (dead_or_predicable): Likewise.
4302
4303 2010-11-03  Richard Guenther  <rguenther@suse.de>
4304
4305         PR middle-end/46288
4306         * predict.c (strip_predict_hints): Simply DCE builtin expect if
4307         the result is unused.
4308
4309 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4310
4311         PR tree-optimization/46009
4312         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
4313         cond_if_else_store_replacement if bb1 and bb2 have the same
4314         single successor.
4315         (cond_store_replacement): Use gimple_assign_single_p, don't
4316         check if rhs is SSA_NAME or invariant.  Call release_defs for
4317         assign.
4318         (cond_if_else_store_replacement): New function.
4319
4320 2010-11-03  Richard Guenther  <rguenther@suse.de>
4321
4322         * opts.c (finish_options): Properly check for all WHOPR
4323         flags before complaining about -flto-partition.
4324
4325 2010-11-04  Alan Modra  <amodra@gmail.com>
4326
4327         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
4328         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
4329         TARGET_SECURE_PLT.
4330         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
4331         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
4332         on input, "r" on output.
4333
4334 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
4335
4336         Implemented -fobjc-std=objc1 flag.
4337         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
4338         option.
4339         * doc/standards.texi (Standards): Updated the section on
4340         Objective-C; mention support for Objective-C 2.0 features and the
4341         new -fstd-objc=objc1 flag to disable them.
4342
4343 2010-11-03  Richard Guenther  <rguenther@suse.de>
4344
4345         PR middle-end/46241
4346         * dwarf2out.c (scope_die_for): Properly detect global scope.
4347
4348 2010-11-03  Richard Guenther  <rguenther@suse.de>
4349
4350         PR tree-optimization/46190
4351         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4352         Properly compute peel iterations.
4353
4354 2010-11-03  Richard Guenther  <rguenther@suse.de>
4355
4356         PR tree-optimization/46286
4357         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
4358         re-allocated vector data.
4359
4360 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4361
4362         PR target/46285
4363         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
4364         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
4365         is completed.
4366
4367 2010-11-03  Richard Guenther  <rguenther@suse.de>
4368
4369         PR tree-optimization/46217
4370         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
4371         flag matches.
4372         (execute_update_addresses_taken): Likewise.
4373
4374 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
4375
4376         PR bootstrap/44335
4377         * targhooks.c (targhook_words_big_endian): New function.
4378         (targhook_float_words_big_endian): Likewise.
4379         * targhooks.h (targhook_words_big_endian): Declare.
4380         (targhook_float_words_big_endian): Likewise.
4381         * target.def (words_big_endian, float_words_big_endian): New hooks.
4382
4383 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4384
4385         PR tree-optimization/46165
4386         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
4387         a normal call into noreturn call.
4388
4389 2010-11-03  Richard Guenther  <rguenther@suse.de>
4390
4391         PR middle-end/46251
4392         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
4393         not INDIRECT_REFs.
4394
4395 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4396
4397         PR tree-optimization/46107
4398         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
4399         if cfg_hook_duplicate_loop_to_header_edge failed.
4400
4401 2010-11-03  Ian Lance Taylor  <iant@google.com>
4402
4403         PR lto/46273
4404         * config.gcc: Don't set lto_binary_reader.
4405         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
4406         (Configuration): Mention --disable-lto.  Remove --with-libelf
4407         paragraph.
4408
4409 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4410
4411         PR debug/46252
4412         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
4413         prev_real_insn.
4414         * gcse.c (insert_insn_end_basic_block): Likewise.
4415
4416         PR rtl-optimization/46034
4417         PR rtl-optimization/46212
4418         PR rtl-optimization/46248
4419         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
4420         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
4421         before i0dest -> i0src substitution and pass 1 instead of 0 as last
4422         argument to subst on i2pat.
4423
4424 2010-11-02  Ian Lance Taylor  <iant@google.com>
4425
4426         * configure.ac: Use AC_SYS_LARGEFILE.
4427         * configure: Rebuild.
4428         * config.in: Rebuild.
4429
4430 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
4431
4432         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
4433         fold_convert.
4434         * c-typeck.c (build_function_call_vec): Likewise.
4435         * cfgexpand.c (expand_debug_expr): Likewise.
4436         * cgraphunit.c (assemble_thunk): Likewise.
4437         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
4438         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
4439         (fold_binary_loc, fold_ternary_loc): Likewise.
4440         * gimple-fold.c (get_symbol_constant_value): Likewise.
4441         * gimple-low.c (lower_builtin_setjmp): Likewise.
4442         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
4443         * gimplify.c (gimplify_init_constructor): Likewise.
4444         * lambda.h (build_linear_expr): Likewise.
4445         * omp-low.c (omp_reduction_init): Likewise.
4446         * tree-inline.c (remap_ssa_name): Likewise.
4447         * tree-object-size.c (compute_object_sizes): Likewise.
4448         * tree-sra.c (init_subtree_with_zero): Likewise.
4449         (sra_ipa_modify_assign): Likewise.
4450         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
4451         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
4452         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
4453         (undistribute_ops_list): Likewise.
4454         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
4455         * tree-vect-stmts.c (vectorizable_call): Likewise.
4456         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
4457         (build_zero_cst): Handle more cases directly.  Update comment.
4458
4459 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4460
4461         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
4462         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
4463
4464         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
4465         and call ix86_split_call_vzeroupper instead of
4466         ix86_split_call_pop_vzeroupper.
4467         (*call_pop_1_vzeroupper): Likewise.
4468         (*sibcall_pop_1_vzeroupper): Likewise.
4469         (*call_value_pop_0_vzeroupper): Likewise.
4470         (*call_value_pop_1_vzeroupper): Likewise.
4471         (*sibcall_value_pop_1_vzeroupper): Likewise.
4472
4473 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4474
4475         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
4476
4477 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
4478
4479         * basic-block.h (insert_insn_end_bb_new): Delete.
4480         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
4481
4482 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
4483             H.J. Lu  <hongjiu.lu@intel.com>
4484
4485         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
4486         (ix86_split_call_pop_vzeroupper): Likewise.
4487
4488         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
4489         (ix86_expand_call): Conditionally decorate calls with
4490         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
4491         (ix86_split_call_vzeroupper): New.
4492         (ix86_split_call_pop_vzeroupper): Likewise.
4493
4494         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
4495         (*call_pop_0_vzeroupper): New insn_and_split pattern.
4496         (*call_pop_1_vzeroupper): Likewise.
4497         (*sibcall_pop_1_vzeroupper): Likewise.
4498         (*call_0_vzeroupper): Likewise.
4499         (*call_1_vzeroupper): Likewise.
4500         (*sibcall_1_vzeroupper): Likewise.
4501         (*call_1_rex64_vzeroupper): Likewise.
4502         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
4503         (*call_1_rex64_large_vzeroupper): Likewise.
4504         (*sibcall_1_rex64_vzeroupper): Likewise.
4505         (*call_value_pop_0_vzeroupper): Likewise.
4506         (*call_value_pop_1_vzeroupper): Likewise.
4507         (*sibcall_value_pop_1_vzeroupper): Likewise.
4508         (*call_value_0_vzeroupper): Likewise.
4509         (*call_value_0_rex64_vzeroupper): Likewise.
4510         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
4511         (*call_value_1_vzeroupper): Likewise.
4512         (*sibcall_value_1_vzeroupper): Likewise.
4513         (*call_value_1_rex64_vzeroupper): Likewise.
4514         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
4515         (*call_value_1_rex64_large_vzeroupper): Likewise.
4516         (*sibcall_value_1_rex64_vzeroupper): Likewise.
4517
4518 2010-11-02  Ian Lance Taylor  <iant@google.com>
4519
4520         PR lto/46273
4521         * config.gcc: Revert last patch: set lto_binary_reader.
4522
4523 2010-11-02  Richard Guenther  <rguenther@suse.de>
4524
4525         PR tree-optimization/46149
4526         * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
4527         non-indirect MEM_REF variants.
4528
4529 2010-11-02  Richard Guenther  <rguenther@suse.de>
4530
4531         PR tree-optimization/46216
4532         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
4533         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
4534
4535 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4536
4537         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
4538         (*-*-osf*): Likewise.
4539         * configure: Regenerate.
4540
4541 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4542
4543         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
4544         for Intel Core 2 and Core i7.
4545
4546 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
4547
4548         Model decoder of Core 2/i7 for multipass scheduling.
4549
4550         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
4551         New type to hold target-specific data for multipass scheduling.
4552         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
4553         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
4554         Core 2/i7.
4555         (core2i7_secondary_decoder_max_insn_size,)
4556         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
4557         New static variables.
4558         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
4559         ([_]ix86_first_cycle_multipass_data): New static variable.
4560         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
4561         Implement targetm.sched hooks.
4562         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
4563         of ...
4564         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
4565         Implement new targetm.sched hooks.
4566         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
4567         targetm.sched hook to install multipass scheduling hooks on demand.
4568
4569         * doc/tm.texi.in: Document new targetm.sched hooks.
4570         * doc/tm.texi: Regenerate.
4571
4572         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
4573         (first_cycle_multipass_data_t): New typedef.
4574         (struct choice_entry: target_data): New field.
4575         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
4576         to allow target model restrictions not represented in DFA.
4577         (choose_ready, schedule_block): Update.
4578         (sched_extend_ready_list, sched_finish_ready_list): Call new target
4579         hooks to initialize target-specific data for multipass scheduling.
4580         * sched-int.h (max_issue): Update declaration.
4581         * sel-sched.c (choose_best_insn): Update.
4582         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
4583         (first_cycle_multipass_{init, fini}): Define and document new
4584         targetm.sched hooks.
4585
4586 2010-11-02  Richard Guenther  <rguenther@suse.de>
4587
4588         PR tree-optimization/46184
4589         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
4590         input vector type from the reduction operand as well.
4591
4592 2010-11-02  Richard Guenther  <rguenther@suse.de>
4593
4594         PR tree-optimization/46177
4595         * tree-loop-distribution.c (prop_phis): Use
4596         mark_virtual_phi_result_for_renaming.
4597
4598 2010-11-02  Martin Jambor  <mjambor@suse.cz>
4599
4600         PR middle-end/46120
4601         * tree.c (get_binfo_at_offset): Bail out on artificial
4602         fields.  Identify primary bases according to their offsets.
4603
4604 2010-11-02  Martin Jambor  <mjambor@suse.cz>
4605
4606         PR tree-optimization/45875
4607         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
4608         (gimple_get_relevant_ref_binfo): Detect primary bases according to
4609         their field offset.
4610
4611 2010-11-02  Ian Lance Taylor  <iant@google.com>
4612
4613         * doc/install.texi (Configuration): Note in two places that Java
4614         is not enabled by default.
4615
4616 2010-11-02  Ian Lance Taylor  <iant@google.com>
4617
4618         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
4619         (Configuration): Mention --disable-lto.  Remove --with-libelf
4620         paragraph.
4621
4622 2010-11-02  Ian Lance Taylor  <iant@google.com>
4623
4624         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
4625         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
4626         LIBELFINC.  Remove HAVE_libelf.
4627         * config.gcc: Don't set lto_binary_reader.
4628         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
4629         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
4630         (LIBS): Remove $(LIBELFLIBS).
4631         (INCLUDES): Remove $(LIBELFINC).
4632         * configure: Rebuild.
4633         * config.in: Rebuild.
4634
4635 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
4636
4637         * config/microblaze/microblaze-protos.h (function_arg): Delete.
4638         (function_arg_advance): Delete.
4639         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
4640         (FUNCTION_ARG): Delete.
4641         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
4642         (microblaze_function_arg_advance): ...this.  Make static.  Take a
4643         const_tree and a bool.
4644         (function-arg): Rename to...
4645         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
4646         and a bool.
4647         (microblaze_expand_prologue): Call targetm.calls.function_arg and
4648         targetm.calls.function_arg_advance.
4649         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4650
4651 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
4652
4653         Merge from FSF "apple/trunk" branch.
4654
4655         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
4656         * config/darwin.opt: .. to here.
4657         (matt-stubs): New option.
4658         * config/i386/darwin.opt: Delete.
4659         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
4660         (MACHO_DYNAMIC_NO_PIC_P): New.
4661         (MACHOPIC_INDIRECT): New.
4662         (MACHOPIC_PURE): New.
4663         * config/i386/darwin.h (DARWIN_X86) Define to 1.
4664         (MACHOPIC_ATT_STUB): New.
4665         (CC1_SPEC): Do not remove mdynamic-no-pic.
4666         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
4667         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
4668         (FUNCTION_PROFILER): Correct over-length line.
4669         (SUBTARGET_OVERRIDE_OPTIONS): New.
4670         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
4671         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
4672         (legitimate_constant_p): Handle mdynamic-no-pic.
4673         (ix86_legitimate_address_p): Likewise.
4674         (ix86_legitimize_address): Likewise.
4675         (ix86_expand_move): Likewise.
4676         (machopic_output_stub): Update for ATT-style stubs and
4677         mdynamic-no-pic.
4678         * config/darwin-protos.h (machopic_symbol_defined_p): New.
4679         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
4680         TARGET_DYNAMIC_NO_PIC: Remove.
4681         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
4682         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
4683         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
4684         Remove handling of mdynamic-no-pic.
4685         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
4686         Define if required.
4687         (machopic_symbol_defined_p): Do not try to use current_function_decl
4688         when generating _get_pc thunks within stubs.
4689         (machopic_indirect_data_reference): Rework for direct conditionals
4690         rather than #ifdefs, add x86 mdynamic-no-pic
4691         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
4692         defined value.
4693         (darwin_override_options): Handle mdynamic-no-pic here.
4694         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
4695         (machopic_lazy_symbol_ptr3_section): New.
4696         (machopic_picsymbol_stub2_section): New.
4697         (machopic_picsymbol_stub3_section): New.
4698         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
4699         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
4700         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
4701         Moved common definition from x86 and rs6000.
4702         (MACHO_DYNAMIC_NO_PIC_P): Override value.
4703         (MACHOPIC_INDIRECT): Likewise.
4704         (MACHOPIC_PURE): Likewise.
4705         * config.gcc (x86-darwin-*): Remove darwin.opt.
4706
4707 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
4708
4709         PR debug/46255
4710         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
4711         instead of gsi_last_bb.
4712
4713 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
4714             Maxim Kuvyrkov  <maxim@codesourcery.com>
4715
4716         * config/i386/i386.c (cpu_names): Add "corei7".
4717         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
4718
4719 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
4720             Maxim Kuvyrkov  <maxim@codesourcery.com>
4721
4722         Tune alignment for Intel Core i7
4723
4724         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
4725         (enum processor_type): Update comment.  Add entries for Core i7.
4726         * config/i386-c.c (ix86_target_macros_internal): Update.
4727         * config/i386.c (m_COREI7{_32,_64}): New macros.
4728         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
4729         (processor_target_table): Tune alignment for Core i7.
4730         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
4731
4732         * doc/invoke.texi: Document "corei7" option value.
4733
4734 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
4735             Maxim Kuvyrkov  <maxim@codesourcery.com>
4736             H.J. Lu  <hjl.tools@gmail.com>
4737
4738         Basic support for Intel Core i7
4739
4740         * i386.c (ix86_option_override_internal): Add entry for corei7, use
4741         generic tuning.  Use generic32 when compiling for 32-bit ABI.
4742
4743 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
4744
4745         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
4746         sections and call darwin_asm_dwarf_section() to handle them.
4747         (darwin_asm_dwarf_section): New.
4748         (darwin_file_start): Remove code emitting dwarf section symbols.
4749
4750 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
4751
4752         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
4753         explicitly disable stack protection when building libgcc.
4754         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
4755
4756 2010-11-01  Jason Merrill  <jason@redhat.com>
4757
4758         * fold-const.c (fold_indirect_ref_1): Handle folding
4759         POINTER_PLUS_EXPR to ARRAY_REF.
4760
4761 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
4762
4763         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
4764         (sh_delegitimize_address): New function.
4765
4766 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
4767
4768         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
4769         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
4770         (CC1_SPEC): Don't handle -target.
4771         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
4772         options.
4773         * config/darwin.opt (Zallowable_client, Zbundle_loader,
4774         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
4775         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
4776         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
4777         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
4778         Zweak_reference_mismatches, client_name, compatibility_version,
4779         current_version, dylinker_install_name, pagezero_size,
4780         read_only_relocs, seg1addr, segs_read_only_addr,
4781         segs_read_write_addr, sub_library, sub_umbrella): New.
4782         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
4783         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
4784         * config/freebsd.opt: New.
4785         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
4786         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
4787         * config/rpath.opt: New.
4788         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
4789         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
4790         Use rpath.opt.
4791
4792 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
4793
4794         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
4795         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
4796         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
4797         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
4798         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
4799         Document that options in .opt files do not need to be included.
4800         * doc/tm.texi: Regenerate.
4801         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
4802         * opts-common.c: Update comment on tm.h include.
4803         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
4804         * system.h (SWITCH_TAKES_ARG): Poison.
4805         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
4806         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
4807         in darwin.opt.
4808         (LINK_COMMAND_SPEC_A): Don't include %{x}.
4809         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
4810         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
4811         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
4812         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
4813         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
4814         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
4815         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
4816         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
4817         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
4818         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
4819         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
4820         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
4821         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
4822         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
4823         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
4824         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
4825         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
4826         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
4827         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
4828         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
4829         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
4830         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
4831         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
4832
4833 2010-11-01  Paul Koning  <ni1d@arrl.net>
4834
4835         * config/pdp11/pdp11.md: Use iterators.
4836         (addqi3, subqi3, iorsi3, xorsi3): Delete.
4837
4838 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
4839
4840         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
4841         GCC_INSN_FLAGS_H.
4842         * libgcov.c (__gcov_indirect_call_profiler): Set
4843         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
4844         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
4845
4846 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
4847
4848         PR tree-optimization/46259
4849
4850         Revert:
4851         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
4852         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
4853         build_vector_from_val.
4854
4855 2010-11-01  DJ Delorie  <dj@redhat.com>
4856
4857         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
4858         as well as an assertion.
4859
4860 2010-11-01  Paul Koning  <ni1d@arrl.net>
4861
4862         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
4863         complex modes in memory.
4864
4865 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
4866
4867         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
4868
4869 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
4870
4871         PR target/45250
4872         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
4873         (cfa_base_offset): New variable.
4874         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
4875         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
4876         is NULL.
4877         (vt_init_cfa_base): Initialize cfa_base_offset.
4878
4879 2010-11-01  Alan Modra  <amodra@gmail.com>
4880
4881         PR target/46030
4882         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
4883         and savres_strategy.
4884         (stack_info): New file scope var.
4885         (rs6000_init_machine_status): Init stack_info.
4886         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
4887         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
4888         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
4889         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
4890         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
4891         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
4892         (rs6000_savres_strategy): Rewrite.
4893         (rs6000_stack_info): Use "stack_info" in place of local "info".
4894         Return cached stack info when reload_completed unless ENABLE_CHECKING
4895         in which case confirm newly calculated stack info matches old info.
4896         Delay calculation of lr_save_p, set it for out of line gp save/restore
4897         as well as fp.  Call rs6000_savres_strategy from here..
4898         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
4899         (rs6000_output_function_prologue): Use info->savres_strategy to
4900         determine whether fp save/restore externs need to be emitted.
4901
4902 2010-10-31  Jason Merrill  <jason@redhat.com>
4903
4904         * tree.h (EXPR_LOC_OR_HERE): New macro.
4905         * builtins.c (c_strlen): Use it.
4906         * c-decl.c (build_enumerator): Likewise.
4907         * gimplify.c (internal_get_tmp_var): Likewise.
4908         (shortcut_cond_expr): Likewise.
4909         (gimplify_one_sizepos): Likewise.
4910
4911 2010-10-31  Richard Henderson  <rth@redhat.com>
4912
4913         * config/i386/cygming.h (TARGET_SEH): New.
4914         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
4915         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
4916         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
4917         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
4918         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
4919         (ASM_DECLARE_FUNCTION_SIZE): New.
4920         * config/i386/i386-protos.h: Update.
4921         * config/i386/i386.c (ix86_option_override_internal): Enable
4922         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
4923         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
4924         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
4925         (ix86_compute_frame_layout): For SEH, disable
4926         use_fast_prologue_epilogue, move frame pointer to the end of
4927         the frame.  Initialize hfp_save_offset.
4928         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
4929         at end of prologue for SEH.
4930         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
4931         emit blockage at beginning of epilogue.
4932         (ix86_expand_binary_operator): After reload, emit LEA if needed.
4933         (ix86_output_call_insn): New.
4934         * config/i386/i386.h (TARGET_SEH): New.
4935         (struct machine_function): Add member seh.
4936         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
4937         * config/i386/winnt.c (struct seh_frame_state): New.
4938         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
4939         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
4940         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
4941         i386_pe_start_function, i386_pe_end_function): New.
4942
4943         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
4944         as CFA_STORE in rules 12 and 13.
4945
4946 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
4947
4948         PR tree-optimization/46142
4949         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
4950         accommodate third function argument.
4951
4952 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
4953
4954         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
4955
4956 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
4957
4958         * fold-const.c (build_zero_vector): Use build_vector_from_val.
4959         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
4960         (get_initial_def_for_reduction): Likewise.
4961         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
4962         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
4963         * tree.c (build_one_cst): Likewise.
4964         (build_vector_from_val): Use types_compatible_p for assert.
4965
4966 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
4967
4968         * emit-rtl.c (mark_used_flags): New function.
4969         (set_used_flags, reset_used_flags): Call it.
4970
4971 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
4972
4973         PR middle-end/44569
4974         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
4975         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
4976
4977 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
4978
4979         PR target/46195
4980         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
4981         (ix86_compat_aligned_value_p): This.
4982         (ix86_old_function_arg_boundary): Renamed to ...
4983         (ix86_compat_function_arg_boundary): This.  Updated.
4984         (ix86_contains_aligned_value_p): New.
4985         (ix86_function_arg_boundary): Align long double parameters on
4986         stack to 4byte in 32bit.
4987
4988 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
4989
4990         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
4991         * c-parser.c (c_parser_objc_at_property_declaration): Removed
4992         parsing of RID_COPIES and RID_IVAR.  Updated call to
4993         objc_add_property_declaration.
4994         * c-typecheck.c (build_component_ref): Call
4995         objc_maybe_build_component_ref instead of objc_build_setter_call.
4996         Use objc_is_property_ref to improve Objective-C checks.
4997         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
4998         of objc_build_getter_call.
4999
5000 2010-10-29  Paul Koning  <ni1d@arrl.net>
5001
5002         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
5003         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
5004         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
5005         (REG_OK_STRICT): Move description.
5006
5007 2010-10-29  Paul Koning  <ni1d@arrl.net>
5008
5009         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
5010
5011 2010-10-29  Paul Koning  <ni1d@arrl.net>
5012
5013         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
5014
5015 2010-10-29  Paul Koning  <ni1d@arrl.net>
5016
5017         PR/41822
5018         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
5019
5020 2010-10-29  Richard Henderson  <rth@redhat.com>
5021
5022         PR rtl-opt/46226
5023         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
5024         for asm goto.
5025
5026 2010-10-29  Paul Koning  <ni1d@arrl.net>
5027
5028         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
5029         register to register move.
5030
5031 2010-10-29  Paul Koning  <ni1d@arrl.net>
5032
5033         * config/pdp11/pdp11.c (print_operand_address): Correct handling
5034         of integer constant addresses, delete vax-only logic.
5035
5036 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
5037
5038         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
5039         a conditional expression.
5040
5041 2010-10-29  Paul Koning  <ni1d@arrl.net>
5042
5043         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
5044         instruction encoding.
5045
5046 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
5047             Andrew Pinski  <pinskia@gmail.com>
5048
5049         * tree.h (build_vector_from_val): Declare.
5050         * tree.c (build_vector_from_val): New function.
5051         * c-typeck.c (build_binary_op): Handle vector shifting.
5052         * doc/extend.texi: Description of the vector shifting operation.
5053
5054 2010-10-29  Paul Koning  <pkoning@equallogic.com>
5055
5056         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
5057         pdp11_secondary_memory_needed): Declare.
5058         * config/pdp11/predicates.md (float_operand): New predicate.
5059         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
5060         (cbranchdf4, movdf): Change predicate.
5061         (movsf): Handle FPU register case.
5062         (truncdfsf2, extendsfdf2): Add FPU register case.
5063         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
5064         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
5065         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5066         (pdp11_register_move_cost): Update cost matrix.
5067         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
5068         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
5069         pdp11_secondary_memory_needed): New function.
5070         (pdp11_return_in_memory): Add other float types.
5071         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
5072         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
5073         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
5074         REGISTER_MOVE_COST): Delete.
5075         (BASE_RETURN_VALUE_REG): Add other float types.
5076
5077 2010-10-29  Nick Clifton  <nickc@redhat.com>
5078
5079         * doc/invoke.texi: Document -mam34 and -mtune options.
5080         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
5081         (mn10300_tune_cpu): New variable.
5082         (mn10300_handle_option): Handle -mam34 and -mtune options.
5083         (mn10300_option_override): Convert tune string into tune cpu variable.
5084         (mn10300_legitimate_constant_p): Delete unused local variable.
5085         (is_load_insn): New function.
5086         (is_store_insn): New function.
5087         (mn10300_adjust_schedule_cost): New function.
5088         (TARGET_SCHED_ADJUST_COST): Define.
5089         * config/mn10300/mn10300.opt (mam34): New option.
5090         (mtune): New option.
5091         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
5092         (enum processor_type): Add AM34.
5093         (TARGET_AM34): Define.
5094         * config/mn10300/mn10300.md (attr cpu): Add am34.
5095         Add pipeline description.
5096         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
5097         Remove unneeded alternatives.  Add timing attribute.
5098         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
5099         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
5100         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
5101         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
5102         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
5103         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
5104         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
5105         float_conditional_branch, jump, indirect_jump, tablejump,
5106         call_internal, call_value_internal, zero_extendqisi2_am33,
5107         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
5108         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
5109         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
5110         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
5111         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
5112         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
5113         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
5114         return_internal_regs, store_movm, return, call_next_insn):
5115         Add timing attribute.
5116         (am33_subsi3): Add missing clobber of CC_REG.
5117         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
5118         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
5119         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
5120         extendqisi2): Fix predicates.
5121         (call_internal, call_internal_value): Separate alternatives.
5122         * config/mn10300/t-mn10300: Add AM34 multilib.
5123
5124 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
5125
5126         * config/sh/sh.c (sh_promote_function_mode): Use
5127         default_promote_function_mode if !sh_promote_prototypes.
5128
5129 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
5130
5131         * recog.c (split_all_insns): Remove dead code.
5132
5133 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5134
5135         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5136
5137 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5138
5139         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
5140         (FUNCTION_ARG_ADVANCE): Delete.
5141         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
5142         functions.
5143         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
5144         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5145         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5146
5147 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5148
5149         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
5150         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5151         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5152         Take a const_tree and a bool.
5153         (mcore_function_arg_advance): New function.
5154         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5155
5156 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5157
5158         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
5159         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5160         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5161         Take a const_tree and a bool.
5162         (mcore_function_arg_advance): New function.
5163         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5164
5165 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5166
5167         * config/h8300/h8300-protos.h (function_arg): Delete.
5168         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5169         * config/h8300/h8300.c (function_arg): Rename to...
5170         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
5171         a bool.
5172         (h8300_function_arg_advance): New function.
5173         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5174
5175 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5176
5177         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
5178         to...
5179         * config/arc/arc.c (arc_function_arg): ...here and...
5180         (arc_function_arg_advance): ...here.  New functions.
5181         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5182
5183 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5184
5185         * config/crx/crx-protos.h (crx_function_arg): Delete.
5186         (crx_function_arg_advance): Delete.
5187         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5188         * config/crx/crx.c (crx_function_arg): Make static.  Take a
5189         const_tree and a bool.
5190         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
5191         (enough_regs_for_param): Take a const_tree.
5192         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5193
5194 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5195
5196         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
5197         (m68hc11_function_arg_advance): Delete.
5198         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
5199         (FUNCTION_ARG_ADVANCE): Delete.
5200         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
5201         Take a const_tree and a bool.
5202         (m68hc11_function_arg_advance): Likewise.
5203         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5204
5205 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5206
5207         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
5208         (xstormy16_function_arg_advance): Delete.
5209         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
5210         (FUNCTION_ARG_ADVANCE): Delete.
5211         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
5212         Take a const_tree and a bool.
5213         (xstormy16_function_arg_advance): Likewise.  Return void, updating
5214         the CUM parameter instead.
5215         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5216
5217 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5218
5219         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
5220         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5221         (MOXIE_FUNCTION_ARG_SIZE): Move to...
5222         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
5223         (moxie_function_arg): Make static.  Take a const_tree and a bool.
5224         (moxie_function_arg_advance): New function.
5225         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5226
5227 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5228
5229         * config/mn10300/mn10300-protos.h (function_arg): Delete.
5230         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
5231         (FUNCTION_ARG_ADVANCE): Delete.
5232         * config/mn10300/mn10300.c (function_arg): Rename to...
5233         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
5234         and a bool.
5235         (mn10300_function_arg_advance): New function.
5236         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5237
5238 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5239
5240         * config/iq2000/iq2000-protos.h (function_arg): Delete.
5241         (function_arg_advance): Delete.
5242         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5243         * config/iq2000/iq2000.c (function_arg): Rename to...
5244         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
5245         a bool.
5246         (function_arg_advance): Rename to...
5247         (iq2000_function_arg_advance): ...this.  Make static.  Take a
5248         const_tree and a bool.
5249         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
5250         iq2000_function_arg.
5251         (iq2000_pass_by_reference): Call iq2000_function_arg).
5252         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5253
5254 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5255
5256         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
5257         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5258         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
5259         const_tree.
5260         (fr30_function_arg): New function.
5261         (fr30_function_arg_advance): New function.
5262         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5263
5264 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5265
5266         * config/frv/frv-protos.h (frv_function_arg): Delete.
5267         (frv_function_arg_advance): Delete.
5268         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5269         * config/frv/frv.c (frv_function_arg): Rename to...
5270         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
5271         (frv_function_arg, frv_function_incoming_arg): New functions.
5272         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
5273         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5274         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5275
5276 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
5277
5278         PR target/46153
5279         * config/i386/sse.md (sse_movhlps_exp): Use destination
5280         returned from ix86_fixup_binary_operands to expand insn.
5281         (sse_movlhps_exp): Ditto.
5282         (sse_loadhps_exp): Ditto.
5283         (sse_loadlps_exp): Ditto.
5284         (sse2_loadhpd_exp): Ditto.
5285         (sse2_loadlpd_exp): Ditto.
5286
5287 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
5288
5289         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
5290         constants in thumb2.
5291
5292 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
5293
5294         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
5295         arithmetics in masking operations.
5296         (contains_muldiv): Likewise.
5297         (try_combine): Likewise.
5298         (find_split_point): Likewise.
5299         (combine_simplify_rtx): Likewise.
5300         (simplify_if_then_else): Likewise.
5301         (simplify_set): Likewise.
5302         (expand_compound_operation): Likewise.
5303         (expand_field_assignment): Likewise.
5304         (make_extraction): Likewise.
5305         (extract_left_shift): Likewise.
5306         (make_compound_operation): Likewise.
5307         (force_to_mode): Likewise.
5308         (make_field_assignment): Likewise.
5309         (reg_nonzero_bits_for_combine): Likewise.
5310         (simplify_shift_const_1): Likewise.
5311         (simplify_comparison): Likewise.
5312
5313 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
5314
5315         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
5316         (ia64_function_arg_advance): Delete.
5317         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
5318         (FUNCTION_ARG_ADVANCE): Delete.
5319         * config/ia64/ia64.c (ia64_function_arg): Rename to...
5320         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
5321         bool arguments.
5322         (ia64_function_arg, ia64_function_incoming_arg): New functions.
5323         (ia64_function_arg_advance): Make static.  Take a const_tree and
5324         a bool.
5325         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5326         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5327
5328 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
5329
5330         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
5331         (TARGET_GET_RAW_ARG_MODE): New.
5332         * doc/tm.texi: Regenerate.
5333         * target.def (get_raw_result_mode): New.
5334         (get_raw_arg_mode): New.
5335         * targhooks.c (default_get_reg_raw_mode): New.
5336         * targhooks.h (default_get_reg_raw_mode): New.
5337         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
5338         (apply_result_size): Ditto.
5339         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
5340         (TARGET_GET_RAW_RESULT_MODE): Define.
5341         (TARGET_GET_RAW_ARG_MODE): Ditto.
5342
5343 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5344
5345         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
5346         for newer Solaris 10 release.
5347         (sparc_fallback_frame_state): Likewise.
5348
5349 2010-10-27  Jason Merrill  <jason@redhat.com>
5350
5351         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
5352         variables sooner.
5353
5354 2010-10-27  Jie Zhang  <jie@codesourcery.com>
5355             Maxim Kuvyrkov  <maxim@codesourcery.com>
5356
5357         * haifa-sched.c (ISSUE_POINTS): Remove.
5358         (max_issue): Don't issue more than issue_rate instructions.
5359
5360 2010-10-27  Ian Lance Taylor  <iant@google.com>
5361
5362         PR target/46197
5363         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
5364         (split_stack_return): Replace UNSPEC_STACK_CHECK with
5365         UNSPECV_SPLIT_STACK_RETURN.
5366
5367 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
5368
5369         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
5370
5371         * config/i386/i386.c (block_info): New.
5372         (BLOCK_INFO): Likewise.
5373         (call_avx256_state): Likewise.
5374         (check_avx256_stores): Likewise.
5375         (move_or_delete_vzeroupper_2): Likewise.
5376         (move_or_delete_vzeroupper_1): Likewise.
5377         (move_or_delete_vzeroupper): Likewise.
5378         (use_avx256_p): Likewise.
5379         (function_pass_avx256_p): Likewise.
5380         (flag_opts): Add -mvzeroupper.
5381         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
5382         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
5383         is disabled.
5384         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
5385         generate vzeroupper.
5386         (init_cumulative_args): Add an int to indicate caller.  Set
5387         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
5388         based on return type.
5389         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
5390         caller_pass_avx256_p based on argument type.
5391         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
5392         is used, but not returned by caller.
5393         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
5394         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
5395         is used.
5396         (ix86_minimum_alignment): Likewise.
5397         (ix86_expand_special_args_builtin): Set target to
5398         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
5399         (ix86_reorg): Run the vzeroupper optimization if needed.
5400
5401         * config/i386/i386.h (ix86_args): Add caller.
5402         (INIT_CUMULATIVE_ARGS): Updated.
5403         (machine_function): Add use_vzeroupper_p, use_avx256_p,
5404         caller_pass_avx256_p, caller_return_avx256_p,
5405         callee_pass_avx256_p and callee_return_avx256_p.
5406
5407         * config/i386/i386.opt (-mvzeroupper): New.
5408
5409         * config/i386/predicates.md (vzeroupper_operation): Removed.
5410
5411         * config/i386/sse.md (avx_vzeroupper): Removed.
5412         (*avx_vzeroupper): Removed.
5413         (avx_vzeroupper): New.
5414
5415         * doc/invoke.texi: Document -mvzeroupper.
5416
5417 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5418
5419         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
5420         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
5421         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
5422
5423 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5424             Olivier Hainque  <hainque@adacore.com>
5425
5426         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
5427         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
5428         fs->signal_frame instead.
5429
5430 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5431
5432         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
5433         parsing of RID_COPIES and RID_IVAR.
5434
5435 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5436
5437         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
5438         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
5439         Do not use objc_set_property_attr, but use local variables
5440         instead.  Detect repeated usage of setter, getter and ivar
5441         attributes.  Improved error processing when a setter name does not
5442         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
5443         that the token is a keyword.  Updated call to
5444         objc_add_property_declaration.
5445
5446 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5447
5448         * c-parser.c (c_parser_objc_at_property): Renamed to
5449         c_parser_objc_at_property_declaration.  Updated calls to
5450         objc_add_property_variable, now objc_add_property_declaration.
5451         Code rewritten to be much more robust in recovering from syntax
5452         errors.  Added comments.
5453         (c_parser_objc_property_attrlist): Removed.
5454         (c_parser_external_declaration): Updated calls to
5455         c_parser_objc_at_property, now
5456         c_parser_objc_at_property_declaration.
5457         (c_parser_objc_methodprotolist): Same change.
5458
5459 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5460
5461         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
5462
5463 2010-10-26  Jan Hubicka  <jh@suse.cz>
5464
5465         * ipa.c (process_references): Enqueue all referenced nodes;
5466         mark as reachable only non-external nodes.
5467         (cgraph_remove_unreachable_nodes): All referenced nodes should
5468         be enqueued; remove bogues node->needed check.
5469
5470 2010-10-26  Jan Hubicka  <jh@suse.cz>
5471
5472         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
5473         to represent OMP.
5474
5475 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5476
5477         * config/i386/i386.md (split_stack_return): Replace
5478         unspec_volatile with unspec.
5479
5480 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
5481
5482         * doc/install.texi: Fix typo in --with-sysroot description.
5483
5484 2010-10-26  Jan Hubicka  <jh@suse.cz>
5485
5486         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
5487         Use info provided by linker plugin.
5488
5489 2010-10-26  Jason Merrill  <jason@redhat.com>
5490
5491         * varasm.c (constructor_static_from_elts_p): Don't require a
5492         CONSTRUCTOR to have elements to be suitable for static
5493         initialization.  Allow ARRAY_TYPE as well.
5494
5495 2010-10-26  Jan Hubicka  <jh@suse.cz>
5496
5497         PR middle-end/45736
5498         * cgraph.c (cgraph_set_readonly_flag): Rename to...
5499         (cgraph_set_const_flags) ... this one; get also looping argument;
5500         clear constructor/destructor flags.
5501         (cgraph_set_pure_flag): Likewise.
5502         (cgraph_set_looping_const_or_pure_flag): Remove.
5503         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
5504         to optimize away static ctors/dtors; it does not work on inline clones;
5505         external functions can always be rmeoved.
5506         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
5507         inline clones; in LTO external functions always can go.
5508         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
5509         (cgraph_mark_address_taken_node): Assert that we are not taking
5510         address of inline clone.
5511         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
5512         external functions.
5513         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
5514         address taken.
5515         (ipcp_initialize_node_lattices): Only local functions can be
5516         handled without cloning.
5517         * cgraph.h (cgraph_set_readonly_flag,
5518         cgraph_set_looping_const_or_pure_flag): Remove.
5519         (cgraph_set_const_flag): Declare.
5520         (cgraph_set_pure_flag): Update.
5521         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
5522         flags setting code.
5523         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
5524         look at inline clones; fix handling of external definitions.
5525         (cgraph_postorder): Do not look at inline clones in the first pass.
5526         (function_and_variable_visibility): Drop constructors/destructor
5527         flags at pure and const functions.
5528         * tree-profile.c (tree_profiling): Update.
5529         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
5530         address taken; external functions do not account to whole program size.
5531         (cgraph_decide_inlining): Likewise; do not try to inline
5532         functions already inlined.
5533
5534 2010-10-26  Jie Zhang  <jie@codesourcery.com>
5535
5536         * doc/invoke.texi: Improve documentation of
5537         -fstrict-volatile-bitfields.
5538
5539 2010-10-26  Ira Rosen  <irar@il.ibm.com>
5540
5541         PR tree-optimization/46167
5542         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
5543         is basic block for the statement.
5544
5545 2010-10-26  Paul Koning  <ni1d@arrl.net>
5546
5547         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
5548         current definition of struct_real_format.
5549
5550 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5551
5552         PR target/44948
5553         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
5554         (ix86_function_arg_boundary): Always align parameters on stack
5555         in 64bit and align parameters with alignment >= 16byte on stack
5556         in 32bit.  Warn alignment change.
5557
5558 2010-10-26  Ian Lance Taylor  <iant@google.com>
5559
5560         PR middle-end/45687
5561         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
5562         offset.
5563
5564 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
5565
5566         Implement opaque-enum-specifiesr for C++0x
5567         * tree.h (ENUM_IS_OPAQUE): New.
5568         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
5569
5570 2010-10-26  Jie Zhang  <jie@codesourcery.com>
5571
5572         * stor-layout.c (layout_decl): Use the field's type to
5573         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
5574         * config/arm/arm.c (arm_override_options): Default to
5575         -fstrict-volatile-bitfields.
5576
5577 2010-10-25  Paul Koning  <ni1d@arrl.net>
5578
5579         * config/pdp11/pdp11.md: Add define_constants for register
5580         numbers, branch offset limits.
5581         * config/pdp11/pdp11.c: Use named constants instead of numbers.
5582         * config/pdp11.pdp11.h: Ditto.
5583
5584 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
5585
5586         * configure.ac: Use $cpu_type instead of $target to define the nop.
5587         * configure: Regenerate.
5588
5589 2010-10-25  Jie Zhang  <jie@codesourcery.com>
5590
5591         * combine.c (try_combine): If insns need to be kept around, check that
5592         they can be copied in the merged instruction.
5593
5594 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
5595
5596         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
5597         has been modified.
5598         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
5599         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
5600         it has been modified.
5601
5602 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
5603
5604         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
5605
5606 2010-10-24  Paul Koning  <ni1d@arrl.net>
5607
5608         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
5609         * config/pdp11/pdp11.c (output_jump): Ditto.
5610
5611 2010-10-24  Ian Lance Taylor  <iant@google.com>
5612
5613         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
5614
5615 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
5616
5617         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
5618         least one insn with a locus corresponding to an edge's goto_locus,
5619         disregard non-fallthru edges to the exit block and merge the blocks
5620         created for the same goto_locus.
5621
5622 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
5623
5624         * gcc.c (n_switches_alloc_debug_check): New.
5625         (set_option_handlers): New.
5626         (process_command): Use set_option_handlers.
5627         (do_self_spec): Pass spec-generated options through option handlers.
5628         (main): Also save and restore n_switches_alloc when swapping
5629         switch arrays.
5630
5631 2010-10-23  Richard Henderson  <rth@redhat.com>
5632
5633         PR target/46144
5634         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
5635         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
5636         Honor matching operands when splitting to XOR.
5637
5638 2010-10-23  Ian Lance Taylor  <iant@google.com>
5639
5640         * tree-vrp.c (extract_range_from_binary_expr): If
5641         flag_non_call_exceptions don't eliminate division by zero.
5642         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
5643
5644 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
5645
5646         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
5647         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
5648         __ORDER_PDP_ENDIAN__.
5649         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5650         (struct DWstruct): Define based on __BYTE_ORDER__.
5651         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5652         (struct INTstruct): Define based on __BYTE_ORDER__.
5653         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5654         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
5655         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
5656         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5657         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5658         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5659         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5660         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5661         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5662         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5663         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5664         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5665         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5666         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5667         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5668         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5669         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5670         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5671         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
5672         * doc/tm.texi: Regenerate.
5673         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
5674         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
5675
5676 2010-10-23  Jie Zhang  <jie@codesourcery.com>
5677
5678         PR rtl-optimization/37360
5679         * config/mips/mips.c (cached_can_issue_more): New local variable.
5680         (mips_sched_reorder_1): New.
5681         (mips_sched_reorder): Use mips_sched_reorder_1.
5682         (mips_sched_reorder2): New.
5683         (mips_variable_issue): Set cached_can_issue_more.
5684         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
5685         instead of mips_sched_reorder.
5686
5687         Revert:
5688         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
5689         PR rtl-optimization/37360
5690         * haifa-sched.c (max_issue): Do not assert that we never issue more
5691         insns than issue_rate.  Add comment.
5692
5693 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
5694
5695         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
5696         location info of the expression.
5697
5698 2010-10-22  DJ Delorie  <dj@redhat.com>
5699
5700         * doc/extend.texi (Named Address Spaces): Document the M32C named
5701         address space.
5702
5703         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
5704         __far address space.
5705         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
5706         "__far" address space for R8C and M16C processor variants.
5707         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
5708         (far_addr_space_p): New.
5709         (encode_pattern_1): Add sign and zero extend support.
5710         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
5711         (m32c_extra_constraint_p2): Add SF constraint.
5712         (m32c_legitimate_address_p): Support __far addresses.
5713         (m32c_addr_space_pointer_mode): New.
5714         (m32c_addr_space_address_mode): New.
5715         (m32c_addr_space_legitimate_address_p): New.
5716         (m32c_addr_space_legitimize_address): New.
5717         (m32c_addr_space_subset_p): New.
5718         (m32c_addr_space_convert): New.
5719         (conversions): Add __far operand patterns.
5720         (m32c_prepare_move): Force constants into registers for __far moves.
5721         (m32c_split_move): __far moves are always split.
5722         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
5723         * config/m32c/mov.md (mov<mode>_far_op1): New.
5724         (mov<mode>_far_op2): New.
5725         (movqi_op): Add __far (SF) support.
5726         (movhi_op): Likewise.
5727         (movsi_splittable): Split A1A0 also.
5728
5729 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
5730             Andrew Pinski  <pinskia@gmail.com>
5731
5732         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
5733         * doc/extend.texi: New paragraph
5734
5735 2010-10-22  Paul Koning  <ni1d@arrl.net>
5736
5737         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
5738
5739 2010-10-22  DJ Delorie  <dj@redhat.com>
5740
5741         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
5742
5743 2010-10-22  Paul Koning  <ni1d@arrl.net>
5744
5745         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
5746
5747 2010-10-22  Richard Henderson  <rth@redhat.com>
5748
5749         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
5750         cases for __builtin_fma and __builtin_fmaf.
5751
5752 2010-10-22  Richard Henderson  <rth@redhat.com>
5753
5754         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
5755         NEG+USE for vectors as well.
5756         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
5757         and splitter.
5758
5759 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
5760
5761         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
5762         SWITCH_CURTAILS_COMPILATION): Remove.
5763         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
5764         * doc/tm.texi: Regenerate.
5765         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
5766
5767 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
5768
5769         * config/i386/bdver1.md: New file.
5770         * config/i386/i386.md (include "bdver1.md"): Invoke the
5771         pipeline description for bdver1.
5772         (x86_sahf_1): Add "bdver1_decode" attribute.
5773         (*cmpfp_i_mixed): Likewise.
5774         (*cmpfp_i_sse): Likewise.
5775         (*cmpfp_i_i387): Likewise.
5776         (*cmpfp_iu_mixed): Likewise.
5777         (*cmpfp_iu_sse): Likewise.
5778         (*cmpfp_iu_387): Likewise.
5779         (*swap<mode>,*swap<mode>_1): Likewise.
5780         (fixuns_trunc<mode>hi2): Likewise.
5781         (fix_trunc<mode>si_sse): Likewise.
5782         (x86_fnstcw_1): Likewise.
5783         (x86_fldcw_1): Likewise.
5784         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
5785         (*floatsi<mode>2_vector_mixed): Likewise.
5786         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
5787         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
5788         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
5789         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
5790         (*floatsi<mode>2_vector_sse): Likewise.
5791         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
5792         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
5793         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
5794         (*mul<mode>3_1): Likewise.
5795         (*mulsi3_1_zext): Likewise.
5796         (*mulhi3_1): Likewise.
5797         (*mulqi3_1): Likewise.
5798         (*<u>mul<mode><dwi>3_1): Likewise.
5799         (*<u>mulqihi3_1): Likewise.
5800         (*<s>muldi3_highpart_1): Likewise.
5801         (*<s>mulsi3_highpart_1): Likewise.
5802         (*<s>mulsi3_highpart_zext): Likewise.
5803         (x86_64_shld): Likewise.
5804         (x86_shld): Likewise.
5805         (x86_64_shrd): Likewise.
5806         (x86_shrd): Likewise.
5807         (sqrtxf2): Likewise.
5808         (sqrt_extend<mode>xf2_i387): Likewise.
5809         (*sqrt<mode>2_sse): Likewise.
5810         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
5811         (sse_cvtsi2ssq): Likewise.
5812         (sse_cvtss2si): Likewise.
5813         (sse_cvtss2si_2): Likewise.
5814         (sse_cvtss2siq): Likewise.
5815         (sse_cvtss2siq_2): Likewise.
5816         (sse_cvttss2si): Likewise.
5817         (sse_cvttss2siq): Likewise.
5818         (sse2_cvtpi2pd): Likewise.
5819         (sse2_cvttpd2pi): Likewise.
5820         (sse2_cvtsi2sd): Likewise.
5821         (sse2_cvtsi2sdq): Likewise.
5822         (sse2_cvtsd2si): Likewise.
5823         (sse2_cvtsd2si_2): Likewise.
5824         (sse2_cvtsd2siq): Likewise.
5825         (sse2_cvtsd2siq_2): Likewise.
5826         (sse2_cvttsd2si): Likewise.
5827         (sse2_cvttsd2siq): Likewise.
5828         (*sse2_cvtpd2dq): Likewise.
5829         (*sse2_cvttpd2dq): Likewise.
5830         (sse2_cvtsd2ss): Likewise.
5831         (sse2_cvtss2sd): Likewise.
5832         (*sse2_cvtpd2ps): Likewise.
5833         (sse2_cvtps2pd): Likewise.
5834
5835 2010-10-22  Richard Guenther  <rguenther@suse.de>
5836
5837         PR middle-end/46137
5838         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
5839         remove the virtual operands if they are not needed.
5840
5841 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
5842
5843         * config/i386/i386.c (processor_costs bdver1_cost): Update
5844         insn costs and architectural parameters for bdver1.
5845
5846 2010-10-22  Richard Guenther  <rguenther@suse.de>
5847
5848         * gimple.h (gimple_register_canonical_type): Declare.
5849         * gimple.c (gimple_canonical_types): New global hashtable.
5850         (struct gimple_type_leader_entry_s): New type.
5851         (gimple_type_leader): New global cache.
5852         (gimple_lookup_type_leader): New function.
5853         (gtc_visit): Query the proper cache.
5854         (gimple_types_compatible_p): Likewise.
5855         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
5856         (gimple_canonical_type_eq): New function.
5857         (gimple_register_canonical_type): Likewise.
5858         (print_gimple_types_stats): Adjust for gimple_canonical_types.
5859         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
5860         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
5861         gimple_types_compatible_p for LTO.
5862
5863 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
5864
5865         PR target/46098
5866         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
5867         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
5868         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
5869         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
5870         (<sse>_movu<ssemodesuffix>): New expander.
5871         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
5872         (avx_movdqu<avxmodesuffix>): New expander.
5873         (*sse2_movdqu): Rename from sse2_movdqu.
5874         (sse2_movdqu): New expander.
5875
5876 2010-10-22  Richard Guenther  <rguenther@suse.de>
5877
5878         PR tree-optimization/45720
5879         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
5880         Handle negative step.
5881         (vect_enhance_data_refs_alignment): Likewise.
5882         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
5883         (vect_create_cond_for_align_checks): Likewise.
5884         (vect_create_cond_for_alias_checks): Likewise.
5885
5886 2010-10-22  Ira Rosen  <irar@il.ibm.com>
5887
5888         PR tree-optimization/46126
5889         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
5890         vectorizable_shift in case of basic block vectorization.
5891
5892 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
5893
5894         * target.h (enum opt_levels, struct default_options): New.
5895         * target.def (handle_ofast): Remove hook.
5896         (target_option.optimization): Change to
5897         target_option.optimization_table.
5898         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
5899         TARGET_OPTION_OPTIMIZATION_TABLE.
5900         (CAN_DEBUG_WITHOUT_FP): Remove.
5901         * doc/tm.texi: Regenerate.
5902         * opts.c (maybe_default_option, maybe_default_options,
5903         default_options_table): New.
5904         (default_options_optimization): Take extra parameters.  Don't
5905         assert that global_options and global_options_set are in use.  Use
5906         maybe_default_options.
5907         (decode_options): Pass extra parameters to
5908         default_options_optimization.
5909         * common.opt (falign-loops): Use value 0 with Var.
5910         (frerun-cse-after-loop, ftree-ter): Remove Init.
5911         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
5912         TARGET_OPTION_OPTIMIZATION): Remove.
5913         * targhooks.c (empty_optimization_table): New.
5914         * targhooks.h (empty_optimization_table): Declare.
5915         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
5916         * config/alpha/alpha.c (alpha_option_optimization_table,
5917         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5918         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
5919         * config/arm/arm.c (arm_option_optimization: Change to
5920         arm_option_optimization_table.
5921         (TARGET_OPTION_OPTIMIZATION): Change to
5922         TARGET_OPTION_OPTIMIZATION_TABLE.
5923         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
5924         * config/avr/avr.c (avr_option_optimization_table,
5925         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5926         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
5927         * config/cris/cris.c (cris_option_optimization): Change to
5928         cris_option_optimization_table.
5929         (TARGET_OPTION_OPTIMIZATION): Change to
5930         TARGET_OPTION_OPTIMIZATION_TABLE.
5931         * config/crx/crx.c (crx_option_optimization): Change to
5932         crx_option_optimization_table.
5933         (TARGET_OPTION_OPTIMIZATION): Change to
5934         TARGET_OPTION_OPTIMIZATION_TABLE.
5935         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
5936         * config/fr30/fr30.c (fr30_option_optimization_table,
5937         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5938         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
5939         * config/frv/frv.c (frv_option_optimization_table,
5940         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5941         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
5942         * config/h8300/h8300.c (h8300_option_optimization): Change to
5943         h8300_option_optimization_table.
5944         (TARGET_OPTION_OPTIMIZATION): Change to
5945         TARGET_OPTION_OPTIMIZATION_TABLE.
5946         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
5947         * config/i386/i386.c (ix86_option_optimization): Change to
5948         ix86_option_optimization_table.
5949         (TARGET_OPTION_OPTIMIZATION): Change to
5950         TARGET_OPTION_OPTIMIZATION_TABLE.
5951         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
5952         as initializer.
5953         * config/ia64/ia64.c (ia64_option_optimization): Change to
5954         ia64_option_optimization_table.
5955         (TARGET_OPTION_OPTIMIZATION): Change to
5956         TARGET_OPTION_OPTIMIZATION_TABLE.
5957         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
5958         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
5959         initializer.
5960         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
5961         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5962         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
5963         * config/lm32/lm32.c (lm32_option_optimization_table,
5964         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5965         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
5966         * config/m32r/m32r.c (m32r_option_optimization): Change to
5967         m32r_option_optimization_table.
5968         (TARGET_OPTION_OPTIMIZATION): Change to
5969         TARGET_OPTION_OPTIMIZATION_TABLE.
5970         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
5971         CAN_DEBUG_WITHOUT_FP): Remove.
5972         * config/mcore/mcore.c (mcore_option_optimization): Change to
5973         mcore_option_optimization_table.
5974         (TARGET_OPTION_OPTIMIZATION): Change to
5975         TARGET_OPTION_OPTIMIZATION_TABLE.
5976         * config/mep/mep.c (mep_option_optimization): Change to
5977         mep_option_optimization_table.
5978         (TARGET_OPTION_OPTIMIZATION): Change to
5979         TARGET_OPTION_OPTIMIZATION_TABLE.
5980         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
5981         * config/microblaze/microblaze.c
5982         (microblaze_option_optimization_table,
5983         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5984         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
5985         * config/mips/mips.c (mips_option_optimization_table,
5986         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5987         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
5988         * config/mmix/mmix.c (mmix_option_optimization): Change to
5989         mmix_option_optimization_table.
5990         (TARGET_OPTION_OPTIMIZATION): Change to
5991         TARGET_OPTION_OPTIMIZATION_TABLE.
5992         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
5993         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
5994         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5995         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
5996         * config/pa/pa.c (pa_option_optimization_table,
5997         TARGET_OPTION_OPTIMIZATION_TABLE): New.
5998         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
5999         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
6000         pdp11_option_optimization_table.
6001         (TARGET_OPTION_OPTIMIZATION): Change to
6002         TARGET_OPTION_OPTIMIZATION_TABLE.
6003         * config/picochip/picochip.c (picochip_option_optimization_table,
6004         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6005         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
6006         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
6007         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6008         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
6009         * config/rx/rx.c (rx_option_optimization_table,
6010         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6011         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
6012         * config/s390/s390.c (s390_option_optimization): Change to
6013         s390_option_optimization_table.
6014         (s390_option_override): Update comment.
6015         (TARGET_OPTION_OPTIMIZATION): Change to
6016         TARGET_OPTION_OPTIMIZATION_TABLE.
6017         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
6018         * config/score/score.c (score_option_optimization_table,
6019         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6020         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
6021         * config/sh/sh.c (sh_option_optimization): Change to
6022         sh_option_optimization_table.
6023         (TARGET_OPTION_OPTIMIZATION): Change to
6024         TARGET_OPTION_OPTIMIZATION_TABLE.
6025         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
6026         (sh_option_override, expand_block_move, multcosts, find_barrier,
6027         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
6028         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
6029         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
6030         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
6031         instead of TARGET_SMALLCODE.
6032         * config/sh/sh.opt (mspace): Make into an alias for -Os.
6033         * config/sparc/sparc.c (sparc_option_optimization_table,
6034         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6035         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
6036         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
6037         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6038         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
6039         * config/v850/v850.c (v850_option_optimization): Change to
6040         v850_option_optimization_table.
6041         (TARGET_OPTION_OPTIMIZATION): Change to
6042         TARGET_OPTION_OPTIMIZATION_TABLE.
6043         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
6044         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
6045         xtensa_option_optimization_table.
6046         (TARGET_OPTION_OPTIMIZATION): Change to
6047         TARGET_OPTION_OPTIMIZATION_TABLE.
6048         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
6049
6050 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
6051
6052         Based on the CFString implementation in FSF apple/trunk branch.
6053
6054         * target.def (objc_construct_string): New Hook.
6055         * doc/tm.texi (objc_construct_string): Document.
6056         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
6057         * config/t-darwin: Amend build rules for darwin.o.
6058         * config/darwin.opt: Add cfstrings flags.
6059         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
6060         (darwin_objc_construct_string): New.
6061         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
6062         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
6063         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
6064         (darwin_fold_builtin): Likewise.
6065         (darwin_build_constant_cfstring): Likewise.
6066         (darwin_objc_construct_string): Likewise.
6067         (darwin_cfstring_p): Likewise.
6068         (darwin_enter_string_into_cfstring_table): Likewise.
6069         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
6070         * config/darwin.c (darwin_running_cxx): New var.
6071         (machopic_select_section): Return cfstring_constant_object_section.
6072         (darwin_override_options): Set darwin_running_cxx.
6073         (add_builtin_field_decl): New.
6074         (darwin_init_cfstring_builtins): New.
6075         (darwin_build_constant_cfstring): New.
6076         (darwin_fold_builtin): New.
6077         (cfstring_hash): New.
6078         (cfstring_eq): New.
6079         (darwin_enter_string_into_cfstring_table): New.
6080         * config/darwin-sections.def (cfstring_constant_object_section): New.
6081         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
6082         (TARGET_OBJC_CONSTRUCT_STRING): Define.
6083
6084 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6085
6086         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
6087         TYPE_STUB_DECL instead of TREE_CHAIN.
6088         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
6089         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
6090         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
6091         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
6092         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
6093         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
6094         Likewise.
6095         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
6096
6097 2010-10-22  Jie Zhang  <jie@codesourcery.com>
6098
6099         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
6100         (copy_blkmode_from_reg): Likewise.
6101         (read_complex_part): Likewise.
6102         (expand_expr_real_1): Calculate packedp and pass it to
6103         extract_bit_field.
6104         * expr.h (extract_bit_field): Update declaration.
6105         * calls.c (store_unaligned_arguments_into_pseudos): Update call
6106         to extract_bit_field.
6107         * expmed.c (extract_fixed_bit_field): Update calls to
6108         extract_fixed_bit_field.
6109         (store_split_bit_field): Likewise.
6110         (extract_bit_field_1): Add new argument packedp.
6111         (extract_bit_field): Add new argument packedp.
6112         (extract_fixed_bit_field): Add new argument packedp and let
6113         packed attribute override volatile.
6114         * stmt.c (expand_return): Update call to extract_bit_field.
6115
6116 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6117
6118         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
6119
6120 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6121
6122         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
6123         of gcc_checking_assert.
6124         * sel-sched.c (code_motion_process_successors): Likewise.
6125
6126 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
6127
6128         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
6129         when stopping because of a different locus on edge or insn.
6130         (try_optimize_cfg): Add comment.
6131         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
6132         block is a forwarder block, propagate locus on the edge.
6133         (cfg_layout_merge_blocks): Likewise.
6134
6135 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
6136
6137         PR target/45946
6138         * config/i386/i386.md (*pushti2): New insn pattern.
6139         (pushti2 splitter): New insn splitter.
6140         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
6141         DWI mode iterator.
6142
6143 2010-10-21  Paul Koning  <ni1d@arrl.net>
6144
6145         * config/pdp11/pdp11-protos.md (arith_operand,
6146         const_immediate_operand, expand_shift_operand,
6147         immediate15_operand): Delete
6148         * config/pdp11/pdp11.c: Ditto.
6149         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
6150         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
6151         EXTRA_CONSTRAINT): Delete.
6152         * config/pdp11/pdp11.md (various): Use standard constraints
6153         instead of removed ones.
6154         * config/pdp11/constraints.md: New file.
6155         * config/pdp11/predicates.md: New file.
6156
6157 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
6158
6159         PR c/45834
6160         * alias.c (true_dependence_1): Remove obsolete check for QImode.
6161         (may_alias_p): Ditto.
6162
6163 2010-10-21  Martin Jambor  <mjambor@suse.cz>
6164
6165         PR tree-optimization/45875
6166         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
6167
6168 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6169
6170         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
6171         variables.
6172         (create_new_def_for): Likewise.
6173
6174 2010-10-21  Nick Clifton  <nickc@redhat.com>
6175
6176         * config/mn10300/mn10300.c: Fold code to 80-character width.
6177         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6178         MEM, CONST_INT and CONST_DOUBLE.
6179         (targetm): Move initialization to end of file.
6180         (print_operand): Rename to mn10300_print_operand.
6181         (print_operand_address): Rename to mn10300_print_operand_address.
6182         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
6183         (expand_prologue): Rename to mn10300_expand_prologue.
6184         (expand_epilogue): Rename to mn10300_expand_epilogue.
6185         (initial_offset): Rename to mn10300_initial_offset.
6186         (function_arg): Rename to mn10300_function_arg.
6187         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
6188         (symbolic_operand): Rename to mn10300_symbolic_operand.
6189         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
6190         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
6191         * config/mn10300/mn10300-protos.h: Update prototypes.
6192         * config/mn10300/mn10300.h: 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         (CPP_SPEC): Move to...
6196         (TARGET_CPU_CPP_BUILTINS): ... here.
6197         * config/mn10300/mn10300.md: Fold code to 80-character width.
6198         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6199         MEM, CONST_INT and CONST_DOUBLE.
6200
6201 2010-10-21  Ira Rosen  <irar@il.ibm.com>
6202
6203         PR tree-optimization/46049
6204         PR tree-optimization/46052
6205         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
6206         (vect_get_slp_defs): Add arguments.
6207         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
6208         operands to vect_get_slp_defs.
6209         (vectorizable_reduction): Fix comment, pass scalar operands to
6210         vect_get_slp_defs.
6211         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
6212         type to determine number of units in the created vector.
6213         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
6214         (vectorizable_conversion): Fix comment.
6215         (vectorizable_shift): New function.
6216         (vectorizable_operation): Move code that handles shifts to
6217         vectorizable_shift.
6218         (vectorizable_type_demotion): Fix comment, pass scalar operands to
6219         vect_get_slp_defs.
6220         (vectorizable_type_promotion, vectorizable_store): Likewise.
6221         (vectorizable_condition): Fix comment.
6222         (vect_analyze_stmt): Call vectorizable_shift.
6223         (vect_transform_stmt): Likewise.
6224         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
6225         Use it as the operand to create vectors for, except reduction
6226         initial definition and store.  Use operands type.
6227         (vect_get_slp_defs): Add new arguments.  Pass them to
6228          vect_get_constant_vectors.
6229
6230 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6231
6232         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
6233         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
6234         * cfghooks.c (fixup_reorder_chain): Likewise.
6235         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
6236         * cgraph.c (cgraph_add_thunk): Likewise.
6237         (cgraph_create_edge_1): Likewise.
6238         (cgraph_create_virtual_clone): Likewise.
6239         * ddg.c (add_cross_iteration_register_deps): Likewise.
6240         * dwarf2out.c (modified_type_die): Likewise.
6241         * emit-rtl.c (set_mem_alias_set): Likewise.
6242         * ggc-zone.c (zone_allocate_marks): Likewise.
6243         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
6244         * gimple.c (iterative_hash_gimple_type): Likewise.
6245         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
6246         (create_single_exit_edge): Likewise.
6247         * haifa-sched.c (choose_ready): Likewise.
6248         * lto-streamer-in.c (input_gimple_stmt): Likewise.
6249         * passes.c (execute_todo): Likewise.
6250         * sched-ebb.c (begin_schedule_ready): Likewise.
6251         * sel-sched.c (code_motion_process_successors): Likewise.
6252         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
6253         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
6254         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
6255         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
6256         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
6257         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
6258         (ssa_conflicts_add): Likewise.
6259         * tree-ssa-copy.c (replace_exp): Likewise.
6260         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
6261         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
6262         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
6263         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
6264         (compute_antic): Likewise.
6265         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
6266         (add_dependence): Likewise.
6267         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
6268         * tree-vrp.c (supports_overflow_infinity): Likewise.
6269         (make_overflow_infinity, negative_overflow_infinity): Likewise.
6270         (avoid_overflow_infinity, register_new_assert_for): Likewise.
6271         (process_assert_insertions_for): Likewise.
6272         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
6273         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
6274         (intersect_loc_chains, variable_merge_over_cur): Likewise.
6275
6276 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6277
6278         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
6279         * reload1.c (has_nonexceptional_receiver): Likewise.
6280         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
6281         (create_new_def_for): Likewise.
6282         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
6283         (merge_phi_nodes): Likewise.
6284         (has_abnormal_incoming_edge_p): Delete.
6285
6286 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
6287
6288         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
6289
6290 2010-10-21  Richard Guenther  <rguenther@suse.de>
6291             Michael Matz  <matz@suse.de>
6292
6293         PR tree-optimization/45764
6294         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
6295         Adjust initial misalignment for negative DR_STEP.
6296         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
6297         do not have the same alignment over the whole iteration domain.
6298
6299 2010-10-21  Richard Guenther  <rguenther@suse.de>
6300
6301         PR tree-optimization/46111
6302         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
6303
6304 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6305
6306         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
6307
6308 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6309
6310         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
6311         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
6312
6313 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6314
6315         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
6316         signal_frame.
6317         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
6318
6319 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6320
6321         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
6322         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
6323
6324 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
6325
6326         * basic-block.h (find_fallthru_edge): Define.
6327         * cfgcleanup.c (merge_blocks_move): Use it.
6328         (try_crossjump_bb): Likewise.
6329         * cfglayout.c (fixup_reorder_chains): Likewise.
6330         (fixup_fallthru_exit_predecessor): Likewise.
6331         * cfgrtl.c (rtl_split_edge): Likewise.
6332         (rtl_verify_flow_info): Likewise.
6333         * function.c (thread_prologue_and_epilogue_insns): Likewise.
6334         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
6335         * ifcvt.c (block_fallthru): Likewise.
6336         * reload1.c (fixup_abnormal_edges): Likewise.
6337         * sched-ebb.c (being_schedule_ready): Likewise.
6338         (schedule_ebb): Likwise.
6339         * sched-rgn.c (find_single_block_region): Likewise.
6340         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
6341         * tree-complex.c (expand_complex_move): Likewise.
6342         * sched-int.h (find_fallthru_edge): Rename to...
6343         (find_fallthru_edge_from): ...this.
6344         * haifa-sched.c (find_fallthru_edge): Rename to...
6345         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
6346         (init_before_recovery): Call find_fallthru_edge_from.
6347         * sel-sched-ir.c (merge_fences): Likewise.
6348         * sel-sched.c (in_fallthru_bb_p): Likewise.
6349         (move_cond_jump): Likewise.
6350
6351 2010-10-20  Paul Koning  <ni1d@arrl.net>
6352
6353         * config/pdp11/pdp11.md (various): Fix conditions on a number of
6354         insn to check for target 11/40 or higher.
6355
6356 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
6357
6358         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
6359         bool instead of a tree.
6360         (c_parser_objc_method_decl): Added bool argument.  Updated call to
6361         objc_build_method_signature.
6362         (c_parser_objc_method_definition): Do not call
6363         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
6364         c_parser_objc_method_decl and objc_start_method_definition.
6365         (c_parser_objc_methodproto): Do not call objc_set_method_type.
6366         Updated calls to c_parser_objc_method_type,
6367         c_parser_objc_method_decl and objc_add_method_declaration.
6368
6369 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
6370
6371         PR tree-optimization/45919
6372         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
6373         array members.
6374
6375         PR tree-optimization/46066
6376         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
6377         instead of gsi_last_bb.
6378
6379 2010-10-20  DJ Delorie  <dj@redhat.com>
6380
6381         * config/m32c/m32c.c (m32c_option_override): Always disable
6382         function-cse in 16-bit mode.  Indirect calls are always worse than
6383         direct calls as there is no 16-bit indirect call opcode.
6384         (m32c_override_options_after_change): New, likewise.
6385
6386 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
6387
6388         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
6389         emitting the conditional move in the inner mode of the SUBREG.
6390
6391 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
6392
6393         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
6394         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
6395         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6396         (ia64_preferred_reload_class): Make static.  Change rclass argument
6397         and result types from enum reg_class to reg_class_t.
6398
6399 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
6400
6401         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
6402         call for single operand expression.
6403
6404 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
6405
6406         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
6407         if there is a call statement to pure or const function in the block.
6408
6409 2010-10-20  Paul Koning  <pkoning@equallogic.com>
6410
6411         Fix several build errors for pdp11 target.
6412         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
6413         (cbranchdf4): Conditional on TARGET_FPU.
6414         (movdf): Ditto; correct alternatives check.
6415         (movmemhi): Fix predicate and constraint.
6416         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
6417
6418 2010-10-20  Richard Guenther  <rguenther@suse.de>
6419
6420         PR lto/45667
6421         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
6422         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
6423         (verify_gimple_assign_single): Disable ADDR_EXPR type check
6424         when in LTO.
6425
6426 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
6427
6428         PR fortran/42169
6429         * ira-emit.c (store_can_be_removed_p): Return false instead of
6430         gcc_unreachable.
6431
6432 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
6433
6434         * fold-const.c (fold_binary_loc): New transformation.
6435
6436 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
6437
6438         PR target/46085
6439         * config/i386/sse.md (reduc_splus_v8sf): Updated.
6440         (reduc_splus_v4df): Likewise.
6441
6442 2010-10-20  Richard Guenther  <rguenther@suse.de>
6443
6444         PR tree-optimization/45860
6445         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
6446         conditional store replacement for non-register type stores.
6447
6448 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
6449
6450         * stor-layout.c (skip_simple_constant_arithmetic): New function.
6451         (self_referential_size): Use it instead of skip_simple_arithmetic.
6452
6453 2010-10-20  Olivier Hainque  <hainque@adacore.com>
6454
6455         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
6456         If the current function calls eh_return, claim live all registers
6457         that we need to check for liveness otherwise.
6458
6459 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
6460
6461         * c-decl.c (c_write_global_declarations): Call
6462         objc_write_global_declarations when compiling Objective-C.
6463         * c-lang.c (finish_file): Removed.
6464
6465 2010-10-19  DJ Delorie  <dj@redhat.com>
6466
6467         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
6468         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
6469         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
6470         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
6471         * doc/tm.texi: Regenerate.
6472         * targhooks.h (default_label_align_after_barrier_max_skip,
6473         default_loop_align_max_skip, default_label_align_max_skip,
6474         default_jump_align_max_skip): Declare.
6475         * target.def (label_align_after_barrier_max_skip): New.
6476         (loop_align_max_skip): New.
6477         (label_align_max_skip): New.
6478         (jump_align_max_skip): New.
6479         * system.h (poison): Add those macros to the list.
6480         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
6481         (LOOP_ALIGN_MAX_SKIP): Remove.
6482         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
6483         (JUMP_ALIGN_MAX_SKIP): Remove.
6484         (default_label_align_after_barrier_max_skip): New.
6485         (default_loop_align_max_skip): New.
6486         (default_label_align_max_skip): New.
6487         (default_jump_align_max_skip): New.
6488         (compute_alignments): Use the new hooks.
6489         (shorten_branches): Likewise.
6490
6491 2010-10-19  Richard Henderson  <rth@redhat.com>
6492
6493         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
6494         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
6495         (fma4i_fmadd_<mode>): New.
6496         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
6497         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
6498         standard fma patterns.
6499         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
6500         enable for FMA.
6501         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
6502         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
6503         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
6504
6505 2010-10-19  Paul Koning  <pkoning@equallogic.com>
6506
6507         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
6508         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
6509
6510 2010-10-19  Richard Henderson  <rth@redhat.com>
6511
6512         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
6513         (fmadf4, *fmsdf4, *nfmadf4): New.
6514         (fmaxf4, *fmsxf4, *nfmaxf4): New.
6515
6516 2010-10-19  Michael Eager  <eager@eagercon.com>
6517
6518         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
6519         Use sjlj unwind info for exceptions.
6520
6521 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
6522
6523         PR fortran/43414
6524         * dwarf2out.c (add_calling_convention_attribute): Flag main
6525         Fortran subroutine with DW_AT_main_subprogram.
6526
6527 2010-10-19  Nick Clifton  <nickc@redhat.com>
6528
6529         * config/rx/rx.c (rx_function_value): Small integer types are
6530         promoted to SImode.
6531         (rx_promote_function_mode): New function.
6532         (TARGET_PROMOTE_FUNCTION_MODE): Define.
6533
6534 2010-10-19  Nick Clifton  <nickc@redhat.com>
6535
6536         * config/mep/mep.c (mep_print_operand): Use
6537         targetm.strip_name_encoding.
6538         (mep_output_aligned_common): Likewise.
6539
6540 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
6541
6542         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
6543
6544 2010-10-18  Richard Henderson  <rth@redhat.com>
6545
6546         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
6547         (fma (neg a) (neg b) c) and (fma a (neg b) c).
6548
6549 2010-10-18  Richard Henderson  <rth@redhat.com>
6550
6551         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
6552         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
6553         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
6554         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
6555         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
6556         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
6557         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
6558         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
6559         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
6560         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
6561         (bdesc_multi_arg): Remove the corresponding builtins.
6562         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
6563         (UNSPEC_FMA4_FMSUBADD): Remove.
6564         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
6565         * config/i386/sse.md (FMA4MODEF4): Remove.
6566         (FMAMODE): Add.
6567         (fma<mode>4): New expander.
6568         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
6569         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
6570         (*fma4i_fmsub_<mode>): Similarly.
6571         (*fma4i_fnmadd_<mode>): Similarly.
6572         (*fma4i_fnmsub_<mode>): Similarly.
6573         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
6574         with the first operand.
6575         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
6576         of explicit arithmetic.  Macroize with AVXMODEF2P.
6577         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
6578         (xop_frcz<mode>2): Macroize with FMAMODE.
6579         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
6580         the first operand.
6581         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
6582         extra negations.
6583         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
6584         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
6585         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
6586         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
6587         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
6588         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
6589         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
6590         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
6591
6592 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
6593
6594         PR rtl-optimization/45966
6595         * combine.c (try_combine): If added_sets_2, deal with the case
6596         where i0 feeds i1 and i1 feeds i2.
6597
6598 2010-10-18  Jan Hubicka  <jh@suse.cz>
6599
6600         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
6601         preserve flags before trying to guess on visibility.
6602         (varpool_externally_visible_p): New function.
6603         (function_and_variable_visibility): Use it.
6604
6605 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
6606
6607         Implemented parsing @synthesize and @dynamic for Objective-C.
6608         * c-parser.c (c_parser_external_declaration): Recognize
6609         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
6610         (c_parser_objc_at_synthesize_declaration): New.
6611         (c_parser_objc_at_dynamic_declaration): New.
6612
6613 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
6614
6615         * c-parser.c (c_parser_objc_class_declaration): After finding an
6616         error, parse the whole declaration then reset parser->error.
6617
6618 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
6619
6620         PR target/46041
6621         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
6622         * builtins.c (mode_has_fma): Ditto.
6623
6624 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
6625
6626         PR target/36898
6627         PR middle-end/43760
6628         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
6629
6630 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
6631
6632         * config/i386/i386.c (ix86_option_override_internal): Define and
6633         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
6634         default.
6635         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
6636         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
6637
6638 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
6639
6640         Merge from 'apple/trunk' branch on FSF servers.
6641         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
6642         following Objective-C change:
6643
6644         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
6645
6646         Radar 4301047
6647         * c-parse.in (objc_quals): Build objc qualifier list same way
6648         as gcc-3.3
6649
6650 2010-10-18  Jan Hubicka  <jh@suse.cz>
6651
6652         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
6653         function_and_variable_visibility): Revert accidental commit.
6654
6655 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
6656
6657         Merge from 'apple/trunk' branch on FSF servers.
6658         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
6659         the following Objective-C change:
6660
6661         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
6662
6663         Radar 4204796
6664         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
6665         'volatilized' type used in a typeof operator.
6666
6667 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
6668
6669         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
6670         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
6671         rewrite modelled on gimple_purge_dead_eh_edges.
6672         (gimple_purge_all_dead_abnormal_call_edges): New function.
6673         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
6674         directly instead of through gimple_purge_dead_abnormal_call_edges.
6675         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
6676         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
6677         removed AB side-effects from one of its statements.
6678         (init_pre): Initialize need_ab_cleanup.
6679         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
6680         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
6681
6682 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
6683
6684         PR c/46015
6685         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
6686         on computed goto argument.
6687
6688 2010-10-18  Richard Guenther  <rguenther@suse.de>
6689
6690         PR tree-optimization/45967
6691         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
6692         (could_have_pointers): Likewise.
6693         (handle_rhs_call, handle_const_call, handle_pure_call,
6694         find_func_aliases, intra_create_variable_infos): Remove calls to them.
6695         (struct fieldoff): Add must_have_pointers field.
6696         (type_must_have_pointers): New function.
6697         (field_must_have_pointers): Likewise.
6698         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
6699         Adjust field merging.
6700         (create_function_info_for): May-have-pointers of varinfo is
6701         almost always true.
6702         (create_variable_info_for_1): Likewise.
6703
6704 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
6705
6706         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
6707         of operands to vec_concat.
6708
6709 2010-10-18  Richard Guenther  <rguenther@suse.de>
6710
6711         PR lto/44950
6712         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
6713         also clear references to entries of it.
6714
6715 2010-10-18  Andi Kleen  <ak@linux.intel.com>
6716
6717         PR other/43448
6718         * gccbug.in: Remove.
6719         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
6720         (doc, distclean, install-common): Remove reference to gccbug.
6721         * configure: Regenerate.
6722         * configure.ac (all_outputs): Remove gccbug.
6723         * doc/configfiles.texi: Remove references to gccbug.
6724         * doc/sourcebuild.texi: Dito.
6725
6726 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
6727
6728         PR middle-end/46019
6729         * fold-const.c (fold_binary_loc): If integer_pow2p has
6730         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
6731
6732 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
6733             Jeremie Salvucci  <jeremie.salvucci@free.fr>
6734
6735         * gengtype.c (verbosity_level): Add variable.
6736         (set_gc_used): Count variables for verbosity.
6737         (close_output_files): Backing up files, counting written ones
6738         verbosily.
6739         (write_types): Count emitted functions for verbosity. Added
6740         debug messages.
6741         (write_enum_defn): Count structures for verbosity. Added debug
6742         messages.
6743         (gengtype_long_options): Add "verbose" & "backupdir".
6744         (print_usage): Ditto.
6745         (main): Verbose display of parsed files.
6746
6747         * gengtype.h (verbosity_level): Add declaration.
6748
6749 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
6750
6751         * gengtype.c (parse_program_options): Add allocation of
6752         plugin_files, and correct test on nb_plugin_files.
6753
6754 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
6755
6756         Merge from 'apple/trunk' branch on FSF servers.
6757
6758         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
6759
6760         Radar 4133425
6761         * c-decl.c (undeclared_variable): Issue diagnostic on
6762         private 'ivar' access.
6763
6764 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
6765
6766         PR target/46051
6767         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
6768         generated sequence to match *avx_vperm2f128<mode>_nozero.
6769         (vec_interleave_lowv4df): Ditto.
6770         (vec_interleave_highv8sf): Ditto.
6771         (vec_interleave_lowv8sf): Ditto.
6772
6773 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
6774
6775         * libgcov.c (create_file_directory): Enable it for win32 case.
6776         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
6777         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
6778         (GCOV_PREFIX_SKIP): Likewise.
6779
6780 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
6781
6782         * doc/objc.texi (GNU Objective-C runtime API): New section.
6783         (Modern GNU Objective-C runtime API): New section.
6784         (Traditional GNU Objective-C runtime API): New section.
6785         (Executing code before main): Mention that this section is
6786         specific to the GNU Objective-C runtime.
6787         (Garbage Collection): Same.
6788
6789 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
6790
6791         * c-parser.c (c_parser_for_statement): Move initialization of
6792         cond and incr before if.
6793
6794 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
6795
6796         * target.def (preferred_output_reload_class): New hook.
6797         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
6798         * doc/tm.texi: Regenerate.
6799         * targhooks.c (default_preferred_output_reload_class): New function.
6800         * targhooks.h (default_preferred_output_reload_class): Declare.
6801         * reload.c (find_dummy_reload): Change rclass argument type from
6802         enum reg_class to reg_class_t. Change this_alternative array type
6803         from enum reg_class to reg_class_t.
6804         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
6805         (push_reload): Change preferred_class variable type to reg_class_t.
6806         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
6807         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
6808         argument type from enum reg_class to reg_class_t. Use
6809         HARD_REGISTER_NUM_P predicate.
6810         * recog.h (reg_fits_class_p): Update prototype.
6811
6812         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
6813         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
6814         Remove.
6815         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
6816         static. Change regclass argument and result types from enum reg_class
6817         to reg_class_t.
6818         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
6819
6820 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
6821
6822         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
6823         visibility enum, and handle @package.
6824
6825 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
6826
6827         * doc/objc.texi (What you can and what you cannot do in +load):
6828         Document that sending messages to constant string objects in +load
6829         is not guaranteed to work.
6830
6831 2010-10-16  Jan Hubicka  <jh@suse.cz>
6832
6833         PR middle-end/44206
6834         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
6835         existence of refrences before removing the function.
6836
6837 2010-10-16  Jan Hubicka  <jh@suse.cz>
6838
6839         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
6840         only_called_at_startup and only_called_at_exit.
6841         (cgraph_propagate_frequency): Compute only_called_at_startup and
6842         only_called_at_exit.
6843         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
6844         only_called_at_exit.
6845         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
6846         flags.
6847         * predict.c (compute_function_frequency): Initialize the new flags.
6848
6849 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
6850
6851         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
6852         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
6853         on the bounds of its domain.
6854         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
6855
6856 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
6857
6858         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
6859         * config/avr/avr-protos.h (preferred_reload_class): Remove.
6860         * config/avr/avr.c (preferred_reload_class): Remove.
6861         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
6862         * config/pa/pa.c (emit_move_sequence): Update comment
6863         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
6864         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
6865         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
6866         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
6867         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
6868         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
6869         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
6870         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
6871         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
6872         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
6873         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
6874         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
6875         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
6876
6877 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
6878
6879         * opts.c (set_fast_math_flags,
6880         set_unsafe_math_optimizations_flags): Make static.
6881         * toplev.h (set_fast_math_flags,
6882         set_unsafe_math_optimizations_flags): Remove prototypes.
6883
6884 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
6885
6886         * config/arm/arm.c (arm_option_optimization): Set
6887         flag_section_anchors to 1 not 2.
6888         * config/i386/i386.c (ix86_option_override_internal): Check
6889         global_options_set.x_flag_zee and
6890         global_options_set.x_flag_omit_frame_pointer.
6891         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
6892         flag_zee to 2.
6893         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
6894         global_options_set.x_flag_omit_frame_pointer.
6895         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
6896         opts->x_flag_section_anchors to 1 not 2.
6897         * config/sh/sh.c (sh_option_optimization): Don't set
6898         flag_schedule_insns to 2.
6899         (sh_option_override): Check
6900         global_options_set.x_flag_schedule_insns.
6901         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
6902
6903 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
6904
6905         * configure.ac: Make sure inhibit_libc remains false for mingw targets
6906         as cross.
6907         * configure: Regenerated.
6908
6909 2010-10-15  Xinliang David Li  <davidxl@google.com>
6910
6911         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
6912         function.
6913         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
6914         into a recursive function.
6915
6916 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
6917
6918         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
6919         (*movdfcc_1): ditto.
6920
6921 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
6922
6923         * target.def (target_option.init_struct): New hook.
6924         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
6925         * doc/tm.texi: Regenerate.
6926         * hooks.c (hook_void_gcc_optionsp): New.
6927         * hooks.h (hook_void_gcc_optionsp): Declare.
6928         * langhooks-def.h (lhd_init_options_struct): Remove.
6929         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
6930         * langhooks.c (lhd_init_options_struct): Remove.
6931         * opts.c (init_options_struct): Also call
6932         targetm.target_option.init_struct.
6933         * config/i386/i386.c (ix86_option_init_struct,
6934         TARGET_OPTION_INIT_STRUCT): New.
6935         (ix86_option_optimization): Move some settings to
6936         ix86_option_init_struct.
6937         * config/pdp11/pdp11.c (pdp11_option_init_struct,
6938         TARGET_OPTION_INIT_STRUCT): New.
6939         (pdp11_option_optimization): Move some settings to
6940         pdp11_option_init_struct.
6941         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
6942         rs6000_option_init_struct.  Use options structure pointer.
6943         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
6944         * config/s390/s390.c (s390_option_init_struct,
6945         TARGET_OPTION_INIT_STRUCT): New.
6946         (s390_option_optimization): Don't set
6947         flag_asynchronous_unwind_tables here.
6948         * config/sh/sh.c (sh_option_init_struct,
6949         TARGET_OPTION_INIT_STRUCT): New.
6950         (sh_option_optimization): Don't set flag_finite_math_only here.
6951         * config/spu/spu.c (spu_option_optimization): Replace by
6952         spu_option_optimization.  Use options structure pointer.
6953         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
6954
6955 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6956
6957         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
6958
6959         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
6960         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
6961         (Standard names): Document fma.
6962
6963         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
6964         __FP_FAST_FMAF, __FP_FAST_FMAL.
6965
6966         * builitns.c (expand_builtin_mathfn_ternary): New function for
6967         expanding ternary math functions, like fma.
6968         (expand_builtin): Call it for the fma builtins.
6969
6970         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
6971         ops at present.
6972
6973         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
6974         vectorizable functions to support vectorizing fma.
6975
6976         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
6977         Handle fma builtins.
6978
6979         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
6980         (UNSPEC_VSX_MSUB): Ditto.
6981         (UNSPEC_VSX_NMADD): Ditto.
6982         (UNSPEC_VSX_NMSUB): Ditto.
6983         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
6984         of UNSPEC. Renumber combiner patterns.
6985         (vsx_fmsub<mode>4*): Ditto.
6986         (vsx_fnmadd<mode>4*): Ditto.
6987         (vsx_fnmsub<mode>4*): Ditto.
6988
6989         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
6990         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
6991         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
6992         (altivec_vmaddfp_1): Ditto.
6993         (altivec_vmaddfp_2): Ditto.
6994         (atlivec_mulv4sf3): Ditto.
6995         (altivec_vnmsubfp): Ditto.
6996         (altivec_vnmsubfp_1): Ditto.
6997         (altivec_vnmsubfp_2): Ditto.
6998         (altivec_vnmsubfp_3): Delete.
6999
7000         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
7001         (fmasf4_fpr): Ditto.
7002         (fmssf4_fpr): Ditto.
7003         (fnmasf4_fpr): Ditto.
7004         (fnmssf4_fpr): Ditto.
7005         (fmadf4): Ditto.
7006         (fmadf4_fpr): Ditto.
7007         (fmsdf4_fpr): Ditto.
7008         (fnmadf4_fpr): Ditto.
7009         (fnmsdf4_fpr): Ditto.
7010
7011         * optabs.h (OTI_fma): Add fma optab.
7012         (fma_optab): Ditto.
7013
7014         * genopinit.c (optabs): Set fma optab.
7015
7016         * rtl.def (FMA): Add FMA rtl.
7017
7018         * tree.h (mode_has_fma): New function to return if MODE supports a
7019         fast multiply and add instruction.
7020         * builtins.c (mode_has_fma): Ditto.
7021
7022 2010-10-15  Jan Hubicka  <jh@suse.cz>
7023
7024         * lto-streamer-out.c (write_symbol): Use pointer set of seen
7025         objects instead of bitmap.
7026         (produce_symtab): Likewise; output defined symbols first.
7027
7028 2010-10-15  Jie Zhang  <jie@codesourcery.com>
7029
7030         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
7031         Option Summary and Index.
7032
7033 2010-10-15  Richard Guenther  <rguenther@suse.de>
7034
7035         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
7036         for automatic variables again.
7037
7038 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7039
7040         * doc/extend.texi (Variable Length): Don't refer to VLAs not
7041         conforming to C99.
7042
7043 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7044
7045         * config/rx/rx.c (rx_option_optimization): Change to
7046         rx_override_options_after_change.  Don't change
7047         flag_lto_compression_level.  Don't check for changes to whether
7048         FPU instructions can be used.  Check and set only
7049         flag_finite_math_only, not other fast-math flags.
7050         (rx_option_override): Call rx_override_options_after_change.
7051         (TARGET_OPTION_OPTIMIZATION): Remove.
7052         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
7053
7054 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7055
7056         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
7057         disable section anchors for lang_hooks.name[4] != 'O'.
7058
7059 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7060
7061         * config/frv/frv.c (frv_option_optimization,
7062         TARGET_OPTION_OPTIMIZATION): Remove.
7063         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
7064
7065 2010-10-15  Michael Matz  <matz@suse.de>
7066
7067         * cgraphunit.c (clone_of_p): Define unconditionally.
7068
7069 2010-10-15  Richard Guenther  <rguenther@suse.de>
7070
7071         PR lto/45957
7072         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
7073
7074 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
7075
7076         * ifcvt.c (find_active_insn_before): New function.
7077         (find_active_insn_after): New function.
7078         (cond_exec_process_if_block): Use new functions to replace
7079         prev_active_insn() and next_active_insn().
7080
7081 2010-10-14  Yao Qi  <yao@codesourcery.com>
7082
7083         PR target/45447
7084         * config/arm/arm.c (arm_build_builtin_va_list): Assign
7085         va_list_name to TYPE_STUB_DECL (va_list_type).
7086
7087 2010-10-14  Jan Hubicka  <jh@suse.cz>
7088
7089         PR middle-end/45621
7090         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
7091         redirected to clone, be happy.
7092         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
7093         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
7094         former_clone_of unconditionally.
7095
7096 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7097
7098         Merge from FSF apple 'trunk' branch.
7099         2006 Fariborz Jahanian  <fjahanian@apple.com>
7100
7101         Radars 4436866, 4505126, 4506903, 4517826
7102         * c-parser.c (c_parser, objc_property_attr_context) New flag.
7103         (c_lex_one_token): Handle property attributes.
7104         (c_parser_external_declaration): Handle @property.
7105         (c_parser_declaration_or_fndef): Warn on invalid attributes before
7106         @alias, @class, @end and @property objc keywords.
7107         (c_parser_objc_methodprotolist): Handle @property.
7108         (c_parser_objc_property_attrlist): New.
7109         (c_parser_objc_at_property): New.
7110         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
7111         (build_modify_expr): Likewise.
7112
7113 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
7114
7115         PR tree-optimization/46008
7116         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
7117
7118 2010-10-14  Richard Guenther  <rguenther@suse.de>
7119
7120         PR tree-optimization/44913
7121         * tree-data-ref.c (disjoint_objects_p): Remove.
7122         (dr_may_alias_p): Simplify.  Only hand the base object to
7123         the alias-oracle.
7124         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
7125         some more trees, bail out instead of asserting.
7126         (ptr_derefs_may_alias_p): Likewise.  Export.
7127         (refs_may_alias_p_1): Handle STRING_CSTs.
7128         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
7129
7130 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
7131
7132         PR c/45969
7133         * c-typeck.c (build_binary_op): Don't try to compute a semantic
7134         type with excess precision for boolean operations.
7135
7136 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
7137             Basile Starynkevitch  <basile@starynkevitch.net>
7138
7139         * gengtype.c:  Include getopt.h and version.h.
7140
7141         (lang_bitmap, struct outf, outf_p)
7142         (get_output_file_with_visibility, oprintf): Definitions moved to
7143         gengtype.h
7144         (output_files, header_file, srcdir, srcdir_len, this_file)
7145         (do_dump): No more static variables.
7146         (do_debug): New.
7147         (dbgprint_count_type_at): Added new function.
7148         (gengtype_long_options): New.
7149         (print_usage, print_version, parse_program_options): New.
7150         (main): Call parse_program_options, and removed old option
7151         handling code.  Added some debug output.
7152
7153         * gengtype.h:  Updated copyright year.
7154         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
7155         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
7156         Moved from gengtype.c to here.
7157         (do_debug, read_state_filename, write_state_filename): New variables.
7158         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
7159
7160         * Makefile.in:
7161         (REVISION): Always defined.
7162         (version.o): Removed ifdef REVISION_c.
7163         (s-gtype): Pass arguments to build/gengtype program.
7164         (build/version.o): Added building rule.
7165         (build/gengtype$(build_exeext)): Added build/version.o.
7166
7167 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7168
7169         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
7170         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
7171         __strong macros.
7172
7173 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
7174
7175         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
7176         may_trap_or_fault_p instead of may_trap_p predicate.
7177         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
7178         (substitute_placeholder_in_expr): Likewise.
7179         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
7180         flag on MEM_REF nodes.
7181         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
7182         flags on INDIRECT_REF nodes.
7183
7184 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
7185
7186         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
7187         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
7188         (arm*-*-eabi*) <tm_file>: Likewise.
7189         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
7190         (frv-*-*linux*) <tm_file>: Likewise.
7191         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
7192         and associated helper macros.
7193         * config/frv/frv-abi.h: Delete.
7194
7195 2010-10-14  Richard Guenther  <rguenther@suse.de>
7196
7197         PR lto/44561
7198         * tree.def (NULLPTR_TYPE): New tree code.
7199         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
7200         * dwarf2out.c (is_base_type): Likewise.
7201         (gen_type_die_with_usage): Likewise.
7202         * sdbout.c (plain_type_1): Likewise.
7203         * tree.c (build_int_cst_wide): Likewise.
7204         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
7205
7206 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
7207
7208         * params.c (params_finished): New.
7209         (add_params): Assert !params_finished.
7210         (finish_params): New.
7211         (set_param_value_internal): Take params and params_set
7212         parameters.  Assert params_finished.
7213         (set_param_value, maybe_set_param_value): Take params and
7214         params_set parameters.  Update calls to set_param_value_internal.
7215         (set_default_param_value): Assert !params_finished.  Don't use
7216         set_param_value_internal.
7217         (default_param_value, init_param_values): New.
7218         * params.h (struct param_info): Change value to default_value.
7219         Remove set.
7220         (set_param_value, maybe_set_param_value): Add params and
7221         params_set parameters.
7222         (PARAM_VALUE): Get parameters from global_options.
7223         (PARAM_SET_P): Remove.
7224         (finish_params, default_param_value, init_param_values): New.
7225         * common.opt (param_values): New Variable.
7226         * config/arm/arm.c (arm_option_override): Pass extra arguments to
7227         maybe_set_param_value.
7228         * config/i386/i386.c (ix86_option_override_internal): Pass extra
7229         arguments to maybe_set_param_value.
7230         * config/picochip/picochip.c (picochip_option_override): Pass
7231         extra arguments to maybe_set_param_value.
7232         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
7233         extra arguments to maybe_set_param_value.
7234         * config/s390/s390.c (s390_option_override): Use
7235         maybe_set_param_value instead of set_param_value.  Pass extra
7236         arguments to maybe_set_param_value.
7237         * config/sparc/sparc.c (sparc_option_override): Pass extra
7238         arguments to maybe_set_param_value.
7239         * config/spu/spu.c (spu_option_override): Pass extra arguments to
7240         maybe_set_param_value.
7241         * opts.c (handle_param): Take opts and opts_set parameters.
7242         Update call to set_param_value.
7243         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
7244         initial_loop_invariant_max_bbs_in_loop): Remove.
7245         (init_options_once): Don't set them.
7246         (init_options_struct): Initialize parameters structures.
7247         (default_options_optimization): Use default_param_value when
7248         restoring defaults.  Update calls to maybe_set_param_value.
7249         (finish_options): Update calls to maybe_set_param_value.
7250         (common_handle_option): Update calls to handle_param and
7251         set_param_value.
7252         * toplev.c (DEFPARAM): Update definition for changes to param_info.
7253         (general_init): Call finish_params.
7254
7255 2010-10-14  Nick Clifton  <nickc@redhat.com>
7256
7257         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
7258         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
7259         (FIRST_PSEUDO_REGISTER): Increase by one.
7260         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
7261         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
7262         (MODES_TIEABLE): Call mn10300_modes_tieable.
7263         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
7264         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
7265         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
7266         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
7267         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
7268         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
7269         (mn10300_cc_status_mdep): Delete.
7270         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
7271         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
7272         the combine-stack-adjust pass.
7273         (print_operand): Use the mode of the comparison operation to
7274         select the comparison suffix.
7275         (notice_update_cc): Delete.
7276         (mn10300_secondary_reload_class): Remove test for stack pointer
7277         based arithmetic.
7278         (output_tst): Rename to mn10300_output_cmp.
7279         (impossible_plus_operand): Move into predicates.md.
7280         (mn10300_legitimize_address): Make static.
7281         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
7282         constant pic operands.
7283         (mn10300_legitimate_constant_p): New function.
7284         (mn10300_case_values_threshold): Make static.
7285         (mn10300_hard_regno_mode_ok): New function.
7286         (mn10300_modes_tieable): New function.
7287         (mn10300_select_cc_mode): New function.
7288         * config/mn10300/predicates.md (impossible_plus_operand): Define.
7289         * config/mn10300/mn10300-protos.h: Tidy.
7290         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
7291         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
7292         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
7293         with clobbers or sets of CC_REG.
7294         (CC_REG): Define.
7295         (mov*): Remove use of CLR instruction.
7296         (cbranch_si4_<code>): New pattern/split.
7297         (integer_conditional_branch): New pattern.
7298         (cbranch_sf4_<code>): New pattern/split.
7299         (float_conditional_branch): New pattern.
7300         (casesi): Use addsi3 pattern instead of movsi pattern to add and
7301         move a value at the same time.
7302         (cc0 peepholes): Remove.
7303
7304 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7305
7306         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
7307         on RTX_FRAME_RELATED_P insns and the insn to which
7308         NOTE_INSN_EPILOGUE_BEG is attached.
7309         * sched-vis.c (print_value): Allow NULL value.
7310
7311 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7312
7313         PR rtl-optimization/45570
7314         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
7315         assert that we are pipelining outer loops.  Allow returning
7316         zero predecessors.
7317
7318 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7319
7320         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
7321         (tidy_control_flow): Tidy vertical space.
7322         (sel_remove_bb): New variable idx.  Use it to remember the basic
7323         block index before deleting the block.
7324         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
7325         (sel_merge_blocks): ... here.
7326         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
7327
7328 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
7329
7330         * cse.c (is_dead_reg): Change into inline function that is not
7331         called through for_each_rtx.
7332         (set_live_p): Adjust caller.
7333         (insn_live_p): Don't reset DEBUG_INSNs here.
7334         (struct dead_debug_insn_data): New data.
7335         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
7336         (delete_trivially_dead_insns): If there is just one setter for the
7337         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
7338         and add DEBUG_INSN for it right before the removed setter and
7339         use the DEBUG_EXPR instead of the dead pseudo.
7340
7341 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
7342
7343         * et-forest.c (et_nca): Return NULL immediately when
7344         the dominance forest has disjoint components.
7345
7346 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
7347
7348         * ira.c (setup_class_hard_regs): Fix typo in indexing
7349         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
7350
7351 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
7352
7353         * graph.c (inbb): New variable.
7354         (start_bb): Set inbb to 1 if output is inside of a building block.
7355         (end_bb): Check if output is inside of a building block.
7356
7357 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
7358
7359         PR rtl-optimization/45912
7360         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
7361         regno of registers instead of their index to compute the alignment.
7362
7363 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
7364
7365         * config/i386/i386.c (ix86_build_const_vector): Check vector
7366         mode instead of scalar mode.
7367         (ix86_build_signbit_mask): Likewise.
7368         (ix86_expand_fp_absneg_operator): Updated.
7369         (ix86_expand_copysign): Likewise.
7370         (ix86_expand_int_vcond): Likewise.
7371         (ix86_emit_swdivsf): Likewise.
7372         (ix86_sse_copysign_to_positive): Likewise.
7373         (ix86_expand_sse_fabs): Likewise.
7374         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
7375         * config/i386/sse.md (copysign<mode>3): Likewise.
7376         (sse2_cvtudq2ps): Likewise.
7377         (vec_unpacku_float_hi_v4si): Likewise.
7378         (vec_unpacku_float_lo_v4si): Likewise.
7379
7380         * config/i386/i386.c (ix86_builtins): Add
7381         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
7382         (bdesc_args): Likewise.
7383         (ix86_builtin_vectorized_function): Support
7384         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
7385         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
7386         and IX86_BUILTIN_CVTPS2DQ256.
7387         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
7388
7389         * config/i386/sse.md (STORENT_MODE): New.
7390         (VEC_FLOAT_MODE): Likewise.
7391         (VEC_EXTRACT_MODE): Likewise.
7392         (*avx_cvtdq2pd256_2): Likewise.
7393         (vec_pack_trunc_v4df): Likewise.
7394         (vec_interleave_highv8sf): Likewise.
7395         (vec_interleave_lowv8sf): Likewise.
7396         (storent<mode>): Macroized.
7397         (<code><mode>2: absneg): Likewise.
7398         (copysign<mode>3): Likewise.
7399         (vec_extract<mode>): Likewise.
7400
7401         PR target/44180
7402         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
7403         for V8SFmode.
7404
7405 2010-10-13  Richard Guenther  <rguenther@suse.de>
7406             H.J. Lu  <hongjiu.lu@intel.com>
7407
7408         * config/i386/sse.md (reduc_splus_v8sf): Add.
7409         (reduc_splus_v4df): Likewise.
7410         (vec_unpacks_hi_v8sf): Likewise.
7411         (vec_unpacks_lo_v8sf): Likewise.
7412         (*avx_cvtps2pd256_2): Likewise.
7413         (vec_unpacks_float_hi_v8si): Likewise.
7414         (vec_unpacks_float_lo_v8si): Likewise.
7415         (vec_interleave_highv4df): Likewise.
7416         (vec_interleave_lowv4df): Likewise.
7417
7418 2010-10-13  Richard Guenther  <rguenther@suse.de>
7419
7420         PR objc/45878
7421         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
7422         alone if there are no virtual methods.
7423
7424 2010-10-13  Richard Henderson  <rth@redhat.com>
7425
7426         * expr.c (build_personality_function): Take parameter LANG instead
7427         of parameter NAME.  Build the name based on the lang prefix and the
7428         unwind method in use.
7429         * tree.c (lhd_gcc_personality): Update call to
7430         build_personality_function.
7431
7432 2010-10-13  Richard Guenther  <rguenther@suse.de>
7433
7434         PR objc/45878
7435         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
7436
7437 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
7438
7439         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
7440         Canonicalize input operands of ASM_OPERANDS insns.
7441
7442 2010-10-13  Richard Guenther  <rguenther@suse.de>
7443
7444         PR tree-optimization/45788
7445         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
7446         EH update until fixup-cfg.
7447
7448 2010-10-13  Julian Brown  <julian@codesourcery.com>
7449
7450         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
7451         from CORE_REGS and GENERAL_REGS classes.
7452         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
7453         final constraint for register preferencing.
7454
7455 2010-10-13  Richard Guenther  <rguenther@suse.de>
7456
7457         PR tree-optimization/45970
7458         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
7459         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
7460         (stmt_kills_ref_p): Likewise.
7461         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
7462
7463 2010-10-13  Richard Guenther  <rguenther@suse.de>
7464
7465         PR tree-optimization/45982
7466         * tree-ssa-structalias.c (make_constraints_to): New function.
7467         (make_constraint_to): Implement in terms of make_constraints_to.
7468         (find_func_aliases): Properly make return values of pure/const
7469         functions escape if they assign to sth that is not a pointer.
7470
7471 2010-10-13  Richard Guenther  <rguenther@suse.de>
7472
7473         PR middle-end/45874
7474         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
7475         Fixup the CFG when EH was fixed up.
7476
7477 2010-10-13  Ira Rosen  <irar@il.ibm.com>
7478
7479         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
7480         Use operand's type for POINTER_PLUS_EXPR.
7481
7482 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
7483
7484         * c-parser.c (c_parser_for_statement): Initialize incr.
7485
7486 2010-10-12  Xinliang David Li  <davidxl@google.com>
7487
7488         PR tree-optimization/45972
7489         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
7490         with too many arguments.
7491
7492 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
7493
7494         PR fortran/45636
7495         * tree-ssa-forwprop.c: Include expr.h.
7496         (constant_pointer_difference, simplify_builtin_call): New functions.
7497         (tree_ssa_forward_propagate_single_use_vars): Call
7498         simplify_builtin_call on builtin calls.
7499
7500 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
7501
7502         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
7503         (*adddi3_extend_sp32): Likewise.
7504         (*subdi3_insn_sp32): Likewise.
7505         (*subdi3_extend_sp32): Likewise.
7506         (*negdi2_sp32): Use negative test for consistency.
7507
7508 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
7509
7510         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
7511         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7512         * config/fixed-bit.h: Likewise.
7513         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7514         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7515         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
7516         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
7517         (DF_SIZE): Likewise.
7518         * doc/tm.texi: Regenerate.
7519
7520 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
7521
7522         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
7523         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
7524         (*isel_reversed_unsigned_<mode>): New.
7525         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
7526         as valid comparisons and adjust operands and output appropriately.
7527         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
7528
7529 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
7530
7531         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
7532         DATA_ALIGNMENT and add COND parameter. Update comments above.
7533         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
7534         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
7535
7536 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
7537
7538         PR bootstrap/45958
7539         * exec-tool.in: Support '-plugin' as the second option to the linker.
7540
7541 2010-10-12  Richard Henderson  <rth@redhat.com>
7542
7543         PR middle-end/45962
7544         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
7545         (expand_stack_vars): Assert large base allocated when used.
7546
7547 2010-10-12  Richard Guenther  <rguenther@suse.de>
7548
7549         * tree-ssa-structalias.c (get_constraint_for_1): Constants
7550         only point to nonlocal, not anything.
7551
7552 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
7553
7554         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
7555         unwind info for exceptions.
7556
7557 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7558
7559         PR testsuite/45851
7560         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
7561         Document optional target selector.
7562
7563 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
7564
7565         * flag-types.h: New.
7566         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
7567         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
7568         options.h.
7569         (OPTIONS_H): Define.
7570         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
7571         of options.h.
7572         * configure.ac (tm_include_list): Include options.h not flags.h.
7573         * configure: Regenerate.
7574         * flags.h: Include flag-types.h.  Include options.h at top of file
7575         again.
7576         (enum debug_info_type, enum debug_info_level, enum
7577         debug_info_usage, enum symbol_visibility, struct visibility_flags,
7578         enum ira_algorithm, enum ira_region, enum excess_precision, enum
7579         graph_dump_types, enum stack_check_type,
7580         enum warn_strict_overflow_code): Move to flag-types.h
7581         * opth-gen.awk: Include flag-types.h in options.h.
7582
7583 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
7584
7585         * expr.c (store_expr): Share code for STRING_CST and
7586         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
7587         check if target is a MEM.
7588
7589         * rtl.h: Include hashtab.h.
7590         (iterative_hash_rtx): New prototype.
7591         * rtl.c (iterative_hash_rtx): New function.
7592         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
7593         (output_loc_list): Return immediately if emitted is set, set it.
7594         (hash_loc_operands, hash_locs, hash_loc_list,
7595         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
7596         optimize_location_lists_1, optimize_location_lists): New function.
7597         (dwarf2out_finish): Call optimize_location_lists.
7598         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
7599
7600 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7601
7602         PR testsuite/45974
7603         Revert:
7604         * Makefile.in ($(lang_checks_parallel))
7605         ($(lang_checks_parallelized)): Use single quotes for
7606         $(RUNTESTFLAGS), to allow passing quoted content.
7607
7608 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7609
7610         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
7611         actual_oldval.  Use __builtin_expect.
7612         (SUBWORD_VAL_CAS): Likewise.
7613
7614 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
7615
7616         * recog.c (nonmemory_operand): Call immediate_operand for
7617         CONSTANT_P operands.
7618
7619 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
7620
7621         * config/i386/i386.md (movmem<mode>): Macroize expander from
7622         movmem{si,di} using SWI48 mode iterator.
7623         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
7624         *strmovsi_rex_1 using P mode iterator.
7625         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
7626         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
7627         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
7628         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
7629         (setmem<mode>): Macroize expander from setmem{si,di} using
7630         SWI48 mode iterator.
7631         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
7632         *strsetsi_rex_1 using P mode iterator.
7633         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
7634         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
7635         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
7636         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
7637         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
7638         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
7639         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
7640         mode iterator.
7641         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
7642         *strlenqi_rex_1 using P mode iterator.
7643
7644 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
7645
7646         PR bootstrap/45445
7647         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
7648         static functions.
7649         (mark_ref_live, mark_ref_dead): Use them.
7650         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
7651         Save the original reg, and use the new functions.
7652         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
7653         changed.
7654         (check_and_make_def_conflict): Save the original reg.
7655
7656 2010-10-11  Martin Jambor  <mjambor@suse.cz>
7657
7658         PR middle-end/45699
7659         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
7660         thunks.
7661
7662 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7663
7664         * Makefile.in ($(lang_checks_parallel))
7665         ($(lang_checks_parallelized)): Use single quotes for
7666         $(RUNTESTFLAGS), to allow passing quoted content.
7667
7668         PR bootstrap/35855
7669         * opt-functions.awk (BEGIN): New section.
7670         (lower, upper, digit, alnum): New variables.
7671         (static_var, opt_sanitized_name): Use alnum instead of character
7672         classes, for non-C locale.
7673         * optc-gen.awk: Likewise.
7674         * opth-gen.awk: Likewise.
7675
7676 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
7677
7678         * target.def (preferred_reload_class): New hook.
7679         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
7680         * doc/tm.texi: Regenerate.
7681         * targhooks.c (default_preferred_reload_class): New function.
7682         * targhooks.h (default_preferred_reload_class): Declare.
7683         * reload.c (find_dummy_reload): Change preferred_class variable type
7684         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
7685         target hook.
7686         (find_reloads): Change goal_alternative array type from int to
7687         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
7688         (push_reload, find_reloads_address_part): Use
7689         TARGET_PREFERRED_RELOAD_CLASS target hook.
7690         * reload1.c (emit_input_reload_insns): Ditto.
7691         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
7692         hook. Change rclass argument and secondary_class variable types from
7693         'enum reg_class' to reg_class_t.
7694
7695         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
7696         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
7697         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
7698         Change regclass argument and result types from enum reg_class to
7699         reg_class_t.
7700         (TARGET_PREFERRED_RELOAD_CLASS): Define.
7701
7702 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
7703
7704         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
7705         in masking operations.
7706         (simplify_const_unary_operation): Likewise.
7707         (simplify_binary_operation_1): Likewise.
7708         (simplify_const_binary_operation): Likewise.
7709         (simplify_const_relational_operation): Likewise.
7710         (simplify_ternary_operation): Likewise.
7711         (simplify_immed_subreg): Likewise.
7712
7713 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7714
7715         PR middle-end/45862
7716         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
7717         (TARGET_SUPPORTS_WEAK): New.
7718         * doc/tm.texi: Regenerate.
7719         * defaults.h (SUPPORTS_WEAK): Update comment.
7720         (TARGET_SUPPORTS_WEAK): New.
7721         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
7722         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
7723         SUPPORTS_WEAK.
7724         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
7725         make_decl_one_only): Likewise.
7726         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
7727         TARGET_SUPPORTS_WEAK.
7728         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
7729         instead of SUPPORTS_WEAK.
7730
7731 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7732
7733         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
7734
7735 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
7736
7737         * vec.h (VEC_qsort): Define.
7738         * dbxout.c (output_used_types): Use it.
7739         * df-scan.c (df_sort_and_compress_refs): Likewise.
7740         (df_sort_and_compress_mws): Likewise.
7741         * genautomata.c (uniq_sort_alt_states): Likewise.
7742         (evaluate_equiv_classes): Likewise.
7743         (output_trans_table): Likewise.
7744         (output_state): Likewise.
7745         * gimplify.c (compare_case_labels): Likewise.
7746         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
7747         * ipa.c (build_cdtor_fns): Likewise.
7748         * lto.c (lto_wpa_write_files): Likewise.
7749         * sel-sched.c (fill_vec_av_set): Likewise.
7750         * tree-predcom.c (determine_roots_comp): Likewise.
7751         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
7752         (splice_param_accesses): Likewise.
7753         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
7754         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
7755         (reassociate_bb): Likewise.
7756         * tree-ssa-sccvn.c (sort_scc): Likewise.
7757         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
7758
7759 2010-10-11  Ian Lance Taylor  <iant@google.com>
7760
7761         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
7762         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
7763         TREE_THIS_NOTRAP when appropriate.
7764         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
7765         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
7766         newly created MEM_REF.
7767
7768 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
7769
7770         Nathan Froyds patch to hooks FUNCTION_ARG etc.
7771         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
7772         (picochip_incoming_function_arg): Delete.
7773         (picochip_arg_advance): Delete.
7774         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
7775         (FUNCTION_INCOMING_ARG): Delete.
7776         (FUNCTION_ARG_ADVANCE): Delete.
7777         * config/picochip/picochip.c (picochip_function_arg): Take a
7778         const_tree and a bool.
7779         (picochip_incoming_function_arg): Likewise.
7780         (picochip_arg_advance): Likewise.
7781         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7782         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7783
7784 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7785
7786         PR middle-end/45955
7787         * ipa.c (build_cdtor): Delete endless loop.
7788
7789 2010-10-07  Andi Kleen  <ak@linux.intel.com>
7790
7791         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
7792         checksum-options.
7793         (checksum-options): Add.
7794         (cc1-dummy): Remove.
7795         (cc1-checksum): Change to run checksum over object files
7796         and options only.
7797         * dummy-checksum.c: Remove.
7798         * genchecksum.c: Update copyright.
7799         (usage): Allow multiple arguments.
7800         (BLOCKSIZE): Add.
7801         (dosum): Change for incremental checksum. Remove C output.
7802         (main): Iterate over all argument files. Add C output.
7803
7804 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
7805
7806         * params.c (set_param_value_internal): New.
7807         (set_param_value): Use set_param_value_internal.
7808         (maybe_set_param_value, set_default_param_value): New.
7809         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
7810         (maybe_set_param_value, set_default_param_value): Declare.
7811         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
7812         * config/i386/i386.c (ix86_option_override_internal): Use
7813         maybe_set_param_value.
7814         * config/ia64/ia64.c (ia64_option_default_params,
7815         TARGET_OPTION_DEFAULT_PARAMS): New.
7816         (ia64_option_optimization): Move some code to
7817         ia64_option_default_params.
7818         * config/picochip/picochip.c (picochip_option_override): Use
7819         maybe_set_param_value.
7820         * config/rs6000/rs6000.c (rs6000_option_default_params,
7821         TARGET_OPTION_DEFAULT_PARAMS): New.
7822         (rs6000_option_override_internal): Use maybe_set_param_value.
7823         (rs6000_option_optimization): Move some code to
7824         rs6000_option_default_params.
7825         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
7826         * config/sh/sh.c (sh_option_default_params,
7827         TARGET_OPTION_DEFAULT_PARAMS): New.
7828         (sh_option_optimization): Move some code to sh_option_default_params.
7829         * config/sparc/sparc.c (sparc_option_override): Use
7830         maybe_set_param_value.
7831         * config/spu/spu.c (spu_option_default_params,
7832         TARGET_OPTION_DEFAULT_PARAMS): New.
7833         (spu_option_optimization): Move some code to spu_option_default_params.
7834         (spu_option_override): Use maybe_set_param_value.
7835         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
7836         * doc/tm.texi: Regenerate.
7837         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
7838         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
7839         compiler_params.
7840         (default_options_optimization): Use maybe_set_param_value.
7841         (finish_options): Use maybe_set_param_value.
7842         * target.def (target_option.default_params): New hook.
7843         * toplev.c (general_init): Call targetm.target_option.default_params.
7844
7845 2010-10-11  Ira Rosen  <irar@il.ibm.com>
7846
7847         PR tree-optimization/45902
7848         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
7849         vector type for constants, unless it's a pointer.
7850
7851 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7852
7853         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
7854
7855 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
7856
7857         PR target/45870
7858         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
7859         (ix86_delegitimize_address): Use it.
7860
7861 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
7862
7863         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
7864
7865 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
7866
7867         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
7868         to cum struct in the call to function_arg_advance.
7869         (alpha_function_arg_advance): Mark named as unused.
7870
7871 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
7872
7873         * config/mips/mips.c (mips_handle_option): Make "value" with
7874         ATTRIBUTE_UNUSED.
7875
7876 2010-10-09  Richard Henderson  <rth@redhat.com>
7877
7878         PR rtl-opt/33721
7879         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
7880         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
7881         required_align, tidy the code a bit.  Emit split_stack code in the
7882         right place.  Mark the return value with the alignment properly.
7883         * expr.h (allocate_dynamic_stack_space): Update decl.
7884         * builtins.c (expand_builtin_apply): Update call to
7885         allocate_dynamic_stack_space.
7886         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
7887         * calls.c (initialize_argument_information): Update call to
7888         allocate_dynamic_stack_space.
7889         (expand_call): Likewise.
7890
7891         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
7892         Don't update_stack_alignment here.
7893         (alloc_stack_frame_space): Make ALIGN unsigned.
7894         (stack_var_cmp): Sort by alignment too.
7895         (partition_stack_vars): Don't merge large and small alignment vars.
7896         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
7897         Take care when BASE is not virtual_stack_vars_rtx.
7898         (expand_stack_vars): Allocate dynamic stack space for large
7899         alignment variables.
7900         (expand_one_stack_var): Update all to expand_one_stack_var_at.
7901         (defer_stack_allocation): True for large alignment vars.
7902         (update_stack_alignment): Merge into ...
7903         (expand_one_var): ... here.
7904         (gimple_expand_cfg): Place code from expand_stack_vars.
7905
7906 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7907
7908         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7909         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
7910         (pdp11_function_arg_advance): New function.
7911         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7912
7913 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7914
7915         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
7916         * libgcc2.c: Likewise.
7917
7918 2010-10-09  Richard Guenther  <rguenther@suse.de>
7919
7920         PR lto/45956
7921         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
7922         Properly check if a decl is an automatic var.
7923
7924 2010-10-09  Richard Guenther  <rguenther@suse.de>
7925
7926         PR lto/45947
7927         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
7928
7929 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7930
7931         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
7932         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7933         * config/mmix/mmix.c (mmix_function_arg): Rename to...
7934         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
7935         bool arguments.
7936         (mmix_function_arg): New function.
7937         (mmix_function_incoming_arg): New function.
7938         (mmix_function_arg_advance): New function.
7939         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7940         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7941
7942 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7943
7944         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7945         * config/vax/vax.c (vax_function_arg): New function.
7946         (vax_function_arg_advance): New function.
7947         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7948
7949 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7950
7951         * config/pa/pa-protos.h (function_arg): Delete.
7952         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7953         * config/pa/pa.c (function_arg): Rename to...
7954         (pa_function_arg): ...this.  Make static.  Take a const_tree and
7955         a bool.
7956         (pa_function_arg_advance): New function.
7957         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7958
7959 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7960
7961         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7962         * config/m68k/m68k.c (m68k_function_arg): New function.
7963         (m68k_function_arg_advance): New function.
7964         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7965
7966 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7967
7968         * config/avr/avr-protos.h (function_arg): Delete.
7969         (function_arg_advance): Delete.
7970         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7971         * config/avr/avr.c (function_arg): Rename to...
7972         (avr_function_arg): ...this.  Make static.  Take a const_tree and
7973         a bool.
7974         (function_arg_advance): Rename to...
7975         (avr_function_arg_advance): ...this.  Make static.  Take a
7976         const_tree and a bool.
7977         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7978
7979 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7980
7981         * config/alpha/alpha-protos.h (function_arg): Delete.
7982         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7983         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
7984         * config/alpha/alpha.c (function_arg): Rename to...
7985         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
7986         a bool.  Delete TARGET_ABI_UNICOSMK code.
7987         (alpha_function_arg_advance): New function.
7988         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7989
7990 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
7991
7992         * config/mep/mep-protos.h (mep_function_arg): Delete.
7993         (mep_function_arg_advance): Delete.
7994         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7995         * config/mep/mep.c (mep_function_arg): Make static.  Take a
7996         const_tree and a bool.
7997         (mep_function_arg_advance): Likewise.
7998         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7999
8000 2010-10-09  Richard Guenther  <rguenther@suse.de>
8001
8002         PR tree-optimization/45945
8003         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
8004
8005 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
8006
8007         PR tree-optimization/45612
8008         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
8009         Test LABEL_DECLs as well.  Fix formatting issues.
8010         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
8011         whose label is present in NON_SSA_VARS.
8012         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
8013         as well.  Fix formatting issues.
8014         (visit_bb): Fix typos and formatting issue.
8015
8016 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8017
8018         PR tree-optimization/45950
8019         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
8020         before initializing vno->op.
8021
8022 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
8023
8024         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
8025         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
8026
8027 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
8028
8029         PR target/45913
8030         * config/i386/i386.c (ix86_binary_operator_ok): Support
8031         "andhi/andsi/anddi" as a zero-extending move.
8032
8033 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8034
8035         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
8036         into a temporary array.
8037
8038 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
8039
8040         PR tree-optimization/45903
8041         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
8042         of {A,L}SHIFTRT of MEM.
8043
8044 2010-10-08  Richard Guenther  <rguenther@suse.de>
8045
8046         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
8047         Re-construct BLOCK_VARS.
8048         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
8049         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
8050         * tree.c (free_lang_data_in_block): Remove.
8051         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
8052         Do not touch the BLOCK tree.
8053         * expr.c (expand_expr_real_1): Allow externals.
8054
8055 2010-10-08  Richard Guenther  <rguenther@suse.de>
8056
8057         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
8058         Do not output BLOCK_SUBBLOCKS.
8059         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
8060         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
8061         Re-construct BLOCK_SUBBLOCKS of parent block.
8062         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
8063         for BINFO_BASE_ACCESSES.
8064
8065 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
8066
8067         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
8068         (TREE_H): Include $(FLAGS_H) instead of options.h.
8069         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
8070         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8071         * common.opt (flag_complex_method, flag_evaluation_order,
8072         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
8073         Variable declarations.
8074         * configure.ac (tm_include_list): Include flags.h instead of options.h.
8075         * configure: Regenerate.
8076         * flags.h: Condition out contents for target libraries.  Include
8077         options.h at end of file.
8078         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
8079         flag_evaluation_order, flag_warn_unused_result): Remove.
8080         * gcc.c (main): Intialize global_options with global_options_init.
8081         * langhooks-def.h (lhd_init_options_struct): Declare.
8082         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8083         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
8084         * langhooks.c (lhd_init_options_struct): New.
8085         * langhooks.h (struct lang_hooks): Add init_options_struct.
8086         Update comment on init_options.
8087         * optc-gen.awk: Generate initializer for global_options_init, not
8088         global_options.
8089         * opth-gen.awk: Condition out structure declarations for target
8090         libraries.  Declare global_options_init.
8091         * opts-common.c: Include flags.h instead of options.h.
8092         * opts.c (flag_warn_unused_result): Remove.
8093         (read_cmdline_options): Take gcc_options parameters.  Pass them to
8094         read_cmdline_option.
8095         (initial_lang_mask, initial_min_crossjump_insns,
8096         initial_max_fields_for_field_sensitive,
8097         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
8098         (init_options_once): New.  Split out of decode_options.
8099         (init_options_struct): New.  Split out of decode_options.
8100         (decode_cmdline_options_to_array_default_mask): New.
8101         (default_options_optimization): New.  Split out of decode_options.
8102         (decode_options): Move most code to other functions.  Update call
8103         to read_cmdline_options.
8104         (finish_options): New.  Split out of decode_options.
8105         * opts.h (decode_options): Add gcc_options parameters.
8106         (init_options_once, init_options_struct,
8107         decode_cmdline_options_to_array_default_mask): New.
8108         * toplev.c (flag_complex_method, flag_ira_algorithm,
8109         flag_ira_region, flag_evaluation_order): Remove.
8110         (general_init): Use global_options_init for initial flag values
8111         for global_dc.
8112         (toplev_main): Call init_options_once, init_options_struct,
8113         lang_hooks.init_options_struct,
8114         decode_cmdline_options_to_array_default_mask and
8115         lang_hooks.init_option before decode_options.  Update arguments to
8116         decode_options.
8117         * tree.h: Include flags.h instead of options.h.
8118
8119 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8120
8121         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8122
8123 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8124
8125         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
8126         Delete.
8127         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
8128         (FUNCTION_INCOMING_ARG): Delete.
8129         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
8130         (function_arg_slotno): Likewise.  Take bool arguments.
8131         (sparc_arg_partial_bytes): Update call to it.
8132         (function_arg): Rename to...
8133         (sparc_function_arg_1): ...this.  Take bool arguments.
8134         (sparc_function_arg, sparc_function_incoming_arg): New functions.
8135         (function_arg_advance): Rename to...
8136         (sparc_function_arg_advance): ...this.  Take bool argument.
8137         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
8138         (TARGET_FUNCTION_INCOMING_ARG): Define.
8139
8140 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8141
8142         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
8143         Delete.
8144         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8145         * config/bfin/bfin.c (function_arg_advance): Rename to...
8146         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
8147         and bool arguments.
8148         (function_arg): Rename to...
8149         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
8150         arguments.
8151         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8152
8153 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8154
8155         * config/score/score-protos.h (score_function_arg): Delete.
8156         (score_function_arg_advance): Delete.
8157         * config/score/score3.h (score3_function_arg_advance): Take a
8158         const_tree and a bool.
8159         (score3_function_arg): Likewise.
8160         * config/score/score7.h (score7_function_arg_advance): Likewise.
8161         (score7_function_arg): Likewise.
8162         * config/score/score3.c (score3_classify_arg): Likewise.
8163         (score3_function_arg_advance, score3_function_arg): Likewise.
8164         * config/score/score7.c (score7_classify_arg): Likewise.
8165         (score7_function_arg_advance, score7_function_arg): Likewise.
8166         * config/score/score.c (score_function_arg_advance): Likewise.
8167         (score_function_arg): Likewise.  De-const-ify `cum' argument.
8168         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8169
8170 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8171
8172         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
8173         (s390_function_arg): Delete.
8174         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8175         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
8176         (s390_function_arg_integer): Likewise.
8177         (s390_function_arg_advance): Make static.  Take a const_tree and
8178         a bool.
8179         (s390_function_arg): Likewise.
8180         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8181
8182 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8183
8184         * config/spu/spu-protos.h (spu_function_arg): Delete.
8185         * config/spu/spu.h (FUNCTION_ARG): Delete.
8186         (FUNCTION_ARG_ADVANCE): Move code to ...
8187         * config/spu/spu.c (spu_function_arg_advance): New function.
8188         (spu_function_arg): Make static.  Take a const_tree and a bool.
8189         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
8190         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8191
8192 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8193
8194         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8195
8196 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8197
8198         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
8199         (init_vn_nary_op_from_op): New function.
8200         (init_vn_nary_op_from_stmt): New function.
8201         (vn_nary_op_lookup_1): New function.
8202         (sizeof_vn_nary_op): New function.
8203         (alloc_vn_nary_op_noinit): New function.
8204         (alloc_vn_nary_op): New function.
8205         (vn_nary_op_insert_into): New function.
8206         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
8207         (vn_nary_op_lookup): Likewise.
8208         (vn_nary_op_lookup_stmt): Likewise.
8209         (vn_nary_op_insert_pieces): Likewise.
8210         (vn_nary_op_insert): Likewise.
8211         (vn_nary_op_insert_stmt): Likewise.
8212         (copy_nary): Likewise.
8213         (set_value_id_for_result): New function.
8214         (set_hashtable_value_ids): Call it.
8215
8216 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8217
8218         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8219         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
8220
8221 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8222
8223         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
8224         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8225
8226 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
8227
8228         PR debug/45656
8229         * cse.c (cse_extended_basic_block): Preserve cc0 info across
8230         debug isnsn.  Skip them when searching for cc0 setter.
8231         (set_live_p): Skip debug insns when searching for cc0 user.
8232
8233 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
8234
8235         PR debug/45673
8236         PR debug/45604
8237         PR debug/45419
8238         PR debug/45408
8239         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
8240         type of MEM_REFs to INTEGER_CSTs.
8241
8242 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
8243
8244         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
8245         m68hc11_print_operand_address.
8246
8247 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
8248
8249         * builtins.c (rewrite_call_expr): Move code to...
8250         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
8251         (rewrite_call_expr_array): New function.
8252         (fold_builtin_sprintf_chk_1): New function.
8253         (fold_builtin_sprintf_chk): Call it.
8254         (gimple_fold_builtin_sprintf_chk): Likewise.
8255         (fold_builtin_snprintf_chk_1): New function.
8256         (fold_builtin_snprintf_chk): Call it.
8257         (gimple_fold_builtin_snprintf_chk): Likewise.
8258         (gimple_rewrite_call_expr): Delete.
8259
8260 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8261
8262         * config.host: Update copyright year.
8263
8264 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8265
8266         * config.host (host_lto_plugin_soname): New shell variable.
8267         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
8268         * config.in: Regenerate.
8269         * configure: Regenerate.
8270         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
8271         LTO plugin shared library.
8272
8273 2010-10-07  Richard Henderson  <rth@redhat.com>
8274
8275         * target.h (enum unwind_info_type): Move ...
8276         * coretypes.h: ... here.
8277
8278 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
8279
8280         * doc/objc.texi (Fast enumeration protocol): Mention that
8281         'unsigned int' can also be used instead of 'unsigned long' in
8282         countByEnumeratingWithState:objects:count:.
8283
8284 2010-10-07  Martin Jambor  <mjambor@suse.cz>
8285
8286         * tree-sra.c (struct access): New field grp_assignment_write.
8287         (dump_access): Dump grp_assignment_write.
8288         (build_accesses_from_assign): Set grp_assignment_write.
8289         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
8290         (mark_read_status): Renamed to mark_rw_status, individual values
8291         renamed too.
8292         (analyze_access_subtree): Changed type of mark_write to
8293         mark_read_status.  Fixed propagating of mark_read and
8294         mark_write.  Changed benefit estimate.  Updated comment.
8295
8296 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
8297
8298         PR Tree-Vect/45847
8299         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
8300         check for vectype_out returned by get_vectype_for_scalar_type().
8301
8302 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
8303
8304         PR target/45805
8305         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
8306         constraint, add register specifier in instruction template.
8307         (neon_vec_pack_trunc_<mode>): Likewise.
8308         (neon_vec_<US>mult_<mode>): Add register specifier to
8309         instruction template.
8310
8311 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8312
8313         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
8314         cygwin2.o.
8315         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
8316         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
8317         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
8318         (cygwin2.o): Likewise.
8319         * config/i386/cygwin1.c: Delete file.
8320         * config/i386/cygwin2.c: Likewise.
8321         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
8322         make all {%!mno-cygwin} ones unconditional.
8323         (STARTFILE_SPEC): Likewise.
8324         (REAL_LIBGCC_SPEC): Likewise.
8325         (LIB_SPEC): Likewise.
8326         (CXX_WRAP_SPEC): Likewise.
8327         (LINK_SPEC): Likewise.
8328         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
8329         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
8330         (cygwin_gplusplus_include_dir): Delete now-unused array.
8331         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
8332         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
8333         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
8334         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
8335         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
8336         (cygwin_local_include_dir): Delete now-unused array.
8337         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
8338         (cygwin_cross_include_dir): Delete now-unused array.
8339         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
8340         (cygwin_tool_include_dir): Delete now-unused array.
8341         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
8342         (cygwin_standard_include_dir): Delete now-unused array.
8343         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
8344         (GEN_CVT_ARRAY): Delete now-unused macro definition.
8345         (cvt_to_mingw): Delete now-unused array.
8346         (mingw_scan): Remove prototype of deleted function.
8347         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
8348         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
8349         * doc/invoke.texi (-mcygwin): Don't document removed option.
8350         (-mno-cygwin): Likewise.
8351
8352 2010-10-07  Richard Guenther  <rguenther@suse.de>
8353
8354         * machmode.h (mode_for_vector): Declare.
8355         * stor-layout.c (mode_for_vector): New function, split out from ...
8356         (layout_type): ... here.
8357         * tree-vectorizer.h (current_vector_size): Declare.
8358         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
8359         mask vector type is available.
8360         (get_vectype_for_scalar_type): Rename to ...
8361         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
8362         size argument.
8363         (get_vectype_for_scalar_type): New wrapper around
8364         get_vectype_for_scalar_type_and_size using current_vector_size.
8365         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
8366         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
8367         of vect_analyze_loop here.
8368         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
8369         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
8370         to autodetect.
8371         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
8372         V8SF to V8SI conversion builtin.
8373
8374 2010-10-07  Richard Guenther  <rguenther@suse.de>
8375
8376         * target.def (autovectorize_vector_sizes): New target hook.
8377         * targhooks.c (default_autovectorize_vector_sizes): New function.
8378         * targhooks.h (default_autovectorize_vector_sizes): Declare.
8379         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
8380         Document.
8381         * doc/tm.texi: Update.
8382         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
8383         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8384
8385 2010-10-07  Richard Guenther  <rguenther@suse.de>
8386
8387         * target.def (units_per_simd_word): Rename to ...
8388         (preferred_simd_mode): ... this.  Return mode instead of size.
8389         * targhooks.c (default_units_per_simd_word): Rename to ...
8390         (default_preferred_simd_mode): ... this.  Return word_mode.
8391         * targhooks.h (default_preferred_simd_mode): Declare.
8392         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
8393         (arm_preferred_simd_mode): ... this.  Re-implement.
8394         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
8395         (ix86_preferred_simd_mode): ... this.  Re-implement.
8396         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
8397         (sparc_preferred_simd_mode): ... this.  Re-implement.
8398         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
8399         (mips_preferred_simd_mode): ... this.  Re-implement.
8400         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
8401         (rs6000_preferred_simd_mode): ... this.  Re-implement.
8402         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
8403         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
8404         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
8405         * doc/tm.texi: Update.
8406
8407 2010-10-07  Richard Guenther  <rguenther@suse.de>
8408
8409         PR middle-end/45869
8410         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
8411         of pointers.
8412
8413 2010-10-07  Alan Modra  <amodra@gmail.com>
8414
8415         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
8416         rather than sign extension by hand.
8417
8418 2010-10-07  Jan Hubicka  <jh@suse.cz>
8419
8420         PR middle-end/45926
8421         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
8422
8423 2010-10-07  Richard Guenther  <rguenther@suse.de>
8424
8425         PR bootstrap/45914
8426         * configure.ac: Fix typo.
8427         * configure: Regenerated.
8428
8429 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8430
8431         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
8432         define_builtin_std where it's unnecessary.
8433         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
8434
8435 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
8436
8437         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
8438         * doc/tm.texi.in: Regenerate.
8439         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
8440         * targhooks.c (default_class_likely_spilled_p): Don't use the
8441         CLASS_LIKELY_SPILLED_P macro.
8442
8443         * config/arm/arm.md: Update comment.
8444
8445 2010-10-06  Jan Hubicka  <jh@suse.cz>
8446
8447         * ipa.c (cgraph_remove_unreachable_nodes): External references can
8448         always be removed.
8449         (cgraph_externally_visible_p): We can not bring local comdats that
8450         are known to linker; fix handling of internal visibility.
8451         (function_and_variable_visibility): Likewise.
8452
8453 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
8454
8455         PR rtl-optimization/45394
8456         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
8457         (struct rtx_subst_pair): Remove AFTER field.
8458         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
8459         (propagate_for_debug): Remove MOVE parameter and adjust.
8460         (try_combine): In the special case where I2 is a PARALLEL, combine only
8461         destinations of SETs and set I2SRC to the I2 source.
8462         Adjust calls to propagate_for_debug throughout.
8463         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
8464         insns.
8465
8466 2010-10-06  Olivier Hainque  <hainque@adacore.com>
8467
8468         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
8469         switch on insn codes as sequence of ifs.
8470
8471 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
8472
8473         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
8474         be UI_NONE for picochip.
8475         (picochip_option_override): Do not disable exception flags.
8476         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
8477         Declare.
8478
8479 2010-10-06  Richard Guenther  <rguenther@suse.de>
8480
8481         * Makefile.in (regmove.o): Depend on $(TARGET_H).
8482
8483 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
8484
8485         Implemented fast enumeration for Objective-C.
8486         * c-parser.c (objc_could_be_foreach_context): New.
8487         (c_lex_one_token): Recognize RID_IN keyword in a potential
8488         Objective-C foreach context.
8489         (c_parser_declaration_or_fndef): Added parameter.  Accept
8490         Objective-C RID_IN keyword as terminating a declaration; in that
8491         case, return the declaration in the new parameter.
8492         (c_parser_extenral_declaration): Updated calls to
8493         c_parser_declaration_or_fndef.
8494         (c_parser_declaration_or_fndef): Same change.
8495         (c_parser_compound_statement_nostart): Same change.
8496         (c_parser_label): Same change.
8497         (c_parser_objc_methodprotolist): Same change.
8498         (c_parser_omp_for_loop): Same change.
8499         (c_parser_for_statement): Detect and parse Objective-C foreach
8500         statements.
8501         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
8502         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
8503         fast enumeration parsing code to turn off the c99 error but still
8504         perform checks on the loop declarations.
8505         * c-tree.h (check_for_loop_decls): Updated declaration.
8506         * doc/objc.texi: Document fast enumeration.
8507
8508 2010-10-06  Nick Clifton  <nickc@redhat.com>
8509
8510         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
8511         (MDR_REGNUM): Define.
8512         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
8513         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
8514         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
8515         (REGISTER_NAMES): Add MDR.
8516         (DWARF2_DEBUGGING_INFO): Define to 1.
8517         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8518         (F): New function.  Sets RTX_FRAME_RELATED_P.
8519         (mn10300_gen_multiple_store): Use F.
8520         (expand_prologue): Use F.  Use gen_movsf() to push floating
8521         point registers.
8522         (expand_epilogue): Use gen_movsf() to pop floating point registers.
8523         (mn10300_option_override): Disable combine stack adjust pass.
8524
8525 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
8526
8527         PR target/45901
8528         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
8529         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
8530
8531 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
8532
8533         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
8534         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
8535         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
8536         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
8537         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
8538         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
8539         BUILT_IN_TOUPPER): Mark as leaf.
8540
8541         PR middle-end/45838
8542         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
8543         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
8544         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
8545         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
8546         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
8547         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
8548         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
8549
8550 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
8551
8552         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
8553         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
8554         (m68hc11_class_likely_spilled_p): New function.
8555
8556 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
8557
8558         * c-parser.c (c_parser_objc_method_definition): Updated comment.
8559
8560 2010-10-05  Jan Hubicka  <jh@suse.cz>
8561
8562         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
8563         Document.
8564         * opts.c (decode_options): Handle lto partitions.
8565         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
8566         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
8567
8568 2010-10-05  Jan Hubicka  <jh@suse.cz>
8569
8570         * cgraphunit.c (assemble_function): Output thunks and aliases before
8571         the function itself.
8572
8573 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
8574
8575         * config/picochip/picochip.c (picochip_option_override): Disable
8576         exception flags for picochip.
8577
8578 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
8579
8580         * opts-common.c (handle_option, handle_generated_option,
8581         read_cmdline_option, set_option): Add diagnostic_context
8582         parameter.  Update calls among these functions.
8583         (set_option): Don't use global_dc.
8584         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
8585         (decode_options): Pass global_dc to enable_warning_as_error.
8586         (common_handle_option): Pass global_dc to enable_warning_as_error.
8587         (enable_warning_as_error): Add diagnostic_context parameter.
8588         Document parameters.  Don't use global_dc.  Pass
8589         diagnostic_context parameter to handle_generated_option.
8590         * opts.h (set_option, handle_option, handle_generated_option,
8591         read_cmdline_option, enable_warning_as_error): Add
8592         diagnostic_context parameter.
8593         * Makefile.in (lto-opts.o): Update dependencies.
8594         * coretypes.h (struct diagnostic_context, diagnostic_context):
8595         Declare here.
8596         * diagnostic.h (diagnostic_context): Don't declare typedef here.
8597         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
8598         * langhooks-def.h (struct diagnostic_context): Don't declare here.
8599         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
8600         using diagnostic_context typedef.
8601         * langhooks.c (lhd_initialize_diagnostics): Declare using
8602         diagnostic_context typedef.
8603         * langhooks.h (struct diagnostic_context): Don't declare here.
8604         (initialize_diagnostics, print_error_function): Declare using
8605         diagnostic_context typedef.
8606         * lto-opts.c: Include diagnostic.h.
8607         (lto_reissue_options): Pass global_dc to set_option.  Pass
8608         DK_UNSPECIFIED not 0.
8609         * plugin.c (plugins_internal_error_function): Declare using
8610         diagnostic_context typedef.
8611         * plugin.h (struct diagnostic_context): Don't declare here.
8612         (plugins_internal_error_function): Declare using
8613         diagnostic_context typedef.
8614
8615 2010-10-05  Olivier Hainque  <hainque@adacore.com>
8616             Nicolas Roche  <roche@adacore.com>
8617
8618         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
8619         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
8620
8621 2010-10-05  Ira Rosen  <irar@il.ibm.com>
8622
8623         PR tree-optimization/45752
8624         * tree-vect-slp.c (vect_get_mask_element): Remove static
8625         variables, make them function arguments.
8626         (vect_transform_slp_perm_load): Pass new arguments to
8627         vect_get_mask_element.
8628
8629 2010-10-05  Richard Guenther  <rguenther@suse.de>
8630
8631         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
8632         (gimple_mod_pow2): Likewise.
8633         (gimple_mod_subtract): Likewise.
8634         (gimple_ic): Likewise.
8635         (gimple_stringop_fixed_value): Likewise.
8636         * tree-profile.c (tree_init_edge_profiler): Mark profile
8637         functions nothrow and leaf.
8638         (add_abnormal_goto_call_edges): Remove.
8639         (tree_gen_edge_profiler): Work on SSA form.
8640         (tree_gen_ic_profiler): Likewise.  Simplify.
8641         (do_tree_profiling): Update SSA form.
8642         (pass_tree_profile): Remove.
8643         (do_tree_profiling): Likewise.
8644         (gate_tree_profile_ipa): New function.
8645         (pass_ipa_tree_profile): New.
8646         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
8647         state of instrumented functions.
8648         * passes.c (init_optimization_passes): Remove early non-SSA
8649         inlining.  Move profiling after early optimizations.
8650         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
8651         (pass_ipa_early_inline): Likewise.
8652         * tree-pass.h (pass_ipa_early_inline): Remove.
8653         (pass_tree_profile): Likewise.
8654         (pass_ipa_tree_profile): Declare.
8655
8656 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8657             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
8658
8659         * config/s390/s390.c (z196_cost): New.
8660         (s390_handle_arch_option): Add -march=z196.
8661         (s390_option_override): Use the new cost function and use the z10
8662         defaults also for z196.
8663         (legitimate_reload_constant_p): Adjust comment.
8664         (legitimate_reload_fp_constant_p): New function.
8665         (s390_preferred_reload_class): Distingiush between FP and Int constants.
8666         (preferred_la_operand_p): Avoid la with index on z196.
8667         (s390_adjust_priority): Trigger also for z196.
8668         (s390_issue_rate): Issue rate for z196 is 3.
8669         (s390_z10_fix_long_loop_prediction): Rename to ...
8670         (s390_fix_long_loop_prediction): ... this.
8671         (s390_reorg): Apply the z10 adjustments also for z196.
8672         (s390_loop_unroll_adjust): Do this also for z196.
8673         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
8674         (enum processor_flags): Add PF_Z196.
8675         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
8676         (TARGET_CPU_Z196, TARGET_Z196): New macros.
8677         * config.gcc: Enable z196 for --with-arch.
8678         * config/s390/2817.md: New file.
8679         * config/s390/2084.md: New type for multiply and add.
8680         * config/s390/2097.md: Likewise.
8681         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
8682         (UNSPECV_ATOMIC_OP): New constants.
8683         (fmadddf, fmaddsf): New values for type attribute.
8684         (z196prop): New insn attribute.
8685         (cpu, cpu_facility): Add z196.
8686         (ATOMIC_Z196): New code iterator.
8687         (noxa): New code attribute.
8688         (gk): New mode attribute.
8689         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
8690         Support load zero for fp constants.
8691         (fixuns_truncdddi2, fixuns_trunctddi2)
8692         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
8693         for z196.
8694         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
8695         (popcounthi2, popcountqi2): New expander.
8696         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
8697         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
8698         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
8699         insn definition.
8700         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
8701         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
8702         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
8703         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
8704         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
8705         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
8706         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
8707         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
8708         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
8709         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
8710         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
8711         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
8712         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
8713         Support new z196 instructions.
8714
8715 2010-10-05  Richard Guenther  <rguenther@suse.de>
8716
8717         PR middle-end/45877
8718         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
8719         case where gimplification optimizes away the stmt.
8720
8721 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
8722
8723         PR debug/45849
8724         * var-tracking.c (strip_pointer_flags): New function.
8725         (emit_note_insn_var_location): If rtx_equal_p check failed,
8726         retry on locations simplified with simplify_replace_fn_rtx
8727         and strip_pointer_flags as its callback.
8728
8729 2010-10-04  Jan Hubicka  <jh@suse.cz>
8730
8731         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
8732         (can_refer_decl_in_current_unit_p): ... this one; reverse return
8733         value; handle comdats too.
8734         (canonicalize_constructor_val): Use it; handle function_decls
8735         correctly.
8736         (gimple_fold_obj_type_ref_known_binfo): Likewise.
8737         * gimple.c (get_base_address): Accept all kinds of decls.
8738
8739 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
8740
8741         * flags.h (g_switch_value, g_switch_set): Remove.
8742         * opts.c (g_switch_value, g_switch_set): Remove.
8743         * config/g.opt (G): Add Var(g_switch_value).
8744         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
8745         (alpha_option_override): Check global_options_set.x_g_switch_value
8746         instead of g_switch_set.
8747         (alpha_in_small_data_p): Remove cast in comparison with
8748         g_switch_value.
8749         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
8750         g_switch_value to unsigned HOST_WIDE_INT.
8751         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
8752         with g_switch_value.
8753         (frv_handle_option): Don't handle -G here.
8754         (frv_option_override): Check global_options_set.x_g_switch_value
8755         instead of g_switch_set.  Don't modify g_switch_set.
8756         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
8757         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
8758         g_switch_value to unsigned HOST_WIDE_INT.
8759         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
8760         (ia64_option_override): Check global_options_set.x_g_switch_value
8761         instead of g_switch_set.
8762         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
8763         Remove.
8764         (lm32_in_small_data_p): Remove cast in comparison with
8765         g_switch_value.
8766         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
8767         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
8768         HOST_WIDE_INT.
8769         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
8770         (m32r_init): Check global_options_set.x_g_switch_value instead of
8771         g_switch_set.
8772         (m32r_in_small_data_p): Remove cast in comparison with
8773         g_switch_value.
8774         (m32r_file_start): Format g_switch_value with %d.
8775         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
8776         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
8777         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
8778         handle -G here.
8779         (microblaze_option_override): Check
8780         global_options_set.x_g_switch_value instead of g_switch_set.
8781         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
8782         (mips_option_override): Check global_options_set.x_g_switch_value
8783         instead of g_switch_set.
8784         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
8785         (rs6000_file_start): Format g_switch_value with %d.
8786         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
8787         comparisons with g_switch_value.
8788         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
8789         global_options_set.x_g_switch_value instead of g_switch_set.
8790         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
8791         global_options_set.x_g_switch_value instead of g_switch_set.
8792         * config/score/score.c (score_handle_option): Don't handle -G here.
8793         * config/score/score3.c (score3_option_override): Check
8794         global_options_set.x_g_switch_value instead of g_switch_set.
8795         * config/score/score7.c (score7_option_override): Check
8796         global_options_set.x_g_switch_value instead of g_switch_set.
8797
8798 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
8799
8800         * common.opt (fira-coalesce): Remove.
8801
8802         * doc/invoke.texi (flag_ira_coalesce): Remove.
8803
8804         * ira-color.c (allocno_coalesced_p): Move before
8805         copy_freq_compare_func.
8806         processed_coalesced_allocno_bitmap): Ditto.
8807         (update_conflict_hard_regno_costs): Don't use
8808         ALLOCNO_FIRST_COALESCED_ALLOCNO.
8809         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
8810         (assign_hard_reg): Assume no coalesced allocnos.
8811         (get_coalesced_allocnos_attributes): Remove.
8812         (bucket_allocno_compare_func): Assume no coalesced allocnos.
8813         (push_allocno_to_stack): Ditto.
8814         (remove_allocno_from_bucket_and_push): Use
8815         ira_print_expanded_allocno instead of print_coalesced_allocno.
8816         (push_allocnos_to_stack): Assume uncoalesced allocnos.
8817         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
8818         all_conflicting_hard_regs.
8819         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
8820         (setup_allocno_left_conflicts_size): Ditto.
8821         (put_allocno_into_bucket): Ditto.
8822         (copy_freq_compare_func): Remove.
8823         (copy_freq_compare_func, merge_allocnos): Move before
8824         coalesced_pseudo_reg_freq_compare.
8825         coalesced_allocno_conflict_p): Ditto.
8826         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
8827         parameter.  Assume it true.
8828         (color_allocnos): Assume uncoalesced allocnos.  Use
8829         ira_print_expanded_allocno instead of print_coalesced_allocno.
8830         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
8831         parameter.
8832
8833         * ira.c: Remove comment about coalescing.
8834
8835 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
8836
8837         * config/mips/mips.h (target_flags_explicit): Declare for
8838         GENERATOR_FILE.
8839
8840 2010-10-04  Andi Kleen  <ak@linux.intel.com>
8841
8842         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
8843         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
8844
8845 2010-10-04  Matthias Klose  <doko@ubuntu.com>
8846
8847         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
8848         multilib osdirname if it exists.
8849         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
8850
8851 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
8852
8853         PR middle-end/45876
8854         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
8855         arg0's type or its unsigned counterpart as utype.  Convert
8856         arg1 to utype unconditionally.
8857
8858 2010-10-04  Julian Brown  <julian@codesourcery.com>
8859
8860         * expr.c (expand_assignment): Add assertion to prevent emitting
8861         null rtx for movmisalign pattern.
8862         (expand_expr_real_1): Likewise.
8863         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
8864         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
8865         (arm_vector_alignment_reachable): New.
8866         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
8867         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
8868         (arm_print_operand): Include alignment qualifier in %A.
8869         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
8870         (movmisalign<mode>): New expander.
8871         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
8872         insn patterns.
8873
8874 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
8875
8876         * optc-gen.awk: Define global_options_set.  Don't define
8877         target_flags_explicit.
8878         * opth-gen.awk: Declare global_options_set.  Define
8879         target_flags_explicit as macro.
8880         * opts-common.c (handle_option): Take opts_set and generated_p
8881         parameters.
8882         (handle_generated_option, read_cmdline_option, set_option): Take
8883         opts_set parameter.
8884         (set_option): Use opts_set instead of hardcoding target_flags and
8885         target_flags_explicit.
8886         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
8887         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
8888         flag_value_profile_transformations_set, flag_peel_loops_set,
8889         flag_branch_probabilities_set, flag_inline_functions_set,
8890         flag_ipa_cp_set, flag_ipa_cp_clone_set,
8891         flag_predictive_commoning_set, flag_unswitch_loops_set,
8892         flag_gcse_after_reload_set): Remove.
8893         (common_handle_option, lang_handle_option, target_handle_option):
8894         Take opts_set parameter.  Assert that it is &global_options_set.
8895         (common_handle_option): Don't set _set variables.  Check opts_set
8896         instead of such variables.
8897         (enable_warning_as_error): Pass &global_options_set to
8898         handle_generated_option.
8899         * opts.h (cl_option_handler_func.handler, set_option,
8900         handle_option, handle_generated_option, read_cmdline_option): Add
8901         opts_set parameters.
8902         (handle_option): Add generated_p parameter.
8903         * config/i386/i386.c (ix86_function_specific_save,
8904         ix86_function_specific_restore): Updat for renaming of
8905         target_flags_explicit field.
8906         * config/i386/i386.opt (target_flags_explicit): Rename to
8907         ix86_target_flags_explicit.
8908         * config/ia64/ia64.c (ia64_override_options_after_change): Check
8909         global_options_set.x_flag_selective_scheduling and
8910         global_options_set.x_flag_selective_scheduling2, not
8911         sel_sched_switch_set.
8912         * flags.h (sel_sched_switch_set,
8913         flag_speculative_prefetching_set): Remove.
8914         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
8915         that it is &global_options_set.
8916         (process_command): Pass &global_options_set to read_cmdline_option.
8917         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
8918         set_option.
8919         * toplev.c (target_flags_explicit): Remove.
8920
8921 2010-10-04  Jan Hubicka  <jh@suse.cz>
8922
8923         PR middle-end/45871
8924         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
8925         use get_ref_base_and_offset to handle references.
8926         (fold_const_aggregate_ref): Update.
8927
8928 2010-10-04  Martin Jambor  <mjambor@suse.cz>
8929
8930         PR tree-optimization/45572
8931         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
8932         ipa_check_create_node_params.
8933         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
8934
8935 2010-10-04  Yao Qi  <yao@codesourcery.com>
8936
8937         * doc/passes.texi: Clean up.
8938
8939 2010-10-03  Ian Lance Taylor  <iant@google.com>
8940
8941         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
8942         referring to a field using a typedef name.
8943         (find_anonymous_field_with_type): New static function.
8944         (convert_to_anonymous_field): New static function.
8945         (convert_for_assignment): If -fplan9-extensions, permit converting
8946         pointer to struct to pointer to anonymous field.
8947         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
8948         (is_duplicate_field): New static function.
8949         (detect_field_duplicates_hash): If -fplan9-extensions, check for
8950         typedef names duplicating field names.
8951         (detect_field_duplicates): Likewise.
8952         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
8953         (C Dialect Options): Document -fplan9-extensions.
8954         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
8955
8956 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
8957
8958         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
8959         revision 164914.
8960         (vect_create_data_ref_ptr): Likewise.
8961         * tree-vect-stmts.c (vectorizable_store): Likewise.
8962         (perm_mask_for_reverse): Likewise.
8963         (reverse_vec_elements): Likewise.
8964         (vectorizable_load): Likewise.
8965
8966 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8967
8968         * cppbuiltin.c: New file.
8969         * cppbuiltin.h: New file.
8970         * Makefile.in: Take into account cppbuiltin.{h,c}.
8971
8972 2010-10-03  Andi Kleen  <ak@linux.intel.com>
8973
8974         * lto-cgraph.c (input_cgraph): Check for missing sections.
8975
8976 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
8977
8978         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
8979         to nonimmediate_operand.  Force operand 2 to register when allowed.
8980         (*<shiftrt_insn><mode>3_mask): Ditto.
8981         (*<rotate_insn><mode>3_mask): Ditto.
8982
8983 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
8984
8985         PR tree-optimization/45720
8986         PR tree-optimization/45764
8987         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
8988         Don't accept backwards consecutive accesses.
8989         (vect_create_data_ref_ptr): Disallow negative steps.
8990
8991         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
8992         (perm_mask_for_reverse): Removed.
8993         (reverse_vec_elements): Likewise.
8994         (vectorizable_load): Don't handle negative steps.
8995
8996 2010-10-02  Jan Hubicka  <jh@suse.cz>
8997
8998         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
8999         call destination is known.
9000
9001 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9002
9003         PR target/45820
9004         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
9005         earlier.
9006
9007 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9008
9009         * doc/install.texi (Configuration): Document build_configargs,
9010         host_configargs, target_configargs.
9011
9012 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
9013
9014         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
9015         (*<shiftrt_insn><mode>3_mask): Ditto.
9016         (*<rotate_insn><mode>3_mask): Ditto.
9017
9018 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
9019
9020         PR tree-optimization/44716
9021         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
9022         (HOT_TEXT_SECTION_NAME): Define.
9023
9024 2010-10-01  Nick Clifton  <nickc@redhat.com>
9025
9026         * common.opt: Add -fcombine-stack-adjustments.
9027         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
9028         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
9029         flag_combine_stack_adjustments.
9030         * doc/invoke.texi: Document the new option.
9031
9032 2010-10-01  Richard Guenther  <rguenther@suse.de>
9033
9034         PR tree-optimization/45854
9035         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
9036
9037 2010-10-01  Anthony Green  <green@moxielogic.com>
9038
9039         * config.gcc: Fix moxie-*-rtems* configuration.
9040
9041 2010-10-01  Richard Guenther  <rguenther@suse.de>
9042
9043         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
9044         (gen_decl_die): Likewise.
9045
9046 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9047
9048         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
9049         to the function code for SPU MD builtins.
9050         (spu_expand_builtin): Update.
9051         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
9052
9053 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9054
9055         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
9056         sjlj_except_unwind_info.
9057
9058 2010-10-01  Tristan Gingold  <gingold@adacore.com>
9059
9060         * configure.ac: Define the nop insn for avr*-*-*
9061         * configure: Regenerate.
9062
9063 2010-10-01  Alan Modra  <amodra@gmail.com>
9064
9065         PR target/45807
9066         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
9067         extend toc_restore_insn.
9068
9069 2010-09-30  Richard Guenther  <rguenther@suse.de>
9070
9071         PR tree-optimization/43959
9072         * function.c (gimplify_parameters): Use create_tmp_reg instead of
9073         create_tmp_var.
9074
9075 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
9076
9077         * config/sh/sh.c (sh_expand_prologue): Set
9078         current_function_static_stack_size.
9079
9080 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9081
9082         * configure.ac: Check for Solaris 8 ld with .hidden support.
9083         * configure: Regenerate.
9084
9085 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9086
9087         PR middle-end/45758
9088         * graphite.c (graphite_initialize): Call scev_reset.
9089
9090 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9091
9092         * sese.h (scev_analyzable_p): Return false for real or floating
9093         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
9094
9095 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9096
9097         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
9098         and ps.
9099         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
9100         domain.
9101         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
9102         Do not allocate ub_expr, it is passed in initialized.
9103
9104 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9105
9106         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
9107         (build_cloog_prog): Dump CLooG input file when
9108         flag_graphite_dump_cloog is set.  This is disabled on trunk.
9109         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
9110
9111 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9112
9113         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
9114         verify_dominators for CDI_POST_DOMINATORS.
9115         * sese.h: Remove comment about CDI_POST_DOMINATORS.
9116         (recompute_all_dominators): Remove call to free_dominance_info
9117         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
9118         for CDI_POST_DOMINATORS.
9119
9120 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9121
9122         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
9123         over pbb_dim_iter_domain.
9124
9125 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9126
9127         * graphite-flattening.c: Fix comments.
9128
9129 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9130
9131         * Makefile.in (OBJS-common): Add graphite-flattening.o.
9132         (graphite-flattening.o): New rule.
9133         * common.opt (floop-flatten): New flag.
9134         * doc/invoke.texi (-floop-flatten): Documented.
9135         * graphite-flattening.c: New.
9136         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
9137         * graphite-poly.h (flatten_all_loops): Declared.
9138         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
9139         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
9140         is set, also set flag_graphite.
9141
9142 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9143
9144         * graphite-poly.c (cloog_checksum): New.
9145         * graphite-poly.h (cloog_checksum): Declared.
9146
9147 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9148
9149         * graphite-poly.c (pbb_number_of_iterations): Removed.
9150         (pbb_number_of_iterations_at_time): Correctly compute the number
9151         of iterations in the transformed loop.
9152         * graphite-poly.h (pbb_number_of_iterations): Removed.
9153
9154 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9155
9156         * graphite-poly.h (lst_update_scattering_seq): Removed.
9157         (lst_update_scattering): Correctly handle outermost loop dewey
9158         renumbering.
9159
9160 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9161
9162         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
9163         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
9164         * graphite-poly.h (lst_niter_for_loop): New.
9165
9166 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9167
9168         * graphite-poly.c (apply_poly_transforms): Do not abort when the
9169         transform read from disk is not legal.  Call fatal_error instead.
9170
9171 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9172
9173         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
9174         (print_scop_header): Removed.  Inlined in the only call place...
9175         (print_scop): ... here.
9176
9177 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9178
9179         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
9180
9181 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9182
9183         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
9184
9185 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9186
9187         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
9188         (dot_deps_stmt): Same.
9189         * graphite-poly.c (dot_lst): Same.
9190
9191 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9192
9193         * graphite-blocking.c (scop_do_strip_mine): Do not call
9194         graphite_legal_transform.
9195         (scop_do_block): Same.
9196
9197 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
9198
9199         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
9200         description.
9201
9202 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9203
9204         * tree-scalar-evolution.c (instantiate_array_ref): New.
9205         (instantiate_scev_r): Also handle ARRAY_REFs.
9206
9207 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9208
9209         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
9210         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
9211         RESULT_DECL, and FIELD_DECL.  Return false for an
9212         SSA_NAME_IS_DEFAULT_DEF.
9213         (compute_scalar_evolution_in_loop): Do not further analyze the
9214         scalar evolution when no_evolution_in_loop_p returns true.
9215
9216 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9217
9218         * tree-chrec.h (evolution_function_is_affine_p): Do not check
9219         whether CHREC_LEFT is invariant.  A function is affine when
9220         CHREC_RIGHT is invariant.
9221
9222 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9223
9224         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
9225         is_gimple_reg.
9226         (rewrite_degenerate_phi): Same.
9227         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
9228
9229 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
9230
9231         * graphite-scop-detection.c (graphite_can_represent_scev,
9232         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
9233         graphite_can_represent_loop): Remove outermost_loop.
9234
9235 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9236
9237         PR middle-end/45229
9238         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
9239         handle GIMPLE_CALLs with no LHS.
9240
9241 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9242
9243         * graphite-poly.c (init_graphite_out_file): New.
9244         (init_graphite_in_file): New.
9245         (apply_poly_transforms): Updated to enable reading and writing of
9246         multiple scop files.
9247
9248 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
9249
9250         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
9251         redundant checks.
9252
9253 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9254
9255         * graphite-clast-to-gimple.c (precision_for_value): Adjust
9256         computation of precision by 1.
9257
9258 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9259
9260         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
9261         (openscop_read_polyhedron_matrix): New.
9262         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
9263         (openscop_read_N_int): Same.
9264         * graphite-poly.c (openscop_read_N_int): New.
9265         (openscop_read_one_int): New.
9266         (openscop_read_N_string): New.
9267         (openscop_read_one_string): New.
9268         (openscop_read_powerset_matrix): New.
9269         (graphite_read_transforms): Remove.
9270         (graphite_read_scatt): New.
9271         (graphite_read_scop_file): New.
9272         (apply_poly_transforms): Updated to call graphite_read_scop_file.
9273
9274 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9275
9276         * graphite-poly.c: Change include order.
9277
9278 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9279
9280         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
9281         (cloog_matrix_nrows): New.
9282
9283 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9284
9285         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
9286         from matrix lines.
9287         * graphite-poly.c (openscop_print_scattering_function_1): Same.
9288         (print_scattering_function_1): Same.
9289         (openscop_print_pbb_domain): Same.
9290         (openscop_print_scop_context): Same.
9291         (print_scop_context): Same.
9292
9293 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
9294
9295         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
9296         (openscop_print_pdr_polyhedron): Print pph.
9297
9298 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9299
9300         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
9301         priority signed types.
9302
9303 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9304
9305         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
9306         the call to lang_hooks.types.type_for_size.  Call
9307         build_nonstandard_integer_type.
9308
9309 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9310
9311         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
9312         (openscop_print_polyhedron_matrix): New.
9313         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
9314         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
9315         (openscop_print_pdr_powerset): New.
9316         (openscop_print_powerset_matrix): New.
9317         (openscop_print_scattering_function_1): New.
9318         (print_scattering_function): Add support for scattering names and
9319         OpenScop format.
9320         (graphite_write_transforms): Remove.
9321         (print_pdr_access_layout): Updated to support OpenScop format.
9322         (print_pdr): Same.
9323         (openscop_print_pbb_domain): New.
9324         (print_pbb_body): Added a parameter to allow indicating that pbb_body
9325         is not provided.
9326         (print_pbb): Updated to call the new print_pbb_body.
9327         (openscop_print_scop_context): New.
9328         (print_scop_header): New.
9329         (print_scop): Updated to call print_scop_header.
9330         * graphite-poly.h: Document OpenScop format.
9331
9332 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
9333
9334         * config/cris/m32c.c (cris_memory_move_cost): New.
9335         (cris_register_move_cost): Make static. Change arguments type from
9336         enum reg_class to reg_class_t.
9337         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
9338         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
9339         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
9340
9341 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
9342
9343         PR target/45843
9344         * config/i386/i386.c (ix86_gimplify_va_arg): Use
9345         INTVAL (XEXP (slot, 1)) as prev_size.
9346
9347 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
9348
9349         PR target/45837
9350         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
9351         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
9352         defined.
9353         * config/rs6000/option-defaults.h (toplevel): Change #if
9354         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
9355         global option changes.
9356
9357 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
9358
9359         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
9360
9361         PR tree-optimization/31261
9362         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
9363         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
9364
9365 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9366
9367         PR bootstrap/45796
9368         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
9369         special-casing for generators and turn into ...
9370         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
9371         rule, for better error messages in case of toplevel dependency errors.
9372         (genprog): Add hooks, rename to ...
9373         (genprogerr): ... this, and let genprog also contain check,
9374         checksum, condmd.
9375         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
9376         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
9377         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
9378
9379 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
9380             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9381
9382         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
9383         for GMP, MPFR and MPC.
9384
9385 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9386
9387         * config/sparc/sparc.opt (mimpure-text): Move ...
9388         * config/sol2.opt: ... here.  Correct description.
9389         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
9390         * doc/invoke.texi (Option Summary, SPARC Options): Move
9391         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
9392         (Option Summary, Solaris 2 Options): ... here.
9393         (Submodel Options, Solaris 2 Options): New menu entry.
9394         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
9395         (Solaris 2 Options): ... here.
9396
9397 2010-09-30  Michael Eager  <eager@eagercon.com>
9398
9399         * extend.texi (interrupt_handler): Add MicroBlaze to list.
9400         (save_volatiles): Describe option for MicroBlaze.
9401         * invoke.texi: Add MicroBlaze Options.
9402         * contrib.texi: Add acknowledgment.
9403         * md.texi: Add MicroBlaze d and z constraints.
9404         * install.texi: Add microblaze-*-elf.
9405         * configure.ac: Add microblaze-*-* to target list.
9406         * configure: Regenerate.
9407         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
9408         * config/microblaze/microblaze-protos.h: New.
9409         * config/microblaze/crti.s: New.
9410         * config/microblaze/predicates.md: New.
9411         * config/microblaze/linux.h: New.
9412         * config/microblaze/microblaze.md: New.
9413         * config/microblaze/constraints.md: New.
9414         * config/microblaze/crtn.s: New.
9415         * config/microblaze/microblaze.opt: New.
9416         * config/microblaze/microblaze-c.c: New.
9417         * config/microblaze/t-microblaze: New.
9418         * config/microblaze/microblaze.c: New.
9419         * config/microblaze/microblaze.h: New.
9420
9421 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
9422
9423         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
9424         parse @optional/@required and set the flags as appropriate.
9425
9426 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
9427
9428         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
9429
9430 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
9431
9432         * opt-functions.awk (static_var): Update comment.
9433         (var_ref): Return offsetof expression or -1, not variable address.
9434         * optc-gen.awk: Generate structure field initializers instead of
9435         static variables.  Expect -1 for missing variables instead of null
9436         pointer.  Add gcc_options parameters to generated functions.
9437         * opth-gen.awk: Generate structure fields for static variables.
9438         Add gcc_options parameters to generated functions.
9439         * common.opt (optimize, optimize_size): Add variables.
9440         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
9441         &global_options to cl_target_option_restore.
9442         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
9443         &global_options to cl_optimization_restore, cl_target_option_save
9444         and cl_target_option_restore.
9445         (ix86_set_current_function): Pass &global_options to
9446         cl_target_option_restore.
9447         * config/pdp11/pdp11.h (optimize): Remove.
9448         * config/rs6000/rs6000.h (optimize): Remove.
9449         * config/sh/sh.h (optimize): Remove.
9450         * config/xtensa/xtensa.h (optimize): Remove.
9451         * coretypes.h (struct gcc_options): Declare.
9452         * diagnostic.c (diagnostic_initialize): Initialize
9453         context->option_state.
9454         (diagnostic_report_diagnostic): Pass option_state to
9455         option_enabled hook.
9456         * diagnostic.h (diagnostic_context.option_enabled): Add void *
9457         parameter.
9458         (diagnostic_context.option_state): New field.
9459         * final.c (final_start_function, final, final_scan_insn): Rename
9460         optimize parameter to optimize_p.
9461         * flags.h (optimize, optimize_size): Remove.
9462         * function.c (invoke_set_current_function_hook): Pass
9463         &global_options to cl_optimization_restore.
9464         * gcc.c (driver_handle_option): Take gcc_options parameter.
9465         Assert that it is &global_options.
9466         (process_command): Pass &global_options to read_cmdline_option.
9467         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
9468         option_enabled.
9469         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
9470         &global_options to set_option.
9471         * opts-common.c (handle_option, handle_generated_option,
9472         read_cmdline_option, set_option): Take explicit gcc_options
9473         parameters.  Use option_flag_var.
9474         (option_flag_var): New.
9475         * opts.c (common_handle_option, lang_handle_option,
9476         target_handle_option): Take gcc_options parameter.  Assert that it
9477         is &global_options.
9478         (read_cmdline_options): Pass &global_options to read_cmdline_option.
9479         (print_filtered_help): Use option_flag_var.  Pass &global_options
9480         to option_enabled.
9481         (common_handle_option): Use option_flag_var.
9482         (option_enabled): Take opts parameter.  Use option_flag_var.
9483         (get_option_state): Take gcc_options parameter.  Use
9484         option_flag_var.  Pass gcc_options parameter to option_enabled.
9485         (enable_warning_as_error): Pass &global_options to
9486         handle_generated_option.
9487         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
9488         (cl_option_handler_func.handler): Take gcc_options parameter.
9489         (option_enabled, get_option_state, set_option, handle_option,
9490         handle_generated_option, read_cmdline_option): Take gcc_options
9491         parameters.
9492         * toplev.c (optimize, optimize_size): Remove.
9493         (print_switch_values): Pass &global_options to option_enabled.
9494         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
9495         to get_option_state.
9496         (general_init): Initialize global_dc->option_state.
9497         * tree.c (build_optimization_node): Pass &global_options to
9498         cl_optimization_save.
9499         (build_target_option_node): Pass &global_options to
9500         cl_target_option_save.
9501
9502 2010-09-30  Martin Jambor  <mjambor@suse.cz>
9503
9504         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
9505         zero sized bit-fields.
9506
9507 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
9508
9509         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
9510         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
9511         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
9512         (c_parser_objc_class_declaration): Same change.
9513         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
9514         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
9515         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
9516         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
9517         and RID_AT_PUBLIC instead of RID_PUBLIC.
9518         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
9519         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
9520
9521 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
9522
9523         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
9524         Add links to current providers of packages for Solaris and IRIX.
9525
9526 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
9527
9528         Merge from 'apple/trunk' branch on FSF servers.
9529         * c-parser.c: Applied change originally in c-parse.in.
9530
9531         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
9532
9533         Radar 4281748
9534         * c-decl.c (start_decl): Check for redeclaration of class name.
9535         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
9536
9537 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
9538
9539         * config/ia64/ia64.c (ia64_builtin_decl): New.
9540         (TARGET_BUILTIN_DECL): Define.
9541         (ia64_builtins): New.
9542         (ia64_init_builtins): Save decls in ia64_builtins.
9543
9544 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
9545
9546         PR target/40457
9547         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
9548         (move2add_use_add3_insn): Likewise.
9549         (reload_cse_move2add): Likewise.
9550         * rtlanal.c (get_full_rtx_cost): New function.
9551         * rtl.h (struct full_rtx_costs): New.
9552         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
9553         costs_add_n_insns): New inline functions.
9554         (get_full_rtx_cost): Declare.
9555
9556         PR c/45054
9557         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
9558         invariants.  Check for reg_equiv_invariant.
9559         (reload): Assert that spilled_pseudos is empty when returning.
9560
9561 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
9562
9563         * config/i386/mingw32.h (TARGET_64BIT): replaced by
9564         TARGET_64BIT_DEFAULT in #if check.
9565
9566 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
9567
9568         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
9569
9570 2010-09-29  Mike Stump  <mikestump@comcast.net>
9571
9572         * config/darwin.h (flag_mkernel): Remove.
9573         (flag_apple_kext): Likewise.
9574
9575 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
9576             Jack Howarth  <howarth@bromo.med.uc.edu>
9577
9578         * config/darwin.opt (undefined): Add.
9579
9580 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
9581
9582         PR testsuite/45664
9583         * configure.ac: Add --enable-indirect-function option.
9584         * config.gcc: Add default_gnu_indirect_function.
9585         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
9586         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
9587         * varasm.c (do_assemble_alias): Adjust for macro name change.
9588         * configure: Rebuilt.
9589         * doc/install.texi: Document --enable-indirect-function.
9590
9591 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
9592
9593         * doc/options.texi (Variable, Var, Init): Update documentation
9594         without reference to VarExists.
9595         (VarExists): Remove.
9596         * common.opt, config/i386/i386.opt, config/linux.opt,
9597         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
9598         Don't use VarExists.
9599
9600 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
9601
9602         * optc-gen.awk: Generate global_options initializer instead of
9603         individual variables.  Add x_ prefix to names of structure members.
9604         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
9605         names of structure members.
9606         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
9607         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
9608         * doc/tm.texi: Regenerate.
9609         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
9610         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
9611         * c-parser.c (disable_extension_diagnostics,
9612         restore_extension_diagnostics): Update names of cpp_options members.
9613         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
9614         * common.opt (fcompare-debug-second): Don't use Var.
9615         * config/alpha/alpha.h (target_flags): Remove.
9616         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
9617         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
9618         * config/bfin/bfin.h (target_flags): Remove.
9619         * config/cris/cris.h (target_flags): Remove.
9620         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
9621         cl_target_option members.
9622         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
9623         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
9624         ix86_can_inline_p): Update names of cl_target_option members.
9625         * config/i386/i386.h (ix86_isa_flags): Remove.
9626         * config/lm32/lm32.h (target_flags): Remove.
9627         * config/mcore/mcore.h (mcore_stack_increment): Remove.
9628         * config/mcore/mcore.md (addsi3): Remove extern declaration of
9629         flag_omit_frame_pointer.
9630         * config/mep/mep.h (target_flags): Remove.
9631         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
9632         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
9633         * config/mmix/mmix.h (target_flags): Remove.
9634         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
9635         flag_expensive_optimizations): Remove.
9636         * config/s390/s390.h (flag_pic): Remove.
9637         * config/score/score-conv.h (target_flags): Remove.
9638         * config/sh/sh.h (sh_fixed_range_str): Remove.
9639         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
9640         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
9641         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9642         * diagnostic.c (diagnostic_initialize): Update names of
9643         diagnostic_context members.
9644         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
9645         warn_system_headers.
9646         (diagnostic_report_warnings_p): Update for new names.
9647         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
9648         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
9649         HARD_FRAME_POINTER_IS_ARG_POINTER.
9650         * flags.h (flag_compare_debug): Declare.
9651         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
9652         * opts.c (flag_compare_debug): Define.
9653         (common_handle_option): Update names of diagnostic_context
9654         members.  Handle -fcompare-debug-second.
9655         (fast_math_flags_struct_set_p): Update names of cl_optimization
9656         members.
9657         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9658         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9659         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9660         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9661         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
9662         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
9663         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
9664         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
9665         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
9666
9667 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
9668
9669         * config/picochip/picochip.c (picochip_output_internal_label):
9670         This function can now be called for debug CFI labels, which can come
9671         in the middle of a vliw instruction.  Postpone until end of vliw.
9672
9673 2010-09-29  Richard Guenther  <rguenther@suse.de>
9674
9675         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
9676         (DECL_FILE_SCOPE_P): Use it.
9677         (TYPE_FILE_SCOPE_P): New macro.
9678
9679 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
9680
9681         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
9682         a CPP_NAME which is a reserved word, clearly separate cases for
9683         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
9684
9685 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
9686
9687         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
9688         token->value with the canonical spelling.  Do exactly like C and
9689         C++ and leave it as it is.
9690
9691 2010-09-28  Richard Henderson  <rth@redhat.com>
9692
9693         * config/alpha/alpha.c (alpha_builtins): New.
9694         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
9695         (alpha_builtin_function): New.
9696         (alpha_add_builtins, alpha_init_builtins): Use it.
9697
9698 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
9699
9700         * doc/standards.texi (Standards): Expanded the section on
9701         Objective-C and Objective-C++.
9702
9703 2010-09-28  DJ Delorie  <dj@redhat.com>
9704
9705         PR target/45800
9706         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
9707         volatile MEMs.
9708
9709 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
9710
9711         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
9712         attributes on methods.
9713          (c_parser_objc_method_definition): Handle attributes.
9714         (c_parser_objc_methodproto): Likewise.
9715         (c_parser_objc_maybe_method_attributes): New.
9716         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
9717         missing definition, similar to that in ObjC++.
9718
9719 2010-09-28  Richard Henderson  <rth@redhat.com>
9720
9721         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
9722         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
9723         (CONFIG_SJLJ_EXCEPTIONS): Remove.
9724         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
9725         (STACK_CHECK_PROTECT): Likewise.
9726         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
9727         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
9728         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
9729         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
9730         (dwarf2out_assembly_start): Likewise.
9731         * except.c (init_eh): Use targetm.except_unwind_info.
9732         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
9733         (output_one_function_exception_table): Likewise.
9734         * final.c: Unconditionally include dwarf2out.h.
9735         (final_start_function): Unconditionally call dwarf2out routines.
9736         (final_end_function, final_scan_insn): Likewise.
9737         * function.c (expand_function_end): Use targetm.except_unwind_info.
9738         * opts.c (decode_options): Use targetm.except_unwind_info.
9739         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
9740         * target.def (debug_unwind_info, except_unwind_info): New.
9741         * target.h (enum unwind_info_type): New.
9742         * targhooks.c (default_debug_unwind_info): New.
9743         (default_except_unwind_info): New.
9744         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
9745         * targhooks.h: Declare them.
9746         * tree-tailcall.c: Include "target.h"
9747         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
9748         * Makefile.in (tree-tailcall.o): Update.
9749         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
9750         (lhd_gcc_personality): Likewise.
9751
9752         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
9753         (TARGET_EXCEPT_UNWIND_INFO): New.
9754         (DWARF2_UNWIND_INFO): Update.
9755         (TARGET_DEBUG_UNWIND_INFO): New.
9756         * doc/tm.texi: Rebuild.
9757
9758         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
9759         targetm.except_unwind_info.
9760
9761         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
9762         (arm_except_unwind_info): New.
9763         (arm_compute_func_type): Use it.
9764         (arm_expand_prologue, thumb_pushpop): Likewise.
9765         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
9766         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
9767         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
9768         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
9769         (DWARF2_UNWIND_INFO): Remove.
9770         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
9771         (ARM_EABI_UNWIND_TABLES): Remove.
9772
9773         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
9774         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
9775         (ia64_except_unwind_info): New.
9776         (ia64_output_function_prologue): Use it.
9777         (ia64_add_bundle_selector_before): Likewise.
9778         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
9779         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
9780         (TARGET_UNWIND_INFO): Remove.
9781
9782         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
9783
9784 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
9785
9786         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
9787         (c_parser_objc_protocol_definition): Likewise.
9788         (c_parser_external_declaration): Provide dummy attribute arguments.
9789         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
9790         (c_parser_objc_class_definition): Handle attributes.
9791         (c_parser_objc_protocol_definition): Likewise.
9792
9793 2010-09-28  Tobias Burnus  <burnus@net-b.de>
9794
9795         PR fortran/40569
9796         PR fortran/40568
9797         * toplev.h (save_decoded_options, save_decoded_options_count):
9798         New global variables.
9799         * toplev.c (save_decoded_options, save_decoded_options_count):
9800         Export variables.
9801
9802 2010-09-28  Ian Lance Taylor  <iant@google.com>
9803
9804         * config/i386/i386.c (ix86_supports_split_stack): Test
9805         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
9806
9807 2010-09-28  Ian Lance Taylor  <iant@google.com>
9808
9809         PR target/45815
9810         * opts.c (decode_options): Don't test whether the target supports
9811         split stack if flag_split_stack == 0.
9812
9813 2010-09-28  Jan Hubicka  <jh@suse.cz>
9814
9815         * builtin-attrs.def (ATTR_LEAF): New attribute.
9816         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
9817         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
9818         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
9819         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
9820         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
9821         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
9822         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
9823         * sync-builtins.def: Annotate all builtins by leaf.
9824         * omp-builtins.def: Annotate all builtins by leaf.
9825         * builtins.def: Annotate relevant builtins with leaf attribute.
9826         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
9827         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
9828         leaf.
9829
9830 2010-09-28  Jan Hubicka  <jh@suse.cz>
9831
9832         * tree-ssa-ccp.c (fold_ctor_reference): New function.
9833         (fold_const_aggregate_ref): Use it.
9834         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
9835         into external static.
9836
9837 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9838
9839         PR target/44452
9840         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
9841         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
9842         (ix86_solaris_return_in_memory): Remove.
9843         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
9844         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
9845         (TARGET_SUBTARGET_DEFAULT): Redefine.
9846         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
9847         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
9848         (TARGET_SUBTARGET_DEFAULT): Redefine.
9849         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
9850         -mvect8-ret-in-mem.
9851         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
9852
9853 2010-09-29  Alan Modra  <amodra@gmail.com>
9854
9855         PR target/45807
9856         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
9857         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
9858         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
9859         Delete.
9860         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
9861         (rs6000_emit_prologue): Don't just create frame save info for r2,
9862         actually save r2.
9863
9864 2010-09-28  Richard Henderson  <rth@redhat.com>
9865
9866         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
9867         when 8 bytes are requested.
9868
9869 2010-09-28  Tristan Gingold  <gingold@adacore.com>
9870
9871         * config/avr/avr.c (expand_prologue): Set
9872         current_function_static_stack_size.
9873
9874 2010-09-28  Tristan Gingold  <gingold@adacore.com>
9875
9876         * config/alpha/alpha.md: Change the initial condition of the
9877         probing loop.
9878
9879 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
9880
9881         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
9882         Split from *avx_<maxmin:code><mode>3.
9883         (*avx_<smaxmin:code><mode>3): Ditto.
9884         * config/i386/i386.md (maxmin): Remove code iterator.
9885
9886 2010-09-27  Ian Lance Taylor  <iant@google.com>
9887
9888         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
9889         requires assembler support for CFI directives.
9890
9891 2010-09-27  Richard Henderson  <rth@redhat.com>
9892
9893         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
9894
9895 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
9896
9897         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
9898         that AFTER is not in the range FROM..TO, inclusive.
9899
9900 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
9901             Bernd Schmidt  <bernds@codesourcery.com>
9902
9903         PR rtl-optimization/45792
9904         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
9905         If not all insns are to be merged, for each edge, stash the
9906         next candidate after the to-be-merged insns before doing the
9907         merge, and use them for the retry at the new insertion point.
9908         Handle CC0 targets when retrying.
9909
9910 2010-09-27  Ian Lance Taylor  <iant@google.com>
9911
9912         * common.opt (fsplit-stack): New option.
9913         * opts.c (decode_options): Set flag_split_stack to final value.
9914         * target.def (supports_split_stack): New hook.
9915         * gcc.c (STACK_SPLIT_SPEC): Define.
9916         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
9917         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
9918         (Code Gen Options): Document -fsplit-stack.
9919         * doc/extend.texi (Function Attributes): Mention no_split_stack.
9920         (Function Attributes): Document no_split_stack.
9921         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
9922         TARGET_SUPPORTS_SPLIT_STACK.
9923         * doc/tm.texi: Rebuild.
9924         * function.c (thread_prologue_and_epilogue_insns): If
9925         flag_split_stack, add split stack prologue.
9926         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
9927         * varasm.c (saw_no_split_stack): New static variable.
9928         (assemble_start_function): Set saw_no_split_stack if the function
9929         has the no_split_stack attribute.
9930         (file_end_indicate_split_stack): New function.
9931         * output.h (file_end_indicate_split_stack): Declare.
9932         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
9933         and function.
9934         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
9935         routines.
9936         * config/i386/i386.c (ix86_option_override_internal): Don't set
9937         expand_builtin_va_start to NULL if -fsplit-stack.
9938         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
9939         -fsplit-stack.
9940         (ix86_va_start): If -fsplit-stack, get overflow pointer from
9941         scratch register set by prologue.
9942         (ix86_code_end): If -fsplit-stack, call
9943         file_end_indicate_split_stack.
9944         (ix86_supports_split_stack): New static function.
9945         (SPLIT_STACK_AVAILABLE): Define.
9946         (split_stack_prologue_scratch_regno): New static function.
9947         (split_stack_fn): New static variable.
9948         (ix86_expand_split_stack_prologue): New function.
9949         (ix86_live_on_entry): New static function.
9950         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
9951         (output_pic_addr_const): Likewise.
9952         (i386_asm_output_addr_const_extra): Likewise.
9953         (ix86_expand_call): Change return type to rtx.  Return the new
9954         call instruction.
9955         (TARGET_SUPPORTS_SPLIT_STACK): Define.
9956         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
9957         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
9958         (split_stack_prologue, split_stack_return): New insns.
9959         (split_stack_space_check): New insn.
9960         * config/i386/i386.h (struct machine_function): Add
9961         split_stack_varargs_pointer field.
9962         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
9963         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
9964         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
9965         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
9966         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
9967         Declare.
9968         (ix86_expand_call): Update declaration.
9969
9970 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
9971
9972         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
9973         code.  Added byref, which was missing in the list of codes.
9974         Explain that enumeration values are encoded as the integer type
9975         that the compiler uses to store them.  Explain and make examples
9976         of how 'const' interacts with pointers, and the complication of
9977         the encoding of 'const char *'.
9978         (Legacy type encoding): New subsection, explaining that GCC emits
9979         incorrect type encodings for the NeXT runtime for compatibility
9980         reasons.
9981         (@@encode): New subsection, explaining @encode and particularly
9982         that protocol qualifiers are not recognized inside an @encode()
9983         expression.
9984         (Method signatures): New subsection, explaining how method
9985         signatures are encoded.
9986
9987 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
9988
9989         Merge from 'apple/trunk' branch on FSF servers.  Removed small
9990         change in build_conditional_expr that had been added when fixing
9991         PR objc/27377 and which did the same check in a less complete way.
9992
9993         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
9994
9995         Radar 4229905
9996         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
9997         looking for objective-c common pointer types.
9998
9999         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
10000
10001         Radar 4154928
10002         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
10003         use their ObjC common type.
10004
10005 2010-09-27  Richard Guenther  <rguenther@suse.de>
10006
10007         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
10008
10009 2010-09-27  Jie Zhang  <jie@codesourcery.com>
10010
10011         * print-tree.c (print_node): Print in-constant-pool.
10012
10013 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
10014
10015         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
10016         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
10017         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
10018         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
10019
10020 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10021
10022         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
10023         from pro_epilogue_adjust_stack_<mode>_{1,2}.
10024         (pro_epilogue_adjust_stack_<mode>_add): Rename from
10025         pro_epilogue_adjust_stack_<mode>_3.
10026         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
10027         renamed pro_epilogue_adjust_stack_{si,di}_add.
10028         (ix86_expand_prologue): Use indirect functions.  Update for renamed
10029         pro_epilogue_adjust_stack_{si,di}_sub.
10030
10031 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10032
10033         * config/i386/i386.md (movmsk_df): New insn.
10034         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
10035         sequence for TARGET_SSE_MATH.
10036
10037 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
10038
10039         * config/mips/mips.c (mips_builtin_decls): Declare.
10040         (mips_init_builtins): Store function declarations in
10041         mips_builtin_decls.
10042         (mips_builtin_decl): New function.
10043         (TARGET_BUILTIN_DECL): Define.
10044
10045 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
10046             Richard Henderson  <rth@redhat.com>
10047
10048         * config/i386/cygwin.asm: Include auto-host.h.
10049         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
10050         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
10051         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
10052         alignment code from the 64-bit path.  Use gas local labels.
10053         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
10054         from _di_2.  Remove the useless constant integer argument.
10055         (pro_epilogue_adjust_stack_<mode>_3): New.
10056         (allocate_stack_worker_probe_<mode>): Macroize from
10057         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
10058         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
10059         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
10060         (__chkstk_ms): New function.
10061         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
10062         * config/i386/t-interix: Likewise.
10063         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
10064         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
10065         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
10066         * configure, config.in: Rebuild.
10067
10068 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
10069
10070         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
10071         statements because of the return slot optimization.
10072
10073 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
10074
10075         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
10076         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
10077         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10078         (class_likely_spilled_p): Rename to...
10079         (avr_class_likely_spilled_p): ...this. Make static. Change argument
10080         type to reg_class_t.
10081
10082 2010-09-24  Jan Hubicka  <jh@suse.cz>
10083
10084         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
10085         (lto_symtab_resolve_symbols): Set it.
10086         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
10087         store resolution field in cgraph/varpool.
10088         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
10089         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
10090         (cgraph_dump_node): Drop used_from_object_file.
10091         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
10092         (cgraph_function_body_availability): Use decl_replaceable_p.
10093         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
10094         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
10095         cgraph_used_from_object_file_p.
10096         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
10097         cgraph_used_from_object_file_p.
10098         (resolution_used_from_other_file_p): New functoin.
10099         (cgraph_used_from_object_file_p): New predicate.
10100         * cgraph.h: Include plugin-api.h
10101         (struct cgraph_local_info): Remove used_from_object_file.
10102         (struct cgraph_node): Add resolution field.
10103         (struct varpool_node): Likewise; remove used_from_object_file;
10104         reove const_value_known.
10105         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
10106         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
10107         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
10108         varpool_used_from_object_file_p): Declare.
10109         (varpool_get_node, varpool_extra_name_alias): Update prototype.
10110         * tree.h (DECL_REPLACEABLE_P): Remove.
10111         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
10112         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
10113         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
10114         input_overwrite_node, input_node, input_varpool_node): Stream
10115         resolution.
10116         * expr.c (expand_expr_real_1): Use const_value_known_p
10117         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
10118         const_value_known.
10119         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
10120         (function_and_variable_visibility): Set resolution for local vars
10121         and functions; use varpool_used_from_object_file_p.
10122         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
10123         static functions.
10124         (default_binds_local_p_1): Use resolutoin info.
10125         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
10126         * varpool.c (varpool_get_node): Constify.
10127         (const_value_known_p): Do not use vnode->const_value_known;
10128         use decl_replaceable_p.
10129         (varpool_finalize_decl): Do not set const_value_known.
10130         (cgraph_variable_initializer_availability): Use decl_replaceable_p
10131         (varpool_extra_name_alias): Return new node.
10132         (varpool_used_from_object_file_p): New function.
10133
10134 2010-09-24  Richard Henderson  <rth@redhat.com>
10135
10136         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
10137         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
10138         (do_spill): Use REG_CFA_OFFSET.
10139         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
10140         as appropriate.
10141         (ia64_expand_epilogue): Likewise.
10142         (process_set): Split into ...
10143         (process_cfa_adjust_cfa): this,
10144         (process_cfa_register): this,
10145         (process_cfa_offset): and this new function.
10146         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
10147         instead of REG_FRAME_RELATED_EXPR.
10148
10149 2010-09-24  Olivier Hainque  <hainque@adacore.com>
10150
10151         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
10152
10153 2010-09-24  Jan Hubicka  <jh@suse.cz>
10154
10155         * doc/extend.texi: (attribute leaf): Document.
10156         * tree.c (local_define_builtin): Handle ECF_LEAF.
10157         (build_common_builtin_nodes): Set ECF_LEAF where needed.
10158         * tree.h (ECF_LEAF): New.
10159         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
10160         overwrittable and unavailable functions.
10161         (ipa_init): Put all_module_statics into optimization_summary_obstack.
10162         (copy_global_bitmap): Do not copy all_module_statics.
10163         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
10164         (propagate): Handle overwritable and unavailable leaf functions;
10165         initialize global info for overwritable and unavailable leaf functions;
10166         do not free all module statics.
10167         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
10168         local statics.
10169         * calls.c (flags_from_decl_or_type): Handle leaf.
10170         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
10171         abnormal gotos.
10172
10173 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
10174
10175         * gengtype.c: Reindented.
10176         * gengtype.h: Reindented.
10177         * gengtype-parse.c: Reindented.
10178
10179 2010-09-24  Jan Hubicka  <jh@suse.cz>
10180
10181         PR tree-optimization/45738
10182         PR tree-optimization/45741
10183         * expr.c (string_constant): Allow CONST_DECL too;
10184         check that DECL_INITIAL is set.
10185         * varpool.c (const_value_known_p): Only look into VAR_DECL
10186         and CONST_DECL.
10187
10188 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
10189
10190         * common.opt (undef): New.
10191
10192 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
10193
10194         PR middle-end/45234
10195         * rtl.h (enum global_rtl_index): Add
10196         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
10197         (LAST_VIRTUAL_POINTER_REGISTER): Define.
10198         (virtual_preferred_stack_boundary_rtx,
10199         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
10200         (LAST_VIRTUAL_REGISTER): Increase by one.
10201         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
10202         instead of LAST_VIRTUAL_REGISTER.
10203         * function.c (instantiate_new_reg): Handle
10204         virtual_preferred_stack_boundary_rtx.
10205         * emit-rtl.c (init_virtual_regs): Handle
10206         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
10207         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
10208         * explow.c (round_push): If crtl->preferred_stack_boundary
10209         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
10210         virtual_preferred_stack_boundary_rtx alignment instead of
10211         crtl->preferred_stack_boundary alignment.
10212         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
10213         macros.  Never decrease crtl->preferred_stack_boundary,
10214         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
10215         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
10216         stack_pointer_delta in dynamic allocation, even when size
10217         is constant.
10218         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
10219         macro.
10220         * print-rtl.c (print_rtx): Handle
10221         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
10222         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
10223         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
10224         * config/frv/frv.c (frv_emit_movsi): Likewise.
10225         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
10226         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
10227         Likewise.
10228
10229         Revert:
10230         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
10231
10232         PR middle-end/45234
10233         * calls.c (expand_call): Make sure that all variable sized
10234         adjustments are multiple of preferred stack boundary after
10235         stack alignment.
10236
10237 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
10238             Dominique Dhumieres  <dominiq@lps.ens.fr>
10239
10240         PR bootstrap/45751
10241         * config/darwin-driver.c (darwin_default_min_version):
10242         Adjust size passed to memcpy in two places.
10243
10244 2010-09-24  Richard Guenther  <rguenther@suse.de>
10245
10246         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
10247         Make sure to not call set_type_context with error_mark_node.
10248         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
10249
10250 2010-09-24  Richard Guenther  <rguenther@suse.de>
10251
10252         * Makefile.in (OBJS-onestep): Remove.
10253         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
10254         (libbackend.a): Remove onestep support.
10255         (libbackend.o): Remove.
10256         * configure.ac (--enable-intermodule): Remove.
10257         * configure: Regenerate.
10258
10259 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
10260
10261         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
10262         reaching the end of a block if it occurs at a DEBUG_INSN.
10263
10264 2010-09-09  Tristan Gingold  <gingold@adacore.com>
10265
10266         PR target/44242
10267         * config/vms/vms-crt0-64.c: Removed.
10268         * config/vms/vms-crt0.c: Removed.
10269         * config/vms/vms-psxcrt0-64.c: Removed.
10270         * config/vms/vms-psxcrt0.c: Removed.
10271         * config/vms/vms-ucrt0.c: New file.
10272         * config/vms/t-vms64: Removed.
10273         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
10274         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
10275         * config.gcc (alpha-dec-vms): Use t-vms.
10276
10277 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10278
10279         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
10280         underfull hbox in DVI output.
10281         (-fobjc-class-cxx-cdtors): Same change.
10282         (-fobjc-exceptions): Tidied up documentation.  Explain what the
10283         option does, but moved the (lenghty) description of the exception
10284         syntax into objc.texi.
10285         (-fobjc-gc): Explain that the option is not useful with the GNU
10286         runtime.
10287         (-fzero-link): Explain that the GNU runtime always works in
10288         "zero-link" mode.
10289         * doc/objc.texi: All sections: simplified @node declarations
10290         removing specification of next, previous, up node.
10291         (Objective-C): Updated introduction.
10292         (Garbage Collection): Updated.  The bohem-gc library is now
10293         included in gcc itself.  Mention that this section only applies to
10294         the GNU Objective-C runtime.
10295         (compatibility_alias): Small tidy up.
10296         (Exceptions): New section mostly containing text previously in the
10297         description of the -fobjc-exception command-line option.
10298         (Synchronization): Same.
10299
10300 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
10301
10302         * config/i386/i386.md (ix86_code_end): Move the initialization of
10303         xops array near the consumer.  Use AX_REG and SP_REG instead of
10304         numerical constants.
10305
10306 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10307
10308         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
10309         method [methodname]' for an Objective-C method instead of the less
10310         satisfactory 'too many arguments to function' (with no method name).
10311
10312 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
10313
10314         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
10315         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
10316         (execute_update_addresses_taken): Remove parameter.  Execute the
10317         optimization unconditionally.
10318         * passes.c (execute_function_todo): Call execute_update_addresses_taken
10319         unconditionally if TODO_rebuild_alias is set, else only when optimizing
10320         if TODO_update_address_taken is set.
10321
10322 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
10323
10324         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10325         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
10326         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10327         (arm_output_addr_const_extra): Make static.
10328
10329 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
10330
10331         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
10332         define as unspec_volatile.
10333         ("nops"): Define as unspec_volatile. Use fputs to write to
10334         asm_out_file directly.  Output NOPs on separate lines using while loop.
10335         * config/i386/i386.c (ix86_code_end): Use fputs to write to
10336         asm_out_file directly.  Output NOPs on separate lines using while loop.
10337
10338 2010-09-23  Richard Guenther  <rguenther@suse.de>
10339
10340         PR tree-optimization/45565
10341         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
10342         Make sure to adjust the fndecl before replacing the stmt.
10343
10344 2010-09-23  Richard Guenther  <rguenther@suse.de>
10345
10346         PR middle-end/45750
10347         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
10348         gimplifying MEM_REF.
10349
10350 2010-09-23  Alan Modra  <amodra@gmail.com>
10351
10352         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
10353         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
10354
10355 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
10356
10357         PR rtl-optimization/44374
10358         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
10359         * df-core.c (df_set_bb_dirty): Set it.
10360         * ifcvt.c (find_memory): Remove function.
10361         (dead_or_predicable): Use can_move_insns_across.
10362         * df.h (can_move_insns_across): Declare function.
10363         * cfgcleanup.c (block_was_dirty): New static variable.
10364         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
10365         than df_get_bb_dirty.
10366         (try_head_merge_bb): New static function.
10367         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
10368         is set.
10369         * df-problems.c: Include "target.h"
10370         (df_simulate_find_uses): New static function.
10371         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
10372         (find_memory, find_memory_store): New static functions.
10373         (can_move_insns_across): New function.
10374         * Makefile.in (df-problems.o): Update dependencies.
10375
10376 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
10377
10378         PR java/44095
10379         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
10380         is specified and the suffix of the file isn't ".c".
10381         * config/sparc/linux64.h (ASM_SPEC): Likewise.
10382
10383 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10384
10385         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
10386         * doc/cppopts.texi: Fix markup of index entry.
10387         * doc/extend.texi (Constructing Calls): Fix markup of
10388         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
10389         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
10390         (Vague Linkage, C++ Attributes): Fix markup of index entries and
10391         keywords.
10392         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
10393         avoid long lines.
10394         (C Dialect Options, C++ Dialect Options, Warning Options)
10395         (Debugging Options, Spec Files, Darwin Options)
10396         (i386 and x86-64 Options, MIPS Options)
10397         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
10398         index entries, avoid abbreviations, allow URLs to wrap, avoid
10399         long lines, avoid overlong pages from long @itemx lists.
10400         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
10401         * doc/standards.texi (Standards): Likewise.
10402         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
10403
10404 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
10405
10406         * opts-common.c (prune_options): Make static.  Work with decoded
10407         options.
10408         (decode_cmdline_options_to_array): Call prune_options.  Don't
10409         resize option array here.
10410         * opts.h (prune_options): Remove prototype.
10411         * gcc.c (process_command): Take decoded options; don't call
10412         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
10413         (main): Call decode_cmdline_options_to_array here instead of
10414         prune_options.  Update call to process_command.
10415         * config/darwin-driver.c: Include opts.h.
10416         (darwin_default_min_version): Work with decoded options.  Don't
10417         handle -b or -V here.
10418         * config/darwin.h (darwin_default_min_version): Update prototype.
10419         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
10420         darwin_default_min_version.
10421         * config/i386/cygwin.h (mingw_scan): Update prototype.
10422         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
10423         * config/i386/cygwin1.c: Include opts.h.
10424         (mingw_scan): Work with decoded options.
10425         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
10426         * config/t-darwin (darwin-driver.o): Update dependencies.
10427
10428 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
10429
10430         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
10431         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
10432         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
10433         -force-link, -force-link=, -language, -language=,
10434         -library-directory, -library-directory=, -no-canonical-prefixes,
10435         -no-standard-libraries, -no-warnings, -optimize, -output,
10436         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
10437         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
10438         -print-file-name=, -print-libgcc-file-name,
10439         -print-multi-directory, -print-multi-lib,
10440         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
10441         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
10442         -profile, -save-temps, -shared, -specs, -specs=, -static,
10443         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
10444         symbolic): New.
10445         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
10446         * gcc.c (A Short Introduction to Adding a Command-Line Option):
10447         Remove comment.
10448         (cc1_options): Correct specs for passing down --help,
10449         --target-help and --help=*.  Add spec for passing down --version.
10450         (struct option_map, option_map, target_option_translations,
10451         translate_options): Remove.
10452         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
10453         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
10454         OPT_fhelp_ and OPT_ftarget_help.
10455         (process_command): Don't call translate_options.  Call
10456         decode_cmdline_options_to_array before checking for
10457         -no-canonical-prefixes using decoded options.
10458         * opts-common.c (tm.h): Update comment on #include.
10459         (find_opt): Allow abbreviations of long options.
10460         (struct option_map, option_map): New.
10461         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
10462         and -mno handling.
10463         (target_option_translations): New.
10464         (decode_cmdline_options_to_array): Handle
10465         TARGET_OPTION_TRANSLATE_TABLE in driver.
10466         * opts.c (common_handle_option): Don't handle OPT_fhelp,
10467         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
10468
10469 2010-09-22  Richard Guenther  <rguenther@suse.de>
10470
10471         * tree-inline.c (optimize_inline_calls): Schedule cleanups
10472         only if we inlined something.  Block compaction and conditional
10473         folding are done by cfg cleanup.  Schedule update-address-taken.
10474         (tree_function_versioning): Remove redundant call to number_blocks.
10475         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
10476         folding is done by cfg cleanup.
10477         * passes.c (init_optimization_passes): Remove update-address-taken
10478         pass after IPA inlining.
10479
10480 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
10481
10482         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
10483         to update conditions. Fix reg_mode[] check.
10484
10485 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
10486
10487         * config/picochip/picochip.md (movhicc): Use expand to check whether
10488         movhicc is available and split it after reload.
10489
10490 2010-09-22  Richard Guenther  <rguenther@suse.de>
10491
10492         * tree-ssanames.c (release_dead_ssa_names): Do not remove
10493         callee edges here.
10494         * passes.c (init_optimization_passes): Remove early CFG cleanup.
10495         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
10496         (pass_cleanup_cfg): Likewise.
10497         (execute_fixup_cfg): Cleanup.
10498         * tree-pass.h (pass_cleanup_cfg): Remove.
10499
10500 2010-09-22  Martin Jambor  <mjambor@suse.cz>
10501
10502         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
10503         builtins if it is true.
10504         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
10505         parameter.
10506
10507 2010-09-22  Martin Jambor  <mjambor@suse.cz>
10508
10509         * tree-sra.c (struct access): New field grp_no_warning.
10510         (create_access_replacement): Set TREE_NO_WARNING according to
10511          grp_no_warning.
10512         (create_artificial_child_access): Use build_ref_for_model and set
10513         grp_no_warning if build_user_friendly_ref_for_offset fails.
10514         (propagate_subaccesses_across_link): Likewise.
10515
10516 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
10517
10518         PR target/35664
10519         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
10520         ('f'): Likewise.
10521
10522 2010-09-22  Tristan Gingold  <gingold@adacore.com>
10523
10524         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
10525
10526 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
10527
10528         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
10529         * config/i386/i386.c (decide_alg): Update for rename.
10530
10531 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
10532
10533         PR rtl-optimization/45739
10534         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
10535         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
10536
10537 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
10538
10539         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
10540         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
10541         Remove.
10542         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
10543         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10544
10545 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
10546
10547         PR objc/23710
10548         * c-parser.c (c_parser_objc_method_definition): Check the return
10549         value of objc_start_method_definition and if false is returned,
10550         parse the method definition but emit no code.
10551
10552 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
10553
10554         PR objc/25965
10555         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
10556         call objc_get_interface_ivars ().
10557
10558 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
10559
10560         PR target/45694
10561         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
10562         static chain-register is used for 64-bit.
10563
10564 2010-09-21  Richard Guenther  <rguenther@suse.de>
10565
10566         * dwarf2out.c (is_cu_die): New function.
10567         (add_pubtype): Use it.
10568         (gen_subprogram_die): Likewise.
10569         (gen_struct_or_union_type_die): Likewise.
10570         (dwarf2out_finish): Likewise.
10571         (comp_unit_die): Rename to ...
10572         (single_comp_unit_die): ... this.
10573         (comp_unit_die): New function lazily constructing and
10574         returning single_comp_unit_die.
10575         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
10576         base_type_die, subrange_type_die, modified_type_die,
10577         lower_bound_default, add_bound_info, add_prototyped_attribute,
10578         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
10579         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
10580         force_decl_die, gen_namespace_die, dwarf2out_decl,
10581         dwarf2out_start_source_file, dwarf2out_end_source_file,
10582         prune_unused_types, dwarf2out_finish): Use it.
10583         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
10584         the global list of translation-unit decls.
10585         (dwarf2out_init): Do not create single_comp_unit_die here.
10586         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
10587
10588 2010-09-21  Richard Guenther  <rguenther@suse.de>
10589
10590         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
10591         for bool for C++.
10592
10593 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
10594
10595         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
10596         (qhs_extenddi_cstr): Likewise.
10597         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
10598         them for the source operand.
10599
10600 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
10601
10602         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
10603         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
10604         (ix86_split_ashr): Ditto.
10605         (ix86_split_lshr): Ditto.
10606
10607 2010-09-21  Richard Guenther  <rguenther@suse.de>
10608
10609         PR tree-optimization/45580
10610         * tree-ssa-propagate.c (substitute_and_fold): Always replace
10611         regular uses.
10612         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
10613         virtuals fold the call into a regular indirect one.
10614
10615 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
10616
10617         PR rtl-optimization/42775
10618         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
10619         scheduling is enabled.
10620
10621 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
10622
10623         PR rtl-optimization/45728
10624         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
10625         gen_lowpart_common first and if that fails, force_reg first
10626         before calling gen_lowpart.
10627
10628         PR middle-end/45678
10629         * cfgexpand.c (expand_one_stack_var_at): Use
10630         crtl->max_used_stack_slot_alignment as max_align, instead
10631         of maximum of that and PREFERRED_STACK_BOUNDARY.
10632         Don't call update_stack_alignment.
10633
10634 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
10635
10636         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
10637         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
10638         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
10639         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
10640         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
10641         (build_nonstandard_integer_type): Likewise.
10642         (build_range_type_1): New function, built from...
10643         (build_range_type): ...this.  Call build_range_type_1.
10644         (build_nonshared_range_type): New function.
10645         (build_array_type_1): New function, built from...
10646         (build_array_type: ...this.  Call build_array_type_1.
10647         (build_nonshared_array_type): New function.
10648         * tree.h (build_nonshared_range_type): Declare.
10649         (build_nonshared_array_type): Likewise.
10650
10651 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
10652
10653         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
10654         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10655         (arm_class_likely_spilled_p): New function.
10656
10657 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
10658
10659         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
10660         indirect functions.
10661         (ix86_split_ashl): Ditto.
10662         (ix86_split_ashr): Ditto.
10663         (ix86_split_lshr): Ditto.
10664         (ix86_adjust_counter): Ditto.
10665
10666 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
10667
10668         * c-family/c-common.h (constant_string_class): Documented with
10669         comment identical to the one already in c-common.c.
10670
10671 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
10672
10673         * dwarf2out.c (any_cfis_emitted): New static variable.
10674         (add_fde_cfi): Set it.
10675         (dwarf2out_frame_debug): Clear it before processing,
10676         if it is set afterwards, flush any queued reg saves.
10677
10678         PR debug/45124
10679         * dwarf2out.c (add_accessibility_attribute): Assume
10680         DW_ACCESS_private as the default for dwarf_version > 2
10681         and DW_TAG_class_type parent.
10682         (gen_inheritance_die): Assume DW_ACCESS_public as the default
10683         for dwarf_version > 2 and parent other than DW_TAG_class_type.
10684
10685 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
10686
10687         PR target/45726
10688         * arm.md (arm_movt): Only enable on machines with MOVT.
10689
10690 2010-09-20  Jie Zhang  <jie@codesourcery.com>
10691
10692         * config/arm/arm.c (arm_address_offset_is_imm): New.
10693         (arm_early_store_addr_dep): New.
10694         (arm_early_load_addr_dep): New.
10695         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
10696         (arm_early_load_addr_dep): Declare.
10697         (arm_address_offset_is_imm): Declare.
10698         * config/arm/cortex-m4.md: New file.
10699         * config/arm/cortex-m4-fpu.md: New file.
10700         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
10701         (attr generic_sched): Exclude cortexm4.
10702         (attr generic_vfp): Exclude cortexm4.
10703
10704 2010-09-20  Richard Guenther  <rguenther@suse.de>
10705
10706         PR middle-end/45704
10707         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
10708
10709 2010-09-20  Jan Hubicka  <jh@suse.cz>
10710
10711         PR tree-optimize/45605
10712         * cgraph.h (const_value_known_p): Declare.
10713         (varpool_decide_const_value_known): Remove.
10714         * tree-ssa-ccp.c (get_base_constructor): Use it.
10715         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
10716         * expr.c (string_constant): Likewise.
10717         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
10718         * ipa.c (ipa_discover_readonly_nonaddressable_var,
10719         function_and_variable_visibility): Likewise.
10720         * gimplify.c (gimplify_call_expr): Likewise.
10721         * gimple-fold.c (get_symbol_constant_value): Likewise.
10722         * varpool.c (varpool_decide_const_value_known): Replace by...
10723         (const_value_known_p): ... this one; handle other kinds of DECLs
10724         too and work for automatic vars.
10725         (varpool_finalize_decl): Use const_value_known_p.
10726
10727 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
10728
10729         PR target/45726
10730         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
10731
10732 2010-09-20  Richard Guenther  <rguenther@suse.de>
10733
10734         PR tree-optimization/45705
10735         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
10736
10737 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
10738
10739         PR rtl-optimization/45695
10740         * combine.c (try_combine): When splitting a two set pattern,
10741         make sure the pattern which will be put into i2 doesn't use REGs
10742         or MEMs set by insns in between i2 and i3.
10743
10744 2010-09-19  Jan Hubicka  <jh@suse.cz>
10745
10746         PR lto/44246
10747         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
10748         processing same node twice.
10749
10750 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
10751
10752         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
10753         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10754         (bfin_class_likely_spilled_p): New function
10755
10756 2010-09-19  Ira Rosen  <irar@il.ibm.com>
10757
10758         PR tree-optimization/45714
10759         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
10760         created in vectorizable_call instead of the original statement in
10761         def stmt updates.
10762
10763 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
10764
10765         * config/i386/i386-protos.h (split_double_mode): New prototype.
10766         (split_di, split_ti): Remove prototypes.
10767         * config/i386/i386.c (split_double_mode): New function.
10768         (split_di, split_ti): Remove.
10769         (ix86_expand_branch): Use split_double_mode.
10770         (ix86_split_to_parts): Ditto.
10771         (ix86_split_ashl): Ditto.
10772         (ix86_split_ashr): Ditto.
10773         (ix86_split_lshr): Ditto.
10774         (ix86_force_to_memory): Ditto.
10775         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
10776
10777 2010-09-18  Jan Hubicka  <jh@suse.cz>
10778
10779         PR tree-optimization/45453
10780         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
10781         virtual functions are reachable.
10782         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
10783         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
10784         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
10785         when modifying function.
10786
10787 2010-09-18  Jan Hubicka  <jh@suse.cz>
10788
10789         PR tree-optimization/45605
10790         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
10791         * gimple-fold.c (static_object_in_other_unit_p): New function.
10792         (canonicalize_constructor_val): Use it.
10793         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
10794         returning NULL.
10795         (gimple_fold_obj_type_ref_known_binfo): Use
10796         static_object_in_other_unit_p.
10797
10798 2010-09-18  Richard Guenther  <rguenther@suse.de>
10799
10800         PR tree-optimization/45709
10801         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
10802         insertions until after all PHI nodes of the block are processed.
10803
10804 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
10805
10806         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
10807
10808 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
10809
10810         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
10811
10812 2010-09-18  Richard Guenther  <rguenther@suse.de>
10813
10814         PR tree-optimization/45709
10815         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
10816
10817 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
10818
10819         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
10820         (dot_deps_stmt): Same.
10821         * graphite-poly.c (dot_lst): Same.
10822         * graphite-scop-detection.c (dot_all_scops): Same.
10823         (dot_scop): Same.
10824
10825 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
10826
10827         Revert:
10828         2009-12-16  Ben Elliston  <bje@au.ibm.com>
10829
10830         * tree-data-ref.c (dot_rdg_1): Added back.
10831         (dot_rdg): Same.  Added "#if 0" around system call.
10832
10833 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
10834             Richard Henderson  <rth@redhat.com>
10835
10836         * config/i386/i386.c (initial_ix86_tune_features): Add
10837         X86_TUNE_PAD_SHORT_FUNCTION.
10838         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
10839         (ix86_count_insn): New.
10840         (ix86_pad_short_function): Likewise.
10841         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
10842
10843         * config/i386/i386.h (ix86_tune_indices): Add
10844         X86_TUNE_PAD_SHORT_FUNCTION.
10845         (TARGET_PAD_SHORT_FUNCTION): New.
10846
10847         * config/i386/i386.md (UNSPEC_NOPS): New.
10848         (nops): Likewise.
10849
10850 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
10851
10852         PR middle-end/45234
10853         * calls.c (expand_call): Make sure that all variable sized
10854         adjustments are multiple of preferred stack boundary after
10855         stack alignment.
10856
10857 2010-09-17  DJ Delorie  <dj@redhat.com>
10858
10859         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
10860         passed an invalid value, print an error instead of ICEing.
10861         (valid_psw_flag): New.
10862         (rx_expand_builtin): Call it for setpsw/clrpsw.
10863         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
10864
10865         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
10866         (bitclr_in_memory): Likewise.
10867         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
10868
10869 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
10870
10871         PR middle-end/45678
10872         * cfgexpand.c (update_stack_alignment): New.
10873         (get_decl_align_unit): Use it.
10874         (expand_one_stack_var_at): Call update_stack_alignment.
10875
10876 2010-09-17  Richard Guenther  <rguenther@suse.de>
10877
10878         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
10879         Properly copy the read string.
10880
10881 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
10882
10883         * doc/options.texi (Variable): Document.
10884         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
10885         generate target_flags declarations explicitly.  Don't define
10886         VarExists variables for the driver.
10887         * common.opt (target_flags): New Variable record.
10888         (flag_dump_unnumbered, flag_dump_unnumbered_links,
10889         flag_var_tracking, flag_var_tracking_assignments,
10890         flag_var_tracking_assignments_toggle): Don't mark variables with
10891         VarExists.
10892         * config/i386/i386.c (ix86_isa_flags): Don't define here.
10893         * config/i386/i386.opt (ix86_isa_flags): Define here.
10894         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
10895         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
10896         VarExists.
10897         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
10898         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
10899         Only define for generator programs.
10900         * rtlanal.c (target_flags): Remove.
10901         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
10902         flag_var_tracking_assignments_toggle): Remove.
10903
10904 2010-09-17  Michael Matz  <matz@suse.de>
10905
10906         PR tree-optimization/43432
10907         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
10908         Accept backwards consecutive accesses.
10909         (vect_create_data_ref_ptr): If step is negative generate
10910         decreasing IVs.
10911         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
10912         (perm_mask_for_reverse, reverse_vec_elements): New functions.
10913         (vectorizable_load): Handle loads with negative steps when easily
10914         possible.
10915
10916 2010-09-03  Jan Hubicka  <jh@suse.cz>
10917
10918         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
10919
10920 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
10921
10922         * config/v850/v850.c (v850_function_value_regno_p): Make static.
10923         Adjust comments. Declare.
10924         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
10925         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
10926
10927 2010-09-17  Richard Guenther  <rguenther@suse.de>
10928
10929         * common.opt (combine): Remove.
10930         * gcc.c (default_compilers): Remove specs testing combine.
10931         The C compilers no longer can combine.
10932         (option_map): Remove -combine.
10933         (display_help): Remove -combine.
10934         (driver_handle_option): Remove OPT_combine handling.
10935         (compile_input_file_p): Remove.
10936         (do_spec): Remove code concerning combine.
10937         (main): Likewise.
10938         * doc/invoke.texi: Remove traces of -combine.
10939         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
10940
10941 2010-09-17  Richard Guenther  <rguenther@suse.de>
10942
10943         PR middle-end/45678
10944         * builtins.c (fold_builtin_memory_op): Always properly adjust
10945         alignment of memory accesses.
10946
10947 2010-09-16  Jan Hubicka  <jh@suse.cz>
10948
10949         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
10950         processing clone.
10951
10952 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
10953
10954         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
10955
10956         * config/i386/i386.c (predict_jump): Add prototype.
10957         (flag_opts): Add -m8bit-idiv.
10958         (ix86_split_idivmod): New.
10959
10960         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
10961         Add 2 splitters for SI/DI mode divide.
10962         (divmod<mode>4_1): New pattern.
10963         (udivmod<mode>4_1): Likewise.
10964         (testdi_ccno_1): Likewise.
10965
10966         * config/i386/i386.opt (m8bit-idiv): New.
10967
10968         * doc/invoke.texi: Document -m8bit-idiv.
10969
10970 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
10971
10972         PR bootstrap/45680
10973         * config/i386/i386.c (min_insn_size): Moved out of the
10974         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
10975
10976 2010-09-16  Jan Hubicka  <jh@suse.cz>
10977
10978         * lto-cgraph.c (lto_output_node): Fix handling of clones.
10979         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
10980         unreachable clones with reachable clones.
10981         * tree-inline.c (copy_bb): Fix sanity checking when producing
10982         unreachable clone.
10983
10984 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
10985
10986         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
10987         (TARGET_MEMORY_MOVE_COST): Define.
10988         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
10989
10990 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
10991
10992         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
10993         maybe_tidy_empty_bb.
10994
10995         Revert:
10996         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
10997         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
10998
10999 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
11000
11001         * target.def (target_option.optimization): New hook.
11002         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
11003         TARGET_OPTION_OPTIMIZATION hook.
11004         * doc/tm.texi: Regenerate.
11005         * hooks.c (hook_void_int_int): New.
11006         * hooks.h (hook_void_int_int): Declare.
11007         * opts.c: Don't include tm_p.h.
11008         (decode_options): Use targetm.target_option.optimization instead
11009         of OPTIMIZATION_OPTIONS.
11010         * system.h (OPTIMIZATION_OPTIONS): Poison.
11011         * config/arm/arm-protos.h (arm_optimization_options): Remove.
11012         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
11013         (arm_optimization_options): Rename to arm_option_optimization.
11014         Make static.
11015         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
11016         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
11017         (cris_option_optimization): New.
11018         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
11019         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
11020         (crx_option_optimization): New.
11021         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
11022         * config/frv/frv-protos.h (frv_optimization_options): Remove.
11023         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
11024         (frv_optimization_options): Rename to frv_option_optimization.
11025         Make static.
11026         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
11027         * config/h8300/h8300.c (h8300_option_optimization): New.
11028         (TARGET_OPTION_OPTIMIZATION): Define.
11029         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
11030         * config/i386/i386-protos.h (optimization_options): Remove.
11031         * config/i386/i386.c (optimization_options): Rename to
11032         ix86_option_optimization.  Make static.
11033         (TARGET_OPTION_OPTIMIZATION): Define.
11034         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
11035         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
11036         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
11037         (ia64_optimization_options): Rename to ia64_option_optimization.
11038         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
11039         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
11040         commented-out definition.
11041         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
11042         instead of OPTIMIZATION_OPTIONS.
11043         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
11044         (m32r_option_optimization): New.
11045         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
11046         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
11047         Remove.
11048         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
11049         (mcore_option_optimization): New.
11050         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
11051         * config/mep/mep-protos.h (mep_optimization_options): Remove.
11052         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
11053         (mep_optimization_options): Rename to mep_option_optimization.
11054         Make static.  Take unused level and size parameters.
11055         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
11056         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
11057         (mmix_option_optimization): New.
11058         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
11059         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
11060         (pdp11_option_optimization): New.
11061         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
11062         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
11063         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
11064         (optimization_options): Rename to rs6000_option_optimization.
11065         Make static.
11066         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
11067         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
11068         * config/rx/rx.c (rx_set_optimization_options): Rename to
11069         rx_option_optimization.  Make static.  Take unused level and size
11070         parameters.
11071         (TARGET_OPTION_OPTIMIZATION): Define.
11072         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
11073         * config/s390/s390-protos.h (optimization_options): Remove.
11074         * config/s390/s390.c (optimization_options): Rename to
11075         s390_option_optimization.  Make static.  Don't mark size parameter
11076         unused.
11077         (TARGET_OPTION_OPTIMIZATION): Define.
11078         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
11079         * config/sh/sh-protos.h (sh_optimization_options): Remove.
11080         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
11081         (sh_optimization_options): Rename to sh_option_optimization.  Make
11082         static.  Don't mark parameters unused.
11083         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
11084         * config/spu/spu-protos.h (spu_optimization_options): Remove.
11085         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
11086         (spu_optimization_options): Rename to spu_option_optimization.
11087         Make static.
11088         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
11089         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
11090         (v850_option_optimization): New.
11091         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
11092         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
11093         (xtensa_option_optimization): New.
11094         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
11095
11096 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
11097
11098         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
11099         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
11100         * doc/tm.texi: Regenerate.
11101         * system.h (OVERRIDE_OPTIONS): Poison.
11102         * target.def (override): Default to hook_void_void.
11103         * targhooks.c (default_target_option_override): Remove.
11104         * genmodes.c, machmode.def: Update comments mentioning
11105         OVERRIDE_OPTIONS.
11106         * config/alpha/alpha-modes.def: Update comment mentioning
11107         alpha_override_options.
11108         * config/alpha/alpha-protos.h (override_options): Remove.
11109         * config/alpha/alpha.c (override_options): Rename to
11110         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
11111         (TARGET_OPTION_OVERRIDE): Define.
11112         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
11113         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
11114         of OVERRIDE_OPTIONS.
11115         * config/arc/arc-protos.h (arc_init): Remove.
11116         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
11117         (arc_init): Rename to arc_option_override.  Make static.
11118         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
11119         (OVERRIDE_OPTIONS): Remove.
11120         * config/arm/arm-protos.h (arm_override_options): Remove.
11121         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
11122         (arm_override_options): Rename to arm_option_override.  Make
11123         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
11124         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
11125         * config/arm/arm.md: Update comment referring to arm_override_options.
11126         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
11127         instead of OVERRIDE_OPTIONS.
11128         * config/avr/avr-protos.h (avr_override_options): Remove.
11129         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
11130         (avr_override_options): Rename to avr_option_override.  Make static.
11131         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
11132         * config/bfin/bfin-protos.h (override_options): Remove (twice).
11133         * config/bfin/bfin.c (override_options): Rename to
11134         bfin_option_override.  Make static.
11135         (TARGET_OPTION_OVERRIDE): Define.
11136         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
11137         * config/cris/cris-protos.h (cris_override_options): Remove.
11138         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
11139         (cris_override_options): Rename to cris_option_override.  Make static.
11140         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
11141         * config/frv/frv-protos.h (frv_override_options): Remove.
11142         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
11143         (frv_override_options): Rename to frv_option_override.  Make static.
11144         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
11145         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
11146         * config/h8300/h8300.c (h8300_init_once): Rename to
11147         h8300_option_override.  Make static.
11148         (TARGET_OPTION_OVERRIDE): Define.
11149         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
11150         * config/i386/i386-protos.h (override_options): Remove.
11151         * config/i386/i386.c (override_options): Rename to
11152         ix86_option_override_internal.  Make static.  Comments referring
11153         to this function and callers changed.
11154         (ix86_option_override): New.
11155         (TARGET_OPTION_OVERRIDE): Define.
11156         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
11157         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
11158         * config/ia64/ia64.c (ia64_file_start): Update comment referring
11159         to ia64_override_options.
11160         * config/iq2000/iq2000-protos.h (override_options): Remove.
11161         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
11162         (override_options): Rename to iq2000_option_override.  Make static.
11163         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
11164         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
11165         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
11166         (lm32_override_options): Rename to lm32_option_override.  Make static.
11167         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
11168         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
11169         (m32r_option_override): New.
11170         (m32r_init): Update comment.
11171         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
11172         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
11173         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
11174         (m68hc11_override_options): Rename to m68hc11_option_override.
11175         Make static.  Return void.
11176         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
11177         * config/m68k/m68k-protos.h (override_options): Remove.
11178         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
11179         (override_options): Rename to m68k_option_override.  Make static.
11180         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
11181         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
11182         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
11183         (mcore_override_options): Rename to mcore_option_override.  Make
11184         static.
11185         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
11186         * config/mep/mep-protos.h (mep_override_options): Remove.
11187         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
11188         (mep_override_options): Rename to mep_option_override.  Make static.
11189         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
11190         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
11191         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
11192         (mmix_override_options): Rename to mmix_option_override.  Make static.
11193         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
11194         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
11195         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
11196         (mn10300_override_options): Rename to mn10300_option_override.
11197         Make static.
11198         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
11199         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
11200         * config/moxie/moxie.c (moxie_override_options): Rename to
11201         moxie_option_override.  Make static.
11202         (TARGET_OPTION_OVERRIDE): Define.
11203         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
11204         * config/picochip/picochip-protos.h (picochip_override_options):
11205         Remove.  Update comment referring to picochip_override_options.
11206         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
11207         (picochip_override_options): Rename to picochip_option_override.
11208         Make static.  Update comment and definition of
11209         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
11210         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
11211         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11212         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11213         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11214         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11215         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11216         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
11217         instead of OVERRIDE_OPTIONS.
11218         * config/rs6000/rs6000-modes.def: Update comment referring to
11219         rs6000_override_options.
11220         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
11221         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
11222         (rs6000_override_options): Rename to
11223         rs6000_option_override_internal.  Make static.  Commented
11224         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
11225         (rs6000_option_override): New.
11226         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
11227         instead of OVERRIDE_OPTIONS.
11228         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11229         * config/s390/s390-protos.h (override_options): Remove.
11230         * config/s390/s390.c (override_options): Rename to
11231         s390_option_override.  Make static.
11232         (TARGET_OPTION_OVERRIDE): Define.
11233         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
11234         * config/score/score-protos.h (score_override_options): Remove.
11235         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
11236         (score_override_options): Rename to score_option_override.  Make
11237         static.
11238         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
11239         Update comment referring to override_options.
11240         * config/score/score3.c (score3_override_options): Rename to
11241         score3_option_override.
11242         * config/score/score3.h (score3_override_options): Rename to
11243         score3_option_override.
11244         * config/score/score7.c (score7_override_options): Rename to
11245         score7_option_override.
11246         * config/score/score7.h (score7_override_options): Rename to
11247         score7_option_override.
11248         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
11249         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
11250         (sparc_override_options): Rename to sparc_option_override.  Make
11251         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
11252         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
11253         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
11254         instead of OVERRIDE_OPTIONS.
11255         * config/spu/spu-protos.h (spu_override_options): Remove.
11256         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
11257         (spu_override_options): Rename to spu_option_override.  Make
11258         static.
11259         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
11260         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
11261         OVERRIDE_OPTIONS.
11262         * config/vax/vax-protos.h (override_options): Remove.
11263         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
11264         (override_options): Rename to vax_option_override.  Make static.
11265         Call SUBTARGET_OVERRIDE_OPTIONS.
11266         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
11267         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
11268         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
11269         * config/xtensa/xtensa-protos.h (override_options): Remove.
11270         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
11271         (override_options): Rename to xtensa_option_override.  Make static.
11272         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
11273
11274 2010-09-16  Richard Guenther  <rguenther@suse.de>
11275
11276         PR tree-optimization/45623
11277         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
11278         (get_constraint_for_component_ref): If computing a constraint
11279         for the rhs handle type punning through unions.
11280         (get_constraint_for_address_of): Adjust.
11281         (get_constraint_for_1): Likewise.
11282         (get_constraint_for): Likewise.
11283         (get_constraint_for_rhs): New function.
11284         (do_structure_copy): Adjust.
11285         (make_constraint_to): Likewise.
11286         (handle_const_call): Likewise.
11287         (find_func_aliases): Likewise.
11288         (process_ipa_clobber): Likewise.
11289         (create_variable_info_for): Likewise.
11290
11291 2010-09-16  Ira Rosen  <irar@il.ibm.com>
11292
11293         * tree-vectorizer.c: Fix documentation.
11294         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
11295         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
11296         is_pattern_stmt_p, is_loop_header_bb_p,
11297         stmt_vinfo_set_inside_of_loop_cost,
11298         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
11299         known_alignment_for_access_p): Likewise.
11300         * tree-vect-loop.c: Fix documentation.
11301         (vect_get_cost): Start function name from new line.
11302         * tree-vect-data-refs.c: Fix documentation.
11303         * tree-vect_stmts.c: Likewise.
11304         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
11305         (vectorizable_store): Free vec_oprnds if allocated.
11306         (vectorizable_condition): Initialize several variables to avoid
11307         warnings.
11308         * tree-vect-slp.c: Fix documentation.
11309
11310 2010-09-16  Richard Guenther  <rguenther@suse.de>
11311
11312         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
11313         is TS_TRANSLATION_UNIT_DECL.
11314         (initialize_tree_contains_struct): Adjust.
11315         (all_translation_units): New global vector.
11316         (build_translation_unit_decl): New function.
11317         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
11318         (struct tree_translation_unit_decl): New.
11319         (all_translation_units): Declare.
11320         (union tree_node): Add translation_unit_decl member.
11321         (build_translation_unit_decl): Declare.
11322         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
11323         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
11324         New function.
11325         (pack_value_fields): Call it.
11326         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
11327         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
11328         (lto_output_tree_pointers): Call it.
11329         * lto-streamer-in.c (lto_input_tree_ref): Handle references
11330         to TRANSLATION_UNIT_DECL.
11331         (unpack_ts_translation_unit_decl_value_fields): New function.
11332         (unpack_value_fields): Call it.
11333         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
11334         (lto_input_tree_pointers): Call it.
11335         * lto-streamer.c (check_handled_ts_structures): Adjust.
11336         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
11337         * c-decl.c (all_translation_units): Remove.
11338         (pop_scope): Use build_translation_unit_decl.
11339         (collect_all_refs): Adjust.
11340         (for_each_global_decl): Likewise.
11341         (c_write_global_declarations): Likewise.
11342
11343 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
11344
11345         PR bootstrap/45686
11346         * fold-const.c (fold_checksum_tree): Change slot from const void **
11347         to void **, use CONST_CAST_TREE to store into *slot.
11348
11349 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
11350
11351         * config/i386/i386.md: Remove unneeded empty conditions and
11352         preparation statements from expanders.
11353         * config/i386/mmx.md: Ditto.
11354         * config/i386/sse.md: Ditto.
11355
11356 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
11357
11358         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
11359
11360 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11361
11362         PR rtl-optimization/45593
11363         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
11364         insns that were in delay slots as stand-alone insns.
11365
11366 2010-09-15  Ian Lance Taylor  <iant@google.com>
11367
11368         * incpath.c (remove_duplicates): If name is not a directory, issue
11369         a warning rather than an error.
11370
11371 2010-09-15  Martin Jambor  <mjambor@suse.cz>
11372
11373         PR middle-end/45644
11374         * tree-sra.c (create_access): Check for bit-fields directly.
11375
11376 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
11377
11378         PR tree-optimization/45633
11379         * tree-cfg.c (verify_gimple_assign_binary): Allow
11380         MINUS_EXPR with lhs and rhs1 pointer vector and
11381         rhs2 sizetype vector.
11382         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
11383         or vector pointer use TER to optimize pointer subtraction.
11384
11385 2010-09-15  Jie Zhang  <jie@codesourcery.com>
11386
11387         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
11388         fcmpd to fcmps.
11389
11390 2010-09-15  Ian Lance Taylor  <iant@google.com>
11391
11392         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
11393
11394 2010-09-15  Ian Lance Taylor  <iant@google.com>
11395
11396         * function.c (get_arg_pointer_save_area): Set
11397         arg_pointer_save_area_init to true.
11398
11399 2010-09-15  Martin Jambor  <mjambor@suse.cz>
11400
11401         * tree-sra.c (generate_subtree_copies): Updated comment.
11402         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
11403         obtained from the statement iterator instead.
11404         (load_assign_lhs_subreplacements): Removed parameters lhs and
11405         right_offset, which is obtained from top_racc instead.  Parameter lacc
11406         is now expected to be the root of the processed tree rather than root's
11407         first child.  Updated all callers.
11408
11409 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
11410
11411         * config/pdp11/pdp11.c (register_move_cost): Rename to
11412         pdp11_register_move_cost.
11413         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
11414         pdp11_register_move_cost.
11415         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
11416         pdp11_register_move_cost instead of register_move_cost.
11417
11418 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
11419
11420         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
11421         pattern for vmovn. Expansion in case of non
11422         -mvectorize-with-neon-quad.
11423         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
11424         non- -mvectorize-with-neon-quad case.
11425         (move_lo_quad_<mode>): New expansion to vmov into low part.
11426         (move_hi_quad_<mode>): New expansion to vmov into high part.
11427         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
11428         (move_lo_quad_v4sf): Likewise.
11429         (move_lo_quad_v8hi): Likewise.
11430         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
11431         low part.
11432         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
11433         high part.
11434         * config/arm/iterators.md (ANY128): New mode iterator.
11435         (V_narrow_pack): New mode attribute.
11436         (V_HALF): Add attribute.
11437         (V_DOUBLE): Add attribute.
11438         (V_mode_nunits): Add attribute.
11439
11440 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11441
11442         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
11443         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
11444
11445 2010-09-15  Olivier Hainque  <hainque@adacore.com>
11446             Jose Ruiz  <ruiz@adacore.com>
11447
11448         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
11449         * config/alpha/osf5-unwind.h: New file.
11450
11451 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11452
11453         PR bootstrap/45672
11454         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
11455         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
11456         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
11457
11458 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
11459
11460         * c-lang.h (struct lang_type): Add variable_size GTY option.
11461
11462 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11463
11464         PR bootstrap/45672
11465         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
11466
11467 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11468
11469         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
11470         result isn't used in memory address.
11471
11472 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11473
11474         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
11475         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
11476         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
11477         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
11478         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
11479         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
11480
11481         * target.def: Add units_per_simd_word to vectorize.
11482
11483         * targhooks.c (default_units_per_simd_word): New.
11484         * targhooks.h (default_units_per_simd_word): Likewise.
11485         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
11486         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11487         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
11488         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11489         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
11490         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11491         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
11492         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11493
11494         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
11495         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
11496
11497         * tree-vect-stmts.c: Don't include "tm_p.h".
11498         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
11499         with targetm.vectorize.units_per_simd_word.
11500
11501         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
11502
11503         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
11504
11505         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
11506         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
11507
11508         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
11509         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
11510
11511         * doc/tm.texi: Regenerated.
11512
11513 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11514
11515         * tree-vect-stmts.c: Include "tm_p.h".
11516
11517         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
11518         out of RTX_CODE.
11519
11520 2010-09-14  Martin Jambor  <mjambor@suse.cz>
11521
11522         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
11523         location of generated statement.  Changed all callers.
11524         (build_ref_for_model): New parameter loc which used to set location of
11525         all generated expressions.  Changed all callers.
11526         (generate_subtree_copies): Likewise.
11527         (init_subtree_with_zero): Likewise.
11528         (sra_modify_expr): Set locations of all generated statements and
11529         expressions to the location the original statement.
11530         (handle_unscalarized_data_in_subtree): Likewise.
11531         (load_assign_lhs_subreplacements): Likewise.
11532         (sra_modify_constructor_assign): Likewise.
11533         (sra_modify_assign): Likewise.
11534
11535 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
11536
11537         PR target/45277
11538         PR target/45363
11539         PR target/45407
11540         * doc/install.texi (sparc*-*-*): New section.
11541         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
11542
11543 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
11544
11545         PR middle-end/45567
11546         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
11547         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
11548         (expand_builtin): Adjust caller.
11549         (expand_builtin_unop): Only use subtarget if it has the right mode.
11550
11551 2010-09-14  Tristan Gingold  <gingold@adacore.com>
11552
11553         * configure.ac (plugins): Fix typos.
11554         * configure: Regenerate.
11555
11556 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
11557
11558         PR debug/45660
11559         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
11560         gen_type_die for function/method return type.
11561
11562 2010-09-14  Ira Rosen  <irar@il.ibm.com>
11563
11564         PR tree-optimization/45470
11565         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
11566         can throw an exception.
11567         * tree-vect-stmts.c (vectorizable_call): Likewise.
11568
11569 2010-09-14  DJ Delorie  <dj@redhat.com>
11570
11571         PR target/44749
11572         * config/mep/mep-protos.h (mep_save_register_info,
11573         mep_reinit_regs, mep_init_regs): Declare.
11574
11575         * config/mep/mep.c: Move all target definitions to the end of the
11576         file to avoid the need for duplicate declarations.
11577         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
11578         (mep_reorg_erepeat): Remove unused variables.
11579         (mep_expand_builtin): Likewise.
11580
11581         * config/mep/mep-pragma.c: Don't include rtl.h.
11582         (INVALID_REGNUM): New.
11583         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
11584         functions.
11585         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
11586         Avoid enum/integer math.
11587
11588 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
11589
11590         PR target/44749
11591         * config/mep/t-mep (GTM_H): Add insn-constants.h.
11592         * config/mep/mep.c (mep_conditional_register_usage): Take no
11593         parameters.
11594         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
11595         prototype.
11596         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
11597         call to mep_conditional_register_usage.
11598
11599 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
11600
11601         PR debug/43937
11602         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
11603         the DECL as well.
11604
11605 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
11606
11607         PR rtl-optimization/45617
11608         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
11609         even if low N bits of X aren't known to be zero.
11610
11611 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
11612
11613         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
11614
11615         * config/i386/i386.c (initial_ix86_tune_features): Add
11616         X86_TUNE_VECTORIZE_DOUBLE.
11617         (ix86_units_per_simd_word): New.
11618
11619         * config/i386/i386.h (ix86_tune_indices): Add
11620         X86_TUNE_VECTORIZE_DOUBLE.
11621         (TARGET_VECTORIZE_DOUBLE): New.
11622         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
11623
11624 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
11625
11626         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
11627         (new_temp_expr_table): Allocate call_cnt vector.
11628         (free_temp_expr_table): Free it.
11629         (process_replaceable): Add call_cnt parm and set in vector.
11630         (find_replaceable_in_bb): Skip replacement if def/use span a call.
11631         (debug_ter): Dump call_cnt value, remove stderr uses.
11632
11633 2010-09-13  Jan Hubicka  <jh@suse.cz>
11634
11635         * tree.c (build_zero_cst): New.
11636         * tree.h (build_zero_cst): Declare.
11637         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
11638         (get_base_constructor): Break out from ...
11639         (fold_const_aggregate_ref): Here; handle empty constructors.
11640
11641 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
11642
11643         * config/arm/arm.md: (define_attr "conds"): Update comment.
11644         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
11645         conds attribute to clob.
11646         (arm_sync_compare_and_swapsi): Likewise.
11647         (arm_sync_compare_and_swap<mode>): Likewise.
11648         (arm_sync_lock_test_and_setsi): Likewise.
11649         (arm_sync_lock_test_and_set<mode>): Likewise.
11650         (arm_sync_new_<sync_optab>si): Likewise.
11651         (arm_sync_new_nandsi): Likewise.
11652         (arm_sync_new_<sync_optab><mode>): Likewise.
11653         (arm_sync_new_nand<mode>): Likewise.
11654         (arm_sync_old_<sync_optab>si): Likewise.
11655         (arm_sync_old_nandsi): Likewise.
11656         (arm_sync_old_<sync_optab><mode>): Likewise.
11657         (arm_sync_old_nand<mode>): Likewise.
11658
11659 2010-09-13  Olivier Hainque  <hainque@adacore.com>
11660
11661         * fwprop.c (forward_propagate_and_simplify): Only attach a
11662         REG_EQUAL note to an insn if the destination is a register.
11663         * gcse.c (try_replace_reg): Likewise.
11664
11665 2010-09-13  Richard Guenther  <rguenther@suse.de>
11666
11667         PR tree-optimization/45611
11668         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
11669         (copy_ref_info): Likewise.
11670
11671 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
11672
11673         PR debug/45604
11674         PR debug/45419
11675         PR debug/45408
11676         * tree-pretty-print.c (dump_generic_node): Disregard top-level
11677         types of MEM_REF pointer types to the same type.
11678
11679 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
11680
11681         PR rtl-optimization/41087
11682         * ifcvt.c (noce_get_condition): Don't allow conditions with
11683         side-effects.
11684
11685 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
11686
11687         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11688         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
11689         * config/frv/frv.c (frv_register_move_cost): Make static. Change
11690         arguments type to reg_class_t. Add mode argument.
11691         (frv_memory_move_cost): New.
11692         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
11693
11694 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
11695
11696         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
11697         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
11698
11699 2010-09-10  Jan Hubicka  <jh@suse.cz>
11700
11701         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
11702
11703 2010-09-10  Richard Guenther  <rguenther@suse.de>
11704
11705         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
11706         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
11707         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
11708         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
11709         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
11710
11711 2010-09-10  Richard Guenther  <rguenther@suse.de>
11712
11713         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
11714         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
11715         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
11716         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
11717
11718 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
11719
11720         PR middle-end/45634
11721         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
11722         of string folding is of integral type.
11723
11724 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
11725
11726         * doc/invoke.texi (-x): Fix typo.
11727
11728 2010-09-10  Richard Guenther  <rguenther@suse.de>
11729
11730         PR debug/44115
11731         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
11732         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
11733         Output DECL_DEBUG_EXPR.
11734         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11735         Input DECL_DEBUG_EXPR.
11736
11737 2010-09-10  Richard Guenther  <rguenther@suse.de>
11738
11739         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
11740         (build_index_type): Implement in terms of build_range_type.
11741         (build_range_type): Do not allow NULL_TREE type, improve
11742         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
11743         if we didn't hash.
11744         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
11745         create a distinct copy of the type.
11746
11747 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
11748
11749         * configure: Regenerated.
11750         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
11751
11752 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11753
11754         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
11755         * config/arm/cortex-a9-neon.md: New and partially generated.
11756         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
11757
11758 2010-09-10  Richard Guenther  <rguenther@suse.de>
11759
11760         * tree.h (build_index_2_type): Remove.
11761         * tree.c (build_index_2_type): Remove.
11762
11763 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
11764
11765         PR bootstrap/45630
11766         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
11767         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
11768         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
11769
11770 2010-09-10  Martin Jambor  <mjambor@suse.cz>
11771
11772         PR tree-optimization/44972
11773         * tree-sra.c: Include toplev.h.
11774         (build_ref_for_offset): Entirely reimplemented.
11775         (build_ref_for_model): New function.
11776         (build_user_friendly_ref_for_offset): New function.
11777         (analyze_access_subtree): Removed build_ref_for_offset check.
11778         (propagate_subaccesses_across_link): Likewise.
11779         (create_artificial_child_access): Use
11780         build_user_friendly_ref_for_offset.
11781         (propagate_subaccesses_across_link): Likewise.
11782         (ref_expr_for_all_replacements_p): Removed.
11783         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
11784         (sra_modify_expr): Use build_ref_for_model.
11785         (load_assign_lhs_subreplacements): Likewise.
11786         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
11787         checks for return values of build_ref_for_offset.
11788         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
11789         build_ref_for_offset.
11790         * ipa-prop.h: Include gimple.h
11791         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
11792         (ipa_analyze_indirect_call_uses): Update comment.
11793         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
11794         (IPA_PROP_H): Likewise.
11795
11796 2010-09-10  Martin Jambor  <mjambor@suse.cz>
11797
11798         PR tree-optimization/44972
11799         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
11800         calling build_ref_for_offset.
11801
11802 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11803
11804         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
11805         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
11806         * config/arm/arm-tune.md: Regenerate.
11807         * doc/invoke.texi (ARM Options): Document it.
11808
11809 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
11810
11811         * config/i386/i386.c: Include sched-int.h.
11812         (TARGET_SCHED_DISPATCH): Defined.
11813         (TARGET_SCHED_DISPATCH_DO): Defined.
11814         (DISPATCH_WINDOW_SIZE): Defined.
11815         (MAX_DISPATCH_WINDOWS): Defined.
11816         (MAX_INSN): Defined.
11817         (MAX_IMM): Defined.
11818         (MAX_IMM_SIZE): Defined.
11819         (MAX_IMM_32): Defined.
11820         (MAX_IMM_64): Defined.
11821         (MAX_LOAD): Defined.
11822         (MAX_STORE): Defined.
11823         (BIG): Defined.
11824         (dispatch_group): New.
11825         (num_allowable_groups): New.
11826         (group_name): New.
11827         (sched_insn_info_s): New.
11828         (dispatch_windows_s): New.
11829         (imm_info_s): New.
11830         (dispatch_window_list): New.
11831         (dispatch_window_list1): New.
11832         (get_mem_group): New.
11833         (is_cmp): New.
11834         (dispatch_violation): New.
11835         (is_branch): New.
11836         (is_prefetch): New.
11837         (init_window): New.
11838         (allocate_window): New.
11839         (init_dispatch_sched): New.
11840         (is_end_basic_block): New.
11841         (process_end_window): New.
11842         (allocate_next_window): New.
11843         (find_constant_1): New.
11844         (find_constant): New.
11845         (get_num_immediates): New.
11846         (has_immediate): New.
11847         (get_insn_path): New.
11848         (get_insn_group): New.
11849         (count_num_restricted): New.
11850         (fits_dispatch_window): New.
11851         (add_insn_window): New.
11852         (add_to_dispatch_window): New.
11853         (debug_dispatch_window_file): New.
11854         (debug_dispatch_window): New.
11855         (debug_insn_dispatch_info_file): New.
11856         (debug_ready_dispatch): New.
11857         (do_dispatch): New.
11858         (has_dispatch): New.
11859         * config/i386/i386.h (debug_ready_dispatch): Declared.
11860         (debug_dispatch_window): Declared.
11861         * config/i386/i386.opt (mdispatch-scheduler): New flag.
11862         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
11863         (TARGET_SCHED_DISPATCH_DO): New.
11864         * doc/tm.texi: Regererated.
11865         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
11866         ready_remove_first_dispatch
11867         (schedule_block): Call targetm.sched.dispatch and
11868         targetm.sched.dispatch_do.
11869         (sched_init): Call targetm.sched.dispatch and
11870         targetm.sched.dispatch_do.
11871         (ready_remove_first_dispatch): New.
11872         (number_in_ready): New.
11873         (get_ready_element): New.
11874         * hooks.c (hook_bool_rtx_int_false): New.
11875         (hook_void_rtx_int): New.
11876         * hooks.h (hook_bool_rtx_int_false): Declared.
11877         (hook_void_rtx_int): Declared.
11878         * sched-int.h (IS_DISPATCH_ON): Defined.
11879         (IS_CMP): Defined.
11880         (DISPATCH_VIOLATION): Defined.
11881         (FITS_DISPATCH_WINDOW): Defined.
11882         (DISPATCH_INIT): Defined.
11883         (ADD_TO_DISPATCH_WINDOW): Defined.
11884         (get_ready_element): Declared.
11885         (number_in_ready): Declared.
11886         * target.def (dispatch): Defined.
11887         (dispatch_do): Defined.
11888
11889 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
11890
11891         PR middle-end/45312
11892         * reload1.c (merge_assigned_reloads): Remove.
11893         (reload_as_needed): Don't call it.
11894
11895 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
11896
11897         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
11898         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11899         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11900
11901 2010-09-09  Matthias Klose  <doko@ubuntu.com>
11902
11903         PR bootstrap/43847
11904         * configure.ac (--enable-plugin): Enhance for cross builds.
11905         * configure: Regenerate.
11906
11907 2010-09-09  Jan Hubicka  <jh@suse.cz>
11908
11909         PR tree-optimization/45598
11910         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
11911         string folding is of integral type.
11912
11913 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
11914
11915         * configure.ac (gnu_indirect_function): New test.
11916         * configure: Rebuilt.
11917         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
11918         * defaults.h (IFUNC_ASM_TYPE): Provide default.
11919
11920         * doc/extend.texi (Function Attributes): Document ifunc.
11921         * varasm.c (do_assemble_alias): Deal with ifuncs too.
11922
11923 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
11924
11925         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
11926         epilogue instruction move.
11927
11928 2010-09-09  Jan Hubicka  <jh@suse.cz>
11929
11930         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
11931         command line to allow more partitions than input files.
11932
11933 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
11934
11935         PR middle-end/44554
11936         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
11937
11938 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
11939
11940         PR middle-end/40386
11941         * ira.c (pseudo_for_reload_consideration_p): Don't use
11942         flag_ira_share_spill_slots.
11943
11944 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11945
11946         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
11947         point zero operands that fit into a single GPR.
11948         (s390_preferred_reload_class): Ensure we only return general-purpose
11949         register classes.
11950         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
11951         floating-point zero operands into GPRs.
11952         ("*mov<mode>_64"): Likewise.
11953         ("mov<mode>"): Likewise using lhi.
11954
11955 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11956
11957         * config/s390/s390.c (s390_symref_operand_p): Return false for
11958         literal pool references.
11959         (s390_check_qrst_address): Update caller.
11960
11961 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
11962
11963         * config/i386/predicates.md (ext_register_operand): Check that
11964         SUBREG_REG is really a register before looking for REGNO.
11965         (reg_not_xmm0_operand): Handle SUBREGs correctly.
11966         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
11967
11968 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
11969
11970         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
11971         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
11972         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
11973         * print-rtl.c (print_rtx): Likewise.
11974         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
11975         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
11976         for ADDR_EXPR with non-addressable object.
11977         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
11978         (struct dw_val_struct): Add v.val_decl_ref.
11979         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
11980         Handle DW_OP_GNU_implicit_pointer.
11981         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
11982         (get_ref_die_offset_label): New function.
11983         (implicit_ptr_descriptor): New function.
11984         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
11985         (loc_descriptor): Likewise.
11986         (gen_variable_die): Put even definitions into decl_die_table.
11987         (resolve_addr_in_expr): Resolve still unresolved
11988         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
11989         return false.
11990         (dwarf2out_finish): Call output_location_lists after outputting
11991         .debug_info and .debug_abbrev instead of before.
11992
11993 2010-09-09  Roland McGrath  <roland@redhat.com>
11994
11995         * dwarf2out.c (DWARF_REF_SIZE): Define.
11996         (size_of_loc_descr): Use it for DW_OP_call_ref.
11997
11998 2010-09-09  Alan Modra  <amodra@gmail.com>
11999
12000         * doc/invoke.text: Reinstate mcmodel=medium.
12001         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
12002         CMODEL_MEDIUM as default.
12003         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
12004         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
12005         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
12006         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
12007
12008 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12009
12010         PR target/45250
12011         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
12012         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
12013         (builtin_longjmp): Likewise.
12014         (allocate_stack): Use hard_frame_pointer_rtx instead of
12015         frame_pointer_rtx.
12016         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
12017         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
12018         (pa_can_eliminate): Likewise.
12019         (TARGET_INTERNAL_ARG_POINTER): Define.
12020         (TARGET_CAN_ELIMINATE): Define.
12021         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
12022         pointer.
12023         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
12024         (pa_internal_arg_pointer, pa_can_eliminate,
12025         pa_initial_elimination_offset): New.
12026         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
12027         (HARD_FRAME_POINTER_REGNUM): Set to register three.
12028         (INITIAL_FRAME_POINTER_OFFSET): Delete.
12029         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
12030         Define.
12031         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
12032         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
12033         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
12034         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
12035         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
12036         new soft frame pointer.
12037         * config/pa/pa64-regs.h: Likewise.
12038
12039 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12040
12041         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
12042         numerical constant.
12043         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
12044
12045 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12046
12047         PR debug/45531
12048         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
12049
12050 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12051
12052         PR debug/45419
12053         PR debug/45408
12054         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12055         qualifiers in otherwise equal MEM_REF pointer types.
12056         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
12057         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
12058
12059 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12060
12061         PR target/44392
12062         * config/arm/arm.md (bswapsi2): Handle condition correctly
12063         for armv6 and optimize_size.
12064
12065 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
12066
12067         PR other/18555
12068         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
12069
12070 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12071
12072         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
12073         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
12074         ix86_expand_strlen, legitimate_pic_address_disp_p,
12075         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
12076         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
12077         ix86_check_movabs, ix86_secondary_memory_needed): Change function
12078         prototype to bool.
12079         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
12080         return_in_memory_ms_64, ix86_check_movabs,
12081         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
12082         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
12083         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
12084         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
12085         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
12086         ix86_secondary_memory_needed): Change to bool.  Return
12087         "true" and "false" values.
12088         * config/i386/i386.md: Return "true" and "false" values.
12089
12090 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12091
12092         * doc/sourcebuild.texi (Effective-Target Keywords): Document
12093         run_expensive_tests.
12094
12095 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12096
12097         * toplev.c (output_stack_usage): Use lbasename instead of basename.
12098
12099 2010-09-08  Martin Jambor  <mjambor@suse.cz>
12100
12101         PR other/45443
12102         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
12103         at -O3.
12104
12105 2010-09-08  Richard Guenther  <rguenther@suse.de>
12106
12107         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
12108         (visit): Adjust.
12109         (iterative_hash_gimple_type): Likewise.
12110         (gimple_type_hash): Likewise.
12111         (gimple_register_type): Likewise.
12112         (print_gimple_types_stats): Likewise.
12113         (free_gimple_type_tables): Likewise.
12114
12115 2010-09-08  Michael Matz  <matz@suse.de>
12116
12117         PR tree-optimization/43430
12118         * tree-vect-stmts.c (vectorizable_condition): Support multiple
12119         copies for conditional statements if it's not part of a reduction.
12120
12121 2010-09-08  Michael Matz  <matz@suse.de>
12122
12123         PR tree-optimization/33244
12124         * tree-ssa-sink.c (statement_sink_location): Don't sink into
12125         empty loop latches.
12126
12127 2010-09-08  Richard Guenther  <rguenther@suse.de>
12128
12129         PR tree-optimization/45578
12130         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
12131         Be more careful when transfering alignment information to
12132         the new induction variable.
12133         (copy_ref_info): Likewise.
12134
12135 2010-09-08  Richard Guenther  <rguenther@suse.de>
12136
12137         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
12138         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
12139
12140 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
12141
12142         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
12143         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
12144
12145 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
12146
12147         PR doc/45587
12148         * doc/md.texi: Fixed modes on several standard pattern names.
12149
12150 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
12151
12152         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
12153         (ashl<mode>3): ...this.
12154         (loongson_psra<V_suffix>): Rename to...
12155         (ashr<mode>3): ...this.
12156         (loongson_psrl<V_suffix>): Rename to...
12157         (lshr<mode>3): ...this.
12158         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
12159         (CODE_FOR_loongson_psllw): Define.
12160         (CODE_FOR_loongson_psrlh): Define.
12161         (CODE_FOR_loongson_psrlw): Define.
12162         (CODE_FOR_loongson_psrah): Define.
12163         (CODE_FOR_loongson_psraw): Define.
12164
12165 2010-09-07  Richard Henderson  <rth@redhat.com>
12166
12167         * tree-vect-data-refs.c: Include tm_p.h.
12168         * Makefile.in (tree-vect-data-refs.o): Update deps.
12169         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
12170         Move delarations outside #ifdef RTX_CODE.
12171
12172 2010-09-07  Richard Henderson  <rth@redhat.com>
12173
12174         * final.c (rest_of_handle_final): Unconditionally do
12175         output_function_exception_table before assemble_end_function.
12176
12177 2010-09-07  Jan Hubicka  <jh@suse.cz>
12178
12179         * tree-inline.c (tree_inlinable_function_p): Do not test
12180         DECL_REPLACEABLE_P.
12181         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
12182         update_callee_keys, cgraph_decide_inlining): Test function availability.
12183         * cif-code.def (OVERWRITABLE): New code.
12184
12185 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
12186             Jack Howarth  <howarth@bromo.med.uc.edu>
12187
12188         PR target/36502
12189         PR target/42313
12190         PR target/44651
12191         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
12192         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
12193         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
12194         MAX macro.
12195
12196 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12197
12198         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
12199         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
12200
12201 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12202
12203         * config.gcc: Don't append t-android for Android targets.
12204
12205         * config/t-android: Removed.
12206
12207 2010-09-07  Richard Henderson  <rth@redhat.com>
12208
12209         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
12210         * doc/tm.texi.in: Add doc marker.
12211         * doc/tm.texi: Rebuild.
12212         * except.c (switch_to_exception_section): Always build.
12213         (output_one_function_exception_table): Move section switch,
12214         personality output, and label output ...
12215         (output_function_exception_table): ... here.  Use the new
12216         personality hook.
12217
12218         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
12219         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
12220         TARGET_ASM_INIT_SECTIONS): New.
12221         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
12222         make static.
12223         (TARGET_ASM_UNWIND_EMIT): Update to match.
12224         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
12225
12226         * config/arm/arm.c (arm_asm_emit_except_personality): New.
12227         (arm_asm_init_sections): New.
12228         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
12229
12230 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12231
12232         * config/arm/arm.md: Remove unused variable.
12233
12234 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
12235
12236         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12237         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
12238         (m32r_memory_move_cost): New function.
12239
12240 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12241
12242         * config.gcc: Append t-android for Android targets.
12243
12244         * config/t-android: New.
12245
12246 2010-09-07  Richard Henderson  <rth@redhat.com>
12247
12248         * target.def (unwind_emit_before_insn): New hook.
12249         * doc/tm.texi.in: Add @hook marker for it.
12250         * doc/tm.texi: Rebuild.
12251         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
12252
12253 2010-09-07  Martin Jambor  <mjambor@suse.cz>
12254
12255         PR fortran/43665
12256         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
12257         are any type attributes.
12258
12259 2010-09-07  Jan Hubicka  <jh@suse.cz>
12260
12261         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
12262         array_ref_low_bound in string access folding.
12263
12264 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
12265
12266         PR target/45206
12267         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
12268         eh_return fixup sequence.
12269
12270 2010-09-07  Jan Hubicka  <jh@suse.cz>
12271
12272         * gimple-fold.c (maybe_fold_reference): Verify that operand is
12273         gimple_min_invariant.
12274
12275 2010-09-07  Richard Guenther  <rguenther@suse.de>
12276
12277         PR middle-end/45569
12278         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
12279         nor CONSTRUCTOR can trap.
12280         * tree-complex.c (update_complex_assignment): Update EH info.
12281
12282 2010-09-07  Richard Guenther  <rguenther@suse.de>
12283
12284         PR middle-end/45569
12285         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
12286         * passes.c (execute_function_todo): Do not verify anything if
12287         we saw errors.
12288
12289 2010-09-07  Richard Guenther  <rguenther@suse.de>
12290
12291         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
12292
12293 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
12294
12295         PR target/43137
12296         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
12297         New define_mode_attrs.
12298         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
12299         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
12300         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
12301         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
12302         Remove pool_range attribute.
12303         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
12304         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
12305         pool_range and neg_pool_range attributes.
12306         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
12307         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
12308         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
12309
12310 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12311
12312         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
12313         check glibc.
12314
12315 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
12316
12317         PR target/22152
12318         * config/i386/mmx.md (*mov<mode>_internal_rex64,
12319         *mov<mode>_internal_avx, *mov<mode>_internal,
12320         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
12321         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
12322
12323 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
12324
12325         * c-typeck.c (do_warn_double_promotion): Remove.
12326         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
12327         Objective-C++ too.
12328
12329 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
12330
12331         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
12332         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
12333         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
12334         argument type to reg_class_t. Change result type to bool.
12335         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12336
12337 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
12338
12339         PR libobjc/19850
12340         * gthr-posix.h (__gthread_objc_thread_detach): Use
12341         _objc_thread_attribs when detaching a thread.
12342         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
12343
12344 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12345
12346         PR target/45524
12347         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
12348         * configure: Regenerated.
12349
12350 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12351
12352         * combine.c (try_combine): Set subst_low_luid to i0.
12353
12354 2010-09-06  Richard Guenther  <rguenther@suse.de>
12355
12356         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
12357         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
12358         (build_aligned_type): Declare.
12359         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
12360         (check_aligned_type): New function.
12361         (build_aligned_type): Likewise.
12362         * expr.c (expand_assignment): Handle misaligned stores via
12363         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
12364         (expand_expr_real_1): Likewise.
12365         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
12366         * tree-vect-stmts.c (vectorizable_store): Do not build
12367         MISALIGNED_INDIRECT_REF but initialize alignment information.
12368         (vectorizable_load): Likewise.
12369         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
12370         handling.
12371         * cfgexpand.c (expand_debug_expr): Likewise.
12372         * dwarf2out.c (loc_list_from_tree): Likewise.
12373         * fold-const.c (maybe_lvalue_p): Likewise.
12374         (operand_equal_p): Likewise.
12375         (build_fold_addr_expr_with_type_loc): Likewise.
12376         * gimplify.c (gimplify_addr_expr): Likewise.
12377         (gimplify_expr): Likewise.
12378         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
12379         (verify_gimple_assign_single): Likewise.
12380         * tree-dump.c (dequeue_and_dump): Likewise.
12381         (tree_could_trap_p): Likewise.
12382         * tree-predcom.c (ref_at_iteration): Likewise.
12383         * tree-pretty-print.c (dump_generic_node): Likewise.
12384         (op_code_prio): Likewise.
12385         (op_symbol_code): Likewise.
12386         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
12387         * tree-ssa-loop-im.c (for_each_index): Likewise.
12388         (gen_lsm_tmp_name): Likewise.
12389         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
12390         (find_interesting_uses_address): Likewise.
12391         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
12392         * tree-ssa-operands.c (get_expr_operands): Likewise.
12393         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
12394         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
12395         (ao_ref_init_from_vn_reference): Likewise.
12396         * tree.c (staticp): Likewise.
12397         (build1_stat): Likewise.
12398         (reference_alias_ptr_type): Likewise.
12399         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
12400         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
12401         MISALIGNED_INDIRECT_REF handling.
12402
12403 2010-09-06  Richard Guenther  <rguenther@suse.de>
12404
12405         PR tree-optimization/45534
12406         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
12407         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
12408         on the target.
12409         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
12410         valid on the target.
12411
12412 2010-09-06  Andreas Schwab  <schwab@redhat.com>
12413
12414         * configure.ac: Quote argument of AC_MSG_WARN.
12415         * configure: Regenerate.
12416
12417 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
12418
12419         * sel-sched.c (move_cond_jump): Correct arguments to
12420         maybe_tidy_empty_bb.
12421         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
12422
12423 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
12424
12425         PR rtl-optimization/44919
12426         * sel-sched.c (move_cond_jump): Remove assert, check that
12427         the several blocks case can only happen with mutually exclusive
12428         insns instead.  Rewrite the movement code to support moving through
12429         several basic blocks.
12430
12431 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
12432
12433         * config/i386/i386.md (iptrsize): New mode attribute.
12434         (tp_seg): Ditto.
12435         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
12436         mode iterator.
12437         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
12438         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
12439         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
12440         (stack_tls_protect_set_<mode>): Ditto from
12441         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
12442         of thread base pointer load.
12443         (stack_tls_protect_test_<mode>): Ditto from
12444         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
12445         of thread base pointer load.
12446         (stack_protect_set): Rewrite using indirect functions.
12447         (stack_protect_test): Ditto.
12448         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
12449         (ix86_print_operand): Handle '@'.
12450
12451 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
12452
12453         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
12454         MINUS_EXPR.
12455
12456 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
12457
12458         * doc/invoke.texi: Document -Wdouble-promotion.
12459         * c-typeck.c (convert_arguments): Check for implicit conversions
12460         from float to double.
12461         (do_warn_double_promotion): New function.
12462         (build_conditional_expr): Use it.
12463         (build_binary_op): Likewise.
12464
12465 2010-09-05  Richard Guenther  <rguenther@suse.de>
12466
12467         PR tree-optimization/45535
12468         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
12469         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
12470         dereferencing it.
12471         (indirect_refs_may_alias_p): Likewise.
12472
12473 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
12474
12475         * config/sh/sh.c (sh_option_override): Make static.
12476         Adjust comments.  Declare.
12477         (sh_function_value_regno_p): Likewise.
12478         (sh_register_move_cost): Modify the arguments, make static.
12479         Adjust comments.  Declare.
12480         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
12481         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12482         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
12483         REGISTER_MOVE_COST): Delete.
12484         * config/sh/sh-protos.h (sh_override_options): Delete.
12485         (sh_register_move_cost): Delete.
12486         (sh_function_value_regno_p): Delete.
12487
12488 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
12489
12490         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
12491         m32r_function_value_regno_p): New functions.
12492         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12493         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
12494         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
12495         FUNCTION_VALUE_REGNO_P): Remove.
12496
12497 2010-09-04  Jan Hubicka  <jh@suse.cz>
12498
12499         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
12500         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
12501         fold_read_from_constant_string.
12502
12503         * gimple.h (canonicalize_constructor_val): Declare.
12504         * gimple-fold.c (canonicalize_constructor_val): New function.
12505         (get_symbol_constant_value):Use it.
12506         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
12507
12508 2010-09-04  Jan Hubicka  <jh@suse.cz>
12509
12510         * tree-switch-conversion.c (build_one_array): Set constructor to be
12511         static.
12512         * varpool.c (varpool_finalize_decl): Compute const_value_known.
12513
12514 2010-09-04  Richard Guenther  <rguenther@suse.de>
12515
12516         PR bootstrap/45519
12517         * tree-flow.h (force_gimple_operand_1): Declare.
12518         (force_gimple_operand_gsi_1): Likewise.
12519         * gimplify.c (force_gimple_operand_1): New worker taking a
12520         gimple predicate for ...
12521         (force_gimple_operand): ... which now wraps it.
12522         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
12523         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
12524         last change.
12525         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
12526         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
12527         (create_mem_ref): Likewise.
12528
12529 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
12530
12531         * config/i386/predicates.md (sse_reg_operand): New predicate.
12532         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
12533         predicate for operand 1.
12534         (XFmode push splitter): Use fp_register_operand predicate
12535         for operand 1.
12536         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
12537         (SF-DF float_extend push splitter): Add reload_completed insn
12538         predicate.
12539         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
12540         MODEF mode macro.  Add reload_completed insn predicate.
12541
12542 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
12543
12544         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
12545         (struct df_extract_ref): Remove.
12546         (union df_ref_d): Remove extract_ref member.
12547         (df_ref_create): Remove last three arguments.
12548         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
12549         * df-scan.c (df_ref_record): Remove last three arguments, do not
12550         pass them to df_ref_create_structure.
12551         (df_uses_record): Remove first and last three arguments.  Replace
12552         first argument with DF_REF_REGULAR, adjust calls to remove the
12553         width, offset and mode.  Always call recursively on the second
12554         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
12555         (df_ref_create_structure): Remove first argument.
12556         (struct df_scan_problem_data): Remove ref_extract_pool.
12557         (df_scan_free_internal): Do not free it.
12558         (df_scan_alloc): Do not allocate it.
12559         (df_ref_create): Remove last three arguments, do not pass them to
12560         df_ref_create_structure.
12561         (df_free_ref): Remove DF_REF_EXTRACT case.
12562         (df_notes_rescan): Adjust call to df_uses_record.
12563         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
12564         Remove DF_REF_EXTRACT case.
12565         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
12566         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
12567         and SUBREG definitions.
12568         (df_get_conditional_uses): Remove references to width/offset/mode,
12569         adjust call to df_ref_create_structure.
12570         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
12571         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
12572         calls to df_uses_record and df_ref_record.
12573         * fwprop.c (update_df): Remove references to width/offset/mode,
12574         adjust call to df_ref_create.
12575
12576 2010-09-03  Jan Hubicka  <jh@suse.cz>
12577
12578         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
12579         (build_cdtor_fns): Update use of build_cdtor.
12580
12581 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
12582
12583         * doc/options.texi (SeparateAlias): Document.
12584         * opt-functions.awk (switch_flags): Handle SeparateAlias.
12585         * opth-gen.awk: Generate enumeration names for options marked
12586         SeparateAlias, but not for those marked Ignore.
12587         * opts-common.c (generate_canonical_option): Don't output separate
12588         argument for options marked CL_SEPARATE_ALIAS.
12589         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
12590         * opts.h (CL_SEPARATE_ALIAS): New.
12591         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
12592         CL_COMMON): Adjust definitions.
12593         * config/i386/darwin.opt, config/mips/sde.opt: New.
12594         * common.opt (fdump-final-insns): New.
12595         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
12596         i386/darwin.opt.
12597         (mips*-sde-elf*): Add mips/sde.opt.
12598         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
12599         -mno-data-in-code and -mcode-xonly here.
12600         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
12601         * gcc.c (option_map): Add "j" to --dump entry.
12602         (translate_options): Don't translate -d to -foutput-class-dir= here.
12603
12604 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
12605
12606         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
12607         DR_IS_WRITE.
12608         (compute_all_dependences): Same.
12609         (create_rdg_edge_for_ddr): Same.
12610         * tree-data-ref.h (DR_IS_WRITE): New.
12611         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
12612         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
12613         (write_memrefs_written_at_least_once): Same.
12614         * tree-predcom.c (suitable_component_p): Same.
12615         (determine_roots_comp): Same.
12616         (execute_load_motion): Same.
12617         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
12618         (vect_enhance_data_refs_alignment): Same.
12619         (vect_analyze_group_access): Same.
12620
12621 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
12622
12623         PR testsuite/42843
12624         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
12625         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
12626
12627 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
12628
12629         * dwarf2out.c (file scope): Remove #if0'd code.
12630         (gen_subprogram_die): Same.
12631
12632 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
12633
12634         PR middle-end/45484
12635         * dwarf2out.c (flush_queued_reg_saves): Rename to...
12636         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
12637         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
12638         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
12639         * config/i386/i386.c (output_set_got): Call it.
12640
12641 2010-09-03  Michael Matz  <matz@suse.de>
12642
12643         PR middle-end/45415
12644         * tree-sra.c (sra_modify_assign): If we modify the statement,
12645         say so.
12646
12647         * tree-ssa.c (verify_ssa): Check number of operands and links
12648         per statement to agree.
12649
12650 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
12651             Iain Sandoe  <iains@gcc.gnu.org>
12652
12653         PR target/45476
12654         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
12655         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
12656         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
12657
12658 2010-09-03  Richard Guenther  <rguenther@suse.de>
12659
12660         * lto-streamer-out.c (output_function): Output function
12661         start and end loci.
12662         * lto-streamer-in.c (input_function): Input function start
12663         and end loci.
12664
12665 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12666
12667         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
12668         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
12669         * configure: Regenerate.
12670         * aclocal.m4: Regenerate.
12671
12672 2010-09-03  Jan Hubicka  <jh@suse.cz>
12673
12674         PR lto/44812
12675         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
12676         on functions/variables in other partition.
12677
12678 2010-09-03  Jan Hubicka  <jh@suse.cz>
12679
12680         * cgraph.h (struct varpool_node): Add const_value_known.
12681         (varpool_decide_const_value_known): Declare.
12682         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
12683         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
12684         (input_varpool_node): Restore const_value_known.
12685         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
12686         initializer folding.
12687         * ipa.c (ipa_discover_readonly_nonaddressable_var,
12688         function_and_variable_visibility): Compute const_value_known.
12689         * gimple-fold.c (get_symbol_constant_value): Use varpool for
12690         initializer folding.
12691         * varpool.c (varpool_decide_const_value_known): New function.
12692
12693 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
12694
12695         * config/i386/i386.md: Remove empty preparation statements
12696         from splitters.
12697
12698 2010-09-03  Jan Hubicka  <jh@suse.cz>
12699
12700         * passes.c (rest_of_decl_compilation): Do not add local vars into
12701         varpool.
12702         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
12703         static or extern vars are in varpool.
12704         (varpool_finalize_decl): Sanity check that only static vars are
12705         finalized.
12706
12707 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
12708
12709         PR debug/45500
12710         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
12711         not just generic vectors with BLKmode.
12712
12713 2010-09-03  Richard Guenther  <rguenther@suse.de>
12714
12715         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
12716         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
12717         * tree.h (TMR_SYMBOL): Remove.
12718         (TMR_BASE, TMR_OFFSET): Adjust.
12719         (TMR_INDEX2): New.
12720         * alias.c (ao_ref_from_mem): Use TMR_BASE.
12721         * builtins.c (get_object_alignment): Merge TMR_BASE and
12722         TMR_SYMBOL handling.
12723         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
12724         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
12725         handling.  Also allow TARGET_MEM_REF as base address.
12726         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
12727         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
12728         base.  Gimplify TMR_INDEX2.
12729         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
12730         * tree-dfa.c (get_ref_base_and_extent): Likewise.
12731         (get_addr_base_and_unit_offset): Likewise.
12732         * tree-eh.c (tree_could_trap_p): Likewise.
12733         * tree-pretty-print.c (dump_generic_node): Likewise.
12734         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
12735         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
12736         base to index2.
12737         (get_address_description): Reconstruct addres description
12738         from merged TMR_BASE and TMR_INDEX2.
12739         (maybe_fold_tmr): Fold propagated addresses.
12740         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
12741         MEM_REF and TARGET_MEM_REF paths.
12742         (indirect_refs_may_alias_p): Likewise.
12743         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
12744         instead of TMR_SYMBOL.
12745         * tree-ssa-operands.c (get_tmr_operands): Simplify.
12746         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
12747         according to changes ...
12748         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
12749         Split TARGET_MEM_REF into two fields plus the base.
12750         * tree.c (mem_ref_offset): Simplify.
12751         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
12752         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
12753         Strip NOPs when folding MEM_REF addresses.
12754         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
12755         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
12756         (fold_gimple_assign): ... not here.
12757
12758 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
12759
12760         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
12761         * config/mips/mips.c (mips_shift_truncation_mask): New function.
12762         (TARGET_SHIFT_TRUNCATION_MASK): Define.
12763
12764 2010-09-02  Richard Henderson  <rth@redhat.com>
12765
12766         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
12767         instead of readelf in the test.
12768         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
12769         in the .debug_frame section for coff targets.
12770         * configure: Rebuild.
12771
12772 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
12773
12774         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
12775         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
12776         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12777         (m32c_class_likely_spilled_p): Make static. Change argument type to
12778         reg_class_t. Change result type to bool.
12779
12780 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
12781
12782         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
12783         to convert (double)(long) into a single FRIZ instruction or not
12784         when -ffast-math is used.
12785
12786         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
12787         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
12788         or FRIZ instruction if -ffast-math.
12789         * config/rs6000/rs6000.md (friz): Ditto.
12790
12791         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
12792
12793 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
12794
12795         * opth-gen.awk (quote, comma): Remove unused variables.
12796
12797 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
12798
12799         * arm.c (arm_override_options): Correct fall-back code to use
12800         SUBTARGET_CPU_DEFAULT.
12801
12802 2010-09-02  Julian Brown  <julian@codesourcery.com>
12803
12804         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
12805         unspecs.
12806         (vcond<mode>, vcondu<mode>): New expanders.
12807         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
12808         comparisons with zero.
12809         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
12810         * config/arm/constraints.md (Dz): New constraint.
12811
12812 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
12813
12814         * target.def (class_likely_spilled_p): New hook.
12815         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
12816         * doc/tm.texi: Regenerate.
12817         * targhooks.c (default_class_likely_spilled_p): New function.
12818         * targhooks.h (default_class_likely_spilled_p): Declare.
12819         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
12820         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
12821         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
12822         Use fixed_reg_set instead of fixed_regs.
12823         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
12824         * calls.c (avoid_likely_spilled_reg): Ditto.
12825         * ira-conflicts.c (ira_build_conflicts): Ditto.
12826         * ira.c (update_equiv_regs): Ditto.
12827         * mode-switching.c (create_pre_exit): Ditto.
12828         * regmove.c (find_matches): Ditto.
12829         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
12830         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
12831         (small_register_class_p): New inline function.
12832         (push_secondary_reload, find_reusable_reload, find_reloads): Use
12833         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
12834
12835         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
12836         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
12837         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12838
12839 2010-09-02  Richard Guenther  <rguenther@suse.de>
12840
12841         PR tree-optimization/44937
12842         PR tree-optimization/45412
12843         * ipa-split.c (split_function): Properly remove PHI nodes.
12844
12845 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
12846
12847         * opts.h (struct cl_option): Add warn_message field.
12848         (struct cl_decoded_option): Add warn_message field.
12849         * doc/options.texi (Ignore, Warn): Document.
12850         * opt-functions.awk (needs_state_p): Don't consider aliases or
12851         ignored options to need state saved.
12852         * optc-gen.awk: Handle Warn and Ignore.
12853         * opth-gen.awk: Output OPT_SPECIAL_ignore.
12854         * opts-common.c (decode_cmdline_option): Set warn_message field.
12855         Handle ignored options.
12856         (decode_cmdline_options_to_array, generate_option,
12857         generate_option_input_file): Set warn_message field.
12858         (read_cmdline_option): Generate warnings from warn_message field.
12859         Handle ignored options.
12860         * common.opt (Wunreachable-code, fargument-alias,
12861         fargument-noalias, fargument-noalias-global,
12862         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
12863         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
12864         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
12865         ftree-salias): Mark Ignore.
12866         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
12867         -mintel-syntax and -mno-intel-syntax here.
12868         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
12869         using Warn.
12870         * opts.c (common_handle_option): Don't handle options marked as
12871         ignored.
12872         (enable_warning_as_error): Handle ignored options.
12873
12874 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
12875
12876         PR driver/44076
12877         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
12878         alias_target fields.
12879         * opt-functions.awk (opt_sanitized_name): Don't handle
12880         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
12881         * optc-gen.awk: Generate alias fields.
12882         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
12883         Don't generate such constants for aliases.
12884         * opts-common.c (generate_canonical_option): New.
12885         (decode_cmdline_option): Handle aliases.  Use
12886         generate_canonical_option for known options instead of copying the
12887         input option text.
12888         * doc/options.texi (Alias): Document.
12889         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
12890         fstack-check, specs): Mark as aliases.
12891         * gcc.c (driver_handle_option): Canonicalize -L options to joined
12892         arguments.
12893         (driver_handle_option): Don't handle OPT_specs.
12894         * opts.c (common_handle_option): Don't handle options marked as
12895         aliases.
12896         (enable_warning_as_error): Handle aliases.
12897         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
12898         OPT_Wlarger_than_eq.
12899         * tree-optimize.c (tree_rest_of_compilation): Use
12900         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
12901
12902 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
12903
12904         * config/i386/i386.md (nonmemory_operand): New mode attribute.
12905         (push memory peephole2): Macroize peepholes using SWI mode iterator.
12906         (move immediate to memory peephole2): Macroize peepholes using
12907         SWI124 mode iterator.
12908         (non-pairable NOT peephole2): Macroize peepholes using SWI124
12909         mode iterator.
12910         (simple lea add peephole2): Macroize peepholes using SWI48
12911         mode iterator.
12912         (simple lea mult peephole2): Ditto.
12913         (imul by 3,5,9 to lea peephole2): Ditto.
12914         (mov $-1, reg peephole2): Macroize peepholes using SWI248
12915         mode iterator.
12916         (imul $32bit_imm,mem,reg peephole2): Ditto.
12917         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
12918
12919 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
12920
12921         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
12922
12923 2010-09-02  Olivier Hainque  <hainque@adacore.com>
12924
12925         PR middle-end/44763
12926         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
12927         (allocno_priority_compare_func): Use it instead of a straight
12928         difference computation over priorities.
12929
12930 2010-09-02  Andi Kleen  <ak@linux.intel.com>
12931
12932         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
12933
12934 2010-09-02  Ira Rosen  <irar@il.ibm.com>
12935
12936         * tree-vectorizer.h (get_later_stmt): New function.
12937         (vect_analyze_data_ref_dependences): Add argument.
12938         * tree-vect-loop.c (vect_analyze_loop): Update call to
12939         vect_analyze_data_ref_dependences.
12940         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
12941         New function.
12942         (vect_analyze_data_ref_dependence): Add argument for basic block
12943         dependencies. Check dependencies in basic block vectorization.
12944         (vect_analyze_data_ref_dependences): Add argument and update call to
12945         vect_analyze_data_ref_dependences.
12946         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
12947         (vect_bb_vectorizable_with_dependencies): New.
12948         (vect_slp_analyze_bb): Check dependencies in basic block.
12949         (vect_schedule_slp_instance): Insert stores before the last store in
12950         SLP instance.
12951
12952 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
12953
12954         PR target/45476
12955         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
12956         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
12957
12958 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
12959
12960         PR middle-end/45458
12961         * bb-reorder.c (add_labels_and_missing_jumps): Treat
12962         bbs ending with throwing insns like blocks ending with a call.
12963         (fix_up_fall_thru_edges): Likewise.
12964
12965 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
12966
12967         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
12968         (m32c_function_arg_advance): Delete.
12969         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
12970         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
12971         comments.  Take a const_tree and a bool.  Declare.
12972         (m32c_function_arg_advance): Likewise.
12973         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
12974
12975 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
12976
12977         PR target/45476
12978         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
12979         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
12980         * config/i386/mingw32.h: ... here.
12981
12982 2010-09-01  Andi Kleen  <ak@linux.intel.com>
12983
12984         PR lto/45475
12985         * lto-streamer-in.c (lto_input_ts_target_option): Add.
12986         (lto_input_tree_pointers): Call lto_input_ts_target_option.
12987         * lto-streamer-out (lto_output_ts_target_option): Add.
12988         (lto_output_tree_pointers): Call lto_output_ts_target_option.
12989
12990 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
12991
12992         PR/target 45452
12993         * config/i386/cygwin.h: Change order of specified import libraries.
12994         * config/i386/mingw32.h: Likewise.
12995         * config/i386/t-cygwin: Likewise.
12996         * config/i386/t-mingw32: Likewise.
12997         * config/i386/t-mingw-w32: Likewise.
12998         * config/i386/t-mingw-w64: Likewise.
12999
13000 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13001
13002         * config/arm/neon-schedgen.ml (core): New type.
13003         (allCores): List of supported cores.
13004         (availability_table): Add supported cores.
13005         (collate_bypasses): Accept core as a parameter.
13006         (worst_case_latencies_and_bypasses): Accept core as a parameter.
13007         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
13008         and coreStr to get tune attribute and prefix for functional units.
13009         (emit_bypasses): Accept core name and use it.
13010         (calculate_per_core_availability_table): New.
13011         (filter_core): New.
13012         (calculate_core_availability_table): New.
13013         (main): Use calculate_core_availablity_table.
13014         * config/arm/cortex-a8-neon.md: Update copyright year.
13015         Regenerated from ml file and merged in.
13016         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
13017         cortex_a8_neon_mrc.
13018
13019 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
13020
13021         * Makefile.in (tree-switch-conversion.o): Update dependencies.
13022
13023 2010-09-01  Richard Guenther  <rguenther@suse.de>
13024
13025         * alias.c (ao_ref_from_mem): Adjust.
13026         * builtins.c (get_object_alignment): Likewise.
13027         * cfgexpand.c (expand_debug_expr): Likewise.
13028         * gimple.c (get_base_address): Likewise.
13029         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13030         (get_addr_base_and_unit_offset): Likewise.  Fix for
13031         both TMR_SYMBOL and TMR_BASE being set.
13032         * tree-eh.c (tree_could_trap_p): Likewise.
13033         * gimplify.c (gimplify_expr): Do not attempt to gimplify
13034         TMR_SYMBOL.  Always gimplify TMR_BASE.
13035         * tree-cfg.c (verify_types_in_gimple_reference): Verify
13036         TMR_BASE if there is a TMR_SYMBOL.
13037         * tree-pretty-print.c (dump_generic_node): Adjust.
13038         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
13039         (tree_mem_ref_addr): Likewise.
13040         (create_mem_ref_raw): Likewise.
13041         (move_fixed_address_to_symbol): Likewise.
13042         (create_mem_ref): Likewise.
13043         (dump_mem_address): Likewise.
13044         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
13045         Fix for both TMR_SYMBOL and TMR_BASE being set.
13046         (indirect_refs_may_alias_p): Likewise.
13047         * tree-ssa-operands.c (get_tmr_operands): Adjust.
13048         * tree.def (TARGET_MEM_REF): Adjust documentation.
13049
13050 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13051
13052         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
13053         Rename from X86_TUNE_ADD_ESP_4.
13054         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
13055         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
13056         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
13057         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
13058         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
13059         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
13060         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
13061         * config/i386/i386.c (initial_ix86_tune_features)
13062         <X86_TUNE_SINGLE_POP>: Invert members.
13063         <X86_TUNE_DOUBLE_POP>: Ditto.
13064         <X86_TUNE_SINGLE_PUSH>: Ditto.
13065         <X86_TUNE_DOUBLE_PUSH>: Ditto.
13066         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
13067         No longer exported.
13068         (push peephole2 patterns): Macroize peepholes using P mode iterator.
13069         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
13070         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
13071         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
13072
13073 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
13074
13075         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
13076         a volatile LHS if the constructor has only one element.
13077
13078 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
13079
13080         PR bootstrap/45321
13081         * tree.c (stdarg_p): Make fntype parameter const.
13082         * tree.h (stdarg_p): Likewise.
13083         (function_args_iterator): Remove unused fntype field.
13084         (function_args_iter_init): Do not initialize fntype
13085         field.  Make fntype parameter const.
13086
13087 2010-09-01  Richard Guenther  <rguenther@suse.de>
13088
13089         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
13090         estimate.
13091         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
13092         (execute_vrp): Compute number of iteration estimates.
13093         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
13094         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
13095         * tree-data-ref.c (estimated_loop_iterations): Adjust.
13096         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
13097         Infer loop bounds from undefined behavior based on a new parameter.
13098         (estimate_numbers_of_iterations): Likewise.
13099         (scev_probably_wraps_p): Adjust.
13100         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
13101
13102 2010-09-01  Nick Clifton  <nickc@redhat.com>
13103
13104         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
13105         where appropriate.
13106         (xstormy16_legitimate_address_p): Use true and false instead of 1
13107         and 0.
13108         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
13109         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
13110         magic constant 2.
13111         (xstormy16_expand_call): Fix comment at start of function.
13112
13113 2010-09-01  Nick Clifton  <nickc@redhat.com>
13114
13115         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
13116         when pushing accumulator register.
13117         (rx_get_stack_layout): Always save call clobbered registers inside
13118         interrupt handlers.
13119         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
13120
13121 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13122
13123         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
13124         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
13125
13126         * libgcc-std.ver (GCC_4.6.0): Define version.
13127
13128 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
13129
13130         * tree-nested.c (convert_all_function_calls): Iterate until after the
13131         sum of static chains in the nest doesn't change.
13132
13133 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
13134
13135         * config/m32c/m32c.c (classes_intersect): Remove.
13136         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
13137         reg_classes_intersect_p instead of classes_intersect.
13138         (class_can_hold_mode): Change arguments type from enum reg_class to
13139         reg_class_t.  Use reg_class_contents instead of class_contents.
13140         (m32c_register_move_cost): Make static. Change arguments type from
13141         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
13142         classes_intersect. Use reg_class_contents instead of class_contents.
13143         (m32c_memory_move_cost): Make static. Change arguments type from
13144         enum reg_class to reg_class_t.
13145         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13146         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13147         * config/m32c/m32c-protos.h (m32c_register_move_cost,
13148         m32c_memory_move_cost): Remove.
13149
13150 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13151
13152         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
13153         (arm_function_arg): Delete.
13154         (arm_needs_doubleword_align): Take a const_tree.
13155         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13156         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
13157         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
13158         (arm_function_arg): Make static.  Take a const_tree and a bool.
13159         (arm_function_arg_advance): Likewise.
13160         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13161
13162 2010-08-31  Andi Kleen  <ak@linux.intel.com>
13163
13164         * common.opt (fwhopr=): Update for -fwhopr=jobserver
13165         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
13166         * lto-wrapper.c (run_gcc): Add jobserver mode.
13167         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
13168         argument.
13169
13170 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
13171
13172         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
13173         (popsi1): Ditto.
13174         (*popdi1_epilogue): Ditto.
13175         (*popsi1_epilogue): Ditto.
13176         (popsi, popdi peephole2 patterns): Update peepholes for changed
13177         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
13178
13179         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
13180         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
13181
13182         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
13183         (override_options): Do not initialize removed ix86_gen_pop1.
13184         (gen_pop): New static function.
13185         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
13186         (release_scratch_register_on_entry): Ditto.
13187         (ix86_restore_reg_using_pop): Ditto.
13188         (ix86_expand_epilogue): Ditto.
13189
13190 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
13191
13192         PR middle-end/45461
13193         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
13194
13195 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13196
13197         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
13198         semicolons.
13199
13200 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
13201
13202         * doc/extend.texi: Fix documentation of the return value of
13203         __builtin_choose_expr.
13204
13205 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13206
13207         * config/v850/v850-protos.h (function_arg): Delete.
13208         * config/v850/v850.h (FUNCTION_ARG): Delete.
13209         (FUNCTION_ARG_ADVANCE): Move code to...
13210         * config/v850/v850.c (v850_function_arg_advance): ...here.
13211         (v850_function_arg): Make static.  Take a const_tree and a bool.
13212         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13213
13214 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13215
13216         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
13217         these...
13218         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
13219         ...and these...
13220         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
13221         ..to here..
13222         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
13223         ...and here.
13224         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13225
13226 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13227
13228         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
13229         Delete.
13230         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13231         * config/rx/rx.c (rx_function_arg_size): Make static.
13232         (rx_function_arg): Likewise.
13233         (rx_function_arg_advance): New function.
13234         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13235
13236 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
13237
13238         * config/arm/arm.c (arm_override_options): Remove superfluous test.
13239         Fix indentation.
13240
13241 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
13242
13243         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
13244         (dwarf2out_decl) <CONST_DECL>: Likewise.
13245
13246 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
13247
13248         Stack usage support
13249         * common.opt (-fstack-usage): New option.
13250         * doc/invoke.texi (Debugging options): Document it.
13251         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
13252         allocate_dynamic_stack_space.
13253         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
13254         and propagate it to allocate_dynamic_stack_space.
13255         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
13256         * calls.c (initialize_argument_information): Pass TRUE as 4th
13257         argument to allocate_dynamic_stack_space.
13258         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
13259         to 1 when pushing a variable-sized argument onto the stack.  Pass
13260         TRUE as 4th argument to allocate_dynamic_stack_space.
13261         Update current_function_pushed_stack_size.
13262         (emit_library_call_value_1): Likewise.
13263         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
13264         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
13265         attempt to find an upper bound.  Remove redundant code for the
13266         SETJMP_VIA_SAVE_AREA case.
13267         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
13268         * function.h (struct stack_usage): New structure.
13269         (current_function_static_stack_size): New macro.
13270         (current_function_dynamic_stack_size): Likewise.
13271         (current_function_pushed_stack_size): Likewise.
13272         (current_function_dynamic_alloc_count): Likewise.
13273         (current_function_has_unbounded_dynamic_stack_size): Likewise.
13274         (current_function_allocates_dynamic_stack_space): Likewise.
13275         (struct function): Add new field 'su'.
13276         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
13277         add the value of the dynamic offset to the dynamic stack usage.
13278         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
13279         for variable-sized objects.
13280         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
13281         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
13282         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
13283         BUILT_IN_ALLOCA for variable-sized objects.
13284         * output.h (output_stack_usage): Declare.
13285         * toplev.c (stack_usage_file): New file pointer.
13286         (output_stack_usage): New function.
13287         (open_auxiliary_file): Likewise.
13288         (lang_dependent_init): Open file if flag_stack_usage is set.
13289         (finalize): Close file if stack_usage_file is not null.
13290         * tree.h (ALLOCA_FOR_VAR_P): New macro.
13291         * config/alpha/alpha.c (compute_frame_size): New function.
13292         (alpha_expand_prologue): Use it.
13293         (alpha_start_function): Likewise.
13294         (alpha_expand_epilogue): Likewise.  Set stack usage info.
13295         * config/i386/i386.c (ix86_expand_prologue): Likewise.
13296         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
13297         * config/mips/mips.c (mips_expand_prologue): Likewise.
13298         * config/pa/pa.c (hppa_expand_prologue): Likewise.
13299         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
13300         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
13301
13302 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
13303
13304         PR tree-optimization/45427
13305         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
13306         Handle the case that the exit is never taken correctly.
13307         (number_of_iterations_ne): Pass exit_must_be_taken to
13308         number_of_iterations_ne_max.
13309
13310 2010-08-30  Catherine Moore  <clm@codesourcery.com>
13311
13312         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
13313         Infer -mdspr2 for the the 74K.
13314
13315 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
13316
13317         PR debug/45419
13318         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
13319
13320         PR middle-end/45423
13321         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
13322         and TRUTH_{AND,OR,XOR}_EXPR.
13323         * c-parser.c (c_parser_omp_atomic): Handle boolean
13324         {PRE,POST}_{INC,DEC}REMENT.
13325
13326 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
13327
13328         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
13329         (function_arg): Delete.
13330         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13331         (FUNCTION_INCOMING_ARG): Delete.
13332         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
13333         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
13334         and a bool.
13335         (function_arg): Rename to...
13336         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
13337         a bool.
13338         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
13339         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13340         (TARGET_FUNCTION_INCOMING_ARG): Define.
13341
13342 2010-08-30  Richard Guenther  <rguenther@suse.de>
13343
13344         PR tree-optimization/21602
13345         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
13346         using points-to information.
13347
13348 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
13349
13350         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
13351
13352 2010-08-30  Richard Guenther  <rguenther@suse.de>
13353
13354         PR tree-optimization/45449
13355         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
13356         variables.
13357
13358 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
13359
13360         * opts.h (CL_ERR_NEGATIVE): Define.
13361         * opts.c (unknown_option_callback): Don't postpone warnings for
13362         options marked with CL_ERR_NEGATIVE.
13363         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
13364         for negative versions of CL_REJECT_NEGATIVE options.
13365
13366 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
13367
13368         * config/i386/i386.md (zero_extendsidi2_1): Rename from
13369         zero_extendsidi2_32.
13370         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
13371         using SWI12 mode iterator.
13372         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
13373         to define_insn_and_split pattern.
13374         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
13375         using SWI24 mode iterator.
13376         (*zero_extendqi<mode>2_and): Macroize insn from
13377         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
13378         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
13379         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
13380         SWI24 mode iterator.
13381         (*zero_extendqi<mode>2_movzbl): Ditto from
13382         *zero_extendqi{hi,si}2_movzbl.
13383         (extendsidi2_1): Rename from extendsidi2_32.
13384         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
13385         SWI12 mode iterator.
13386
13387 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
13388
13389         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
13390         general purpose registers.
13391         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
13392         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
13393         with general purpose registers and memory operands.  Add associated
13394         CCImode post-reload splitter.
13395         * config/ia64/div.md: Change BImode to CCImode throughout.
13396
13397 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
13398
13399         * config/ia64/ia64.md (cstorebi4): Fix thinko.
13400
13401 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
13402
13403         * config/picochip/picochip.c (reorder_var_tracking_notes): This
13404         function was dropping debug insns which caused PR45299.
13405
13406 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
13407
13408         * config/i386/sse.md (extsuffix): New code attribute.
13409         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
13410         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
13411         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
13412         and sse4_1_zero_extendv4qiv4si2.
13413         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
13414         and sse4_1_zero_extendv2qiv2di2.
13415         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
13416         and sse4_1_zero_extendv4hiv4si2.
13417         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
13418         and sse4_1_zero_extendv2hiv2di2.
13419         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
13420         and sse4_1_zero_extendv2siv2di2
13421
13422         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
13423         using any_extend code iterator.
13424         (*avx_<s>mulv8hi3_highpart): Macroize insn from
13425         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
13426         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
13427
13428         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
13429         gen_sse4_1_sign_extend* functions.
13430         (struct builtin_description bdesc_args): Ditto.
13431
13432 2010-08-27  Xinliang David Li  <davidxl@google.com>
13433
13434         PR/45422
13435         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
13436         (iv_ca_set_no_cp): Update used inv expr count.
13437         (iv_ca_set_cp): Ditto.
13438         (iv_ca_new): Initialize new member.
13439         (iv_ca_free): Free memory.
13440
13441 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
13442
13443         * config/sh/sh-protos.h (sh_function_arg): Delete.
13444         (sh_function_arg_advance): Delete.
13445         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13446         (PASS_IN_REG_P): Eliminate cast.
13447         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
13448         const_tree and a bool.
13449         (sh_function_arg): Likewise.
13450         (sh_output_mi_thunk): Call sh_function_arg_advance) and
13451         sh_function_arg.
13452         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13453
13454 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
13455             Kaz Kojima  <kkojima@gcc.gnu.org>
13456
13457         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
13458         when possible.
13459         (sh_expand_epilogue): Likewise.
13460         * config/sh/sh.md (movml_push_banked): New insn.
13461         (movml_pop_banked): Likewise.
13462
13463 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
13464
13465         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
13466         gen_regexp_oneof, gen_regexp_sequence): Use the string found
13467         in vector element 0 rather than the original string when there's
13468         only one element.
13469         (gen_regexp): Remove extra semicolon.
13470
13471         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
13472         thumb2_movsf_vfp): Set attribute "insn".
13473         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
13474         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
13475         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
13476         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
13477         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
13478         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
13479         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
13480         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
13481         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
13482         if_not_arith, if_arith_not, cond_move_not): Likewise.
13483
13484 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
13485
13486         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
13487         New declaration.
13488         (rs6000_allocate_stack_temp): Ditto.
13489         (rs6000_expand_convert_si_to_sfdf): Ditto.
13490
13491         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
13492         line.  Update the options set if power6 or power7 server/embedded
13493         type options are used.  If we give a warning for no vsx under
13494         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
13495         (rs6000_allocate_stack_temp): New function to allocate a stack
13496         tempoary and adjust the address so it meets either REG+OFFSET or
13497         REG+REG addressing requirements.
13498         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
13499         that they can be used with the LFIWAX/LFIWZX instrucitons.
13500         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
13501         converting signed/unsigned SImode to either SFmode/DFmode.
13502
13503         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
13504         whether certain instructions can be generated.
13505         (TARGET_FCTIDZ): Ditto.
13506         (TARGET_STFIWX): Ditto.
13507         (TARGET_LFIWAX): Ditto.
13508         (TARGET_LFIWZX): Ditto.
13509         (TARGET_FCFIDS): Ditto.
13510         (TARGET_FCFIDU): Ditto.
13511         (TARGET_FCFIDUS): Ditto.
13512         (TARGET_FCTIDUZ): Ditto.
13513         (TARGET_FCTIWUZ): Ditto.
13514
13515         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
13516         (UNSPEC_FCTID): Ditto.
13517         (UNSPEC_LFIWAX): Ditto.
13518         (UNSPEC_LFIWZX): Ditto.
13519         (UNSPEC_FCTIWUZ): Ditto.
13520         (rreg): Use correct constraints.
13521         (SI_CONVERT_FP): New mode attribute for floating point conversion
13522         tests.
13523         (E500_CONVERT): Ditto.
13524         (lfiwax): New insns for converting from integer to floating point
13525         utilizing newer instructions.  Attempt to optimize conversions
13526         that come from memory so that we don't load the value into a GPR,
13527         spill it to the stack and reload it into a FPR.
13528         (floatsi<mode>2_lfiwax): Ditto.
13529         (floatsi<mode>2_lfiwax_mem): Ditto.
13530         (floatsi<mode>2_lfiwax_mem2): Ditto.
13531         (lfiwzx): Ditto.
13532         (floatunssi<mode>2_lfiwzx): Ditto.
13533         (floatunssi<mode>2_lfiwzx_mem): Ditto.
13534         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
13535         (floatdidf2_mem): Ditto.
13536         (floatunsdidf2_fcfidu): Ditto.
13537         (floatunsdidf2_mem): Ditto.
13538         (floatunsdisf2): Ditto.
13539         (floatunsdisf2_fcfidus): Ditto.
13540         (floatunsdisf2_mem): Ditto.
13541         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
13542         Use FCFID on 32-bit hosts that support it.
13543         (floatsidf2_internal): Ditto.
13544         (floatunssisf2): Ditto.
13545         (floatunssidf2): Ditto.
13546         (floatunssidf2_internal): Ditto.
13547         (floatsisf2): Ditto.
13548         (floatdidf2): Ditto.
13549         (floatdidf2_fpr): Ditto.
13550         (floatunsdidf2): Ditto.
13551         (floatdisf2): Ditto.
13552         (floatdisf2_fcfids): Ditto.
13553         (floatdisf2_internal1): Ditto.
13554         (fixuns_truncsfsi2): Delete, merge into common pattern for both
13555         SF/DF.  Add power7 support.
13556         (fix_truncsfsi2): Ditto.
13557         (fixuns_truncdfsi2): Ditto.
13558         (fixuns_truncdfdi2): Ditto.
13559         (fix_truncdfsi2): Ditto.
13560         (fix_truncdfsi2_internal): Ditto.
13561         (fix_truncdfsi2_internal_gfxopt): Ditto.
13562         (fix_truncdfsi2_mfpgpr): Ditto.
13563         (fctiwz): Ditto.
13564         (btruncdf2): Ditto.
13565         (btruncdf2_fpr): Ditto.
13566         (btructsf2): Ditto.
13567         (ceildf2): Ditto.
13568         (ceildf2_fpr): Ditto.
13569         (ceilsf2): Ditto.
13570         (floordf2): Ditto.
13571         (floordf2_fpr): Ditto.
13572         (floorsf2): Ditto.
13573         (rounddf2): Ditto.
13574         (rounddf2_fpr): Ditto.
13575         (roundsf2): Ditto.
13576         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
13577         (fix_trunc<mode>di2): Ditto.
13578         (fixuns_trunc<mode>si2): Ditto.
13579         (fixuns_trunc<mode>di2): Ditto.
13580         (fctiwz_<mode>): Ditto.
13581         (btrunc<mode>2): Ditto.
13582         (btrunc<mode>2_fpr): Ditto.
13583         (ceil<mode>2): Ditto.
13584         (ceil<mode>2_fpr): Ditto.
13585         (floor<mode>2): Ditto.
13586         (float<mode>2_fpr): Ditto.
13587         (round<mode>2): Ditto.
13588         (round<mode>2_fpr): Ditto.
13589         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
13590         (fixuns_trunc<mode>si2_stfiwx): Ditto.
13591         (fix_truncdfsi2_internal): Ditto.
13592         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
13593         converted value on stack, loaded into GPR, and then stored into
13594         the final destination.
13595         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
13596         FCTIDZ.
13597         (lrint<mode>di2): New insn, provide the lrint builtin functions.
13598         (ftruncdf2): Delete, unused.
13599         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
13600
13601         * config/rs6000/vsx.md (toplevel): Update copyright year.
13602         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
13603         (VSr3): Ditto.
13604
13605 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
13606             Jeremie Salvucci  <jeremie.salvucci@free.fr>
13607
13608         * gengtype.c (output_type_enum): Test the right union member.
13609
13610 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
13611
13612         PR target/41484
13613         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
13614         operands for operand 1.
13615         (sse4_1_extendv4qiv4si2): Ditto.
13616         (sse4_1_extendv2qiv2di2): Ditto.
13617         (sse4_1_extendv4hiv4si2): Ditto.
13618         (sse4_1_extendv2hiv2di2): Ditto.
13619         (sse4_1_extendv2siv2di2): Ditto.
13620         (sse4_1_zero_extendv8qiv8hi2): Ditto.
13621         (sse4_1_zero_extendv4qiv4si2): Ditto.
13622         (sse4_1_zero_extendv2qiv2di2): Ditto.
13623         (sse4_1_zero_extendv4hiv4si2): Ditto.
13624         (sse4_1_zero_extendv2hiv2di2): Ditto.
13625         (sse4_1_zero_extendv2siv2di2): Ditto.
13626         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
13627         (*sse4_1_extendv4qiv4si2): Ditto.
13628         (*sse4_1_extendv2qiv2di2): Ditto.
13629         (*sse4_1_extendv4hiv4si2): Ditto.
13630         (*sse4_1_extendv2hiv2di2): Ditto.
13631         (*sse4_1_extendv2siv2di2): Ditto.
13632         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
13633         (*sse4_1_zero_extendv4qiv4si2): Ditto.
13634         (*sse4_1_zero_extendv2qiv2di2): Ditto.
13635         (*sse4_1_zero_extendv4hiv4si2): Ditto.
13636         (*sse4_1_zero_extendv2hiv2di2): Ditto.
13637         (*sse4_1_zero_extendv2siv2di2): Ditto.
13638
13639 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
13640
13641         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
13642         (mips_function_arg): Delete.
13643         (mips_function_arg_boundary): Take a const_tree.
13644         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
13645         (mips_arg_info): Likewise.
13646         (mips_setup_incoming_varargs): Call mips_function_arg_advance
13647         instead of FUNCTION_ARG_ADVANCE.
13648         (mips_function_arg_advance): Adjust prototype.  Make static.
13649         (mips_function_arg): Likewise.
13650         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13651         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
13652
13653 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
13654
13655         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13656         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
13657         (function_arg): Delete.
13658         (function_arg_boundary): Take a const_tree.
13659         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
13660         (rs6000_spe_function_arg): Likewise.
13661         (rs6000_parm_start): Likewise.
13662         (rs6000_arg_size): Likewise.
13663         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
13664         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
13665         (rs6000_mixed_function_arg): Likewise.
13666         (function_arg): Rename to...
13667         (rs6000_function_arg): ...this.
13668         (function_arg_advance): Rename to...
13669         (rs6000_function_arg_advance_1): ...this
13670         (rs6000_function_arg_advance): New function.  Call it.
13671         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
13672         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
13673         (rs6000_function_value): Likewise.
13674         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13675
13676 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13677
13678         * config/arm/arm.md (enabled): Test the value of arch_enabled
13679         rather than just using it.
13680
13681 2010-08-27  Olivier Hainque  <hainque@adacore.com>
13682             Eric Botcazou  <ebotcazou@adacore.com>
13683
13684         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
13685         cover all the possible offsets from this base.
13686         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
13687
13688 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
13689
13690         PR tree-optimization/44485
13691         * calls.c (flags_from_decl_or_type): For const or pure
13692         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
13693         together with ECF_CONST resp. ECF_PURE.
13694         * builtins.c (expand_builtin): Use flags_from_decl_or_type
13695         instead of querying flags directly.
13696         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
13697         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
13698
13699 2010-08-26  Richard Guenther  <rguenther@suse.de>
13700
13701         PR tree-optimization/45255
13702         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
13703         and externals are also invariant.
13704
13705 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
13706
13707         PR rtl-optimization/44858
13708         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
13709         newi2pat, make sure they don't affect newpat.
13710
13711         PR rtl-optimization/45400
13712         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
13713         SUBREG_REG if both modes are of MODE_INT class.
13714
13715 2010-08-25  Julian Brown  <julian@codesourcery.com>
13716
13717         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
13718         * config/arm/arm.md (generic_sched): No for Cortex-A5.
13719         (generic_vfp): Likewise.
13720         (cortex-a5.md): Include.
13721         * config/arm/cortex-a5.md: New.
13722
13723 2010-08-25  Richard Guenther  <rguenther@suse.de>
13724
13725         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
13726         * gimple.c (gimple_get_alias_set): Remove special handling
13727         for pointers.
13728
13729 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
13730
13731         PR middle-end/45355
13732         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
13733         dead_or_set_p when computing i0_feeds_i2_n.
13734
13735         * combine.c (find_split_point): Undo canonicalization of multiply-add
13736         to (minus x (mult)) when it seems likely that this will increase the
13737         chances of a split.
13738
13739 2010-08-25  Richard Guenther  <rguenther@suse.de>
13740
13741         PR lto/44562
13742         * lto-streamer.c (lto_record_common_node): Do not mess with
13743         TYPE_CANONICAL when not in lto.
13744         * gimple.c (gimple_register_type): Likewise.
13745
13746 2010-08-25  Richard Guenther  <rguenther@suse.de>
13747
13748         PR tree-optimization/45316
13749         * tree-ssa-pre.c (eliminate): Properly clean EH info.
13750
13751 2010-08-25  Richard Guenther  <rguenther@suse.de>
13752
13753         PR tree-optimization/45393
13754         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
13755         and clean EH info.  Avoid SSA update.
13756         (execute_cse_sincos): Cleanup the CFG if it has changed.
13757
13758 2010-08-25  Richard Guenther  <rguenther@suse.de>
13759
13760         PR middle-end/45379
13761         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
13762         TARGET_MEM_REF in alignment computation.
13763
13764 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
13765
13766         PR tree-optimization/45059
13767         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
13768         type conversions from newop{1,2}.  Assert t is a comparison and
13769         newop{1,2} after the stripping are gimple vals.
13770
13771 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
13772
13773         * config/arm/iterators.md (VU, SE, V_widen_l): New.
13774         (V_unpack, US): New.
13775         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
13776         (vec_unpack<US>_lo_<mode>): Likewise.
13777         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
13778         (neon_vec_unpack<US>_lo_<mode>): Likewise.
13779         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
13780         (vec_widen_<US>mult_hi_<mode>): Likewise.
13781         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
13782         (neon_vec_<US>mult_hi_<mode>"): Likewise.
13783         (neon_unpack<US>_<mode>): Widening move intermediate step for
13784         vectorizing without -mvectorize-with-neon-quad.
13785         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
13786         for vectorizing without -mvectorize-with-neon-quad.
13787         * config/arm/predicates.md (vect_par_constant_high): Check for
13788         high-half lanes of a vector.
13789         (vect_par_constant_low): Check for low-half lanes of a vector.
13790
13791 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
13792
13793         * tree-if-conv.c (struct ifc_dr): New.
13794         (IFC_DR): New.
13795         (DR_WRITTEN_AT_LEAST_ONCE): New.
13796         (DR_RW_UNCONDITIONALLY): New.
13797         (memref_read_or_written_unconditionally): Use the cached values
13798         when possible.
13799         (write_memref_written_at_least_once): Same.
13800         (if_convertible_loop_p): Initialize and free DR->aux fields.
13801
13802 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
13803
13804         * gimple.c (gimple_could_trap_p_1): Not static anymore.
13805         Pass an extra bool parameter include_mem.
13806         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
13807         (gimple_assign_rhs_could_trap_p): Same.
13808         * gimple.h (gimple_could_trap_p_1): Declared.
13809         * tree-data-ref.h (same_data_refs_base_objects): New.
13810         (same_data_refs): New.
13811         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
13812         (write_memrefs_written_at_least_once): New.
13813         (ifcvt_memrefs_wont_trap): New.
13814         (operations_could_trap): New.
13815         (ifcvt_could_trap_p): New.
13816         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
13817         Gets a vector of data refs.
13818         (if_convertible_stmt_p): Same.
13819         (if_convertible_loop_p_1): New.
13820         (if_convertible_loop_p): Call if_convertible_loop_p_1.
13821
13822 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
13823
13824         * common.opt (ftree-loop-if-convert-stores): New flag.
13825         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
13826         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
13827         the created statement before GSI.
13828         (if_convertible_phi_p): Allow virtual phi nodes when
13829         flag_loop_if_convert_stores is set.
13830         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
13831         Do not handle types that do not match is_gimple_reg_type.
13832         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
13833         when flag_loop_if_convert_stores is set, as LHS can contain
13834         memory refs.
13835         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
13836         to if_convertible_gimple_assign_stmt_p.
13837         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
13838         (replace_phi_with_cond_gimple_assign_stmt): Renamed
13839         predicate_scalar_phi.  Do not handle virtual phi nodes.
13840         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
13841         Call predicate_scalar_phi.
13842         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
13843         just after the labels for flag_loop_if_convert_stores, otherwise
13844         insert the predicate in the end of the BB.
13845         (predicate_mem_writes): New.
13846         (combine_blocks): Call predicate_all_scalar_phis.  When
13847         flag_loop_if_convert_stores is set, call predicate_mem_writes.
13848         (tree_if_conversion): Call mark_sym_for_renaming when
13849         flag_loop_if_convert_stores is set.
13850         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
13851         flag_loop_if_convert_stores is set.
13852
13853 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
13854
13855         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
13856         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
13857         (pa_function_value): Make static.
13858         (override_options): Rename to...
13859         (pa_option_override): ...this. Make static.
13860         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
13861         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
13862         TARGET_OPTION_OVERRIDE): Define.
13863         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
13864         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
13865         Remove.
13866         * config/pa/pa-protos.h (override_options): Remove.
13867
13868 2010-08-24  Richard Guenther  <rguenther@suse.de>
13869
13870         PR middle-end/45379
13871         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
13872         if addr->index is NULL or zero.
13873         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
13874         TARGET_MEM_REF more properly.
13875         (indirect_ref_may_alias_decl_p): Likewise.
13876         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
13877         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
13878
13879 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
13880
13881         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
13882         (m32c_override_options): Rename to...
13883         (m32c_option_override): ...this. Make static.
13884         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
13885         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
13886         Remove.
13887         * config/m32c/m32c-protos.h (m32c_override_options,
13888         m32c_function_value_regno_p): Remove.
13889
13890 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
13891
13892         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
13893         Fix a typo in a previous commit.
13894
13895 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
13896
13897         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
13898         Pre-initialize innerloop_iters to one.
13899
13900 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
13901
13902         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
13903         existing static function global.
13904
13905         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
13906         is changed to global.
13907
13908         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
13909         may_be_nonaddressable_p on base, and don't collect this reference
13910         if the address of the base could not be taken.
13911
13912 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
13913
13914         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
13915         enable the compiler to autovectorize mathmetical functions for
13916         power7 using the Mathematical Acceleration Subsystem library.
13917
13918         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
13919         handle which vector math library we have.
13920         (rs6000_override_options): Add -mveclibabi=mass support.
13921         (rs6000_builtin_vectorized_libmass): New function to handle auto
13922         vectorizing math functions that are in the MASS library.
13923         (rs6000_builtin_vectorized_function): Call it.
13924
13925         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
13926         -mveclibabi=mass.
13927
13928 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13929
13930         PR boehm-gc/34544
13931         * gthr-posix.h (__gthread_active_init): Delete.
13932         (__gthread_active_p): Do activity check here.
13933         Don't include errno.h on hppa-hpux.  Update comment.
13934         * gthr-posix95.h (__gthread_active_init): Delete.
13935         (__gthread_active_p): Do activity check here.
13936         Don't include errno.h on hppa-hpux.  Update comment.
13937         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
13938         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
13939         add -lpthread when -mt or -pthread is specified.
13940         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
13941         (LINK_GCC_C_SEQUENCE_SPEC): Define.
13942         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
13943         (stublib.c, pthread_default_stacksize_np-stub.o,
13944         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
13945         $(T)libgcc_stub.a): Add methods.
13946         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
13947         (stublib.c, pthread_default_stacksize_np-stub.o,
13948         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
13949         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
13950         pthread_mutex_unlock): New stubs.
13951
13952 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
13953
13954         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
13955         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
13956         options.
13957         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
13958         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
13959         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
13960         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
13961         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
13962         "-l".
13963         * cppspec.c: Include opts.h.
13964         (lang_specific_driver): Use cl_decoded_option structures.
13965         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
13966         * doc/tm.texi: Regenerate.
13967         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
13968         (driver_handle_option): Allow driver options needing no special
13969         processing.
13970         (process_command): Decode options before call to
13971         lang_specific_driver.  Pass decoded options to
13972         lang_specific_driver.
13973         * gcc.h (lang_specific_driver): Update prototype.
13974         * gccspec.c: Include opts.h.
13975         (lang_specific_driver): Use cl_decoded_option structures.
13976         * opts-common.c (option_ok_for_language, generate_option,
13977         generate_option_input_file): New.
13978         (decode_cmdline_option): Use option_ok_for_language.
13979         (decode_cmdline_options_to_array): Use generate_option_input_file.
13980         (handle_generated_option): Use generate_option.
13981         * opts.h (generate_option, generate_option_input_file): Declare.
13982
13983 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
13984
13985         * config/mips/mips.c (mips_override_options): Rename to...
13986         (mips_option_override): ...this. Make static.
13987         (TARGET_OPTION_OVERRIDE): Define.
13988         (mips_in_small_data_p): Update comment.
13989         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
13990         (FIXED_REGISTERS): Update comment.
13991         * config/mips/mips-protos.h (mips_override_options): Remove.
13992
13993 2010-08-21  Olivier Hainque  <hainque@adacore.com>
13994
13995         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
13996
13997 2010-08-21  Olivier Hainque  <hainque@adacore.com>
13998
13999         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
14000         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
14001
14002 2010-08-20  Jan Hubicka  <jh@suse.cz>
14003
14004         * tree-pass.h (pass_ipa_cdtor_merge): New function.
14005         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
14006         heap allocated.
14007         (record_cdtor_fn): Move to ipa.c; do not test for
14008         have_ctors_dtors.
14009         (build_cdtor): Move to ipa.c; add code avoiding construction
14010         when target have ctors/dtors and there is only one ctor/dtor at given
14011         priority.
14012         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
14013         sort; reverse order of constructors.
14014         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
14015         (cgraph_finalize_function): Do not call record_cdtor_fn.
14016         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
14017         (cgraph_build_static_cdtor): Move to ipa.c.
14018         * ipa.c: Include target.h and tree-iterator.h.
14019         (cgraph_build_static_cdtor, static_ctors, static_dtors,
14020         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
14021         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
14022         pass_ipa_cdtor_merge): New.
14023         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
14024         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
14025         bounds access.
14026
14027 2010-08-20  Jan Hubicka  <jh@suse.cz>
14028
14029         PR c++/45307
14030         PR c++/17736
14031         * cgraph.h (cgraph_only_called_directly_p,
14032         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
14033         static cdtors.
14034         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
14035         are not needed.
14036         (cgraph_finalize_function): Static cdtors are reachable.
14037         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
14038
14039 2010-08-20  Jan Hubicka  <jh@suse.cz>
14040
14041         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
14042         flag_wpa.
14043         * lto-streamer-out.c (lto_output): Likewise.
14044         * passes.c (ipa_write_optimization_summaries): Initialize statement
14045         uids.
14046
14047 2010-08-20  Olivier Hainque  <hainque@adacore.com>
14048
14049         * tree.h (alias_diag_flags): New enum.
14050         (alias_pair): Add an 'emitted_diags' field.
14051         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
14052         (assemble_alias): Initialize emitted_diags of new pairs.
14053
14054 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
14055
14056         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
14057         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14058         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14059         (STACK_CHECK_PROTECT): Define.
14060         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
14061         (output_probe_stack_range): Likewise.
14062         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
14063         builtin stack checking is enabled.
14064         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
14065         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
14066         (probe_stack_range): New insn.
14067
14068 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
14069
14070         PR target/45336
14071         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
14072         short first.
14073
14074         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
14075         char first.
14076
14077 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14078
14079         PR target/45336
14080         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
14081         to cover zero extension into 64-bit register.
14082         (*sse2_pextrw): Likewise.
14083         (*sse4_1_pextrd_zext): New insn.
14084
14085 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14086
14087         revert r163410, partially revert r163267.
14088         * config/rs6000/darwin.h (LIB_SPEC): Remove.
14089         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
14090         Darwin versions.
14091
14092 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14093
14094         PR middle-end/44974
14095         * builtins.c (expand_builtin): Don't optimize away
14096         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
14097
14098 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
14099
14100         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
14101         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
14102         alternative 1 of operand 2.
14103
14104 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14105             Paolo Bonzini  <bonzini@gnu.org>
14106
14107         * simplify-rtx.c (simplify_unary_operation_1): Optimize
14108         (sign_extend (zero_extend (...)) and
14109         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
14110
14111 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14112
14113         PR rtl-optimization/45353
14114         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
14115         after bb_note is a BARRIER.
14116
14117 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14118
14119         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
14120         linking libgcc.a.
14121
14122 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14123             Michael Matz  <matz@suse.de>
14124
14125         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
14126
14127 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14128
14129         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
14130         (ggc_mark_roots): ...here.
14131
14132 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14133
14134         * vec.h (FOR_EACH_VEC_ELT): Define.
14135         * c-decl.c: Use it.
14136         * cfgloop.c: Likewise.
14137         * cfgloopmanip.c: Likewise.
14138         * cgraph.c: Likewise.
14139         * cgraphunit.c: Likewise.
14140         * combine.c: Likewise.
14141         * config/bfin/bfin.c: Likewise.
14142         * config/mips/mips.c: Likewise.
14143         * config/rs6000/rs6000.c: Likewise.
14144         * dbxout.c: Likewise.
14145         * df-scan.c: Likewise.
14146         * dominance.c: Likewise.
14147         * dse.c: Likewise.
14148         * dwarf2out.c: Likewise.
14149         * except.c: Likewise.
14150         * expr.c: Likewise.
14151         * function.c: Likewise.
14152         * gcse.c: Likewise.
14153         * genattr.c: Likewise.
14154         * ggc-common.c: Likewise.
14155         * gimplify.c: Likewise.
14156         * graphite-blocking.c: Likewise.
14157         * graphite-clast-to-gimple.c: Likewise.
14158         * graphite-dependences.c: Likewise.
14159         * graphite-interchange.c: Likewise.
14160         * graphite-poly.c: Likewise.
14161         * graphite-scop-detection.c: Likewise.
14162         * graphite-sese-to-poly.c: Likewise.
14163         * graphite.c: Likewise.
14164         * haifa-sched.c: Likewise.
14165         * ifcvt.c: Likewise.
14166         * implicit-zee.c: Likewise.
14167         * ipa-prop.c: Likewise.
14168         * ipa-struct-reorg.c: Likewise.
14169         * ipa.c: Likewise.
14170         * ira-build.c: Likewise.
14171         * ira-color.c: Likewise.
14172         * ira-emit.c: Likewise.
14173         * lambda-code.c: Likewise.
14174         * loop-invariant.c: Likewise.
14175         * loop-unroll.c: Likewise.
14176         * lower-subreg.c: Likewise.
14177         * lto-cgraph.c: Likewise.
14178         * lto-opts.c: Likewise.
14179         * lto-streamer-in.c: Likewise.
14180         * lto-streamer-out.c: Likewise.
14181         * lto-streamer.c: Likewise.
14182         * lto-symtab.c: Likewise.
14183         * matrix-reorg.c: Likewise.
14184         * opts.c: Likewise.
14185         * predict.c: Likewise.
14186         * print-tree.c: Likewise.
14187         * sdbout.c: Likewise.
14188         * sel-sched-dump.c: Likewise.
14189         * sel-sched-ir.c: Likewise.
14190         * sel-sched.c: Likewise.
14191         * sese.c: Likewise.
14192         * stor-layout.c: Likewise.
14193         * tree-cfg.c: Likewise.
14194         * tree-cfgcleanup.c: Likewise.
14195         * tree-chrec.c: Likewise.
14196         * tree-data-ref.c: Likewise.
14197         * tree-emutls.c: Likewise.
14198         * tree-inline.c: Likewise.
14199         * tree-into-ssa.c: Likewise.
14200         * tree-loop-distribution.c: Likewise.
14201         * tree-loop-linear.c: Likewise.
14202         * tree-mudflap.c: Likewise.
14203         * tree-outof-ssa.c: Likewise.
14204         * tree-parloops.c: Likewise.
14205         * tree-predcom.c: Likewise.
14206         * tree-pretty-print.c: Likewise.
14207         * tree-scalar-evolution.c: Likewise.
14208         * tree-ssa-live.c: Likewise.
14209         * tree-ssa-loop-im.c: Likewise.
14210         * tree-ssa-loop-ivcanon.c: Likewise.
14211         * tree-ssa-loop-ivopts.c: Likewise.
14212         * tree-ssa-loop-manip.c: Likewise.
14213         * tree-ssa-loop-niter.c: Likewise.
14214         * tree-ssa-loop-prefetch.c: Likewise.
14215         * tree-ssa-phiprop.c: Likewise.
14216         * tree-ssa-pre.c: Likewise.
14217         * tree-ssa-reassoc.c: Likewise.
14218         * tree-ssa-sccvn.c: Likewise.
14219         * tree-ssa-structalias.c: Likewise.
14220         * tree-ssa.c: Likewise.
14221         * tree-vect-data-refs.c: Likewise.
14222         * tree-vect-loop-manip.c: Likewise.
14223         * tree-vect-loop.c: Likewise.
14224         * tree-vect-patterns.c: Likewise.
14225         * tree-vect-slp.c: Likewise.
14226         * tree-vect-stmts.c: Likewise.
14227         * tree-vrp.c: Likewise.
14228         * tree.c: Likewise.
14229         * value-prof.c: Likewise.
14230         * var-tracking.c: Likewise.
14231         * varasm.c: Likewise.
14232         * vmsdbgout.c: Likewise.
14233
14234 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
14235             Richard Guenther  <richard.guenther@gmail.com>
14236
14237         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
14238         copy the src value and return a copy.
14239         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
14240         (C++ Volatiles): Adjust to describe C++ semantics only.
14241
14242 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
14243
14244         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
14245         be zero or nonzero.
14246         * doc/tm.texi: Regenerate.
14247         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
14248         * df-scan.c (df_get_exit_block_use_set), reginfo.c
14249         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
14250         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
14251         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
14252         to 1.
14253
14254 2010-08-20  Olivier Hainque  <hainque@adacore.com>
14255
14256         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
14257         an extra nop past a sibling call at the very end.
14258
14259 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
14260
14261         PR bootstrap/45350
14262         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
14263         a comment.
14264
14265 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
14266
14267         * target.def (function_arg, function_incoming_arg): Remove const
14268         qualifier on CUMULATIVE_ARGS parameter.
14269         * targhooks.h (default_function_arg, default_function_incoming_arg):
14270         Likewise.
14271         * targhooks.c (default_function_arg, default_function_incoming_arg):
14272         Likewise.
14273         * config/i386/i386.c (ix86_function_arg): Likewise.
14274
14275 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
14276
14277         PR target/45336
14278         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
14279         SIGN_EXTENDs or ZERO_EXTENDs.
14280
14281 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
14282
14283         PR target/42172
14284         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
14285         Take its cost into account if nonnull.
14286         (insn_a_feeds_b): New static function.
14287         (combine_instructions): Look for four-insn combinations.
14288         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
14289         them into account when computing all_adjacent and looking for other
14290         uses.
14291         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
14292         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
14293         (try_combine): New arg I0.  Handle four-insn combinations.
14294         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
14295         like ELIM_I1.
14296
14297 2010-08-19  Jason Merrill  <jason@redhat.com>
14298
14299         PR c++/45307
14300         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
14301         if ctor is empty.
14302         (gimplify_modify_expr_rhs): Adjust.
14303
14304 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
14305
14306         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
14307         bitmap_bit_p.
14308         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
14309         * dominance.c (iterate_fix_dominators): Likewise.
14310         * dse.c (set_usage_bits): Likewise.
14311         (set_position_unneeded, record_store): Likewise.
14312         * gimple-fold.c (get_maxval_strlen): Likewise.
14313         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
14314         * ipa-inline.c (update_caller_keys): Likewise.
14315         * ipa-split.c (verify_non_ssa_vars): Likewise.
14316         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
14317         (close_type_exposed_parameter, close_type_full_escape): Likewise.
14318         (close_addressof_down): Likewise.
14319         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
14320         (setup_allocno_left_conflicts_size): Likewise.
14321         (ira_reassign_conflict_allocnos): Likewise.
14322         (ira_reassign_pseudos): Likewise.
14323         * ira-emit.c (change_loop): Likewise.
14324         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
14325         * lto-streamer-out.c (write_symbol): Likewise.
14326         * predict.c (expr_expected_value_1): Likewise.
14327         * regstat.c (regstat_bb_compute_ri): Likewise.
14328         * sel-sched.c (create_block_for_bookkeeping): Likewise.
14329         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
14330         * stmt.c (expand_case): Likewise.
14331         * tree-eh.c (emit_eh_dispatch): Likewise.
14332         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
14333         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
14334         Likewise.
14335         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
14336         (rdg_build_components): Likewise.
14337         * tree-object-size.c (collect_object_sizes_for): Likewise.
14338         * tree-sra.c (convert_callers): Likewise.
14339         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
14340         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
14341         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
14342
14343 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
14344
14345         * config/i386/i386.md (*lea_1): Use P mode iterator.
14346         (lea add splitter): Also handle DImode operands.
14347         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
14348         predicate.  Do not use ix86_lea_for_add_ok.
14349         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
14350         (lea ashift splitter): Also handle DImode operands.
14351         (DImode lea ashift splitter): Remove splitter.
14352
14353 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
14354
14355         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
14356         ix86_binary_operator_ok.
14357
14358 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
14359
14360         PR rtl-optimization/44691
14361         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
14362         is not a register.
14363
14364 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
14365
14366         PR target/45070
14367         * config/arm/arm.c (arm_output_epilogue): Ensure that return
14368          value of size 1-3 is handled correctly.
14369
14370 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
14371
14372         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
14373         type for the conditional has wide enough range.
14374
14375 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
14376
14377         PR target/45327
14378         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
14379         ix86_binary_operator_ok.
14380
14381 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
14382
14383         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
14384         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
14385         code to output insn mnemonic.  Fix comment.
14386         (*addsi_1_zext): Add r-r-0 alternative 1.
14387         <TYPE_LEA>: Split insn to lea.
14388         <default>: Handle alternative 1.
14389         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
14390         multi-level if_then_else RTX to set "type" attribute.
14391         <default>: Handle alternative 2.
14392         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
14393         Use cond RTX instead of multi-level if_then_else RTX to set
14394         "type" attribute.
14395         <default>: Handle alternatives 2 and 4.
14396         (lea splitters): Update calls to ix86_lea_for_add_ok.
14397
14398         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
14399         argument.
14400         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
14401
14402 2010-08-18  Richard Guenther  <rguenther@suse.de>
14403
14404         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
14405         use operand helpers.
14406
14407 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
14408
14409         PR middle-end/45292
14410         * optabs.c (expand_bool_compare_and_swap): Expand pending
14411         pops before trying the optab.
14412
14413 2010-08-18  Yao Qi  <yao@codesourcery.com>
14414
14415         PR target/45094
14416         * config/arm/arm.c (output_move_double): Fix typo generating
14417         instructions ('ldr'->'str').
14418
14419 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
14420
14421         PR rtl-optimization/42575
14422         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
14423         live ranges.
14424
14425 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14426
14427         * config/arm/arm-protos.h (arm_expand_sync): New.
14428         (arm_output_memory_barrier, arm_output_sync_insn): New.
14429         (arm_sync_loop_insns): New.
14430         * config/arm/arm.c (FL_ARCH7): New.
14431         (FL_FOR_ARCH7): Include FL_ARCH7.
14432         (arm_arch7): New.
14433         (arm_print_operand): Support %C markup.
14434         (arm_legitimize_sync_memory): New.
14435         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
14436         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
14437         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
14438         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
14439         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
14440         (arm_process_output_sync_insn, arm_output_sync_insn): New.
14441         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
14442         * config/arm/arm.h (struct arm_sync_generator): New.
14443         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
14444         (TARGET_HAVE_MEMORY_BARRIER): New.
14445         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
14446         * config/arm/arm.md: Include sync.md.
14447         (UNSPEC_MEMORY_BARRIER): New.
14448         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
14449         (VUNSPEC_SYNC_OP):New.
14450         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
14451         (sync_result, sync_memory, sync_required_value): New attributes.
14452         (sync_new_value, sync_t1, sync_t2): Likewise.
14453         (sync_release_barrier, sync_op): Likewise.
14454         (length): Add logic to length attribute defintion to call
14455         arm_sync_loop_insns when appropriate.
14456         * config/arm/sync.md: New file.
14457
14458 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
14459
14460         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
14461         ENABLE_TREE_CHECKING.
14462         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
14463         and GCC >= 4.3.
14464
14465 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
14466
14467         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
14468         or optimizing for size, always avoid lea if possible.
14469
14470         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
14471
14472 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
14473
14474         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
14475         Dunmmy function with NULL return unless the target is
14476         OSX >= 10.6 (Darwin10).
14477
14478 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
14479
14480         * gcc.c (spec_function): Add remove-outfile.
14481         (remove_outfile_spec_function): New function.
14482         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
14483         * invoke.texi (replace-outfile): Document.
14484
14485 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
14486
14487         PR target/45296
14488         * reginfo.c (globalize_reg): Reject stack registers.
14489
14490 2010-08-17  Richard Guenther  <rguenther@suse.de>
14491
14492         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
14493         list of conditional equivalences.
14494         (free_all_edge_infos): Adjust.
14495         (record_equivalences_from_incoming_edge): Likewise.
14496         (record_cond): Likewise.
14497         (build_and_record_new_cond): Likewise.
14498         (record_conditions): Likewise.
14499         (dom_opt_leave_block): Likewise.
14500
14501 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
14502
14503         * doc/invoke.texi (ms-extension): Add documentation.
14504
14505 2010-08-17  Richard Guenther  <rguenther@suse.de>
14506
14507         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
14508
14509 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
14510
14511         PR c/40563
14512         * c-decl.c (diagnose_uninitialized_cst_member): New function.
14513         (finish_decl): Use it to issue a -Wc++-compat warning about
14514         uninitialized const field in struct or union.
14515
14516         (finish_struct): Use strip_array_types.
14517
14518 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
14519
14520         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
14521         functions.
14522         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
14523         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
14524         call block_nreverse here.
14525         (blocks_nreverse): Rename decl temporary to block.
14526
14527 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
14528
14529         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
14530         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
14531         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
14532         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
14533         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
14534         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
14535         thumb2_iorsi3): Delete.
14536         (orsi_notsi_si): No longer a named pattern.
14537         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
14538         * config/arm/predicates.md (shift_amount_operand): New.
14539         (mult_operator): New.
14540         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
14541         attr enabled): New.
14542         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
14543         arch matches t2.
14544         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
14545         (not_shiftsi_compare0): Likewise, renamed from
14546         arm_notsi_shiftsi_compare0.
14547         (not_shiftsi_compare0_scratch): Likweise, renamed from
14548         arm_notsi_shiftsi_compare0_scratch.
14549         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
14550         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
14551         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
14552         so that the register alternative is disabled when the shift_operator
14553         is MULT.  Use "M" as the constraint for constants.
14554         (arith_shiftsi splitter): Enable for TARGET_32BIT.
14555         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
14556         constraint for constants.
14557         (arith_shiftsi_compare0_scratch): Likewise.
14558         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
14559         Handle Thumb2 alternative.
14560
14561 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
14562
14563         * doc/options.texi (NoDriverArg): Document.
14564         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
14565         -MDX and -MMDX.
14566         * opt-functions.awk (switch_flags): Handle NoDriverArg.
14567         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
14568         marking for CL_NO_DRIVER_ARG options when in the driver.
14569         * opts.h (CL_NO_DRIVER_ARG): Define.
14570         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
14571         CL_COMMON): Update values.
14572
14573 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
14574
14575         * common.opt: Add driver options.
14576         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
14577         * doc/options.texi (Driver, RejectDriver): Document.
14578         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
14579         print_prog_name, print_multi_directory, print_sysroot,
14580         print_multi_os_directory, print_multi_lib,
14581         print_sysroot_headers_suffix, report_times, combine_flag,
14582         use_pipes, wrapper_string): Remove.
14583         (save_switch, driver_unknown_option_callback,
14584         driver_wrong_lang_callback, driver_post_handling_callback,
14585         driver_handle_option): New.
14586         (spec_lang, last_language_n_infiles): Make file-scope static
14587         instead of local to process_command.
14588         (process_command): Use decode_cmdline_options_to_array and
14589         read_cmdline_option for option processing.  Compute have_c in
14590         prescan of decoded options.
14591         * opt-functions.awk (switch_flags): Handle Driver and
14592         RejectDriver.
14593         (var_type, var_type_struct): Handle Separate options as generating
14594         const char * variables.
14595         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
14596         CL_TARGET to be passed by caller if required.
14597         (decode_cmdline_options_to_array): Update comment.
14598         * opts.c (complain_wrong_lang): Handle options only valid for the
14599         driver.
14600         (decode_options): Update call to decode_cmdline_options_to_array.
14601         (print_filtered_help): Ignore driver-only options.
14602         (print_specific_help): Ignore CL_DRIVER.
14603         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
14604         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
14605         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
14606         Update values.
14607
14608 2010-08-16  Richard Guenther  <rguenther@suse.de>
14609
14610         * tree-cfg.c (verify_types_in_gimple_reference): Verify
14611         TARGET_MEM_REF a bit.
14612         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
14613         (create_mem_ref_raw): Always create TMR_OFFSET, store the
14614         alias pointer type via it.
14615         (copy_mem_ref_info): Adjust.
14616         (maybe_fold_tmr): Likewise.
14617         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
14618         (reference_alias_ptr_type): Likewise.
14619         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
14620         adjust documentation of TMR_OFFSET operand.
14621         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
14622         use the alias pointer type.
14623         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
14624         initialize mem attrs but the TMR itself.
14625         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
14626         similar to MEM_REF.
14627         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
14628         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
14629         (unshare_and_remove_ssa_names): Likewise.
14630         (copy_ref_info): Adjust.
14631         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
14632         TARGET_MEM_REF case.
14633         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
14634         at TMR_ORIGINAL.
14635         * tree.h (TMR_ORIGINAL): Remove.
14636         * gimple.c (get_base_address): For TARGET_MEM_REF with a
14637         symbol return that.
14638         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
14639         with a symbol.
14640         (get_addr_base_and_unit_offset): Likewise.
14641         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
14642         TARGET_MEM_REFs.
14643         (indirect_ref_may_alias_decl_p): Likewise.
14644         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
14645
14646 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
14647
14648         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
14649         with GCC version 4.6, the default setting (when not optimizing
14650         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
14651         been changed to -fomit-frame-pointer.
14652
14653 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
14654
14655         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
14656         Darwin10.  Do not link libgcc.a for Darwin >= 9.
14657
14658 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
14659
14660         * doc/invoke.texi (Warning Options): Fix terminology and markup
14661         in the description of how unknown warning options are handled.
14662
14663 2010-08-15  Ira Rosen  <irar@il.ibm.com>
14664
14665         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
14666         in basic blocks.
14667         (vect_supportable_dr_alignment): Check alignment for basic blocks.
14668         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
14669         data references.
14670         (vect_bb_vectorization_profitable_p): New function.
14671         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
14672         check if it's worthwhile to vectorize the basic block.
14673
14674 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
14675
14676         * reload.h (register_move_cost, memory_move_secondary_cost,
14677         secondary_reload_class): Adjust prototype.
14678         * rtl.h (reg_class_subset_p): Adjust prototype.
14679         * reload.c (secondary_reload_class): Change arguments type from
14680         enum reg_class to reg_class_t. Change result type to reg_class_t.
14681         * reginfo.c (register_move_cost, reg_class_subset_p): Change
14682         arguments type from enum reg_class to reg_class_t.
14683         (memory_move_secondary_cost): Change arguments type from
14684         enum reg_class to reg_class_t. Change type of saved_flags to
14685         reg_class_t.
14686
14687         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
14688         Remove macros.
14689         (mips_cost): Remove.
14690         (struct mips_rtx_cost_data): Moved to mips.c.
14691         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
14692         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
14693         (mips_cost): Make static.
14694         (mips_canonicalize_move_class): Change argument type to reg_class_t.
14695         Change result type to reg_class_t.
14696         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
14697         type from enum reg_class to reg_class_t.
14698         (mips_register_move_cost): Make static. Change arguments
14699         type from enum reg_class to reg_class_t.
14700         (mips_memory_move_cost): New function.
14701         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
14702
14703 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
14704
14705         PR rtl-optimization/43358
14706         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
14707         of a single hard register, using simplify_subreg_regno to decide
14708         what that register should be.
14709
14710 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
14711
14712         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
14713         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
14714         (loongson_pmull<V_suffix>): Rename to...
14715         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
14716
14717 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
14718
14719         * configure.ac: Enable -fomit-frame-pointer on darwin
14720         which support dwarf2.
14721         * config/i386/i386.c (override_options): Same.
14722
14723 2010-08-13  Jie Zhang  <jie@codesourcery.com>
14724
14725         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
14726
14727 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
14728
14729         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
14730         -MMD.
14731
14732 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
14733
14734         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
14735         up dot_prod pattern searching if a stmt is outside the loop.
14736
14737 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
14738             Uros Bizjak  <ubizjak@gmail.com>
14739
14740         * config.gcc: Handle --enable-frame-pointer.
14741
14742         * configure.ac: Add --enable-frame-pointer.
14743         * configure: Regenerated.
14744
14745         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
14746         (override_options): If not configured with --enable-frame-pointer,
14747         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
14748         optimizing for size), -fasynchronous-unwind-tables and
14749         -maccumulate-outgoing-args by default.
14750
14751 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
14752
14753         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
14754
14755         PR middle-end/45262
14756         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
14757         -a overflows.  Normalize the range.
14758
14759 2010-08-12  Richard Guenther  <rguenther@suse.de>
14760
14761         PR tree-optimization/45232
14762         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
14763         for types with undefined overflow.
14764         (reassociate_bb): Allow re-associating of bit and min/max
14765         operations for types with undefined overflow.
14766         * tree-ssa-forwprop.c (associate_plusminus): New function.
14767         (tree_ssa_forward_propagate_single_use_vars): Call it.
14768
14769 2010-08-12  Richard Guenther  <rguenther@suse.de>
14770
14771         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
14772         * tree-ssa-alias.c (get_ptr_info): Move ...
14773         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
14774         align and misalign fields conservatively.
14775         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
14776         derive alignment information.
14777         (evaluate_stmt): Derive alignment information from memory
14778         allocation functions.
14779         * tree.h (get_pointer_alignment): Make unsigned.
14780         * builtins.c (get_object_alignment): Use alignment information we
14781         have computed for pointers.
14782         (get_pointer_alignment): Likewise.  Make conservative, return
14783         and unsigned value.
14784         (expand_builtin_strlen): Adjust.
14785         (expand_builtin_memcmp): Likewise.
14786         (expand_builtin_strcmp): Likewise.
14787         (expand_builtin_strncmp): Likewise.
14788         (get_builtin_sync_mem): Use at least mode alignment.
14789         (fold_builtin_memset): Adjust.
14790         (fold_builtin_memory_op): Likewise.
14791         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
14792         information also dump pointer alignment knowledge.
14793         (dump_gimple_stmt): Likewise.
14794
14795 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
14796
14797         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
14798         (EMPTY_FIELD_BOUNDARY): Remove.
14799         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
14800
14801 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
14802
14803         PR debug/45259
14804         * caller-save.c (save_call_clobbered_regs): Only swap notes with
14805         DEBUG_INSNs if n_regs_saved.
14806
14807 2010-08-12  Wei Guozhi  <carrot@google.com>
14808
14809         PR target/44999
14810         * config/arm/arm.md (andsi3): Change to zero extension if possible.
14811         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
14812
14813 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
14814
14815         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
14816
14817         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
14818
14819 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14820
14821         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
14822         the case removed in the previous patch, when the only phi argument
14823         is defined in the same loop as the phi node itself.  Handle it
14824         separately from the invariant case by both propagating it outside
14825         the region and replacing the phi node with an assign.
14826
14827 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14828
14829         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
14830         constant phi nodes with one argument are is_gimple_min_invariant
14831         and SSA_NAME_IS_DEFAULT_DEF.
14832
14833 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14834
14835         * graphite-cloog-util.c (oppose_constraint):
14836         Extend loop counter's value range (CLOOG_ORG).
14837         (cloog_matrix_to_ppl_constraint): Same.
14838         (new_Constraint_System_from_Cloog_matrix): Same.
14839         * graphite-cloog-compat.h (matrix_num_type): New.
14840
14841 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14842
14843         * graphite.c (graphite_initialize): Do not initialize
14844         CLooG and initialize the Parma Polyhedra Library
14845         manually when using CLOOG_ORG.
14846         (graphite_finalize): Do not finalize CLooG and finalize
14847         the Parma Polyhedra Library manually when using CLOOG_ORG.
14848         * graphite-cloog-compat.h (cloog_initialize): Hide function
14849         when using CLOOG_ORG.
14850         (cloog_finalize): Same.
14851
14852 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14853
14854         * graphite-clast-to-gimple.c (free_scattering): Change
14855         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
14856         (CLOOG_ORG).
14857         (build_cloog_prog): Same.
14858         * graphite-cloog-compat.h (cloog_domain): Removed.
14859         (cloog_scattering): New.
14860         (cloog_set_domain): Removed.
14861         (cloog_set_scattering): New.
14862         (cloog_next_domain): Removed.
14863         (cloog_next_scattering): New.
14864         (cloog_set_next_domain): Removed.
14865         (cloog_set_next_scattering): New.
14866         (CloogScatteringList): New.
14867         (CloogScattering): New.
14868         (cloog_scattering_free): New.
14869         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
14870         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
14871         New.
14872
14873 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14874
14875         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
14876         CloogState.
14877         (set_cloog_options): Same.
14878         (print_clast_stmt): Same.
14879         (scop_to_clast): Same.
14880         (print_generated_program): Same.
14881         (gloog): Same.
14882         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
14883         (scop_to_clast): Extend with CloogState.
14884         * graphite-cloog-util.c: Include graphite-cloog-compat.h
14885         (new_Cloog_Domain_from_ppl_Polyhedron):
14886         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
14887         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
14888         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
14889         * graphite-cloog-util.h (build_cloog_prog): Same.
14890         * graphite-cloog-copat.h (build_cloog_prog): New.
14891         (CloogState): New.
14892         (cloog_state_malloc): New.
14893         (cloog_state_free): New.
14894         (cloog_loop_malloc): New.
14895         (cloog_options_malloc): New.
14896         (cloog_statement_alloc): New.
14897         (cloog_domain_from_cloog_matrix): New.
14898         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
14899         (new_Cloog_Domain_from_ppl_Polyhedron): New.
14900
14901 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14902
14903         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
14904         type of NAME now depends on used CLooG version.
14905         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
14906         (gcc_type_for_clast_expr): Same.
14907         (print_clast_stmt): Replace pprint with clast_pprint.
14908         * graphite-cloog-compat.h: Provide compatibility macros for
14909         CLooG Legacy.
14910         (clast_name_p): New.
14911         (clast_expr_term): New.
14912         (clast_expr_red): New.
14913         (clast_expr_bin): New.
14914         (clast_pprint): New.
14915
14916 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14917
14918         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
14919         compatible to newer CLooG releases (CLOOG_ORG).
14920         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
14921         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
14922         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
14923         (build_cloog_prog) : New.
14924         (cloog_program_extract_scalars): New.
14925         (cloog_program_scatter): New.
14926
14927 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14928
14929         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
14930         conditionally (CLOOG_ORG).
14931         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
14932         (cloog_statement_usr): New.
14933         (cloog_domain): Same.
14934         (cloog_set_domain): Same.
14935         (cloog_next_domain): Same.
14936         (cloog_set_next_domain): Same.
14937         (cloog_program_nb_scattdims): Same.
14938         (cloog_program_set_nb_scattdims): Same.
14939         (cloog_program_names): Same.
14940         (cloog_program_set_names): Same.
14941         (cloog_program_set_context): Same.
14942         (cloog_program_set_loop): Same.
14943         (cloog_program_blocklist): Same.
14944         (cloog_program_set_blocklist): Same.
14945         (cloog_program_scaldims): Same.
14946         (cloog_program_set_scaldims): Same.
14947         (cloog_names_nb_parameters): Same.
14948         (cloog_names_set_nb_parameters): Same.
14949         (cloog_names_parameters): Same.
14950         (cloog_names_set_parameters): Same.
14951         (cloog_names_set_nb_iterators): Same.
14952         (cloog_names_set_iterators): Same.
14953         (cloog_names_set_nb_scattering): Same.
14954         (cloog_names_set_scattering): Same.
14955         (cloog_statement_set_usr): Same.
14956         (cloog_loop_set_next): Same.
14957         (cloog_loop_set_domain): Same.
14958         (cloog_loop_set_block): Same.
14959         (cloog_block_list_next): Same.
14960         (cloog_block_list_set_next):
14961         (cloog_block_list_set_block): Same.
14962
14963 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14964
14965         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
14966         a bool.
14967         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
14968         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
14969         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
14970         when something has been changed.
14971         (rewrite_commutative_reductions_out_of_ssa): Same.
14972
14973 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14974
14975         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
14976         handle the case when def is in the sese region.
14977         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
14978         for invariant expressions.
14979         (rewrite_cross_bb_phi_deps): Removed.
14980         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
14981         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
14982         rewrite_cross_bb_phi_deps.
14983
14984 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14985
14986         * graphite-sese-to-poly.c
14987         (rewrite_commutative_reductions_out_of_ssa_loop): Call
14988         scev_analyzable_p only on is_gimple_reg
14989
14990 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14991
14992         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
14993         (rewrite_close_phi_out_of_ssa): Propagate constant values or
14994         parametric expressions outside the scop region.
14995         (rewrite_cross_bb_scalar_deps): Same.
14996         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
14997
14998 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
14999
15000         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
15001         SSA_NAME_DEF_STMT only on SSA_NAMEs.
15002
15003 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15004
15005         * tree-scalar-evolution.c (instantiate_scev_name): Do not
15006         instantiate default definitions.
15007
15008 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
15009             Sebastian Pop  <sebastian.pop@amd.com>
15010
15011         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
15012         (loop_exits_from_bb_p): New.
15013         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
15014         (loop_exits_from_bb_p): Declared.
15015         * graphite-scop-detection.c (scopdet_basic_block_info): Call
15016         loop_exits_to_bb_p.
15017
15018 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15019
15020         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
15021         extra parameter for the region.  Call scev_analyzable_p.
15022         (rewrite_reductions_out_of_ssa): Update call to
15023         rewrite_close_phi_out_of_ssa.
15024         (rewrite_cross_bb_phi_deps): Same.
15025         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
15026         parameter for the region.  Call scev_analyzable_p.
15027         (rewrite_commutative_reductions_out_of_ssa): Update call to
15028         rewrite_commutative_reductions_out_of_ssa_loop.
15029
15030 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15031
15032         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
15033
15034 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15035
15036         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
15037         SSA scalar phi nodes that can be scev_analyzable_p.
15038
15039 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15040
15041         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
15042         handle SSA_NAME_IS_DEFAULT_DEF.
15043
15044 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15045
15046         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
15047
15048 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15049
15050         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
15051         case non close-phi nodes with one argument.
15052
15053 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15054
15055         * sese.h (scev_analyzable_p): Scevs could be expressions without
15056         chrecs and still be scev_analyzable_p.
15057
15058 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15059
15060         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
15061
15062 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15063
15064         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
15065         * cfgloop.h (struct loop): Remove single_iv field.
15066         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
15067         (scop_canonicalize_loops): Removed.
15068         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
15069         over all the loop phi nodes in loop->header.
15070         (build_poly_scop): Remove use of scop_canonicalize_loops.
15071
15072 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15073
15074         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
15075         handle GIMPLE_CALL.
15076
15077 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15078
15079         * tree-chrec.c (chrec_apply): Should only apply to the specified
15080         variable.  Also handle multivariate chains of recurrences that
15081         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
15082
15083 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15084
15085         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
15086         (debug_clast_name_indexes_1): Removed.
15087         (debug_clast_name_indexes): Removed.
15088         (pbb_to_depth_to_oldiv): Removed.
15089         (build_iv_mapping): Replace the use of rename_map with iv_map.
15090         (translate_clast_user): Remove uses of rename_map.  Allocate and
15091         free iv_map.
15092         (translate_clast_for_loop): Remove uses of rename_map.
15093         (translate_clast_for): Same.
15094         (translate_clast_guard): Same.
15095         (translate_clast): Same.
15096         (gloog): Same.
15097         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
15098         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
15099         * sese.c (set_rename): Now static.
15100         (rename_variables_in_stmt): Removed.
15101         (rename_uses): New.
15102         (is_parameter): Removed.
15103         (is_iv): Removed.
15104         (expand_scalar_variables_call): Removed.
15105         (expand_scalar_variables_ssa_name): Removed.
15106         (expand_scalar_variables_expr): Removed.
15107         (expand_scalar_variables_stmt): Removed.
15108         (expand_scalar_variables): Removed.
15109         (rename_variables): Removed.
15110         (remove_condition): Removed.
15111         (get_true_edge_from_guard_bb): Removed.
15112         (get_false_edge_from_guard_bb): Removed.
15113         (struct igp): Removed.
15114         (default_before_guard): Removed.
15115         (convert_for_phi_arg): Removed.
15116         (add_guard_exit_phis): Removed.
15117         (insert_guard_phis): Removed.
15118         (graphite_copy_stmts_from_block): Now also uses iv_map and a
15119         region.  Do not copy conditions.  Do not copy induction variables.
15120         Call rename_uses.
15121         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
15122         the translated statement.  Use the iv_map for the induction
15123         variable renaming.
15124         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
15125         (set_rename): Removed declaration.
15126         (scev_analyzable_p): ...here.
15127         * tree-chrec.c (chrec_apply_map): New.
15128         * tree-chrec.h (chrec_apply_map): Declared.
15129
15130 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15131
15132         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
15133         insert_loop_close_phis.
15134         * sese.c (name_defined_in_loop_p): Removed.
15135         (expr_defined_in_loop_p): Removed.
15136         (alive_after_loop): Removed.
15137         (close_phi_not_yet_inserted_p): Removed.
15138         (struct alep): Removed.
15139         (add_loop_exit_phis): Removed.
15140         (insert_loop_close_phis): Removed.
15141
15142 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15143
15144         * graphite-cloog-util.c
15145         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
15146         * graphite-poly.c
15147         (psct_scattering_dim_for_loop_depth): Same.
15148
15149 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15150
15151         * graphite-cloog-util.h: Added cloog.h.
15152         * graphite-blocking.c: Removed cloog.h.
15153         * graphite-dependences.c: Same.
15154         * graphite-interchange.c: Same.
15155         * graphite-poly.c: Same.
15156         * graphite-ppl.c: Same.
15157         * graphite-scop-detection.c: Same.
15158         * graphite-sese-to-poly.c:
15159         Removed cloog.h.
15160         Removed graphite-clast-to-gimple.h.
15161         (check_poly_representation): Removed (unused).
15162         * graphite-sese-to-poly.h
15163         (check_poly_representation): Removed (unused).
15164
15165 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15166
15167         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
15168         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
15169         (graphite-cloog-util.o): New.
15170         (graphite-ppl.o): Added graphite-cloog-util.h.
15171         * graphite-clast-to-gimple.c:
15172         Added graphite-cloog-util.h to include statements.
15173         * graphite-cloog-util.c: New.
15174         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
15175         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15176         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15177         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15178         (insert_constraint_into_matrix): Same.
15179         (ppl_Constrain_System_number_of_constraints): Same.
15180         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
15181         (oppose_constraint): Same.
15182         (cloog_matrix_to_ppl_constraint): Same.
15183         (new_Constraint_System_from_Cloog_Matrix): Same.
15184         * graphite-cloog-util.h: New.
15185         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
15186         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15187         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15188         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15189         (insert_constraint_into_matrix): Same.
15190         * graphite-ppl.c:
15191         Added graphite-cloog-util.h to include statements.
15192         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
15193         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15194         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15195         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15196         (insert_constraint_into_matrix): Same.
15197         (ppl_Constrain_System_number_of_constraints): Same.
15198         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
15199         (oppose_constraint): Same.
15200         (cloog_matrix_to_ppl_constraint): Same.
15201         (new_Constraint_System_from_Cloog_Matrix): Same.
15202         * graphite-ppl.h:
15203         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
15204         graphite-cloog-util.h.
15205         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15206         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15207         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15208         (insert_constraint_into_matrix): Same.
15209
15210 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15211
15212         * graphite-clast-to-gimple.c
15213         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
15214         (precision_for_interval): Same.
15215         (gcc_type_for_interval): Same.
15216         (compute_type_for_level): Same.
15217         * graphite-interchange.c
15218         (lst_interchange_profitable_p): Same.
15219         * graphite-poly.c
15220         (psct_scattering_dim_for_loop_depth): Same.
15221         * graphite-ppl.c
15222         (ppl_max_for_le_pointset): Same.
15223         (ppl_min_for_le_pointset): Same.
15224
15225 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15226
15227         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
15228         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
15229
15230 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15231
15232         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
15233         rewrite_close_phi_out_of_ssa.
15234
15235 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15236
15237         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
15238
15239 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15240
15241         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
15242         rename_map.
15243         * sese.c (debug_rename_map): Same.
15244         (get_rename): Same.
15245         (set_rename): Same.
15246         (rename_variables_in_stmt): Same.
15247         (expand_scalar_variables_call): Same.
15248         (expand_scalar_variables_ssa_name): Same.
15249         (expand_scalar_variables_expr): Same.
15250         (expand_scalar_variables_stmt): Same.
15251         (expand_scalar_variables): Same.
15252         (rename_variables): Same.
15253         (graphite_copy_stmts_from_block): Same.
15254         (copy_bb_and_scalar_dependences): Same.
15255
15256 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15257
15258         * graphite-clast-to-gimple.c (copy_renames): Removed.
15259         (translate_clast_for): Do not call copy_renames.
15260         (translate_clast_guard): Same.
15261
15262 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15263
15264         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
15265         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
15266         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
15267         before rewrite_cross_bb_scalar_deps.
15268
15269 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15270
15271         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
15272         Early return in when flag_associative_math is not set.
15273
15274 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15275
15276         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
15277         of SSA copies on edges except for loop->latch.
15278
15279 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15280
15281         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
15282         Split out of rewrite_reductions_out_of_ssa.
15283         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
15284         Declared.
15285         * graphite.c (graphite_transform_loops): Call it.
15286
15287 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15288
15289         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
15290
15291 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
15292
15293         * dbgcnt.def (graphite_scop): New counter.
15294         * graphite.c: Include dbgcnt.h.
15295         (graphite_transform_loops): Use new counter to limit transformations.
15296         * Makefile.in (graphite.o): Depend on DBGCNT_H.
15297
15298 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15299
15300         * passes.c (init_optimization_passes): Add pass_graphite.
15301         Schedule a pass_copy_prop before pass_graphite_transforms.
15302         * timevar.def (TV_GRAPHITE): Declared.
15303         * tree-pass.h (pass_graphite): Declared.
15304         * tree-ssa-loop.c (pass_graphite): New.
15305
15306 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15307
15308         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
15309         Remove calls to rename_nb_iterations and rename_sese_parameters.
15310         * graphite-clast-to-gimple.h (gloog): Update declaration.
15311         * graphite.c (graphite_transform_loops): Update call to gloog.
15312         * sese.c (rename_variables_in_expr): Removed.
15313         (rename_nb_iterations): Removed.
15314         (rename_sese_parameters): Removed.
15315         * sese.h (rename_nb_iterations): Removed.
15316         (rename_sese_parameters): Removed.
15317
15318 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15319
15320         * graphite-clast-to-gimple.c (gloog): Remove call to
15321         sese_adjust_liveout_phis.
15322         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
15323         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
15324         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
15325         rewrite_phi_out_of_ssa.
15326         * sese.c (get_vdef_before_sese): Removed.
15327         (sese_adjust_vphi): Removed.
15328         (sese_adjust_liveout_phis): Removed.
15329         * sese.h (sese_adjust_liveout_phis): Removed.
15330
15331 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15332
15333         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
15334         argument for the place after which to insert the out of SSA copy.
15335         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
15336         (rewrite_phi_out_of_ssa): Same.
15337         (rewrite_cross_bb_scalar_deps): Same.
15338         (insert_copyout): Removed.
15339         (insert_copyin): Removed.
15340         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
15341         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
15342         insert_copyin.
15343
15344 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15345
15346         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
15347         (rewrite_reductions_out_of_ssa): Same.
15348         (rewrite_commutative_reductions_out_of_ssa): Same.
15349         (build_poly_scop): Do not call these functions.
15350         * graphite-sese-to-poly.h (build_poly_scop): Declared.
15351         (rewrite_reductions_out_of_ssa): Declared.
15352         (rewrite_commutative_reductions_out_of_ssa): Declared.
15353         * graphite.c (graphite_transform_loops): Call on every scop
15354         rewrite_commutative_reductions_out_of_ssa before calling
15355         rewrite_reductions_out_of_ssa and build_scop_bbs.
15356
15357 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15358
15359         * graphite-dependences.c (dot_deps): Make system call to dotty run
15360         in background.
15361         (dot_deps_stmt): Same.
15362         * graphite-poly.c (dot_lst): Same.
15363
15364 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15365
15366         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
15367         phi_arg_in_outermost_loop.
15368         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
15369         (remove_invariant_phi): Same.
15370
15371 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
15372
15373         * target.def (output_addr_const_extra): New hook.
15374         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
15375         * doc/tm.texi: Regenerate.
15376         * targhooks.c (default_asm_output_addr_const_extra): New function.
15377         * targhooks.h (default_asm_output_addr_const_extra): Declare.
15378         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
15379         target hook.
15380
15381         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15382         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
15383         * config/i386/i386.h (output_addr_const_extra): Rename to...
15384         (i386_asm_output_addr_const_extra): ...this. Make static.
15385         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15386
15387 2010-08-11  Richard Henderson  <rth@redhat.com>
15388
15389         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
15390
15391 2010-08-11  Nick Clifton  <nickc@redhat.com>
15392
15393         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
15394         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
15395         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
15396         stormy16-lib2-cmpsi.c.
15397
15398         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
15399         -O2.
15400
15401 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
15402
15403         * opts.h (struct cl_option_handler_func): Make handler take
15404         cl_decoded_option structure as parameter, not individual elements.
15405         (struct cl_option_handlers): Make callbacks take cl_decoded_option
15406         structure as parameter, not individual elements.
15407         (handle_option): Take cl_decoded_option structure as parameter,
15408         not individual elements.
15409         (handle_generated_option): Declare.
15410         * opts-common.c (handle_option): Take cl_decoded_option structure
15411         as parameter, not individual elements.  Update calls to callback
15412         and handler functions.
15413         (handle_generated_option): New.
15414         (read_cmdline_option): Update calls to callback functions and
15415         handle_option.
15416         * opts.c (common_handle_option, complain_wrong_lang,
15417         unknown_option_callback, post_handling_callback,
15418         lang_handle_option, target_handle_option): Take cl_decoded_option
15419         structure as parameter, not individual elements.
15420         (lang_handle_option, target_handle_option, common_handle_option):
15421         Assert option has at most one argument.
15422         (enable_warning_as_error): Call handle_generated_option instead of
15423         handle_option.  Do not pass -Werror argument as argument of
15424         generated option.
15425
15426 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15427
15428         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
15429         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
15430         (SUBWORD_BOOL_CAS): Likewise.
15431         (SUBWORD_SYNC_OP): Likewise.
15432         (SUBWORD_TEST_AND_SET): Likewise.
15433         (FETCH_AND_OP_WORD): Parenthesise INF_OP
15434         (SUBWORD_SYNC_OP): Likewise.
15435         (OP_AND_FETCH_WORD): Likewise.
15436
15437 2010-08-10  Xinliang David Li  <davidxl@google.com>
15438
15439         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
15440         compute max/min offset in address.
15441
15442 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
15443
15444         * ira-live.c: Include sbitmap.h.
15445         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
15446         Compress live ranges even more.
15447
15448 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15449
15450         * coverage.c (ctr_labels): Delete.
15451
15452 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
15453
15454         PR bootstrap/45177
15455         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
15456         test here from arm_gen_load_multiple_1.
15457         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
15458         multiple_operation_profitable_p.
15459
15460 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15461
15462         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
15463         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
15464
15465 2010-08-10  Richard Henderson  <rth@redhat.com>
15466
15467         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
15468         after saving registers.  Assert that SSE registers are only saved
15469         with a sufficiently aligned frame.
15470         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
15471         remove stack_realign_fp handling.
15472         (ix86_expand_prologue): Save int registers before stack_realign_fp,
15473         and do not mark the stack alignment as frame related.
15474         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
15475
15476         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
15477         saves when re-aligning the stack.
15478
15479 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15480
15481         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
15482         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
15483         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
15484
15485 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15486
15487         * dwarf2out.c (struct die_struct): Move die_tag to the end.
15488
15489 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
15490
15491         * config/arm/iterators.md: New file.
15492         * config/arm/arm.md: Include iterators.md.
15493         (QHSI): Move to new file.
15494         (LTUGEU, cnb, optab, ior_xor): Likewise.
15495         * config/arm/iwmmxt.md (VMMX): Move to new file.
15496         (VSHFT, MMX_char): Likewise.
15497         * config/arm/neon.md (VD): Move to new file.
15498         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
15499         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
15500         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
15501         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
15502         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
15503         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
15504         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
15505         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
15506         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
15507         (Is_d_reg, V_mode_nunits): Likewise.
15508         * config/arm/vec-common.md (VALL): Move to new file.
15509         (VALLW, VINT, VINTW): Likewise.
15510
15511 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
15512
15513         PR middle-end/45182
15514         * combine.c (make_compound_operation): Don't try to convert
15515         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
15516
15517 2010-08-10  Richard Guenther  <rguenther@suse.de>
15518
15519         * tree.h (get_object_alignment): Adjust prototype.
15520         * builtins.c (get_object_alignment): Return unsigned int,
15521         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
15522         and TARGET_MEM_REF properly.
15523         (get_pointer_alignment): Adjust.
15524         * emit-rtl.c (get_mem_align_offset): Adjust comment.
15525         (set_mem_attributes_minus_bitpos): Adjust.
15526         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
15527
15528 2010-08-10  Richard Guenther  <rguenther@suse.de>
15529
15530         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
15531         (copy_prop_visit_assignment): Simplify.
15532         (copy_prop_visit_stmt): Also visit assignments from
15533         constants.
15534         (copy_prop_visit_phi_node): Use operand_equal_p.
15535
15536 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15537
15538         * ipa-split.c (find_split_points): Free stack.
15539
15540 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15541
15542         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
15543         * tree.c (tree_node_kind): Delete corresponding entries.
15544
15545 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
15546
15547         * alias.c (may_alias_p): Remove unused ret.
15548
15549 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
15550
15551         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
15552         alias_sets_conflict_p.
15553         (walk_mems_1): Moved from alias.c.
15554         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
15555         in alias.c.
15556         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
15557         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
15558         * alias.c (walk_mems_2): Moved to ddg.c.
15559         (walk_mems_1): Ditto.
15560         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
15561         to ddg.c.
15562         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
15563         disambiguation.
15564         *(may_alias_p): New function to check whether two memory expression
15565         may alias or not. Currently used in buidling inter-iteration memory
15566         dependence.
15567         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
15568         (insn_alias_sets_conflict_p): Removed
15569         *rtl.h (may_alias_p): New function prototype.
15570
15571 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15572
15573         * tree.c (nreverse): Assert that we don't have a BLOCK.
15574
15575 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15576
15577         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
15578         * config/arm/arm.c (arm_get_pcs_model): Likewise.
15579         * config/avr/avr.c (init_cumulative_args): Likewise.
15580         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
15581         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
15582         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
15583         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
15584         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
15585         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
15586         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
15587         * dwarf2out.c (gen_subprogram_die): Likewise.
15588         * function.c (allocate_struct_function): Likewise.
15589         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
15590         (deserves_ellipsis): Delete.
15591
15592 2010-08-09  Richard Guenther  <rguenther@suse.de>
15593
15594         * tree-ssa-copy.c (cached_last_copy_of): Remove.
15595         (valueize_val): New function.
15596         (get_last_copy_of): Remove.
15597         (set_copy_of_val): Simplify.
15598         (dump_copy_of): Likewise.
15599         (copy_prop_visit_cond_stmt): Use valueize_val.
15600         (copy_prop_visit_phi_node): Properly handle unvisited names.
15601         Drop code managing copy-of chains.
15602         (init_copy_prop): Adjust.
15603         (fini_copy_prop): Likewise.
15604         (execute_copy_prop): Remove obsolete comment.
15605
15606 2010-08-09  Richard Guenther  <rguenther@suse.de>
15607
15608         PR middle-end/44632
15609         * function.c (gimplify_parameters): Do not clear addressable
15610         bit of the original parameter.
15611
15612 2010-08-09  Richard Guenther  <rguenther@suse.de>
15613
15614         PR middle-end/45212
15615         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
15616         alignment from MEM_REF offset only if we took it from the
15617         base object.
15618
15619 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
15620
15621         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
15622
15623 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
15624
15625         * c-tree.h (build_arg_info): Declare.
15626         * c-decl.c (build_arg_info): Define.
15627         (get_parm_info): Call it.  Delete initialization code.
15628         * c-parser.c (c_parser_parms_declarator): Likewise.
15629         (c_parser_parms_list_declaractor): Likewise.
15630
15631 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
15632
15633         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
15634         (struct c_arg_info): Change type of tags field.
15635         * c-decl.c (grokdeclarator): Update for changed type of tags field.
15636         (get_parm_info): Likewise.
15637         (store_parm_decls_newstyle): Likewise.
15638
15639 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
15640
15641         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
15642         (branch_island_list): Delete.
15643         (branch_islands): Declare.
15644         (add_compiler_branch_island): Adjust for branch_islands instead of
15645         branch_island_list.
15646         (macho_branch_islands): Likewise.
15647         (no_previous_def): Likewise.
15648         (get_prev_label): Likewise.
15649
15650 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15651
15652         PR boehm-gc/34544
15653         * gthr-posix.h (__gthread_start): Delete.
15654         (__gthread_active_init): Use pthread_default_stacksize_np instead of
15655         pthread_create to determine if hpux pthreads are active.
15656         * gthr-posix95.h (__gthread_start): Delete.
15657         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
15658
15659 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
15660
15661         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
15662         _WIN64 not expanded.
15663
15664 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
15665             H.J. Lu  <hongjiu.lu@intel.com>
15666
15667         PR target/45213
15668         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
15669         to output 32bit SFmode immediate as 8 byte sign extended value.
15670
15671 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
15672
15673         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
15674         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
15675         (SUBWORD_BOOL_CAS): Likewise.
15676         (SUBWORD_SYNC_OP): Likewise.
15677         (SUBWORD_TEST_AND_SET): Likewise.
15678         (FETCH_AND_OP_WORD): Parenthesise INF_OP
15679         (SUBWORD_SYNC_OP): Likewise.
15680         (OP_AND_FETCH_WORD): Likewise.
15681
15682 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15683
15684         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
15685         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
15686         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
15687         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
15688         generic part.
15689         (cortex_a9_sched_adjust_cost): New function.
15690         (xscale_sched_adjust_cost): New function.
15691         * config/arm/arm-protos.h (struct tune_params): New field
15692         sched_adjust_cost.
15693         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
15694
15695 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
15696
15697         PR target/44942
15698         * config/sparc/sparc.c (function_arg_advance): Always take into account
15699         the padding, if any.
15700
15701 2010-08-06  Richard Guenther  <rguenther@suse.de>
15702
15703         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
15704         (dump_lattice_value): Dump it.
15705         (get_default_value): Adjust.
15706         (get_constant_value): Likewise.
15707         (set_value_varying): Likewise.
15708         (set_lattice_value): Make sure to not go up the lattice
15709         with bitwise constant values.
15710         (get_value_for_expr): Handle ADDR_EXPRs.
15711         (value_to_double_int): New function.
15712         (get_value_from_alignment): Likewise.
15713         (do_dbg_cnt): Adjust.
15714         (ccp_lattice_meet): Handle partially constant values.
15715         (bit_value_unop_1): New function.
15716         (bit_value_binop_1): Likewise.
15717         (bit_value_unop): Likewise.
15718         (bit_value_binop): Likewise.
15719         (evaluate_stmt): Track partially constant values if
15720         flag_tree_bit_ccp is set.
15721         (ccp_fold_stmt): Dump if we folded a predicate.
15722         (ccp_visit_stmt): Adjust.
15723         * common.opt (ftree-bit-ccp): New flag.
15724         * doc/invoke.texi (ftree-bit-ccp): Document.
15725         * opts.c (decode_options): Enable bit-CCP at -O1.
15726
15727 2010-08-06  Alan Modra  <amodra@gmail.com>
15728
15729         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
15730         and -mrelocatable-lib description.
15731
15732 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
15733
15734         From Martin Thuresson  <martint@google.com>
15735         * postreload.c (reload_cse_simplify_operands): Use
15736         SET_REGNO_RAW instead of SET_REGNO.
15737         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
15738         SET_REGNO.
15739         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
15740         instead of SET_REGNO.
15741         * rtl.h (SET_REGNO_RAW): New macro.
15742
15743 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
15744
15745         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
15746         computations.  Fix formatting issues.
15747         (num_sign_bit_copies1): Likewise.
15748         (canonicalize_condition): Likewise.
15749
15750 2010-08-05  Richard Henderson  <rth@redhat.com>
15751
15752         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
15753         (floor_log2): Use clz_hwi.
15754         (exact_log2): Use ctz_hwi.
15755         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
15756         * builtins.c (fold_builtin_bitop): Use them.
15757         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
15758         * combine.c (get_pos_from_mask): Use ctz_hwi.
15759         * double-int.c (double_int_ctz): Likewise.
15760         * explow.c (force_reg): Likewise.
15761         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
15762
15763 2010-08-05  Richard Henderson  <rth@redhat.com>
15764
15765         PR target/45189
15766         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
15767         the alignment constant is properly sign-extended.
15768
15769 2010-08-05  Richard Guenther  <rguenther@suse.de>
15770
15771         * expr.c (store_expr): Use emit_block_move only if both
15772         source and target are MEMs.  Use store_bit_field if only
15773         the target is a MEM.
15774
15775 2010-08-05  Richard Henderson  <rth@redhat.com>
15776
15777         PR debug/45188
15778         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
15779         (INCOMING_RETURN_ADDR_RTX): Likewise.
15780         (dwarf2out_do_frame): Remove conditional compilation.
15781         (dwarf2out_frame_init): Likewise.
15782
15783 2010-08-05  Nicolas Setton  <setton@adacore.com>
15784
15785         * gcov.c (flag_display_progress): New static variable.
15786         (main): Display progress info on standard output if requested.
15787         (options): Add -d/--display-progress.
15788         (print_usage): Print them.
15789         (process_args): Handle them.
15790         * doc/gcov.texi: Document them.
15791
15792 2010-08-05  Martin Jambor  <mjambor@suse.cz>
15793
15794         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
15795         (ipcp_insert_stage): Redirect only edges not flagged with
15796         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
15797         discovered constants.
15798
15799 2010-08-05  Martin Jambor  <mjambor@suse.cz>
15800
15801         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
15802         (struct ipa_param_descriptor): New fields types and
15803         cannot_devirtualize.
15804         (ipa_param_cannot_devirtualize_p): New function.
15805         (ipa_param_types_vec_empty): Likewise.
15806         (ipa_make_edge_direct_to_target): Declare.
15807         * ipa-cp.c: Fixed first stage driver name in initial comment,
15808         described devirtualization there too.
15809         (ipcp_analyze_node): Call ipa_analyze_params_uses.
15810         (ipcp_print_all_lattices): Print devirtualization info.
15811         (ipa_set_param_cannot_devirtualize): New function.
15812         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
15813         lattice to BOTTOM.
15814         (ipcp_init_stage): Merged into...
15815         (ipcp_generate_summary): ...its caller.
15816         (ipcp_change_tops_to_bottom): Also process type lists.
15817         (ipcp_add_param_type): New function.
15818         (ipcp_copy_types): Likewise.
15819         (ipcp_propagate_types): Likewise.
15820         (ipcp_propagate_stage): Also propagate types.
15821         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
15822         Also return true if propagated types require it.
15823         (ipcp_update_callgraph): Dump redirection info.
15824         (ipcp_process_devirtualization_opportunities): New function.
15825         (ipcp_const_param_count): Include known type information.
15826         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
15827         on new node.  Fixed formatting.
15828         * ipa-prop.c (make_edge_direct_to_target): Renamed to
15829         ipa_make_edge_direct_to_target and changed all callers.  Made
15830         externally visible.
15831         (ipa_node_duplication_hook): Duplicate types vector.
15832         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
15833         redirect outgoing calls for which we can't get a decl from the
15834         statement.  Check that we can get a decl from the call statement.
15835         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
15836         ipa_analyze_params_uses only when ipa-cp is disabled.
15837         * tree-inline.c (get_indirect_callee_fndecl): Removed.
15838         (expand_call_inline): Do not call get_indirect_callee_fndecl.
15839         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
15840         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
15841
15842 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
15843
15844         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
15845         temporary. Emit move from temporary to accum, so REG_EQUAL note will
15846         be attached to this insn in correct mode.
15847
15848 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
15849
15850         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
15851         using REGNO of base_reg directly.
15852
15853 2010-08-05  Jie Zhang  <jie@codesourcery.com>
15854
15855         PR tree-optimization/45144
15856         * tree-sra.c (type_consists_of_records_p): Return false
15857         if the record contains bit-field.
15858
15859 2010-08-04  Richard Henderson  <rth@redhat.com>
15860
15861         * config/i386/i386.c (struct ix86_frame): Remove padding and
15862         to_allocate members.
15863         (ix86_compute_frame_layout): Don't store them.
15864         (ix86_can_use_return_insn_p): Use a more direct and more obviously
15865         correct condition for the position of the stack pointer.
15866         (ix86_expand_prologue): Compute remaining stack allocation based
15867         on the ultimate stack pointer offset.
15868         (ix86_expand_epilogue): Use more obvious expressions testing for
15869         the stack pointer already pointing to the saved registers.
15870
15871         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
15872         duplication deconstructing the frame pointer.  Simplify
15873         deallocation of the local stack frame.
15874
15875         * reg-notes.def (CFA_EXPRESSION): New.
15876         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
15877         (dwarf2out_frame_debug_cfa_expression): New.
15878         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
15879
15880         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
15881         * config/i386/i386.c (ix86_expand_prologue): Set it.
15882         (ix86_expand_epilogue): Clear it.
15883         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
15884         context, add REG_CFA_EXPRESSION notes.
15885
15886         * config/i386/i386.h (struct machine_frame_state): Rename from
15887         machine_cfa_state.  Add members tracking SP and FP regardless
15888         of the current CFA register.
15889         (ix86_cfa_state): Remove.
15890         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
15891         and sse_reg_save_offset members.
15892         (ix86_compute_frame_layout): Set them.
15893         (gen_push): Increment sp_offset too.
15894         (choose_baseaddr_len, choose_baseaddr): New.
15895         (ix86_emit_save_reg_using_mov): New.
15896         (ix86_emit_save_regs_using_mov): Use it.
15897         (ix86_emit_save_sse_regs_using_mov): Likewise.
15898         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
15899         compare vs the saved red_zone_offset.
15900         (pro_epilogue_adjust_stack): Adjust sp_offset.
15901         (ix86_adjust_stack_and_probe): Likewise.
15902         (ix86_expand_prologue): Set up, use, and validate the new
15903         frame_state_info members.  Use gen_frame_mem.
15904         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
15905         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
15906         new frame_state_info members.
15907         (ix86_emit_leave): Likewise.
15908         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
15909         out-of-range stack pointer offsets here.
15910         (ix86_emit_restore_sse_regs_using_mov): Likewise.
15911         (ix86_expand_epilogue): Use and validate the new frame_state_info
15912         members.  Break up and simplify the logic selecting the
15913         restore_regs_via_mov code path.  Ensure that there will be no
15914         out-of-range stack pointer offsets.
15915
15916         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
15917
15918         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
15919         argument name to reflect the expected tree; fix indentation.
15920         (ix86_asm_output_function_label): Output the entire 32-bit
15921         ms_hook here as bytes ...
15922         (ix86_expand_prologue): ... not here as insns.  Attach the
15923         unwind info for the ms_hook to a blockage insn.
15924         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
15925         (ix86_ms_bitfield_layout_p): Fix indentation.
15926         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
15927
15928         * config/i386/i386.c (ix86_using_red_zone): New.
15929         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
15930         ix86_expand_prologue, ix86_force_to_memory): Use it.
15931
15932         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
15933         saving the int registers.
15934
15935         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
15936         and DWARF2_UNWIND_INFO conditional compilation.
15937
15938 2010-08-04  Richard Henderson  <rth@redhat.com>
15939
15940         PR debug/45171
15941         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
15942         an is_naming_typedef_decl.
15943
15944 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
15945
15946         PR rtl-optimization/45162
15947         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
15948         * dce.c (word_dce_process_block): Likewise.
15949
15950 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
15951
15952         PR target/44583
15953         * config/ia64/constraints.md (Z): New.
15954         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
15955         (xfreg_or_signed_fp01_operand): New.
15956         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
15957         with fr_reg_or_signed_fp01_operand and constraint G with Z.
15958         (subsf3): Ditto.
15959         (*maddsf4): Ditto.
15960         (*msubsf4): Ditto.
15961         (adddf3): Ditto.
15962         (adddf3_trunc): Ditto.
15963         (subdf3): Ditto.
15964         (*subdf3_trunc): Ditto.
15965         (*madddf4): Ditto.
15966         (*madddf4_trunc): Ditto.
15967         (*msubdf4): Ditto.
15968         (*msubdf4_trunc): Ditto.
15969         (addxf3): Replace xfreg_or_fp01_operand with
15970         xfreg_or_signed_fp01_operand and constraint G with Z.
15971         (*addxf3_truncsf): Ditto.
15972         (*addxf3_truncdf): Ditto.
15973         (subxf3): Ditto.
15974         (*subxf3_truncsf): Ditto.
15975         (*subxf3_truncdf): Ditto.
15976         (*maddxf4): Ditto.
15977         (*maddxf4_truncsf): Ditto.
15978         (*maddxf4_truncdf): Ditto.
15979         (*msubxf4): Ditto.
15980         (*msubxf4_truncsf): Ditto.
15981         (*msubxf4_truncdf): Ditto.
15982
15983 2010-08-04  Richard Guenther  <rguenther@suse.de>
15984
15985         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
15986         if either alias-set is zero.
15987
15988 2010-08-04  Richard Guenther  <rguenther@suse.de>
15989
15990         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
15991         * tree-ssa-ccp.c: ... here.
15992         * tree-ssa-copy.c: ... and here.
15993         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
15994         value_range_t): Move ...
15995         * tree-vrp.c: ... here.
15996         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
15997         (substitute_and_fold): Adjust prototype.
15998         * tree-ssa-propagate.c (replace_uses_in): Adjust.
15999         (replace_phi_args_in): Likewise.
16000         (substitute_and_fold): Take callback to query lattice instead
16001         of pointer to lattice.  Replace SSA name defs with lattice
16002         values first.
16003         * tree-ssa-ccp.c (ccp_finalize): Adjust.
16004         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
16005         (get_value): New function.
16006         (fini_copy_prop): Adjust.
16007         * tree-vrp.c (vrp_finalize): Adjust.
16008
16009 2010-08-04  Richard Guenther  <rguenther@suse.de>
16010
16011         PR middle-end/45176
16012         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
16013         points-to set for original MEM_REF.
16014
16015 2010-08-04  Richard Guenther  <rguenther@suse.de>
16016
16017         * tree-ssa-ccp.c (get_constant_value): New function.
16018         (get_rhs_assign_op_for_ccp): Remove.
16019         (valueize_op): New function.
16020         (ccp_fold): Use get_constant_value and valueize_op.
16021         (fold_const_aggregate_ref): Likewise.
16022         (ccp_fold_stmt): Likewise.
16023         (visit_assignment): Simplify.
16024
16025 2010-08-04  Richard Guenther  <rguenther@suse.de>
16026
16027         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
16028         * double-int.h (double_int_ctz): Declare.
16029         * double-int.c (double_int_ctz): New function.
16030
16031 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
16032
16033         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
16034         Define.
16035         picochip_expand_movmemhi : Expand movmem pattern.
16036         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
16037         Declare.
16038         * config/picochip/picochip.md (movmemhi) : New pattern.
16039
16040 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16041
16042         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
16043
16044 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
16045
16046         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
16047         NEG as operand of a MULT by merging it with the other operand.
16048         * combine.c (make_compound_operation): Use trunc_int_for_mode when
16049         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
16050         MULT.
16051         * config/arm/constraints.md (M): Examine only 32 bits of a
16052         HOST_WIDE_INT.
16053         * config/arm/predicates.md (power_of_two_operand): Likewise.
16054
16055 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16056
16057         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
16058         non-NOTE insns.
16059
16060 2010-08-03  Jan Hubicka  <jh@suse.cz>
16061
16062         * ipa-split.c (struct split_point): Add split_part_set_retval.
16063         (find_retval): Forward declare.
16064         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
16065         (consider_split): Compute current->split_part_set_retval.
16066         (visit_bb): Do not look into return value.
16067         (split_function): Handle !split_part_set_retval
16068
16069 2010-08-03  Martin Jambor  <mjambor@suse.cz>
16070
16071         * tree-sra.c (completely_scalarize_record): New parameter REF, create
16072         its own access->expr intead of using build_ref_for_offset.
16073
16074 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
16075
16076         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
16077         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
16078         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
16079         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
16080         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
16081         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
16082         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
16083         DEFAULT_SWITCH_TAKES_ARG.
16084         * config/rx/rx.opt (-patch=): Remove option.
16085         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
16086         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
16087         * doc/invoke.texi (RX Options): Remove -patch=.
16088         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
16089         (option_map): Remove --profile-blocks, --quiet and --silent.
16090
16091 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16092
16093         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
16094         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
16095         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
16096         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16097         Update calls to ix86_expand_compare and ix86_expand_branch.
16098         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
16099         ix86_expand_compare.
16100         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
16101         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16102         Make static.
16103         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
16104         and ix86_compare_op1.  Update calls to ix86_expand_compare.
16105         (ix86_expand_int_movcc): Ditto.
16106         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
16107         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
16108         (ix86_expand_setcc): Ditto.
16109         (ix86_expand_compare): Remove prototype.
16110         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
16111         ix86_compare_op0 and ix86_compare_op1.  Update calls
16112         to ix86_expand_branch to directly pass operands[1] and operands[2].
16113         (cbranchxf4): Ditto.
16114         (cbranch<MODEF:mode>4): Ditto.
16115         (cbranchcc4): Ditto.
16116         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
16117         Update calls to ix86_expand_setcc to directly pass operands[2] and
16118         operands[3].
16119         (cstorexf4): Ditto.
16120         (cstore<MODEF:mode>4): Ditto.
16121         (cstorecc4): Ditto.
16122
16123 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16124
16125         PR target/45063
16126         * caller-save.c (save_call_clobbered_regs): Remove regs from
16127         hard_regs_saved when they are set.
16128
16129 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
16130
16131         PR target/41089
16132         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
16133         as volatile.
16134
16135 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
16136
16137         * common.opt (ftree-loop-distribute-patterns): New.
16138         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
16139         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
16140         at -O3.
16141         * tree-data-ref.c (stores_zero_from_loop): New.
16142         * tree-data-ref.h (stores_zero_from_loop): Declared.
16143         * tree-loop-distribution.c (tree_loop_distribution): Call
16144         stores_zero_from_loop.
16145         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
16146
16147 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16148
16149         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
16150         into account.
16151
16152         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
16153         * config/arm/arm.c (thumb1_code): New variable.
16154         (arm_override_options): Set it.
16155         (thumb1_final_prescan_insn): Keep track of condition code status.
16156         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
16157         jumps that depend on them.
16158         * config/arm/arm.h (thumb1_code): Declare variable.
16159         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
16160         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
16161         thumb1_cc_mode.
16162         (CC_STATUS_INIT): New macro.
16163         * config/arm/constraints.md (Pd): New constraint.
16164         * config/arm/predicates.md (noov_comparison_operator): New predicate.
16165         * config/arm/arm.md (is_thumb1): New define_attr.
16166         (conds): Set default to "clob" when generating Thumb1 code.
16167         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
16168         code are set.  Use two-operand assembly syntax.
16169         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
16170         pattern.
16171         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
16172         codes are set.  Use two-operand assembly syntax.
16173         (zero_extendhisi splitter): Remove constraints.
16174         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
16175         thumb1_movsf_insn): Set conds attribute as appropriate.
16176         (cbranchsi4_insn): Use condition code status from struct
16177         machine_function to determine whether the comparison can be eliminated.
16178         Discourage the alternative using high registers.
16179         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
16180         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
16181         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
16182         subsi3_cbranch): Delete.
16183         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
16184         one subtract and one cbranch insn.
16185
16186         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
16187         thumb2_movdf_soft_insn): Delete patterns.
16188         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
16189         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
16190         (pool_range, neg_pool_range): Use them to define defaults.
16191         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
16192         and allow for TARGET_32BIT.
16193
16194         PR target/40457
16195         * config/arm/arm.h (arm_regs_in_sequence): Declare.
16196         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
16197         load_multiple_sequence, store_multiple_sequence): Delete
16198         declarations.
16199         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
16200         declarations.
16201         * config/arm/ldmstm.md: New file.
16202         * config/arm/arm.c (arm_regs_in_sequence): New array.
16203         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
16204         CHECK_REGS.  All callers changed.
16205         If SAVED_ORDER is nonnull, copy the computed order into it.
16206         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
16207         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
16208         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
16209         If SAVED_ORDER is nonnull, copy the computed order into it.
16210         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
16211         like REGS.  Handle Thumb mode.
16212         (arm_gen_load_multiple_1): New function, broken out of
16213         arm_gen_load_multiple.
16214         (arm_gen_store_multiple_1): New function, broken out of
16215         arm_gen_store_multiple.
16216         (arm_gen_multiple_op): New function, with code from
16217         arm_gen_load_multiple and arm_gen_store_multiple moved here.
16218         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
16219         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
16220         changed.
16221         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
16222         * config/arm/predicates.md (commutative_binary_operator): New.
16223         (load_multiple_operation, store_multiple_operation): Handle more
16224         variants of these patterns with different starting offsets.  Handle
16225         Thumb-1.
16226         * config/arm/arm.md: Include "ldmstm.md".
16227         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
16228         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
16229         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
16230         peepholes): Delete.
16231         * config/arm/ldmstm.md: New file.
16232         * config/arm/arm-ldmstm.ml: New file.
16233
16234         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
16235         if statement which adds extra costs to frame-related expressions.
16236
16237 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16238
16239         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
16240
16241 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
16242
16243         PR target/45142
16244         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
16245         alternative 2.
16246         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
16247         split V4SI operands.
16248
16249 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
16250
16251         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16252         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
16253         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
16254         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
16255
16256 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
16257
16258         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
16259         LOCAL_INCLUDE_DIR.
16260
16261 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
16262
16263         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
16264         used in the call to optab_for_tree_code.  Fix the second
16265         is_widening_mult_p call.  Check that both unwidened operands
16266         have the same sign.
16267
16268 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
16269
16270         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
16271
16272 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
16273
16274         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16275
16276 2010-07-30  DJ Delorie  <dj@redhat.com>
16277
16278         * config/rx/predicates.md (rx_constshift_operand): New.
16279         * config/rx/rx.md (zs_cond): New.
16280         (cbranchsi4): Remove mode.
16281         (*cbranchsi4_<code>): Likewise.
16282         (*tstbranchsi4_<code>): New.
16283         (*tstbranchsi4r_<code>): New.
16284         (*tstbranchsi4m_eq): New.
16285         (*tstbranchsi4m_ne): New.
16286         (cbranchsf4): Remove mode.
16287         (*cbranchsf4_<code>): Likewise.
16288
16289 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
16290
16291         * rtlanal.c (simplify_subreg_regno): Don't treat
16292         HARD_FRAME_POINTER_REGNUM specially.
16293
16294 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
16295
16296         * common.opt (-G): Don't define option here.
16297         * config/g.opt: New.
16298         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
16299         rs6000/powerpc and score targets.
16300         * opts.c (common_handle_option): Don't handle -G here.
16301         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
16302         * config/frv/frv.c (frv_handle_option): Handle -G.
16303         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
16304         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
16305         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
16306         * config/mips/mips.c (mips_handle_option): Handle -G.
16307         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
16308         * config/score/score.c (score_handle_option): Handle -G.
16309
16310 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
16311
16312         * config/mmix/mmix.c: Include basic-block.h.
16313
16314 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
16315
16316         PR debug/45055
16317         PR rtl-optimization/45137
16318         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
16319         prototypes.
16320         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
16321         New functions.
16322         * combine.c (next_nonnote_nondebug_insn): Removed.
16323         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
16324         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
16325         * sched-deps.c (sched_analyze_insn): Likewise.
16326         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
16327         * rtlanal.c (canonicalize_condition): Likewise.
16328         * postreload.c (reload_combine_recognize_pattern): Likewise.
16329         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
16330
16331 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
16332
16333         * config/i386/i386.md (int_cond): Remove code iterator.
16334         (fp_cond): Ditto.
16335         (cbranch<mode>4): Use ordered_comparison_operator predicate
16336         for operator0.
16337         (cstore<mode>4): Ditto for operator1.
16338         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
16339         (add<mode>cc): ditto.
16340
16341 2010-07-30  Richard Guenther  <rguenther@suse.de>
16342
16343         PR middle-end/45141
16344         * expr.c (expand_expr_real_1): Check for not handled base address.
16345
16346 2010-07-30  Richard Guenther  <rguenther@suse.de>
16347
16348         * ipa-prop.c (ipa_modify_formal_parameters): Use
16349         build_distinct_type_copy.
16350
16351 2010-07-30  Anthony Green  <green@moxielogic.com>
16352
16353         * config/moxie/rtems.h: New file.
16354         * config.gcc: Add moxie-rtems support.
16355
16356 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
16357
16358         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
16359         df flags as in run_fast_df_dce.
16360
16361 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
16362
16363         Revert:
16364         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16365
16366         * rtl.def (NOTE): Swap operands 4 and 5.
16367         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
16368         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
16369         Adjust accordingly.
16370         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
16371
16372 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
16373
16374         PR debug/45110
16375         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
16376         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
16377         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
16378         formal parameters.
16379         (gen_decl_die): Change return type to dw_die_ref, return what
16380         gen_formal_parameter_die returned.
16381
16382 2010-07-29  Martin Jambor  <mjambor@suse.cz>
16383
16384         * dbgcnt.def (eipa_sra): New counter.
16385         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
16386
16387 2010-07-29  Xinliang David Li  <davidxl@google.com>
16388
16389         PR bootstrap/45119
16390         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
16391         in revision 162652.
16392
16393 2010-07-29  Richard Guenther  <rguenther@suse.de>
16394
16395         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
16396         (TV_TREE_STORE_CCP): Likewise.
16397         (TV_TREE_REDPHI): Likewise.
16398
16399 2010-07-29  Richard Guenther  <rguenther@suse.de>
16400
16401         * double-int.h (double_int_and_not): New function.
16402         * combine.c (try_combine): Use it.
16403         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
16404
16405 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
16406
16407         PR rtl-optimization/42575
16408         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
16409         Argument AU removed.  All callers changed.  Ignore artificial refs.
16410         Use return value of df_word_lr_simulate_defs to decide whether an insn
16411         is necessary.
16412         (fast_dce): Rename arg to WORD_LEVEL.
16413         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
16414         static.
16415         (pass_fast_rtl_byte_dce): Delete.
16416         * dce.h (run_word_dce): Declare.
16417         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
16418         All callers changed.  Simplify code to only deal with two-word regs.
16419         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
16420         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
16421         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
16422         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
16423         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
16424         (df_word_lr_mark_ref): Declare.
16425         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
16426         df_word_lr_simulate_uses): Declare or rename from byte variants.
16427         (df_byte_lr_simulate_artificial_refs_at_top,
16428         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
16429         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
16430         declarations.
16431         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
16432         (enum df_mm): Delete.
16433         * df-byte-scan.c: Delete file.
16434         * df-problems.c (df_word_lr_problem_data): Renamed from
16435         df_byte_lr_problem_data, all members deleted except for
16436         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
16437         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
16438         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
16439         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
16440         df_byte_lr_confluence_0): Delete functions.
16441         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
16442         callers changed.
16443         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
16444         Don't initialize members that were deleted, don't try to discover data
16445         about registers.  Ignore hard regs.
16446         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
16447         (df_word_lr_mark_ref): New function.
16448         (df_word_lr_bb_local_compute): Renamed from
16449         df_byte_bb_lr_local_compute; all callers changed.  Use
16450         df_word_lr_mark_ref.  Assert that artificial refs don't include
16451         pseudos.  Ignore hard registers.
16452         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
16453         Assert that exit block uses don't contain pseudos.
16454         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
16455         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
16456         callers changed.  Ignore hard regs.
16457         (df_word_lr_transfer_function): Renamed from
16458         df_byte_lr_transfer_function; all callers changed.
16459         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
16460         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
16461         changed.
16462         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
16463         callers changed.
16464         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
16465         confluence operator 0 set to NULL.
16466         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
16467         callers changed.
16468         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
16469         Return bool, true if bitmap changed or insn otherwise necessary.
16470         All callers changed.  Simplify using df_word_lr_mark_ref.
16471         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
16472         all callers changed.  Simplify using df_word_lr_mark_ref.
16473         * lower-subreg.c: Include "dce.h"
16474         (decompose_multiword_subregs): Call run_word_dce if df available.
16475         * Makefile.in (lower-subreg.o): Adjust dependencies.
16476         (df-byte-scan.o): Delete.
16477         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
16478
16479 2010-07-29  Richard Guenther  <rguenther@suse.de>
16480
16481         * tree.c (build_vector): Assert that the vector constant
16482         has enough elements.
16483         (build_vector_from_ctor): Pad with trailing zeros.
16484
16485 2010-07-29  Richard Guenther  <rguenther@suse.de>
16486
16487         PR tree-optimization/45120
16488         * tree-ssa-structalias.c (get_constraint_for_component_ref):
16489         Handle offset in DEREFs properly.
16490         (get_constraint_for_1): Handle MEM_REF offset properly.
16491
16492 2010-07-29  Richard Guenther  <rguenther@suse.de>
16493
16494         PR middle-end/45034
16495         * convert.c (convert_to_integer): Always use an unsigned
16496         type for narrowed negate and bitwise not.
16497
16498 2010-07-29  Ira Rosen  <irar@il.ibm.com>
16499
16500         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
16501         to outer loop when creating reduction epilogue for double reduction,
16502         and switch back to the inner loop when updating the phi nodes.
16503         Update uses of outer loop exit phi nodes in double reduction (instead
16504         of uses of reduction).
16505
16506 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
16507
16508         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
16509         popcount on power7 and parity on power6 systems.
16510         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
16511         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
16512         instructions.
16513
16514         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
16515         (UNSPEC_PARITY): Ditto.
16516         (SFDF): New iterator for SF/DF.
16517         (rreg2): New mode attribute for floating register constraint.
16518         (TARGET_FLOAT): New mode attribute for whether single/double float
16519         is supported.
16520         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
16521         pattern.
16522         (parity<mode>2_cmpb): New insn for parity on power6 and newer
16523         machines.
16524         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
16525         pattern.  Add support for fcpsgn instruction added in power6.
16526         (copysignsf3): Delete.
16527         (copysigndf3): Delete.
16528         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
16529         instead of if_then_else in RTL to avoid problems with -0.
16530
16531         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
16532         of if_then_else to mirror scalar code.
16533         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
16534         rs6000.md.
16535
16536         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
16537         instead of if_then_else.
16538
16539 2010-07-28  Xinliang David Li  <davidxl@google.com>
16540
16541         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
16542         (dump_cand): Dump var_before/after.
16543         (htab_inv_expr_eq): New function.
16544         (htab_inv_expr_hash): New function.
16545         (tree_ssa_iv_optimize_init): Support pseudo invariants.
16546         (add_candidate_1): consider base type precision.
16547         (set_use_iv_cost): New parameter.
16548         (adjust_setup_cost): Use profile information.
16549         (get_address_cost): Do not hard code width in computing address
16550         offset limits.
16551         (compare_aff_trees): New function.
16552         (get_loop_invariant_expr_id): New function.
16553         (get_computation_cost_at): New parameter and use profile information.
16554         (get_computation_cost): New parameter.
16555         (determine_use_iv_cost_generic): Pass new parameter.
16556         (determine_use_iv_cost_address): Ditto.
16557         (determine_use_iv_cost_condition): Ditto.
16558         (autoinc_possible_for_pair): Ditto.
16559         (determine_use_iv_costs): More dumps.
16560         (iv_ca_get_num_inv_exprs): New function.
16561         (iv_ca_recount_cost): Consider loop invariants in register pressure
16562         cost.
16563         (iv_ca_add_use): New parameter.
16564         (iv_ca_dump): Better dumping.
16565         (iv_ca_extend): New parameter.
16566         (try_add_cand_for): Attempt to get better partial solution.
16567         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
16568         (create_new-ivs): More dumps.
16569         (rewrite_use_compare): Ditto.
16570         (free_loop_data): More cleanup.
16571         (treee_ssa_iv_optimize_finalize): Ditto.
16572
16573 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
16574
16575         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
16576         * config/i386/i386.c (ix86_profile_before_prologue): New.
16577         (override_options): Add special handling for -mfentry.
16578         (ix86_function_regparm): Likewise.
16579         (ix86_function_sseregparm): Likewise.
16580         (ix86_frame_pointer_required): Likewise.
16581         (ix86_expand_prologue): Check for ms_hook_prologue.
16582         (x86_function_profiler): Adjust mcount output.
16583         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
16584         * config/i386/i386.opt (mfentry): New.
16585         * doc/invoke.texi (mfentry): Add documentation.
16586         * doc/tm.texi: Regenerated..
16587         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
16588         * final.c (final_start_function): Replace macro
16589         PROFILE_BEFORE_PROLOGUE by target hook.
16590         * function.c (thread_prologue_and_epilogue_insns): Likewise.
16591         * target.def (profile_before_prologue): New hook.
16592         * targhooks.c (default_profile_before_prologue): New.
16593         * targhooks.h (default_profile_before_prologue): New.
16594
16595 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
16596
16597         PR debug/45105
16598         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
16599
16600         PR debug/45103
16601         * dwarf2out.c (dwarf2out_var_location): Always consider
16602         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
16603
16604 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
16605
16606         PR rtl-optimization/45107
16607         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
16608
16609 2010-07-28  Richard Guenther  <rguenther@suse.de>
16610
16611         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
16612         (set_lattice_value): Do not query an old default value.
16613         (get_value_for_expr): New function.  Properly canonicalize
16614         float values.
16615         (ccp_visit_phi_node): Use it.
16616
16617 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
16618
16619         * config/arm/arm.c (arm_pcs_default): Remove static.
16620         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
16621         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
16622         (arm_pcs_default): Declare.
16623
16624 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
16625
16626         * config/rs6000/rs6000.c (rs6000_override_options):
16627         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
16628         ... to darwin_rs6000_override_options.
16629         (rs6000_return_in_memory): Update preceding comment for darwin
16630         64 bit ABI.  Use TARGET_MACHO inline.
16631         (rs6000_darwin64_struct_check_p): New.
16632         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
16633         (function_arg): Likewise.
16634         (rs6000_arg_partial_bytes): Likewise.
16635         (rs6000_function_value): Likewise.
16636
16637 2010-07-28  Andi Kleen  <ak@linux.intel.com>
16638
16639         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
16640
16641 2010-07-28  Richard Guenther  <rguenther@suse.de>
16642
16643         PR middle-end/44903
16644         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
16645         targets try harder to not generate unaligned accesses.
16646
16647 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
16648
16649         PR rtl-optimization/45101
16650         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
16651         for gcse-las.
16652
16653 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
16654
16655         PR tree-optimization/44885
16656         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
16657         with non-aliased component.
16658
16659 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
16660
16661         * config/darwin-driver.c (SWITCH_TAKES_ARG,
16662         WORD_SWITCH_TAKES_ARG): Remove.
16663         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
16664         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
16665         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
16666         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
16667         definitions from gcc.c.
16668         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
16669         defaults.h.
16670         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
16671         Move to defaults.h.
16672         * opts-common.c: Include tm.h.
16673         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
16674         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
16675         Handle more than one argument.  Set canonical_option_num_elements.
16676         (decode_cmdline_options_to_array): Set
16677         canonical_option_num_elements and trailing elements of
16678         canonical_option.
16679         * opts.h (struct cl_decoded_option): Allow four elements in
16680         canonical_option.  Add field canonical_option_num_elements.
16681         * Makefile.in (opts-common.o): Update dependencies.
16682
16683 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
16684
16685         PR middle-end/44790
16686         PR middle-end/44993
16687         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
16688         sure the base has address_mode before adding the offset.
16689
16690 2010-07-27  Xinliang David Li  <davidxl@google.com>
16691
16692         * tree-flow.h (create_mem_ref): Add one new parameter.
16693         * tree-ssa-address.c (create_mem_ref): New parameter.
16694         (addr_to_parts): Ditto.
16695         (move_variant_to_index): New function.
16696         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
16697
16698 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16699
16700         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
16701         4 and 5.
16702         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
16703         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
16704         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
16705         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
16706         CODE_LABELs and NOTEs.
16707         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
16708         * combine.c (try_combine): Likewise.
16709         * ira.c (setup_prohibited_mode_move_regs): Likewise.
16710         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
16711
16712 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
16713
16714         * coretypes.h (struct cl_option_handlers): Declare.
16715         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
16716         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
16717         * langhooks-def.h (lhd_handle_option): Declare.
16718         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
16719         * langhooks.c (lhd_handle_option): New.
16720         * langhooks.h (struct lang_hooks): Update prototype and return
16721         value type of handle_option hook.
16722         * optc-gen.awk: Generate target_flags_explicit definition for the
16723         driver.
16724         * opts-common.c: Include diagnostic.h.
16725         (handle_option): Move from opts.c.  Update prototype and return
16726         value type.  Use handlers structure.
16727         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
16728         handlers structure.
16729         (set_option): Move from opts.c.
16730         * opts.c (common_handle_option): Update prototype and return value
16731         type.  Update calls to handle_option and enable_warning_as_error.
16732         (unknown_option_callback, post_handling_callback,
16733         lang_handle_option, target_handle_option): New.
16734         (handle_option, read_cmdline_option): Move to opts-common.c.
16735         (read_cmdline_options): Update prototype.  Update call to
16736         read_cmdline_option.
16737         (decode_options): Initialize and use handlers structure.
16738         (set_option): Move to opts-common.c.
16739         (enable_warning_as_error): Update prototype.  Update call to
16740         handle_option.
16741         * opts.h (struct cl_option_handler_func, struct
16742         cl_option_handlers): New.
16743         (handle_option, enable_warning_as_error): Update prototypes.
16744         (read_cmdline_option): Declare.
16745         * Makefile.in (opts-common.o): Update dependencies.
16746
16747 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16748
16749         * config/arm/arm.c (params.h): Include.
16750         (arm_override_options): Tune gcse-unrestricted-cost.
16751         * config/arm/t-arm (arm.o): Define dependencies.
16752
16753 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16754
16755         PR target/42495
16756         PR middle-end/42574
16757         * basic-block.h (get_dominated_to_depth): Declare.
16758         * dominance.c (get_dominated_to_depth): New function, use
16759         get_all_dominated_blocks as a base.
16760         (get_all_dominated_blocks): Use get_dominated_to_depth.
16761
16762         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
16763         (hoist_exprs): Remove.
16764         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
16765         (compute_code_hoist_vbeinout): Add debug print outs.
16766         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
16767
16768         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
16769         quadratic behavior.
16770         * params.h (MAX_HOIST_DEPTH): New macro.
16771         * doc/invoke.texi (max-hoist-depth): Document.
16772
16773 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16774
16775         PR rtl-optimization/40956
16776         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
16777         constants.
16778
16779 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16780
16781         PR target/42495
16782         PR middle-end/42574
16783         * config/arm/arm.c (legitimize_pic_address): Use
16784         gen_calculate_pic_address pattern to emit calculation of PIC address.
16785         (will_be_in_index_register): New function.
16786         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
16787         (thumb1_legitimate_address_p): Use it provided !strict_p.
16788         * config/arm/arm.md (calculate_pic_address): New expand and split.
16789
16790 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16791
16792         PR target/42495
16793         PR middle-end/42574
16794         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
16795         * config/arm/arm.md (define_split "J", define_split "K"): Make
16796         IRA/reload friendly.
16797
16798 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16799
16800         * gcse.c (insert_insn_end_basic_block): Update signature, remove
16801         unused checks.
16802         (pre_edge_insert, hoist_code): Update.
16803
16804 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16805
16806         PR target/42495
16807         PR middle-end/42574
16808         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
16809
16810 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16811
16812         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
16813
16814 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16815
16816         PR rtl-optimization/40956
16817         PR target/42495
16818         PR middle-end/42574
16819         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
16820         for hoisting.
16821         (hoist_code): Count occurences in current block too.
16822
16823 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16824
16825         * gcse.c (struct expr:max_distance): New field.
16826         (doing_code_hoisting_p): New static variable.
16827         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
16828         simple expressions, don't change behavior for PRE.  Set max_distance.
16829         (insert_expr_in_table): Set new max_distance field.
16830         (hash_scan_set): Update.
16831         (hoist_expr_reaches_here_p): Stop search after max_distance
16832         instructions.
16833         (find_occr_in_bb): New static function.  Use it in ...
16834         (hoist_code): Calculate sizes of basic block before any changes are
16835         done.  Pass max_distance to hoist_expr_reaches_here_p.
16836         (one_code_hoisting_pass): Set doing_code_hoisting_p.
16837
16838         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
16839         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
16840         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
16841         macros.
16842         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
16843         Document.
16844
16845 2010-07-27  Jeff Law  <law@redhat.com>
16846             Maxim Kuvyrkov  <maxim@codesourcery.com>
16847
16848         * gcse.c (compute_transpout, transpout): Remove, move logic
16849         to prune_expressions.
16850         (compute_pre_data): Move pruning of trapping expressions ...
16851         (prune_expressions): ... here.  New static function.
16852         (compute_code_hoist_data): Use it.
16853         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
16854
16855 2010-07-27  Xinliang David Li  <davidxl@google.com>
16856
16857         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
16858         (rewrite_use_address): Adjust iv update position when needed.
16859
16860 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16861
16862         * dbgcnt.def (hoist_insn): New debug counter.
16863         * gcse.c (hoist_code): Use it.
16864
16865 2010-07-27  Xinliang David Li  <davidxl@google.com>
16866
16867         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
16868         (niter_for_single_dom_exit): Passes additional parameter.
16869         (iv_period): Fix comments.
16870         (may_eliminate_iv): Handles multiple exit loops properly.
16871         (free_tree_niter_desc): New function.
16872         (free_loop_data): Frees up loop iteration descriptors.
16873
16874 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
16875
16876         PR target/44542
16877         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
16878         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
16879         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
16880         (expand_one_var): Don't consider DECL_ALIGN for variables for
16881         which expand_one_stack_var_at has been already called.
16882
16883         PR testsuite/44701
16884         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
16885         constraints on IA-64.
16886
16887 2010-07-27  Jie Zhang  <jie@codesourcery.com>
16888
16889         PR target/44290
16890         Revert:
16891         2010-07-23  Jie Zhang  <jie@codesourcery.com>
16892
16893         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
16894         false if ! tree_versionable_function_p.
16895
16896 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
16897
16898         * dwarf2out.c (add_data_member_location_attribute): Use
16899         add_AT_unsigned instead of add_AT_int if offset is non-negative.
16900
16901 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16902
16903         * postreload.c (try_replace_in_use): New static function.
16904         (reload_combine_recognize_const_pattern): Use it here.  Allow
16905         substituting into a final add insn, and substituting into a memory
16906         reference in an insn that sets the reg.
16907
16908 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
16909
16910         * common.opt (o): Add MissingArgError.
16911         * doc/options.texi (MissingArgError): Document.
16912         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
16913         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
16914         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
16915         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
16916         * langhooks.h (struct lang_hooks): Remove missing_argument.
16917         * optc-gen.awk: Handle MissingArgError and output new structure
16918         field initializers.
16919         * opts.c (read_cmdline_option): Use missing_argument_error field
16920         instead of missing_argument langhook.
16921         * opts.h (struct cl_option): Add missing_argument_error field.
16922         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
16923
16924 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
16925
16926         PR target/29090
16927         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
16928         Darwin64 ABI, for zero-sized objects.
16929
16930 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
16931
16932         PR target/35491
16933         PR target/29090
16934
16935         Merge from Apple local 4.2.1.
16936         2005-05-11  Stan Shebs  <shebs@apple.com>
16937         Fix 64-bit varargs for Darwin (Radar 4028089).
16938         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
16939         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
16940         Add argument, add case for 8-byte register half-filled with a float.
16941         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
16942         single-precision floats specially.
16943
16944 2010-07-27  Ira Rosen  <irar@il.ibm.com>
16945
16946         PR tree-optimization/44152
16947         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
16948         complex numbers for further check.
16949         (vect_supported_load_permutation_p): Check nodes with
16950         complex numbers.
16951
16952 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
16953
16954         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
16955         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
16956         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
16957         (LANG_HOOKS_INITIALIZER): Add new hooks.
16958         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
16959         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
16960         and complain_wrong_lang_p.  Update init_options prototype.
16961         * c-objc-common.c (c_initialize_diagnostics): First call
16962         c_common_initialize_diagnostics.
16963         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
16964         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
16965         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
16966         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
16967         (hook_uint_void_0): New.
16968         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
16969         (hook_uint_void_0): New.
16970         * opts-common.c (decode_cmdline_option,
16971         decode_cmdline_options_to_array): Also fill in canonical_option field.
16972         * opts.c (complain_wrong_lang): Use langhook to determine whether
16973         to complain instead of special-casing LTO.
16974         (decode_options): Separate lang_mask determination with
16975         option_lang_mask hook from call of init_options hook.
16976         * opts.h (struct cl_decoded_option): Add canonical_option.
16977
16978 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
16979
16980         PR tree-optimization/45083
16981         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
16982
16983 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16984
16985         * postreload.c (reload_combine_recognize_const_pattern): Move test
16986         for limiting the insn movement to the right scope.
16987
16988         PR rtl-optimization/45051
16989         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
16990         than reg_mentioned_p.
16991
16992 2010-07-26  Richard Henderson  <rth@redhat.com>
16993
16994         PR target/44132
16995         * tree-emutls.c: New file.
16996         * Makefile.in (OBJS-common): Add it.
16997         * tree-pass.h (pass_ipa_lower_emutls): Declare.
16998         * passes.c (init_optimization_passes): Add it.
16999
17000         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
17001         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
17002         * expr.c (emutls_var_address): Delete.
17003         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
17004         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
17005         (emutls_finish): Delete.
17006         * toplev.c (compile_file): Don't call it.
17007         * tree.h (emutls_decl): Delete.
17008         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
17009         (emutls_finish, emutls_finalize_control_var): Delete.
17010         (emutls_object_type): Move to tree-emutls.c.
17011         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
17012         default_emutls_var_fields, get_emutls_object_type,
17013         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
17014         default_emutls_var_init): Likewise.
17015         (get_variable_section): Don't special case emutls.
17016         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
17017         default_elf_select_section, default_unique_section,
17018         default_encode_section_info): Likewise.
17019         * varpool.c (decide_is_variable_needed): Likewise.
17020         * gimple-iterator.c (update_call_edge_frequencies): New
17021         (gsi_insert_on_edge_immediate): Use it.
17022         (gsi_insert_seq_on_edge_immediate): Likewise.
17023         (gsi_commit_one_edge_insert): Likewise.
17024
17025         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
17026         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
17027         (x86_64_elf_unique_section): Likewise.
17028
17029 2010-07-26  Jan Hubicka  <jh@suse.cz>
17030
17031         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
17032         GTY((skip)).
17033
17034 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
17035
17036         * target.def (output_source_filename): New hook.
17037         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
17038         * doc/tm.texi: Regenerate.
17039         * toplev.c (output_file_directive) Remove function.
17040         * toplev.h (output_file_directive) Remove.
17041         * output.h (default_asm_output_source_filename,
17042         output_file_directive): Declare.
17043         * varasm.h (default_asm_output_source_filename,
17044         output_file_directive): New functions.
17045
17046         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17047         * config/mips/mips-protos.h (mips_output_filename): Remove.
17048         * config/mips/mips.c (mips_output_filename): Make Static.
17049         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
17050
17051 2010-07-26  Richard Guenther  <rguenther@suse.de>
17052
17053         PR tree-optimization/43784
17054         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
17055         if the destination is used by the call.
17056
17057 2010-07-26  Richard Guenther  <rguenther@suse.de>
17058
17059         PR middle-end/45073
17060         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
17061         SSA updating on being in SSA form.
17062
17063 2010-07-26  Richard Guenther  <rguenther@suse.de>
17064
17065         PR middle-end/45056
17066         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
17067
17068 2010-07-26  Richard Guenther  <rguenther@suse.de>
17069
17070         PR tree-optimization/45071
17071         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
17072         adjust op->opcode.
17073
17074 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
17075
17076         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
17077         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
17078         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
17079         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
17080         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
17081         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
17082         save_r31, return_r31, save_interrupt, return_interrupt,
17083         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
17084         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
17085         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
17086         new ABI requirements.
17087         (save_r6_r9, L_callt_save_r6_r9): Remove.
17088         * config/v850/predicates.md (even_reg_operand, disp23_operand,
17089         const_float_1_operand const_float_0_operand): New Predicates.
17090         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
17091         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
17092         * config/v850/t-v850: Update multilibs for new target variants.
17093         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
17094         * config/v850/t-v850e: Likewise.
17095         * config/v850/v850.c (v850_issue_rate): New.
17096         (v850_strict_argument_naming): New.
17097         (function_arg): Modify to generate a different ABI.
17098         (print_operand): Update case 'z' to support float modes.
17099         (output_move_single): Modify to generate appropriate and better
17100         assembly.
17101         (v850_float_z_comparison_operator, v850_select_cc_mode,
17102         v850_float_nz_comparison_operator,  v850_gen_float_compare,
17103         v850_gen_compare): New functions to support comparison of float values.
17104         (ep_memory_offset): Add support for V850E2 targets.
17105         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
17106         (INTERRUPT_REGPARM_NUM): Remove.
17107         (compute_register_save_size): Add extra case to save/restore long call.
17108         (use_prolog_function): New function to support prologue.
17109         (expand_prologue): Add support for V850E2 targets and modified
17110         as per the current ABI requirements.
17111         (expand_epilogue): Likewise.
17112         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
17113         (construct_save_jarl): Likewise.
17114         (construct_dispose_instruction): Update as per the current ABI
17115         requirements.
17116         (construct_prepare_instruction): Likewise.
17117         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
17118         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
17119         (CPP_SPEC): Updated to support v850e2 targets.
17120         (STRICT_ALIGNMENT): Modified.
17121         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
17122         (FIXED_REGISTERS): Likewise.
17123         (CALL_USED_REGISTERS): Likewise.
17124         (CONDITIONAL_REGISTER_USAGE): Updated.
17125         (HARD_REGNO_MODE_OK): Updated.
17126         (reg_class): Updated to add even registers.
17127         (REG_CLASS_NAMES): Likewise.
17128         (REG_CLASS_CONTENTS): Likewise.
17129         (REGNO_REG_CLASS): Updated for CC registers.
17130         (REG_CLASS_FROM_LETTER): Added support for even registers.
17131         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
17132         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
17133         ARG_POINTER_REGNUM): Updated.
17134         (FUNCTION_ARG_ADVANCE): Define.
17135         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
17136         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
17137         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
17138         (GO_IF_LEGITIMATE_ADDRESS): Updated.
17139         (SELECT_CC_MODE): Define.
17140         (REGISTER_NAMES): Updated to add psw and fcc registers.
17141         (ADDITIONAL_REGISTER_NAMES): Updated.
17142         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
17143         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
17144         * config/v850/v850.md (define_constants): Define new constants.
17145         (type): Update store,bit1,macc,div,fpu and single attributes.
17146         (cpu): New attribute.
17147         (cc): Add set_z attribute.
17148         (unsign23byte_load, sign23byte_load, unsign23hword_load,
17149         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
17150         23word_store): New instructions for 23-bit displacement load and store.
17151         (movqi_internal, movhi_internal): Update the attributes.
17152         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
17153         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
17154         the attributes.
17155         (v850_tst1): Modified using CC_REGNUM.
17156         (tstsi): Remove.
17157         (cmpsi): Modified as define_expand from define_insn.
17158         (cmpsi_insn, cmpsf, cmpdf): New instructions.
17159         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
17160         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
17161         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
17162         one_cmplsi2): Clobber the CC_REGNUM register.
17163         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
17164         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
17165         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
17166         (setf_insn, set_z_insn, set_nz_insn): New instructions for
17167         v850e2v3 target.
17168         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
17169         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
17170         targets.
17171         (sasf_1, sasf_2): Remove.
17172         (sasf): New instruction.
17173         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
17174         targets. CC_REGNUM register is clobbered and attributes are
17175         updated.
17176         (branch_z_normal, branch_z_invert, branch_nz_normal,
17177         branch_nz_invert): New branch related instructions.
17178         (jump): Updated the attributes.
17179         (switch): Update to support new targets. CC_REGNUM register is
17180         clobbered and attributes are updated.
17181         (call_internal_short, call_internal_long, call_value_internal_short,
17182         call_value_internal_long): Updated the attributes.
17183         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
17184         clobbered and attributes are updated.
17185         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
17186         Update to support new targets. CC_REGNUM register is clobbered.
17187         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
17188         instructions.
17189         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
17190         are updated.
17191         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
17192         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
17193         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
17194         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
17195         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
17196         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
17197         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
17198         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
17199         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
17200         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
17201         point instructions defined for V850e2v3 target.
17202         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
17203         Add support for V850E2 targets and CC_REGNUM register is clobbered.
17204         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
17205         support for new targets.
17206         * config/v850/v850-modes.def: New file.
17207         * config/v850/v850.opt(mstrict-align): Remove.
17208         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
17209         mv850e2v3): New command line options for V850.
17210         * config.gcc: Update the newly added files.
17211         * doc/invoke.texi: Update the newly added command line options for
17212         V850 target.
17213
17214 2010-07-26  Richard Guenther  <rguenther@suse.de>
17215
17216         PR tree-optimization/45052
17217         * ipa-pure-const.c (check_stmt): Check volatileness.
17218
17219 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
17220
17221         PR target/44707
17222         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
17223         * config/sparc/sparc.c: Include reload.h.
17224         (legitimize_tls_address): Rename into...
17225         (sparc_legitimize_tls_address): ...this.
17226         (legitimize_pic_address): Rename into...
17227         (sparc_legitimize_pic_address): ...this.
17228         (sparc_expand_move): Adjust to above renaming.
17229         (sparc_tls_referenced_p): Likewise.
17230         (sparc_legitimize_tls_address): Likewise.
17231         (sparc_legitimize_pic_address): Likewise.
17232         (sparc_legitimize_address): Likewise.
17233         (sparc_output_mi_thunk): Likewise.
17234         (sparc_legitimize_reload_address): New global function.  Recognize
17235         (lo_sum (high ...) ...) patterns generated by earlier passes.
17236         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
17237
17238 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
17239
17240         PR target/44484
17241         * config/sparc/predicates.md (memory_reg_operand): Delete.
17242         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
17243         (*sync_compare_and_swap): Encode the address form in the pattern.
17244         (*sync_compare_and_swapdi_v8plus): Likewise.
17245
17246 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
17247
17248         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
17249         Streamline paragraph on compatibility with the system compiler.
17250
17251 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
17252
17253         PR middle-end/45035
17254         * alias.c (true_dependence_1): Fix thinko in merge of old
17255         true_dependence and canon_true_dependence.
17256
17257 2010-07-23  Jan Hubicka  <jh@suse.cz>
17258
17259         * lto-streamer-out.c (write_symbol): Fix visibilities of external
17260         references.
17261
17262 2010-07-23  Le-Chun Wu  <lcwu@google.com>
17263
17264         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
17265         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
17266         and an unnecessary assignment.
17267         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
17268         self-assign warning.
17269         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
17270         unnecessary self-init.
17271
17272 2010-07-23  Richard Guenther  <rguenther@suse.de>
17273
17274         PR lto/43071
17275         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
17276         for -flto and -fwhopr.
17277
17278 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
17279
17280         PR target/41943
17281         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
17282         (stmp-int-hdrs): Prefix/postfix headers by include_next.
17283         * config.gcc (user_headers_inc_next_pre): New.
17284         (user_headers_inc_next_post): Likewise.
17285         (*-w64-mingw*): Use for float.h post-fixing, and for
17286         stddef.h/stdarg.h pre-fixing by include_next.
17287         * configure.ac (user_headers_inc_next_post): New.
17288         (user_headers_inc_next_pre): New.
17289         * configure: Regenerated.
17290
17291 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17292
17293         * configure.ac: Don't disable TLS on Solaris 8/9 by default
17294         Set tga_func for Solaris 2/x86 resp. SPARC.
17295         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
17296         (LIB_THREAD_LDFLAGS_SPEC): Define.
17297         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
17298         * configure: Regenerate.
17299         * config.in: Regenerate.
17300         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
17301         -pthread, -threads, LIB_TLS_SPEC with -pthread.
17302         * doc/install.texi (Specific, *-*-solaris2*): Document use of
17303         alternate thread libraries on Solaris 8.
17304         Document TLS patch requirements.
17305         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
17306         Document tls.
17307
17308         PR target/18788
17309         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
17310         -shared.
17311
17312 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
17313
17314         * tree.h (struct tree_base): Add nameless_flag bitfield.
17315         (TYPE_NAMELESS, DECL_NAMELESS): Define.
17316         * omp-low.c (create_omp_child_function, scan_omp_parallel,
17317         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
17318         DECL_ARTIFICIAL where needed.
17319         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
17320         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
17321         has DECL_NAMELESS set.
17322
17323 2010-07-23  Martin Jambor  <mjambor@suse.cz>
17324
17325         PR tree-optimization/44915
17326         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
17327         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
17328         (analyze_function): Likewise.
17329
17330 2010-07-23  Martin Jambor  <mjambor@suse.cz>
17331
17332         PR tree-optimization/44914
17333         * tree-sra.c (sra_modify_function_body): Return true if CFG was
17334         changed, add purging dead eh edges.
17335         (ipa_sra_modify_function_body): Return true if CFG was changed,
17336         simplify purging dead eh edges.
17337         (modify_function): Return true if CFG was changed.
17338         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
17339         was changed.
17340         (ipa_early_sra): Likewise.
17341
17342 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17343
17344         PR target/44290
17345         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
17346         if "naked".
17347         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
17348         false if ! tree_versionable_function_p.
17349
17350 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
17351
17352         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
17353         * ipa-pure-const.c (special_builtlin_state): Remove
17354         BUILT_IN_ARGS_INFO case.
17355         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
17356         * builtins.c (expand_builtin): Likewise.
17357         (expand_builtin_args_info): Remove.
17358         * doc/tm.texi (__builtin_args_info): Remove.
17359         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
17360         * doc/tm.text.in: Likewise.
17361
17362 2010-07-23  Richard Guenther  <rguenther@suse.de>
17363
17364         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
17365         (lto_symtab_merge_decls_2): Likewise.
17366         * tree-ssa.c (useless_type_conversion_p): Likewise.
17367         * lto-streamer-in.c (input_gimple_stmt): Likewise.
17368         * gimple.c (gtc_visited2, gtc_ob2): Remove.
17369         (struct type_pair_d): Make same_p an array indexed by mode.
17370         Update comment.
17371         (lookup_type_pair): Update initialization.
17372         (struct sccs): Adjust same_p type.
17373         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
17374         Adjust.
17375         (print_gimple_types_stats): Likewise.
17376         * gimple.h (enum gtc_mode): New.
17377         (gimple_types_compatible_p): Adjust prototype.
17378
17379 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
17380
17381         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
17382         again after processing insn.
17383
17384 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17385
17386         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
17387         proper words when !tree_versionable_function_p.
17388
17389 2010-07-23  Richard Guenther  <rguenther@suse.de>
17390
17391         PR tree-optimization/45037
17392         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
17393
17394 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17395
17396         * doc/extend.texi: Remove IP2K from the description of naked attribute.
17397         Add MCORE instead.
17398
17399 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17400
17401         PR lto/44992
17402         * lto-opts.c (lto_write_options): Add NULL file_data argument to
17403         lto_get_section_name.
17404         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
17405         * lto-streamer-out.c (produce_asm): Likewise.
17406         (copy_function): Likewise.
17407         (produce_symtab): Likewise.
17408         (produce_asm_for_decls): Likewise.
17409         * lto-streamer.c (lto_get_section_name): Add file_data argument.
17410         Rewrite to add random postfix to LTO sections.
17411         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
17412         (lto_get_section_name): Add file_data argument to prototype.
17413
17414 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17415
17416         * lto-section-in.c (lto_section_name): Synchronize names
17417         with lto_get_section_name.
17418
17419 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17420
17421         * lto-opts.c (lto_read_file_options): Check for missing section.
17422
17423 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17424
17425         * ira.c (check_allocation): Correctly handle the case where an allocno
17426         with two objects was allocated to a single reg.
17427
17428 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
17429
17430         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
17431         (is_widening_mult_p): Likewise.
17432         (convert_to_widen): Use them.
17433         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
17434         well as integer ones.
17435
17436 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
17437
17438         * alias.c (true_dependence_1): New function, merged version of
17439         true_dependence and canon_true_dependence.
17440         (true_dependence): Simplify.
17441         (canon_true_dependence): Simplify.
17442
17443 2010-07-22  Richard Henderson  <rth@redhat.com>
17444
17445         PR target/45027
17446         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
17447         of V4SFmode for the SSE saves; increase stack alignment if needed.
17448         (ix86_gimplify_va_arg): Don't increase stack alignment here.
17449
17450 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
17451
17452         PR bootstrap/45028
17453         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
17454         call cprop_find_used_regs again via note_uses.
17455
17456 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
17457
17458         * alias.c (get_alias_set): Fix formatting issues.
17459
17460 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
17461
17462         PR middle-end/44878
17463         * stmt.c (expand_value_return):  Call promote_function_mode with
17464         a for_return argument of 2 when returning by reference.
17465
17466 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
17467
17468         PR debug/45024
17469         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
17470         unit DIE if we can find the scope DIE.
17471
17472 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17473
17474         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
17475         changed.  Initialize OBJECT_SUBWORD.
17476         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
17477         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
17478         all callers changed.
17479         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
17480         (finish_allocno): Likewise.
17481         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
17482         (remove_low_level_allocnos): Likewise.
17483         (update_bad_spill_attribute): Likewise.
17484         (setup_min_max_allocno_live_range_point): Likewise.
17485         (sort_conflict_id_map): Likewise.
17486         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
17487         (ior_hard_reg_conflicts): New function.
17488         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
17489         (compress_conflict_vecs): Iterate over objects, not allocnos.
17490         (ira_add_live_range_to_object): New function.
17491         (object_range_compare_func): Renamed from allocno_range_compare_func.
17492         All callers changed.
17493         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
17494         subobjects, widen the min/max range of the lowest-order object to
17495         potentially include all other such low-order objects.
17496         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
17497         (check_allocation): Likewise.  Use more fine-grained tests for register
17498         conflicts.
17499         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
17500         allocno subobjects.
17501         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
17502         choices about which bits to set in each set.  Don't use
17503         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
17504         using the multiple sets we computed.
17505         (push_allocno_to_stack): Iterate over allocno subobjects.
17506         (all_conflicting_hard_regs_coalesced): New static function.
17507         (setup_allocno_available_regs_num): Use it.
17508         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
17509         subobjects.
17510         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
17511         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
17512         by ALLOCNO_NUM_OBJECTS.
17513         (calculate_spill_cost): Likewise.
17514         (color_pass): Express if statement in a more normal way.
17515         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
17516         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
17517         (setup_slot_coalesced_allocno_live_ranges): Likewise.
17518         (allocno_reload_assign): Likewise.
17519         (ira_reassign_pseudos): Likewise.
17520         (fast_allocation): Likewise.
17521         * ira-conflicts.c (build_conflict_bit_table): Likewise.
17522         (print_allocno_conflicts): Likewise.
17523         (ira_build_conflicts): Likewise.
17524         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
17525         callers changed.  Test subword 0 of each allocno for conflicts.
17526         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
17527         callers changed.  Iterate over allocno subobjects.
17528         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
17529         * ira-int.h (struct ira_allocno): New member: num_objects.
17530         Rename object to objects and change it into an array.
17531         (ALLOCNO_OBJECT): Add new argument N.
17532         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
17533         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
17534         (ior_hard_reg_conflicts): Declare.
17535         (ira_add_live_range_to_object): Declare.
17536         (ira_allocno_object_iterator): New.
17537         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
17538         (FOR_EACH_ALLOCNO_OBJECT): New macro.
17539         * ira-lives.c (objects_live): Renamed from allocnos_live; all
17540         uses changed.
17541         (allocnos_processed): New sparseset.
17542         (make_object_born): Renamed from make_allocno_born; take an
17543         ira_object_t argument.  All callers changed.
17544         (make_object_dead): Renamed from make_allocno_dead; take an
17545         ira_object_t argument.  All callers changed.
17546         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
17547         All callers changed.
17548         (mark_pseudo_regno_live): Iterate over allocno subobjects.
17549         (mark_pseudo_regno_dead): Likewise.
17550         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
17551         functions.
17552         (mark_ref_live): Detect subword accesses and call
17553         mark_pseudo_regno_subword_live as appropriate.
17554         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
17555         (process_bb_nodes_live): Deal with object-related updates first; set
17556         and test bits in allocnos_processed to avoid computing allocno
17557         statistics more than once.
17558         (create_start_finish_chains): Iterate over objects, not allocnos.
17559         (print_object_live_ranges): New function.
17560         (print_allocno_live_ranges): Use it.
17561         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
17562         and objects_live.
17563
17564 2010-07-22  Richard Guenther  <rguenther@suse.de>
17565
17566         PR lto/42451
17567         * gimple.c (gtc_next_dfs_num): New global.
17568         (struct sccs): Make value a union, add integer same_p member.
17569         (gtc_visit): New function.
17570         (gimple_types_compatible_p_1): New function, split out from ...
17571         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
17572         (iterative_hash_gimple_type): Adjust for sccs change.
17573
17574 2010-07-22  Martin Jambor  <mjambor@suse.cz>
17575
17576         PR tree-optimization/44891
17577         * tree-sra.c: Include gimple-pretty-print.h.
17578         (replace_uses_with_default_def_ssa_name): Renamed to
17579         get_repl_default_def_ssa_name, return the new SSA name instead of
17580         replacing the old one.
17581         (sra_modify_assign): Dump a message when removing a load, if the LHS
17582         is an SSA_NAME, do not do any propagation, just set the RHS to a
17583         default definition SSA NAME, type convert if necessary.
17584         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
17585
17586 2010-07-22  Richard Guenther  <rguenther@suse.de>
17587
17588         PR tree-optimization/45017
17589         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
17590         TYPE_PRECISION of integral types in addition to size.
17591
17592 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
17593
17594         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
17595         when no C library is specified.
17596
17597 2010-07-22  Martin Jambor  <mjambor@suse.cz>
17598
17599         * ipa-prop.h (struct ipa_node_params): Updated comment.
17600         (struct ipa_edge_args): Likewise.
17601         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
17602
17603 2010-07-22  Martin Jambor  <mjambor@suse.cz>
17604
17605         * cgraphunit.c (verify_edge_count_and_frequency): New function.
17606         (verify_cgraph_node): Verify frequencies of indirect edges.
17607         * tree-inline.c (tree_function_versioning): Update frequencies of
17608         indirect edges.
17609
17610 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17611
17612         PR target/43698
17613         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
17614         Set *arm_rev to be predicable.
17615
17616 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
17617
17618         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
17619         (LINK_COMMAND_SPEC_A): New.
17620         (DSYMUTIL): New.
17621         (DSYMUTIL_SPEC): New.
17622         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
17623         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
17624
17625 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
17626
17627         * calls.c (load_register_parameters): Move check for zero
17628         sized items so that only the call to
17629         mem_overlaps_already_clobbered_arg_p () is protected.
17630
17631 2010-07-22  Jan Hubicka  <jh@suse.cz>
17632
17633         * ipa-pure-const.c (varying_state): Break out from ...
17634         (get_function_state): ... here; always return varying_state
17635         when state would be NULL otherwise.
17636         (remove_node_data): Do not free varying state.
17637
17638 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17639
17640         PR bootstrap/44970
17641         PR middle-end/45009
17642         * postreload.c: Include "target.h".
17643         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
17644         into account.
17645         (fixup_debug_insns): Don't copy the rtx.
17646         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
17647         Don't copy when replacing.  Call fixup_debug_insns in the case where
17648         we merged one add with another.
17649         (reload_combine_recognize_pattern): Fail if there aren't any uses.
17650         Try harder to determine whether we're picking a valid index register.
17651         Don't set store_ruid for an insn we're going to scan in the
17652         next iteration.
17653         (reload_combine): Remove unused code.
17654         (reload_combine_note_use): When updating use information for
17655         an old insn, ignore a use that occurs after store_ruid.
17656         * Makefile.in (postreload.o): Update dependencies.
17657
17658         * function.c (record_hard_reg_sets): Restrict the previous change
17659         to cases where the incoming nominal mode is the same as the
17660         incoming promoted mode and everything happens in MODE_INT.
17661
17662 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
17663
17664         PR debug/45015
17665         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
17666         ASM_OPERANDS_OUTPUT_IDX.
17667         (adjust_insn): For inline asm with multiple sets ensure first
17668         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
17669         the insn.
17670
17671 2010-07-21  Richard Henderson  <rth@redhat.com>
17672
17673         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
17674         comparison for avoiding xmm register saves.  Emit the xmm register
17675         saves explicitly.
17676         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
17677         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
17678         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
17679         Remove patterns and the associated splitters.
17680
17681 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
17682
17683         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
17684         and imagine parts of a complex, so that they can have the same
17685         base and fall into the same group.
17686
17687 2010-07-21  Richard Guenther  <rguenther@suse.de>
17688
17689         PR lto/45018
17690         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
17691         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
17692         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
17693
17694 2010-07-21  Martin Jambor  <mjambor@suse.cz>
17695
17696         PR tree-optimization/44900
17697         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
17698         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
17699
17700 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
17701
17702         PR middle-end/44738
17703         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
17704
17705 2010-07-21  Richard Guenther  <rguenther@suse.de>
17706
17707         PR middle-end/45013
17708         * tree-ssa.c (useless_type_conversion_p): Dispatch to
17709         gimple_types_compatible_p only when in lto.
17710         * gimple.c (gimple_types_compatible_p): Use canonical types
17711         to speed up comparison.
17712
17713 2010-07-21  Richard Guenther  <rguenther@suse.de>
17714
17715         * tree-flow.h (referenced_var): Move define ...
17716         * tree-flow-inline.h (referenced_var): ... here as an inline
17717         function.  Assert here ...
17718         * tree-dfa.c (referenced_var_lookup): ... instead of here.
17719         * tree-ssa.c (maybe_optimize_var): Check if the variable
17720         is in referenced vars.
17721         (execute_update_addresses_taken): Remove old broken check.
17722         * gimple-pretty-print.c (pp_points_to_solution): Use
17723         referenced_var_lookup.
17724         * tree-into-ssa.c (dump_decl_set): Likewise.
17725
17726 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
17727
17728         PR debug/45003
17729         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
17730         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
17731         ZERO_EXTEND here.
17732
17733 2010-07-20  Richard Henderson  <rth@redhat.com>
17734
17735         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
17736
17737 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
17738
17739         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
17740         computing the sum of the stack pointer and a large constant.
17741         * config/arm/constraints.md (M): Remove superfluous parentheses.
17742         (Pc): New constraint.
17743
17744 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
17745
17746         PR debug/45006
17747         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
17748         operand's type if exp is tcc_unary class tree.
17749
17750 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
17751
17752         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
17753         Reverse sense of if_then_else condition.
17754
17755 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
17756
17757         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
17758         * config/rs6000/rs6000.c (rs6000_override_options): Set
17759         rs6000_block_move_inline_limit appropriately.
17760         (expand_block_move): Use rs6000_block_move_inline_limit.
17761         * doc/invoke.texi (mblock-move-inline-limit): Document.
17762
17763 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
17764
17765         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
17766         FROM and TO.  All callers changed.  Don't look for tracked uses,
17767         just scan the RTL for DEBUG_INSNs and substitute.
17768         (reload_combine_recognize_pattern): Call fixup_debug_insns.
17769         (reload_combine): Ignore DEBUG_INSNs.
17770
17771 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
17772
17773         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
17774         depth to 8 from 5.
17775
17776         PR debug/45003
17777         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
17778         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
17779         instead of the result's type.
17780
17781 2010-07-20  Richard Guenther  <rguenther@suse.de>
17782
17783         PR tree-optimization/44977
17784         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
17785         SSA form.
17786
17787 2010-07-20  Richard Guenther  <rguenther@suse.de>
17788
17789         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
17790         (lto_symtab_merge_decls_2): Likewise.
17791         * gimple.h (gimple_types_compatible_p): Declare.
17792         * gimple.c (gimple_queue_type_fixup): Remove.
17793         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
17794         (gimple_compatible_complete_and_incomplete_type_p): New function.
17795         (gimple_types_compatible_p): Adjust.
17796         (gimple_register_type): Remove type fixup code.
17797         (print_gimple_types_stats): Adjust.
17798         (free_gimple_type_tables): Likewise.
17799         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
17800         * tree-ssa.c (useless_type_conversion_p): Likewise.
17801
17802 2010-07-20  Richard Guenther  <rguenther@suse.de>
17803
17804         PR middle-end/44971
17805         PR middle-end/44988
17806         * tree-ssa.c (maybe_optimize_var): New function split out from ...
17807         (execute_update_addresses_taken): ... here.
17808         (non_rewritable_mem_ref_base): Likewise.
17809         (execute_update_addresses_taken): Do not iterate over all referenced
17810         vars but just all local decls and parms.
17811         Properly check call and asm arguments and rewrite call arguments.
17812
17813 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
17814
17815         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
17816         to top level.
17817         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
17818         definitions ...
17819         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
17820         New macro.
17821         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
17822
17823 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
17824
17825         * gengtype.c (start_root_entry): New function, split out from
17826         write_root.  Check whether V is null and raise an error if so.
17827         (write_field_root): Check for V being null.  Don't raise an error here;
17828         set V to null instead.
17829         (write_root): Update comment above function.  Use start_root_entry.
17830
17831 2010-07-19  Xinliang David Li  <davidxl@google.com>
17832
17833         PR testsuite/44932
17834         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
17835         def edges.
17836         (find_uninit_use): Add dump.
17837         (is_use_properly_guarded): Ditto.
17838         (warn_uninitialized_phi): Ditto.
17839         (execute_late_warn_uninitialized): Ditto.
17840
17841 2010-07-19  Richard Guenther  <rguenther@suse.de>
17842
17843         PR middle-end/44941
17844         * expr.c (emit_block_move_hints): Move zero size check first.
17845         Move asserts to more useful places.
17846         * calls.c (load_register_parameters): Check for zero size.
17847
17848 2010-07-19  Richard Henderson  <rth@redhat.com>
17849
17850         * tree-optimize.c (execute_all_early_local_passes): New.  Change
17851         cgraph_state here ...
17852         (execute_early_local_optimizations): ... not here.  Remove.
17853         (pass_early_local_passes, pass_all_early_optimizations): Update.
17854
17855 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
17856
17857         * postreload.c (reload_combine_closest_single_use): Ignore the
17858         number of uses for DEBUG_INSNs.
17859         (fixup_debug_insns): New static function.
17860         (reload_combine_recognize_const_pattern): Use it.  Don't let the
17861         main loop be affected by DEBUG_INSNs.
17862         Really disallow moving adds past a jump insn.
17863         (reload_combine_recognize_pattern): Don't update use_ruid here.
17864         (reload_combine_note_use): Do it here.
17865         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
17866
17867 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
17868
17869         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
17870         of a loop.
17871         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
17872
17873 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
17874
17875         * config/i386/darwin.h: Define darwin_emit_branch_islands.
17876         (TARGET_MACHO_BRANCH_ISLANDS): New.
17877         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
17878         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
17879         default value.
17880         * config/i386/i386.c (output_pic_addr_const): Do not emit
17881         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
17882         (x86_output_mi_thunk): Adjust symbol creation.
17883         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
17884         Remove out of date comment.
17885         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
17886         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
17887         (DARWIN_GENERATE_ISLANDS): Ditto.
17888         (output_call):  Do not emit branch islands unless
17889         darwin_emit_branch_islands is set.
17890         * config/darwin.c: Declare darwin_emit_branch_islands.
17891         (machopic_indirect_data_reference): Do not emit unless
17892         darwin_emit_branch_islands is set.
17893         (darwin_override_options): Set darwin_emit_branch_islands
17894         where it is needed.
17895         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
17896
17897 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17898
17899         * doc/sourcebuild.texi (Effective-Target Keywords): Document
17900         sse_runtime, sse2_runtime.
17901
17902 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
17903
17904         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
17905         low half of a single-register SCmode return value before ORing
17906         it with the high half.
17907         * config/mips/mips16.S (MERGE_GPRf): Likewise.
17908
17909 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17910
17911         PR target/44805
17912         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
17913         on all targets.
17914
17915 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
17916
17917         PR target/42235
17918         * postreload.c (reload_cse_move2add): Return bool, true if anything.
17919         changed.  All callers changed.
17920         (move2add_use_add2_insn): Likewise.
17921         (move2add_use_add3_insn): Likewise.
17922         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
17923         reload_combine.
17924         (RELOAD_COMBINE_MAX_USES): Bump to 16.
17925         (last_jump_ruid): New static variable.
17926         (struct reg_use): New members CONTAINING_MEM and RUID.
17927         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
17928         (reload_combine_split_one_ruid, reload_combine_split_ruids,
17929         reload_combine_purge_insn_uses, reload_combine_closest_single_use
17930         reload_combine_purge_reg_uses_after_ruid,
17931         reload_combine_recognize_const_pattern): New static functions.
17932         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
17933         is true for our reg and that we have available index regs.
17934         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
17935         callers changed.  Use them to initialize fields in struct reg_use.
17936         (reload_combine): Initialize last_jump_ruid.  Be careful when to
17937         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
17938         Call reload_combine_recognize_const_pattern.
17939         (reload_combine_note_store): Update REAL_STORE_RUID field.
17940
17941 2010-07-16  Jason Merrill  <jason@redhat.com>
17942
17943         * Makefile.in (opts-common.o): Depend on options.h.
17944
17945 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
17946
17947         * tree.c (build_common_builtin_nodes): Use build_function_type_list
17948         instead of build_function_type.
17949         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
17950         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
17951
17952 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
17953
17954         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
17955         do all the work.
17956         (rs6000_emit_int_cmove): Use function pointers for insn generation.
17957         Don't force values into registers unnecessarily.
17958         (output_isel): Assert that we're not given conditions we can't handle.
17959         Delete corresponding code.
17960         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
17961         scc_comparison_operator constraint.  Permit 0 for the consequent
17962         operand.  Permit any GPR for the alternative operand.
17963         (isel_unsigned_<mode>): Likewise.
17964
17965 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
17966
17967         PR target/44942
17968         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
17969         argument to const_tree.
17970         * config/i386/i386.c (function_arg_advance): If padding needs to be
17971         inserted before argument, increment cum->words by number of padding
17972         words as well.
17973         (contains_aligned_value_p): Change argument to const_tree.
17974         (ix86_function_arg_boundary): Change second argument to const_tree.
17975
17976 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
17977
17978         PR target/42235
17979         * function.c (record_hard_reg_sets): New static function.
17980         (assign_parm_setup_reg): If an optab for extending exists and the
17981         generated code clobbbers no hard regs, emit the insn directly and
17982         create a REG_EQUIV note.
17983
17984 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
17985
17986         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
17987         TREE_CHAIN.
17988         * c-typeck.c (push_init_level): Likewise.
17989         (process_init_element): Likewise.
17990
17991 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
17992
17993         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
17994         (integer_three_node): Add.
17995         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
17996         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
17997         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
17998         of call build_int_cst.
17999         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
18000         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
18001         (find_interesting_uses_address): Ditto.
18002         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
18003         * tree-eh.c (lower_eh_constructs_2): Ditto.
18004         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
18005         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
18006         * expmed.c (expand_divmod): Ditto.
18007         * tree-mudflap.c (mx_register_decls): Ditto.
18008         * varasm.c (array_size_for_constructor): Ditto.
18009         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
18010         * c-parser.c (c_parser_postfix_expression): Ditto.
18011
18012 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
18013
18014         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
18015         New static variables.
18016         (reload_combine_recognize_pattern): New static function, broken out
18017         of reload_combine.
18018         (reload_combine): Use it.  Only initialize first_index_reg and
18019         last_index_reg once.
18020
18021 2010-07-15  Richard Henderson  <rth@redhat.com>
18022
18023         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
18024         when done.
18025
18026 2010-07-15  Jan Hubicka  <jh@suse.cz>
18027
18028         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
18029         comdats for broken gold.
18030         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
18031
18032 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18033
18034         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
18035
18036 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18037
18038         * tree.h (DECL_CHAIN): Define.
18039         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
18040         * c-decl.c: Likewise.
18041         * c-parser.c: Likewise.
18042         * c-typeck.c: Likewise.
18043         * cfgexpand.c: Likewise.
18044         * cgraph.c: Likewise.
18045         * cgraphunit.c: Likewise.
18046         * combine.c: Likewise.
18047         * config/alpha/alpha.c: Likewise.
18048         * config/arm/arm.c: Likewise.
18049         * config/frv/frv.c: Likewise.
18050         * config/i386/i386.c: Likewise.
18051         * config/i386/winnt-cxx.c: Likewise.
18052         * config/ia64/ia64.c: Likewise.
18053         * config/iq2000/iq2000.c: Likewise.
18054         * config/mep/mep.c: Likewise.
18055         * config/mips/mips.c: Likewise.
18056         * config/pa/som.h: Likewise.
18057         * config/rs6000/rs6000.c: Likewise.
18058         * config/s390/s390.c: Likewise.
18059         * config/sh/sh.c: Likewise.
18060         * config/sh/symbian-cxx.c: Likewise.
18061         * config/sparc/sparc.c: Likewise.
18062         * config/spu/spu.c: Likewise.
18063         * config/stormy16/stormy16.c: Likewise.
18064         * config/vxworks.c: Likewise.
18065         * config/xtensa/xtensa.c: Likewise.
18066         * coverage.c: Likewise.
18067         * dbxout.c: Likewise.
18068         * dwarf2out.c: Likewise.
18069         * emit-rtl.c: Likewise.
18070         * expr.c: Likewise.
18071         * function.c: Likewise.
18072         * gimple-low.c: Likewise.
18073         * gimple-pretty-print.c: Likewise.
18074         * gimplify.c: Likewise.
18075         * integrate.c: Likewise.
18076         * ipa-inline.c: Likewise.
18077         * ipa-prop.c: Likewise.
18078         * ipa-split.c: Likewise.
18079         * ipa-struct-reorg.c: Likewise.
18080         * ipa-type-escape.c: Likewise.
18081         * langhooks.c: Likewise.
18082         * lto-cgraph.c: Likewise.
18083         * omp-low.c: Likewise.
18084         * stor-layout.c: Likewise.
18085         * tree-cfg.c: Likewise.
18086         * tree-complex.c: Likewise.
18087         * tree-dfa.c: Likewise.
18088         * tree-dump.c: Likewise.
18089         * tree-inline.c: Likewise.
18090         * tree-mudflap.c: Likewise.
18091         * tree-nested.c: Likewise.
18092         * tree-object-size.c: Likewise.
18093         * tree-pretty-print.c: Likewise.
18094         * tree-sra.c: Likewise.
18095         * tree-ssa-live.c: Likewise.
18096         * tree-ssa-loop-niter.c: Likewise.
18097         * tree-ssa-math-opts.c: Likewise.
18098         * tree-ssa-reassoc.c: Likewise.
18099         * tree-ssa-sccvn.c: Likewise.
18100         * tree-ssa-structalias.c: Likewise.
18101         * tree-tailcall.c: Likewise.
18102         * tree-vrp.c: Likewise.
18103         * tree.c: Likewise.
18104         * var-tracking.c: Likewise.
18105         * varasm.c: Likewise.
18106
18107 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18108
18109         PR target/44877
18110         * config/spu/spu.c (spu_expand_builtin_1): Allow references
18111         (as well as pointers) as argument to mask_for_load builtins.
18112
18113 2010-07-15  Richard Guenther  <rguenther@suse.de>
18114
18115         PR tree-optimization/44946
18116         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
18117         with accessing only padding properly.
18118
18119 2010-07-15  Jan Hubicka  <jh@suse.cz>
18120
18121         * ipa.c (function_and_variable_visibility): Variables marked as used
18122         should not be localized.
18123
18124 2010-07-15  Jan Hubicka  <jh@suse.cz>
18125
18126         * cgraph.c: Include lto-streamer.h
18127         (change_decl_assembler_name): Work when assembler name hash is at place.
18128         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
18129         be sure to rename it to avoid name clash.
18130         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
18131         Localize hidden symbols only when locally defined.
18132
18133 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
18134
18135         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
18136
18137 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
18138             Kevin F. Quinn  <kevquinn@gentoo.org>
18139
18140         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
18141         * common.opt: Add -Wtrampolines.
18142         * doc/invoke.texi: Add -Wtrampolines.
18143
18144 2010-07-15  Jie Zhang  <jie@codesourcery.com>
18145
18146         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
18147         cortex_a8_issue_ls.
18148
18149 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
18150
18151         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
18152         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
18153
18154 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18155
18156         * config/spu/spu.c (reg_names): Remove prototype.
18157         (call_used_regs): Likewise.
18158
18159 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
18160
18161         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
18162         "unused" with attribute "used".
18163         (__JCR_END__): Likewise.
18164         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
18165         "used" attribute.
18166         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
18167
18168 2010-07-14  Richard Guenther  <rguenther@suse.de>
18169
18170         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
18171         (maybe_fixup_decls): Likewise.
18172         (input_gimple_stmt): Do not fixup anything.
18173         * lto-streamer-out.c (output_gimple_stmt): Make sure all
18174         non-automatic variable uses are wrapped inside a MEM_REF.
18175
18176 2010-07-14  Richard Henderson  <rth@redhat.com>
18177
18178         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
18179         for functions.
18180         * varasm.c (assemble_variable): Remove early exit for functions;
18181         assert that we're given a variable.
18182
18183 2010-07-14  Jie Zhang  <jie@codesourcery.com>
18184
18185         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
18186         cortex_a8_default when neon_type is not none.
18187
18188 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18189
18190         * lower-subreg.c (subreg_context): New static bitmap.
18191         (decompose_multiword_subregs): Allocate and free it.
18192         (find_decomposable_subregs): Set a bit in it for a register that
18193         occurs in a subreg that changes mode but not size.
18194         (can_decompose_p): Test it instead of non_decomposable_context.
18195
18196 2010-07-14  Richard Guenther  <rguenther@suse.de>
18197
18198         PR tree-optimization/44824
18199         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
18200         is_gimple_mem_ref_addr.
18201         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
18202         non-decl_address_invariant_p addresses.
18203
18204 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18205
18206         * reload.c (find_reloads): Revert code to penalize small register
18207         classes that was brought in with the IRA merge.
18208
18209 2010-07-14  Richard Guenther  <rguenther@suse.de>
18210
18211         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
18212         as base of ARRAY_REFs.
18213
18214 2010-07-14  Richard Guenther  <rguenther@suse.de>
18215
18216         PR middle-end/44930
18217         * tree-pretty-print.c (do_niy): Do not print a newline.
18218
18219 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18220
18221         * ira-int.h (struct ira_object): New.
18222         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
18223         (struct ira_allocno): Remove members min, max,
18224         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
18225         conflict_allocnos_num and conflict_vec_p.  Add new member object.
18226         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
18227         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
18228         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
18229         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
18230         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
18231         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
18232         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
18233         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
18234         an ira_object_t rather than ira_allocno_t.  All uses changed.
18235         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
18236         contains a vector of ira_object_t; all uses changed.
18237         (ira_objects_num): Declare variable.
18238         (ira_create_allocno_object): Declare function.
18239         (ira_conflict_vector_profitable_p): Adjust prototype.
18240         (ira_allocate_conflict_vec): Renamed from
18241         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
18242         (ira_allocate_object_conflicts): Renamed from
18243         ira_allocate_allocno_conflicts; first arg now ira_object_t.
18244         (struct ira_object_iterator): New.
18245         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
18246         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
18247         to conflict_vec_p.  All uses changed.
18248         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
18249         Changed to take into account that conflicts are now tracked for
18250         objects.
18251         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
18252         Args changed to accept ira_object_t.  All uses changed.
18253         (allocnos_conflict_p): New static function.
18254         (collected_conflict_objects): Renamed from collected_allocno_objects;
18255         now a vector of ira_object_t.  All uses changed.
18256         (build_conflict_bit_table): Changed to take into account that
18257         conflicts are now tracked for objects.
18258         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
18259         (print_allocno_conflicts, ira_build_conflicts): Likewise.
18260         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
18261         setup_allocno_left_conflicts_size, allocno_reload_assign,
18262         fast_allocation): Likewise.
18263         * ira-lives.c (make_hard_regno_born, make_allocno_born)
18264         process_single_reg_class_operands, process_bb_node_lives): Likewise.
18265         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
18266         Likewise.
18267         * ira-build.c (ira_objects_num): New variable.
18268         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
18269         contains a vector of ira_object_t; all uses changed.
18270         (ira_object_id_map_vec): Corresponding change.
18271         (object_pool): New static variable.
18272         (initiate_allocnos): Initialize it.
18273         (finish_allocnos): Free it.
18274         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
18275         New functions.
18276         (ira_create_allocno): Don't set members that were removed.
18277         (ira_set_allocno_cover_class): Don't change conflict hard regs.
18278         (merge_hard_reg_conflicts): Changed to take into account that
18279         conflicts are now tracked for objects.
18280         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
18281         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
18282         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
18283         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
18284         setup_min_max_conflict_allocno_ids, ):  Likewise.
18285         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
18286         to ira_object_t; all callers changed.
18287         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
18288         to ira_object_t, all callers changed.
18289         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
18290         to ira_object_t, all callers changed.
18291         (conflict_check, curr_conflict_check_tick): Renamed from
18292         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
18293         changed.
18294         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
18295         arg changed to ira_object_t, all callers changed.
18296         (create_cap_allocno): Call ira_create_allocno_object.
18297         (finish_allocno): Free the corresponding object.
18298         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
18299         callers changed.  Adjusted for dealing with objects.
18300         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
18301         dealing with objects.
18302         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
18303
18304         * ira-int.h (struct live_range): Rename allocno member to object
18305         and change type to ira_object_t.
18306         (struct ira_object): New member live_ranges.
18307         (struct ira_allocno): Remove member live_ranges.
18308         (ALLOCNO_LIVE_RANGES): Remove.
18309         (OBJECT_LIVE_RANGES): New macro.
18310         (ira_create_live_range, ira_copy_live_range_list,
18311         ira_merge_live_range_list, ira_live_ranges_intersect_p,
18312         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
18313         * ira-build.c (ira_create_object): Initialize live ranges here.
18314         (ira_create_allocno): Not here.
18315         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
18316         changed to ira_object_t, all callers changed.
18317         (copy_live_range): Rename from copy_allocno_live_range, all callers
18318         changed.
18319         (ira_copy_live_range_list): Rename from
18320         ira_copy_allocno_live_range_list, all callers changed.
18321         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
18322         all callers changed.
18323         (ira_live_ranges_intersect_p): Rename from
18324         ira_allocno_live_ranges_intersect_p, all callers changed.
18325         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
18326         callers changed.
18327         (ira_finish_live_range_list): Rename from
18328         ira_finish_allocno_live_range_list, all callers changed.
18329         (change_object_in_range_list): Rename from change_allocno_in_range_list,
18330         last arg changed to ira_object_t, all callers changed.
18331         (finish_allocno): Changed to expect live ranges in the allocno's object.
18332         (move_allocno_live_ranges, copy_allocno_live_ranges,
18333         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
18334         ira_flattening, ira_build): Likewise.
18335         * ira-color.c (allocnos_have_intersected_live_ranges_p,
18336         slot_coalesced_allocno_live_ranges_intersect,
18337         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
18338         * ira-conflicts.c (build_conflict_bit_table): Likewise.
18339         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
18340         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
18341         make_allocno_dead, create_start_finish_chains,
18342         remove_some_program_points_and_update_live_ranges,
18343         ira_debug_live_range_list): Likewise.
18344
18345         * ira-int.h (ira_object_conflict_iterator): Rename from
18346         ira_allocno_conflict_iterator.
18347         (ira_object_conflict_iter_init): Rename from
18348         ira_allocno_conflict_iter_init, second arg changed to
18349         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
18350         FOR_EACH_ALLOCNO_CONFLICT.
18351         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
18352         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
18353         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
18354         * ira-conflicts.c (print_allocno_conflicts): Likewise.
18355
18356 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
18357
18358         PR other/44874
18359         * tree-dump.c (dump_options): Add enumerate_locals entry.
18360         Add TDF_NOID exclusion to all entry.
18361         * tree-dump.h (dump_enumerated_decls): Declare.
18362         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
18363         Don't display type uid.
18364         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
18365         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
18366         * tree-ssa-live.c: Include gimple.h.
18367         (numbered_tree_d): New struct.
18368         (numbered_tree): New typedef.
18369         (DEF_VEC_O (numbered_tree): New.
18370         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
18371         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
18372         (dump_enumerated_decls): Likewise.
18373         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
18374         debug info and flag_dump_final_insns, call dump_enumerated_decls.
18375         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
18376         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
18377
18378 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
18379
18380         * expmed.h (MAX_BITS_PER_WORD): Move to...
18381         * defaults.h (MAX_BITS_PER_WORD): ...here.
18382
18383 2010-07-13  DJ Delorie  <dj@redhat.com>
18384
18385         * config/h8300/h8300.c (h8300_init_once): Default to
18386         -fstrict_volatile_bitfields.
18387
18388         * config/sh/sh.c (sh_override_options): Default to
18389         -fstrict_volatile_bitfields.
18390
18391         * config/rx/rx.c (rx_option_override): New.
18392
18393         * config/m32c/m32c.c (m32c_override_options): Default to
18394         -fstrict_volatile_bitfields.
18395
18396 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
18397
18398         * tree.h (build_function_call_expr): Delete.
18399         (build_call_expr_loc_array): New function.
18400         (build_call_expr_loc_vec): New function.
18401         * tree-flow.h (struct omp_region): Change type of ws_args field
18402         to a VEC.
18403         * builtins.c (build_function_call_expr): Delete.
18404         (build_call_expr_loc_array): New function.
18405         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
18406         (build_call_expr): Likewise.
18407         (build_call_expr_loc_vec): New function.
18408         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
18409         build_function_call_expr.
18410         * expr.c (emutls_var_address): Likewise.
18411         * varasm.c (emutls_common_1): Likewise.
18412         * omp-low.c (expand_omp_atomic_mutex): Likewise.
18413         (expand_omp_taskreg): Adjust for new type of region->ws_args.
18414         (get_ws_args_for): Return a VEC instead of a tree.
18415         (expand_parallel_call): Call build_call_expr_loc_vec instead of
18416         build_function_call_expr.
18417         * stor-layout.c (self_referential_size): Likewise.
18418
18419 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
18420
18421         PR testsuite/44701
18422         * recog.c (constrain_operands): Allow side-effects in memory
18423         operands if either < or > constraint is used, rather than if
18424         both < and > is used.
18425
18426 2010-07-13  Richard Guenther  <rguenther@suse.de>
18427
18428         PR middle-end/44911
18429         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
18430         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
18431         without name.
18432
18433 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
18434
18435         PR target/44761
18436         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
18437         to variable emited.
18438         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
18439         * config/sh/sh.md (symGOT_load): Likewise.
18440         (symDTPOFF2reg): Likewise.
18441         (symTPOFF2reg): Likewise.
18442
18443 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18444
18445         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
18446         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
18447
18448 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18449
18450         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
18451         explanation.
18452         Find ucontext_t * on Solaris 11.
18453         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
18454         Handle new Solaris 11 __sighndlr patterns.
18455
18456 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
18457
18458         PR debug/44901
18459         * vec.h (VEC_block_remove): Fix comment.
18460         * tree-ssa-live.c (remove_unused_locals): Don't use
18461         VEC_unordered_remove on local_decls, instead replace a single
18462         vector element in each iteration if at least one element had
18463         to be removed and VEC_truncate at the end.
18464         * omp-low.c (expand_omp_taskreg): Likewise.
18465
18466 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18467
18468         * c-decl.c (finish_function): Fix typo in comment.
18469
18470 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
18471
18472         PR bootstrap/44921
18473         * postreload.c (move2add_use_add3_insn): Silence gcc warning
18474         on min_regno.
18475
18476 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
18477
18478         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
18479         (simplify_stmt_using_ranges): Use it.
18480
18481 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18482
18483         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
18484         member.  Do not mark as GTY(()).
18485         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
18486         (spu_builtin_decls): New static variable.
18487         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
18488         (spu_init_builtins): Likewise.
18489         (spu_builtin_mul_widen_even): Likewise.
18490         (spu_builtin_mul_widen_odd): Likewise.
18491         (spu_builtin_mask_for_load): Likewise.
18492         (spu_builtin_vec_perm): Likewise.
18493         * config/spu/spu-c.c: Include "target.h".
18494         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
18495         of using spu_builtins[].fndecl.
18496
18497 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18498
18499         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
18500         imply -minterlink-mips16.
18501
18502 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18503
18504         * config/mips/mips.h (mips16_globals): Declare.
18505         (SWITCHABLE_TARGET): Define.
18506         * config/mips/mips.c: Include target-globals.h.
18507         (mips16_globals): New variable.
18508         (mips_set_mips16_mode): Use save_target_globals and
18509         restore_target_globals instead of target_reinit.
18510
18511 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18512
18513         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
18514         to say that the function can be called more than once.
18515         * target-globals.c (save_target_globals): Call init_reg_sets.
18516
18517 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18518
18519         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
18520         * bb-reorder.h: New file.
18521         * bb-reorder.c (default_target_bb_reorder): New variable.
18522         (this_target_bb_reorder): New conditional variable.
18523         (uncond_jump_length): Redefine as a macro.
18524         * target-globals.h (this_target_bb_reorder): Declare.
18525         (target_globals): Add a bb_reorder field.
18526         (restore_target_globals): Copy the bb_reorder field to
18527         this_target_bb-reorder.
18528         * target-globals.c: Include bb-reorder.h.
18529         (default_target_globals): Initialize the bb_reorder field.
18530         (save_target_globals): Likewise.
18531
18532 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18533
18534         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
18535         * gcse.h: New file.
18536         * gcse.c: Include gcse.h.
18537         (default_target_gcse): New variable.
18538         (this_target_gcse): New conditional variable.
18539         (can_copy): Redefine as a macro.
18540         (can_copy_init_p): New macro.
18541         (can_copy_p): Remove can_copy_init_p.
18542         * target-globals.h (this_target_gcse): Declare.
18543         (target_globals): Add a gcse field.
18544         (restore_target_globals): Copy the gcse field to this_target_gcse.
18545         * target-globals.c: Include gcse.h.
18546         (default_target_globals): Initialize the gcse field.
18547         (save_target_globals): Likewise.
18548
18549 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18550
18551         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
18552         and x_ira_prohibited_mode_move_regs_initialized_p.
18553         (ira_prohibited_mode_move_regs): Redefine as a macro.
18554         * ira.c (ira_prohibited_mode_move_regs): Delete.
18555         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
18556
18557 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18558
18559         * reload.h (target_reload): Add x_cached_reg_save_code and
18560         x_cached_reg_restore_code.
18561         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
18562         Redefine as macros.
18563
18564 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18565
18566         * Makefile.in (target-globals.o): Depend on builtins.h.
18567         * builtins.h: New file.
18568         * builtins.c: Include builtins.h.
18569         (default_target_builtins): New variable.
18570         (this_target_builtins): New conditional variable.
18571         (apply_args_mode, apply_result_mode): Redefine as macros.
18572         * target-globals.h (this_target_builtins): Declare.
18573         (target_globals): Add a builtins field.
18574         (restore_target_globals): Copy the builtins field to
18575         this_target_builtins.
18576         * target-globals.c: Include builtins.h.
18577         (default_target_globals): Initialize the builtins field.
18578         (save_target_globals): Likewise.
18579
18580 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18581
18582         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
18583         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
18584         from expmed.c.
18585         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
18586         (alg_hash, alg_hash_used_p): New macros.
18587         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
18588         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
18589         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
18590
18591 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18592
18593         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
18594         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
18595         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
18596         (this_op_costs, costs_classes): Redefine as macros.
18597         (record_reg_classes): Don't take op_costs as a parameter.
18598         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
18599         (scan_one_insn): Update call to record_operand_costs.
18600
18601 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18602
18603         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
18604         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
18605         (target_ira_int): New structure.
18606         (default_target_ira_int): Declare.
18607         (this_target_ira_int): Declare as a variable or define as a macro.
18608         (ira_reg_mode_hard_regset, ira_register_move_cost)
18609         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
18610         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
18611         (prohibited_class_mode_regs, ira_important_classes_num)
18612         (ira_important_classes, ira_reg_class_intersect)
18613         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
18614         (ira_reg_class_union): Redefine as macros.
18615         * ira.h (target_ira): New structure.
18616         (default_target_ira): Declare.
18617         (this_target_ira): Declare as a variable or define as a macro.
18618         (ira_available_class_regs, ira_hard_regno_cover_class)
18619         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
18620         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
18621         (ira_class_hard_regs_num): Redefine as macros.
18622         * ira.c (default_target_ira, default_target_ira_int): New variables.
18623         (this_target_ira, this_target_ira_int): New conditional variables.
18624         (ira_reg_mode_hard_regset, ira_memory_move_cost)
18625         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
18626         (ira_class_subset_p): Delete.
18627         (no_unit_alloc_regs): Redefine as a macro.
18628         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
18629         (ira_class_hard_regs_num, ira_class_hard_reg_index)
18630         (ira_available_class_regs): Delete.
18631         (alloc_reg_class_subclasses): Redefine as a macro.
18632         (ira_reg_class_cover_size, ira_reg_class_cover)
18633         (ira_important_classes_num, ira_important_classes)
18634         (ira_important_class_nums, ira_class_translate): Delete.
18635         (cover_class_order): Document the variable's lifetime.
18636         (reorder_important_classes): Don't set ira_important_class_nums.
18637         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
18638         (ira_reg_class_super_classes, ira_reg_class_union)
18639         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
18640         Delete.
18641         (setup_reg_class_nregs): Don't set ira_max_regs.
18642         (prohibited_class_mode_regs): Delete.
18643         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
18644         (target_globals): Add ira and ira_int fields.
18645         (restore_target_globals): Copy the ira field to this_target_ira
18646         and the ira_int field to this_target_ira_int.
18647         * target-globals.c: Include ira-int.h.
18648         (default_target_globals): Initialize the ira and ira_int fields.
18649         (save_target_globals): Likewise.
18650
18651 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18652
18653         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
18654         * cfgloop.h (target_cfgloop): New structure.
18655         (default_target_cfgloop): Declare.
18656         (this_target_cfgloop): Declare as a variable or define as a macro.
18657         (target_avail_regs, target_clobbered_regs, target_res_regs)
18658         (target_reg_cost, target_spill_cost): Redefine as macros.
18659         * cfgloopanal.c (default_target_cfgloop): New variable.
18660         (this_target_cfgloop): New conditional variable.
18661         (target_avail_regs, target_clobbered_regs, target_res_regs)
18662         (target_reg_cost, target_spill_cost): Delete.
18663         * target-globals.h (this_target_cfgloop): Declare.
18664         (target_globals): Add a cfgloop field.
18665         (restore_target_globals): Copy the cfgloop field to
18666         this_target_cfgloop.
18667         * target-globals.c: Include cfgloop.h.
18668         (default_target_globals): Initialize the cfgloop field.
18669         (save_target_globals): Likewise.
18670
18671 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18672
18673         * regs.h (target_regs): Add x_direct_load, x_direct_store and
18674         x_float_extend_from_mem.
18675         (direct_load, direct_store, float_extend_from_mem): New macros.
18676         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
18677
18678 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18679
18680         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
18681         (target-globals.o): Depend on $(LIBFUNCS_H).
18682         * libfuncs.h: Include hashtab.h.
18683         (libfunc_entry): Moved from optabs.c.
18684         (target_libfuncs): New structure.
18685         (default_target_libfuncs): Declare.
18686         (this_target_libfuncs): Declare as a variable or define as a macro.
18687         (libfunc_table): Redefine as a macro.
18688         * optabs.c (default_target_libfuncs): New variable.
18689         (this_target_libfuncs): New conditional variable.
18690         (libfunc_table): Delete.
18691         (libfunc_entry): Moved to optabs.h.
18692         (libfunc_hash): Redefine as a macro.
18693         (hash_libfunc, eq_libfunc): Fix comments.
18694         (init_optabs): Use libfunc_hash to detect cases where the function
18695         has already been called.  Clear the hash table instead of
18696         recreating it.
18697         * target-globals.h (this_target_libfuncs): Declare.
18698         (target_globals): Add a libfuncs field.
18699         (restore_target_globals): Copy the libfuncs field to
18700         this_target_libfuncs.
18701         * target-globals.c: Include libfuncs.h.
18702         (default_target_globals): Initialize the libfuncs field.
18703         (save_target_globals): Likewise.
18704
18705 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18706
18707         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
18708         in all dependency lists.
18709
18710 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18711
18712         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
18713         * optabs.h (target_optabs): New structure.
18714         (default_target_optabs): Declare.
18715         (this_target_optabs): Declare as a variable or define as a macro.
18716         (optab_table, convert_optab_table, direct_optab_table): Redefine
18717         as macros.
18718         * optabs.c (default_target_optabs): New variable.
18719         (this_target_optabs): New conditional variable.
18720         (optab_table, convert_optab_table, direct_optab_table): Delete.
18721         * target-globals.h (this_target_optabs): Declare.
18722         (target_globals): Add a optabs field.
18723         (restore_target_globals): Copy the optabs field to
18724         this_target_optabs.
18725         * target-globals.c: Include expr.h and optabs.h.
18726         (default_target_globals): Initialize the optabs field.
18727         (save_target_globals): Likewise.
18728
18729 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18730
18731         * flags.h (target_flagstate): Add x_flag_excess_precision.
18732         (flag_excess_precision): Redefine as a macro.
18733         * toplev.c (flag_excess_precision): Delete.
18734
18735 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18736
18737         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
18738         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
18739         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
18740         (no_caller_save_reg_set): Redefine as a macro.
18741         * reload.h (target_reload): Add x_caller_save_initialized_p and
18742         x_regno_save_mode.
18743         (caller_save_initialized_p): Redefine as a macro.
18744         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
18745         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
18746         (regno_save_mode): Redefine as a macro.
18747
18748 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18749
18750         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
18751         * expmed.h: New file.
18752         * expmed.c (default_target_costs): New variable.
18753         (this_target_costs): New conditional variable.
18754         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
18755         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
18756         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
18757         * target-globals.h (this_target_expmed): Declare.
18758         (target_globals): Add a expmed field.
18759         (restore_target_globals): Copy the expmed field to
18760         this_target_expmed.
18761         * target-globals.c: Include expmed.h.
18762         (default_target_globals): Initialize the expmed field.
18763         (save_target_globals): Likewise.
18764
18765 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18766
18767         * Makefile.in (target-globals.o): Depend on reload.h.
18768         * reload.h (target_reload): New structure.
18769         (default_target_reload): Declare.
18770         (this_target_reload): Declare as a variable or define as a macro.
18771         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
18772         * reload1.c (default_target_reload): New variable
18773         (this_target_reload): New conditional variable.
18774         (indirect_symref_ok, double_reg_address_ok): Delete.
18775         (spill_indirect_levels): Redefine as a macro.
18776         * target-globals.h (this_target_reload): Declare.
18777         (target_globals): Add a reload field.
18778         (restore_target_globals): Copy the reload field to
18779         this_target_reload.
18780         * target-globals.c: Include hard-reg-set.h.
18781         (default_target_globals): Initialize the reload field.
18782         (save_target_globals): Likewise.
18783
18784 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18785
18786         * rtl.h (target_rtl): Add x_static_reg_base_value.
18787         * alias.c (static_reg_base_value): Redefine as a macro.
18788
18789 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18790
18791         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
18792         (GTFILES): Remove reginfo.c.
18793         * rtl.h (target_rtl): Add x_top_of_stack.
18794         (top_of_stack): New macro.
18795         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
18796         (top_of_stack): Delete.
18797
18798 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18799
18800         * regs.h (target_regs): Add x_hard_regs_of_mode,
18801         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
18802         x_may_move_out_cost and x_last_mode_for_init_move_cost.
18803         (have_regs_of_mode, contains_reg_of_mode, move_cost)
18804         (may_move_in_cost, may_move_out_cost): Redefine as macros.
18805         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
18806         (may_move_in_cost, may_move_out_cost): Delete.
18807         (last_mode_for_init_move_cost): Redefine as a macro.
18808
18809 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18810
18811         * hard-reg-set.h (target_hard_regs): New structure.
18812         (default_target_hard_regs): Declare.
18813         (this_target_hard_regs): Declare as a variable or define as a macro.
18814         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
18815         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
18816         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
18817         (reg_class_size, reg_class_subclasses, reg_class_subunion)
18818         (reg_class_superunion, reg_names): Redefine as macros.
18819         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
18820         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
18821         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
18822         (reg_class_contents, reg_class_size, reg_class_subclasses)
18823         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
18824         (default_target_hard_regs): New variable
18825         (this_target_hard_regs, initial_call_really_used_regs)
18826         (initial_reg_alloc_order): New conditional variables.
18827         (initial_reg_names): New variable.
18828         (init_reg_sets): Assert that initial_call_really_used_regs,
18829         initial_reg_alloc_order and initial_reg_names
18830         are all the same size as their variable counterparts.  Use them to
18831         initialize those counterparts.
18832         * target-globals.h (this_target_hard_regs): Declare.
18833         (target_globals): Add a hard_regs field.
18834         (restore_target_globals): Copy the hard_regs field to
18835         this_target_hard_regs.
18836         * target-globals.c: Include hard-reg-set.h.
18837         (default_target_globals): Initialize the hard_regs field.
18838         (save_target_globals): Likewise.
18839
18840 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18841
18842         * Makefile.in (target-globals.o): Depend on $(RTL_H).
18843         * rtl.h (target_rtl): New structure.
18844         (default_target_rtl): Declare.
18845         (this_target_rtl): Declare as a variable or define as a macro.
18846         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
18847         Redefine as macros.
18848         * emit-rtl.c (default_target_rtl): New variable.
18849         (this_target_rtl): New conditional variable.
18850         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
18851         (return_address_pointer_rtx): Delete.
18852         (initial_regno_reg_rtx): New macro.
18853         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
18854         (init_emit_regs): Likewise.
18855         * target-globals.h (this_target_rtl): Declare.
18856         (target_globals): Add a rtl field.
18857         (restore_target_globals): Copy the rtl field to this_target_rtl.
18858         * target-globals.c: Include rtl.h.
18859         (default_target_globals): Initialize the rtl field.
18860         (save_target_globals): Likewise.
18861
18862 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18863
18864         * Makefile.in (target-globals.o): Depend on $(REGS_H).
18865         * regs.h (target_reg_modes): New structure.
18866         (default_target_reg_modes): Declare.
18867         (this_target_reg_modes): Declare as a variable or define as a macro.
18868         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
18869         * reginfo.c (default_target_reg_modes): New variable.
18870         (this_target_reg_modes): New conditional variable.
18871         (hard_regno_nregs, reg_raw_mode): Delete.
18872         * target-globals.h (this_target_regs): Declare.
18873         (target_globals): Add a regs field.
18874         (restore_target_globals): Copy the regs field to this_target_regs.
18875         * target-globals.c: Include regs.h.
18876         (default_target_globals): Initialize the regs field.
18877         (save_target_globals): Likewise.
18878
18879 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18880
18881         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
18882         * doc/tm.texi: Regenerate.
18883         * Makefile.in (OBJS-common): Add target-globals.o.
18884         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
18885         and target-globals.h.
18886         (target-globals.o): New rule.
18887         (GTFILES): Include $(srcdir)/target-globals.h.
18888         * defaults.h (SWITCHABLE_TARGET): Define.
18889         * gengtype.c (open_base_files): Add target-globals.h to the
18890         list of includes.
18891         * target-globals.h: New file.
18892         * target-globals.c: Likewise.
18893
18894         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
18895         * flags.h (target_flag_state): New structure.
18896         (default_target_flag_state): Declare.
18897         (this_target_flag_state): Declare as a variable or define as a macro.
18898         (align_loops_log): Redefine as a macro.
18899         (align_loops_max_skip, align_jumps_log): Likewise.
18900         (align_jumps_max_skip, align_labels_log): Likewise.
18901         (align_labels_max_skip, align_functions_log): Likewise.
18902         * toplev.c (default_target_flag_state): New variable.
18903         (this_target_flag_state): New conditional variable.
18904         (align_loops_log): Delete.
18905         (align_loops_max_skip, align_jumps_log): Likewise.
18906         (align_jumps_max_skip, align_labels_log): Likewise.
18907         (align_labels_max_skip, align_functions_log): Likewise.
18908         * target-globals.h (this_target_flag_state): Declare.
18909         (target_globals): Add a flag_state field.
18910         (restore_target_globals): Copy the flag_state field to
18911         this_target_flag_state.
18912         * target-globals.c: Include flags.h.
18913         (default_target_globals): Initialize the flag_state field.
18914         (save_target_globals): Likewise.
18915
18916 2010-07-12  Jie Zhang  <jie@codesourcery.com>
18917
18918         * postreload.c (reg_symbol_ref[]): New.
18919         (move2add_use_add2_insn): New.
18920         (move2add_use_add3_insn): New.
18921         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
18922         (move2add_note_store): Likewise.
18923
18924 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
18925
18926         PR rtl-optimization/44752
18927         * genautomata.c (main): Don't emit an empty file even if there
18928         is no automaton.
18929
18930 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18931
18932         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
18933         ix86_solaris_return_in_memory.
18934         * config/i386-protos.h: Reflect this.
18935         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
18936         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
18937         Move ...
18938         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
18939
18940 2010-07-12  Jie Zhang  <jie@codesourcery.com>
18941
18942         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
18943         align the stack when it's going to be saved.
18944
18945 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18946
18947         PR pch/14940
18948         * config/host-solaris.c (mmap_fixed): New function.
18949         (sol_gt_pch_get_address): Use it.
18950         (sol_gt_pch_use_address): Likewise.
18951
18952 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18953
18954         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
18955         pentiumpro on Solaris 8 and 9/x86.
18956         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
18957         Document SSE/SSE2 support.
18958         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
18959
18960 2010-07-12  Andi Kleen  <ak@linux.intel.com>
18961
18962         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
18963         instead of gcc_assert to print better error message for multiple
18964         prevailing defs.
18965
18966 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
18967
18968         * config/i386/i386.c (ix86_asm_output_function_label): Change format
18969         string placeholder from 0x%x to %#x.
18970         (ix86_code_end): Use putc to output '\n'.
18971         (ix86_print_operand) <case ';'>: Use putc to output ';'.
18972
18973 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
18974
18975         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
18976         in directive -export.
18977
18978 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
18979
18980         * reginfo.h (reg_classes_intersect_p): Change arguments type to
18981         reg_class_t.
18982         * rtl.h (reg_classes_intersect_p): Adjust prototype.
18983
18984         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
18985         Remove macros.
18986         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
18987         rs6000_memory_move_cost): Remove
18988         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
18989         TARGET_MEMORY_MOVE_COST): Define.
18990         (rs6000_register_move_cost): Make static. Change arguments type from
18991         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
18992         (rs6000_memory_move_cost): Make static. Change arguments type from
18993         'enum reg_class' to reg_class_t.
18994
18995 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
18996
18997         PR middle-end/42505
18998         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
18999         lookup code into....
19000         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
19001         new functions.
19002         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
19003         * cfgloopanal.c (target_clobbered_regs): Define.
19004         (init_set_costs): Initialize target_clobbered_regs.
19005         (estimate_reg_pressure_cost): Add call_p argument.  When true,
19006         adjust the number of available registers to exclude the
19007         call-clobbered registers.
19008         * cfgloop.h (target_clobbered_regs): Declare.
19009         (estimate_reg_pressure_cost): Adjust declaration.
19010         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
19011         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
19012         (determine_set_costs): Dump target_clobbered_regs.
19013         (loop_body_includes_call): New function.
19014         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
19015         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
19016         call_p flag through.
19017         (best_gain_for_invariant): Likewise.
19018         (find_invariants_to_move): Likewise.
19019         (move_single_loop_invariants): Likewise, using already-computed
19020         has_call field.
19021
19022 2010-07-10  Richard Guenther  <rguenther@suse.de>
19023             Joern Rennecke  <joern.rennecke@embecosm.com>
19024
19025         PR debug/44832
19026         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
19027         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
19028         unless they have DECL_IGNORED_P set.
19029
19030 2010-07-10  Richard Guenther  <rguenther@suse.de>
19031
19032         PR lto/44889
19033         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
19034         helper function.
19035         (gimple_types_compatible_p): Similar to pointed-to
19036         types allow and merge a mix of complete and incomplete aggregate.
19037         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
19038         (iterative_hash_gimple_type): Adjust for that.
19039
19040 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
19041
19042         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
19043
19044 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
19045
19046         PR objc/44140
19047         * config/darwin.c (output_objc_section_asm_op): Save and restore
19048         section when outputting ObjC section list.
19049
19050 2010-07-09  Jan Hubicka  <jh@suse.cz>
19051
19052         * lto-streamer-out.c (produce_symtab): Do not write alias
19053         cgraph/varpool nodes.
19054
19055 2010-07-09  Jan Hubicka  <jh@suse.cz>
19056
19057         * tree-inline.c (declare_return_variable): Fix ICE while
19058         inlining DECL_BY_VALUE function not in SSA form
19059
19060 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
19061
19062         PR tree-optimization/44576
19063         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
19064         New.  Pull out from is_loop_prefetching_profitable to implement
19065         the trip count to ahead ratio heuristic.
19066         (mem_ref_count_reasonable_p): New.  Pull out from
19067         is_loop_prefetching_profitable to implement the instruction to
19068         memory reference ratio heuristic.  Also consider not reasonable if
19069         the memory reference count is above a threshold (to avoid
19070         explosive compilation time.
19071         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
19072         is_loop_prefetching_profitable to implement the instruction to
19073         prefetch ratio heuristic.
19074         (is_loop_prefetching_profitable): Removed.
19075         (loop_prefetch_arrays): Distribute the cost analysis across the
19076         function to allow early exit of the prefetch analysis.
19077         is_loop_prefetching_profitable is splitted into three functions,
19078         with each one called as early as possible.
19079         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
19080         number of memory references in a loop is considered too many.
19081
19082 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
19083
19084         * reload.c (find_reloads): Don't clear badop if we have a winreg
19085         alternative, but not win, and the class only has fixed regs.
19086         * hard-reg-set.h (class_only_fixed_regs): Declare.
19087         * reginfo.c (class_only_fixed_regs): New array.
19088         (init_reg_sets_1): Initialize it.
19089         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
19090         discourage alternatives using the stack pointer.
19091
19092         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
19093
19094         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
19095
19096         * config/arm/arm.md (cbranchqi4): Fix array size.
19097         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
19098         calculating length.
19099
19100 2010-07-09  Richard Guenther  <rguenther@suse.de>
19101
19102         * gimple.c (struct type_fixup_s): New struct and VEC type.
19103         (gimple_register_type_fixups): New static global.
19104         (gimple_queue_type_fixup): New function.
19105         (gimple_types_compatible_p): Queue type fixups instead of
19106         applying them here.
19107         (gimple_register_type): Apply queued fixups for the
19108         canonical type.  Empty the type fixup queue.
19109
19110 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19111
19112         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
19113         * configure: Regenerate.
19114         * config.in: Ditto.
19115
19116 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19117             Denys Vlasenko  <dvlasenk@redhat.com>
19118             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19119
19120         PR tree-optimization/28632
19121         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
19122         (extract_range_from_binary_expr): Further optimize
19123         BIT_AND_EXPR and BIT_IOR_EXPR.
19124
19125 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
19126
19127         * tree-if-conv.c (fold_or_predicates): New.
19128         (add_to_predicate_list): Call it.
19129
19130 2010-07-09  Richard Guenther  <rguenther@suse.de>
19131
19132         PR middle-end/44890
19133         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
19134         if base is a pointer.
19135         * tree-cfg.c (verify_expr): Update MEM_REF checking.
19136
19137 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
19138
19139         PR target/44877
19140         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
19141         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
19142         builtin mask for load/store builtins.
19143
19144 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19145
19146         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
19147         for "lock addl".
19148         * configure: Regenerate.
19149         * config/i386/i386.c (ix86_print_operand) <case ';'>:
19150         Remove TARGET_MACHO.
19151
19152 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
19153
19154         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
19155         default ISA flags.
19156         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
19157
19158 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
19159
19160         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
19161
19162 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
19163
19164         * config/picochip/picochip.md (commsTestPort): Emit more
19165         efficient sequence for tstport instruction.
19166
19167 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19168
19169         * config/i386/i386.c (ix86_veclib_handler): Make static.
19170
19171 2010-07-09  Richard Guenther  <rguenther@suse.de>
19172
19173         PR tree-optimization/44852
19174         * tree-ssa-alias.c: Include toplev.h for exact_log2.
19175         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
19176         in MEM_REF.
19177         (indirect_refs_may_alias_p): Likewise.
19178         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
19179
19180 2010-07-09  Richard Guenther  <rguenther@suse.de>
19181
19182         PR tree-optimization/44882
19183         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
19184         sets do conflict.
19185         (vectorizable_load): Likewise.
19186
19187 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
19188
19189         PR target/40657
19190         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
19191         All callers changed.
19192         Handle the case when we're called for the epilogue.
19193         (thumb_unexpanded_epilogue): Use it.
19194         (thumb1_expand_epilogue): Likewise.
19195
19196 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19197
19198         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
19199         both ranges are range_int_cst_p with non-negative minimum,
19200         try harder to derive smaller range.
19201
19202 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19203
19204         * genrecog.c: Include diagnostic-core.h before toplev.h.
19205         * genoutput.c: Likewise.
19206         * genextract.c: Likewise.
19207         * genautomata.c: Likewise.
19208         * genemit.c: Likewise.
19209         * genpeep.c: Likewise.
19210         * genattrtab.c: Likewise.
19211         * genconditions.c: Likewise.
19212         * genpreds.c: Likewise.
19213
19214 2010-07-08  Andi Kleen  <ak@linux.intel.com>
19215
19216         * lto-section-in.c (lto_section_name): Add missing comma.
19217
19218 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
19219
19220         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
19221         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
19222         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
19223         (ia64_override_options): Rename to...
19224         (ia64_option_override): ... this one. Make static.
19225
19226 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19227
19228         PR middle-end/44843
19229         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
19230         pointed-to type of the offset in a MEM_REF to compute the alignment.
19231
19232 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
19233
19234         * final.c (final_scan_insn): Replace
19235         TARGET_UNWIND_INFO macro check by unwind_emit
19236         hook NULL check.
19237         * targhooks.c (default_unwind_emit): Removed.
19238         * targhooks.h (default_unwind_emit): Likewise.
19239         * target.def (unwind_emit): Set default value to NULL.
19240
19241         * config/i386/i386-protos.h (ix86_asm_output_function_label):
19242         New prototype.
19243         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
19244         for NULL fntype argument and allow 64-bit targets.
19245         (ix86_asm_output_function_label): New function.
19246         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
19247         (ix86_handle_fndecl_attribute): Likewise.
19248         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
19249         * doc/doc/tm.texi: Regenerated.
19250         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
19251         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
19252         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
19253         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
19254         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
19255         * config/elfos.h: Likewise.
19256         * config/i386/cygming.h: Likewise.
19257         * config/netbsd-aout.h: Likewise.
19258         * config/openbsd.h: Likewise.
19259         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
19260         by ix86_asm_output_function_label function call.
19261         * varasm.c (assemble_start_function): Use
19262         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
19263
19264 2010-07-08  Jan Hubicka  <jh@suse.cz>
19265
19266         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
19267         New function.
19268         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
19269         Declare.
19270         * ipa-cp.c (ipcp_estimate_growth): Use it.
19271         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
19272         Likewise.
19273
19274 2010-07-08  Jan Hubicka  <jh@suse.cz>
19275
19276         * tree-inline.c (declare_return_variable): Allocate annotation for new
19277         temporary.
19278
19279 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
19280
19281         PR tree-optimization/44710
19282         * tree-if-conv.c (parse_predicate): New.
19283         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
19284         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
19285
19286 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
19287
19288         * common.opt (ftree-loop-if-convert): New flag.
19289         * doc/invoke.texi (ftree-loop-if-convert): Documented.
19290         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
19291         when flag_tree_loop_if_convert is set.
19292
19293 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
19294
19295         * config/i386/i386.c: Use short syntax for function calls
19296         through function pointers.
19297         * config/i386/i386.md: Ditto.
19298
19299 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19300
19301         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
19302
19303 2010-07-08  Richard Guenther  <rguenther@suse.de>
19304
19305         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
19306         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
19307
19308 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
19309
19310         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
19311         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
19312         (loc_list_from_tree): Likewise.
19313         (output_loc_operands): Handle outputting DW_OP_const[48]u
19314         with loc->dtprel set.
19315         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
19316
19317 2010-07-08  Jan Hubicka  <jh@suse.cz>
19318
19319         * ipa.c: Include pointer-set.h
19320         (cgraph_externally_visible_p): New attribute ALIASED;
19321         when in LTO, hidden symbols are local unless they are aliased.
19322         (function_and_variable_visibility): Compute aliased nodes;
19323         handle LTO and hidden symbol on functions and vars.
19324         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
19325         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
19326
19327 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19328
19329         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
19330         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19331         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19332         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19333         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19334         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
19335         (ix86_gen_probe_stack_range): Likewise.
19336         (override_options): Set them.
19337         (ix86_target_stack_probe): New function.
19338         (ix86_compute_frame_layout): Force use of push instructions to
19339         save registers if stack checking with probes is enabled.
19340         (get_scratch_register_on_entry): New function.
19341         (release_scratch_register_on_entry): Likewise.
19342         (ix86_adjust_stack_and_probe): Likewise.
19343         (output_adjust_stack_and_probe): Likewise.
19344         (ix86_emit_probe_stack_range): Likewise.
19345         (output_probe_stack_range): Likewise.
19346         (ix86_expand_prologue): Emit stack checking code if static built-in
19347         stack checking is enabled.
19348         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
19349         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
19350         (output_adjust_stack_and_probe): Likewise.
19351         (output_probe_stack_range): Likewise.
19352         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
19353         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
19354         TARGET_STACK_PROBE.
19355         (allocate_stack_worker_64): Likewise.
19356         (allocate_stack): Likewise.
19357         (adjust_stack_and_probe): New insn.
19358         (probe_stack_range): Likewise.
19359
19360 2010-07-08  Richard Guenther  <rguenther@suse.de>
19361
19362         PR tree-optimization/44831
19363         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
19364         a MEM_REF preserving TBAA info of the original dereference.
19365         Dereference the original pointer if the address is not invariant.
19366         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
19367         at least one invariant address that we are going to dereference.
19368
19369 2010-07-08  Richard Guenther  <rguenther@suse.de>
19370
19371         PR tree-optimization/44861
19372         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
19373         information when building MEM_REFs.
19374         (vectorizable_load): Likewise.
19375         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
19376
19377 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19378
19379         * config/sol2-c.c: Do not include diagnostic-core.h.
19380
19381 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19382
19383         PR bootstrap/44768
19384         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
19385         with respect to current_function_decl. Pass decl of the function.
19386         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
19387         * ipa-inline.c (compute_inline_parameters): Pass decl to
19388         estimated_stack_frame_size.
19389
19390 2010-07-08  Richard Guenther  <rguenther@suse.de>
19391
19392         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
19393         New function.
19394         (valueize_refs): Call it.
19395
19396 2010-07-08  Richard Guenther  <rguenther@suse.de>
19397
19398         PR rtl-optimization/44838
19399         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
19400         SSA form do not use pointer equivalence.
19401
19402 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19403
19404         * dwarf2out.c (AT_linkage_name): Delete.
19405         (add_linkage_attr): New function.
19406         (add_linkage_name): Call it to emit the linkage attribute.
19407         (dwarf2out_finish): Likewise.
19408         (move_linkage_attr): Explicitly accept both attribute variants.
19409
19410 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19411
19412         * toplev.h: Do not include diagnostic-core.h.
19413         Include diagnostic-core.h in every file that includes toplev.h.
19414         * c-tree.h: Do not include toplev.h.
19415         * pretty-print.h: Update comment.
19416         * Makefile.in: Update dependencies.
19417         * alias.c: Include diagnostic-core.h in every file that includes
19418         toplev.h.
19419         * attribs.c: Likewise.
19420         * auto-inc-dec.c: Likewise.
19421         * bb-reorder.c: Likewise.
19422         * bt-load.c: Likewise.
19423         * caller-save.c: Likewise.
19424         * calls.c: Likewise.
19425         * cfg.c: Likewise.
19426         * cfganal.c: Likewise.
19427         * cfgbuild.c: Likewise.
19428         * cfgcleanup.c: Likewise.
19429         * cfghooks.c: Likewise.
19430         * cfgloop.c: Likewise.
19431         * combine.c: Likewise.
19432         * config/alpha/alpha.c: Likewise.
19433         * config/arc/arc.c: Likewise.
19434         * config/arm/arm.c: Likewise.
19435         * config/arm/pe.c: Likewise.
19436         * config/avr/avr.c: Likewise.
19437         * config/bfin/bfin.c: Likewise.
19438         * config/cris/cris.c: Likewise.
19439         * config/crx/crx.c: Likewise.
19440         * config/darwin-c.c: Likewise.
19441         * config/darwin.c: Likewise.
19442         * config/fr30/fr30.c: Likewise.
19443         * config/frv/frv.c: Likewise.
19444         * config/h8300/h8300.c: Likewise.
19445         * config/host-darwin.c: Likewise.
19446         * config/i386/i386.c: Likewise.
19447         * config/i386/netware.c: Likewise.
19448         * config/i386/nwld.c: Likewise.
19449         * config/i386/winnt-cxx.c: Likewise.
19450         * config/i386/winnt-stubs.c: Likewise.
19451         * config/i386/winnt.c: Likewise.
19452         * config/ia64/ia64-c.c: Likewise.
19453         * config/ia64/ia64.c: Likewise.
19454         * config/iq2000/iq2000.c: Likewise.
19455         * config/lm32/lm32.c: Likewise.
19456         * config/m32c/m32c-pragma.c: Likewise.
19457         * config/m32c/m32c.c: Likewise.
19458         * config/m32r/m32r.c: Likewise.
19459         * config/m68hc11/m68hc11.c: Likewise.
19460         * config/m68k/m68k.c: Likewise.
19461         * config/mcore/mcore.c: Likewise.
19462         * config/mep/mep-pragma.c: Likewise.
19463         * config/mep/mep.c: Likewise.
19464         * config/mmix/mmix.c: Likewise.
19465         * config/mn10300/mn10300.c: Likewise.
19466         * config/moxie/moxie.c: Likewise.
19467         * config/pa/pa.c: Likewise.
19468         * config/pdp11/pdp11.c: Likewise.
19469         * config/picochip/picochip.c: Likewise.
19470         * config/rs6000/rs6000-c.c: Likewise.
19471         * config/rs6000/rs6000.c: Likewise.
19472         * config/rx/rx.c: Likewise.
19473         * config/s390/s390.c: Likewise.
19474         * config/score/score.c: Likewise.
19475         * config/score/score3.c: Likewise.
19476         * config/score/score7.c: Likewise.
19477         * config/sh/sh.c: Likewise.
19478         * config/sh/symbian-base.c: Likewise.
19479         * config/sh/symbian-c.c: Likewise.
19480         * config/sh/symbian-cxx.c: Likewise.
19481         * config/sol2-c.c: Likewise.
19482         * config/sol2.c: Likewise.
19483         * config/sparc/sparc.c: Likewise.
19484         * config/spu/spu.c: Likewise.
19485         * config/stormy16/stormy16.c: Likewise.
19486         * config/v850/v850-c.c: Likewise.
19487         * config/v850/v850.c: Likewise.
19488         * config/vax/vax.c: Likewise.
19489         * config/vxworks.c: Likewise.
19490         * config/xtensa/xtensa.c: Likewise.
19491         * convert.c: Likewise.
19492         * cse.c: Likewise.
19493         * cselib.c: Likewise.
19494         * dbgcnt.c: Likewise.
19495         * dbxout.c: Likewise.
19496         * ddg.c: Likewise.
19497         * dominance.c: Likewise.
19498         * emit-rtl.c: Likewise.
19499         * explow.c: Likewise.
19500         * expmed.c: Likewise.
19501         * fixed-value.c: Likewise.
19502         * fold-const.c: Likewise.
19503         * fwprop.c: Likewise.
19504         * gcse.c: Likewise.
19505         * ggc-common.c: Likewise.
19506         * ggc-page.c: Likewise.
19507         * ggc-zone.c: Likewise.
19508         * gimple-low.c: Likewise.
19509         * gimplify.c: Likewise.
19510         * graph.c: Likewise.
19511         * haifa-sched.c: Likewise.
19512         * ifcvt.c: Likewise.
19513         * implicit-zee.c: Likewise.
19514         * integrate.c: Likewise.
19515         * ira-build.c: Likewise.
19516         * ira-color.c: Likewise.
19517         * ira-conflicts.c: Likewise.
19518         * ira-costs.c: Likewise.
19519         * ira-lives.c: Likewise.
19520         * ira.c: Likewise.
19521         * lists.c: Likewise.
19522         * loop-doloop.c: Likewise.
19523         * loop-iv.c: Likewise.
19524         * lto-opts.c: Likewise.
19525         * lto-symtab.c: Likewise.
19526         * main.c: Likewise.
19527         * modulo-sched.c: Likewise.
19528         * optabs.c: Likewise.
19529         * params.c: Likewise.
19530         * plugin.c: Likewise.
19531         * postreload-gcse.c: Likewise.
19532         * postreload.c: Likewise.
19533         * predict.c: Likewise.
19534         * profile.c: Likewise.
19535         * real.c: Likewise.
19536         * regcprop.c: Likewise.
19537         * reginfo.c: Likewise.
19538         * regmove.c: Likewise.
19539         * reorg.c: Likewise.
19540         * resource.c: Likewise.
19541         * rtl.c: Likewise.
19542         * rtlanal.c: Likewise.
19543         * sched-deps.c: Likewise.
19544         * sched-ebb.c: Likewise.
19545         * sched-rgn.c: Likewise.
19546         * sdbout.c: Likewise.
19547         * sel-sched-dump.c: Likewise.
19548         * sel-sched-ir.c: Likewise.
19549         * simplify-rtx.c: Likewise.
19550         * stmt.c: Likewise.
19551         * stor-layout.c: Likewise.
19552         * store-motion.c: Likewise.
19553         * targhooks.c: Likewise.
19554         * tree-cfg.c: Likewise.
19555         * tree-cfgcleanup.c: Likewise.
19556         * tree-dump.c: Likewise.
19557         * tree-eh.c: Likewise.
19558         * tree-inline.c: Likewise.
19559         * tree-nomudflap.c: Likewise.
19560         * tree-object-size.c: Likewise.
19561         * tree-optimize.c: Likewise.
19562         * tree-outof-ssa.c: Likewise.
19563         * tree-phinodes.c: Likewise.
19564         * tree-profile.c: Likewise.
19565         * tree-ssa-ccp.c: Likewise.
19566         * tree-ssa-coalesce.c: Likewise.
19567         * tree-ssa-live.c: Likewise.
19568         * tree-ssa-loop-niter.c: Likewise.
19569         * tree-ssa-loop-prefetch.c: Likewise.
19570         * tree-ssa-loop.c: Likewise.
19571         * tree-ssa-structalias.c: Likewise.
19572         * tree-ssa-uninit.c: Likewise.
19573         * tree-ssa.c: Likewise.
19574         * tree-vect-data-refs.c: Likewise.
19575         * tree-vect-loop-manip.c: Likewise.
19576         * tree-vect-loop.c: Likewise.
19577         * tree-vect-patterns.c: Likewise.
19578         * tree-vect-stmts.c: Likewise.
19579         * tree-vrp.c: Likewise.
19580         * varasm.c: Likewise.
19581         * vec.c: Likewise.
19582         * web.c: Likewise.
19583         * xcoffout.c: Likewise.
19584
19585 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
19586
19587         * gengtype.c (write_field_root): New function.
19588         (write_root): Use it.
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): Add a missing line.
19594
19595 2010-07-07  Wei Guozhi  <carrot@google.com>
19596
19597         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
19598         of lowest bits to lshift/compare): New.
19599
19600 2010-07-07  Tom Tromey  <tromey@redhat.com>
19601
19602         * doc/tm.texi: Update.
19603         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
19604         Add @hook.
19605         * target.def (want_debug_pub_sections): New hook.
19606         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
19607         * dwarf2out.c (add_pubname_string): Check
19608         targetm.want_debug_pub_sections.
19609         (add_pubname): Likewise.
19610         (add_pubtype): Likewise.
19611
19612 2010-07-07  Jie Zhang  <jie@codesourcery.com>
19613
19614         * genautomata.c (output_automata_list_min_issue_delay_code):
19615         Correctly decompress min_issue_delay.
19616
19617 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
19618
19619         PR rtl-optimization/44404
19620         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
19621         possible, use reg_overlap_mentioned_p instead.
19622
19623 2010-07-07  Duncan Sands  <baldrick@free.fr>
19624
19625         PR middle-end/41355
19626         * tree.c (build_function_type_skip_args): Copy the original type using
19627         build_distinct_type_copy rather than copy_node.
19628
19629 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
19630
19631         PR target/44850
19632         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
19633         revision 161876.
19634         (ix86_expand_prologue): Likewise.
19635         (ix86_handle_fndecl_attribute): Likewise.
19636         (ix86_asm_declare_function_name): Likewise.
19637         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
19638         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
19639         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
19640         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
19641         * doc/extend.texi: Likewise.
19642
19643 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
19644
19645         PR target/44844
19646         * config/i386/i386.md (rdrand<mode>): Changed to expand to
19647         retry if the carry flag isn't valid.
19648         (rdrand<mode>_1): New.
19649
19650 2010-07-07  Richard Guenther  <rguenther@suse.de>
19651
19652         PR middle-end/44790
19653         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
19654         for expanding the constant offset for MEM_REFs.
19655
19656 2010-07-07  Richard Guenther  <rguenther@suse.de>
19657
19658         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
19659         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
19660         * gimple.h (is_gimple_operand): Remove.
19661         * gimple.c (is_gimple_operand): Likewise.
19662         (walk_gimple_op): Fix wi->val_only setting for calls.
19663         * tree-cfg.c (verify_gimple_call): Fix argument validation.
19664         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
19665         invalid gimple calls.
19666
19667 2010-07-06  Jan Hubicka  <jh@suse.cz>
19668
19669         * lto-cgraph.c (output_cgraph): Add missing declaration.
19670
19671 2010-07-06  Jan Hubicka  <jh@suse.cz>
19672
19673         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
19674         partition.
19675
19676 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
19677
19678         * doc/gimple.texi (GIMPLE_DEBUG): Document.
19679         * doc/rtl.texi (Debug Information): New node.
19680         (NOTE_INSN_VAR_LOCATION): Document.
19681         (debug_insn): Likewise.
19682         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
19683
19684 2010-07-07  Jan Hubicka  <jh@suse.cz>
19685
19686         With parts by Richard Guenther.
19687
19688         PR middle-end/44813
19689         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
19690         for functions passed by reference.
19691         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
19692         in memory when passed by reference.
19693         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
19694         beggining.
19695         * ipa-split.c (split_function): Cleanup way return value is passed;
19696         handle SSA DECL_BY_REFERENCE retvals.
19697         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
19698         DECL_BY_REFERENCE is set.
19699         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
19700         find_what_p_points_to): Handle RESULT_DECL.
19701         * tree-inline.c (declare_return_variable): Get new entry_block argument;
19702         when passing by reference ensure that RESULT_DECL is gimple_val.
19703         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
19704         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
19705
19706 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
19707
19708         PR rtl-optimization/44787
19709         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
19710         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
19711
19712 2010-07-06  Jan Hubicka  <jh@suse.cz>
19713
19714         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
19715         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
19716         with body can prevail.
19717         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
19718         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
19719         * cgraph.c (cgraph_get_node_or_alias): New function.
19720         * cgraph.h (cgraph_get_node_or_alias): Declare.
19721
19722 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
19723
19724         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
19725         support.
19726         (ix86_expand_prologue): Likewise.
19727         (ix86_handle_fndecl_attribute): Likewise.
19728         (ix86_asm_declare_function_name): New function for
19729         ASM_DECLARE_FUNCTION_NAME.
19730         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
19731         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
19732         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
19733         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
19734         * doc/extend.texi: Adjust documentation about ms_hook_prologue
19735         attribute.
19736
19737 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
19738
19739         * config/i386/i386.md (immediate_operand): New mode attribute.
19740
19741         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
19742         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
19743         using P mode iterator.
19744         (pro_epilogue_adjust_stack_di_2): Rename from
19745         pro_epilogue_adjust_stack_rex64_2.
19746
19747         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
19748
19749 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
19750
19751         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
19752         through gen_mov_insv_1 function pointer.
19753         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
19754         gen_truncxf<mode>2 through gen_truncxf function pointer.
19755         (remainder<mode>3): Ditto.
19756         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
19757         (allocate_stack): Call gen_allocate_stack_worker_64 or
19758         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
19759         function pointer.
19760         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
19761         function pointer.
19762
19763 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
19764
19765         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
19766         operand constraint instead of <r><i>m.
19767
19768 2010-07-06  Richard Guenther  <rguenther@suse.de>
19769
19770         PR middle-end/44828
19771         * convert.c (convert_to_integer): Watch out for overflowing
19772         MULT_EXPR as well.
19773
19774 2010-07-05  Jan Hubicka  <jh@suse.cz>
19775
19776         * lto-streamer.c (write_symbol_vec): Rename to ...
19777         (write_symbol) ... this one; write only symbol given and when
19778         present in cache. Sanity check that what is defined is present
19779         in cgraph/varpool with body/finalized decl.
19780         (write_symbols_of_kind): Remove.
19781         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
19782         pairs to produce symtab.
19783         (produce_asm_for_decls): Update call of produce_symtab; don't do so
19784         when doing WPA streaming.
19785
19786 2010-07-05  Jan Hubicka  <jh@suse.cz>
19787
19788         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
19789         function is still available to fold into.
19790
19791 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
19792
19793         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
19794         * function.h (struct_function): Change type of local_decls field
19795         to a VEC.
19796         (add_local_decl): New function.
19797         (FOR_EACH_LOCAL_DECL): New macro.
19798         * cfgexpand.c (init_vars_expansion): Adjust for new type of
19799         cfun->local_decls.
19800         (estimated_stack_frame_size): Likewise.
19801         (expand_used_vars): Likewise.
19802         * cgraphbuild.c (build_cgraph_edges): Likewise.
19803         * function.c (instantiate_decls_1): Likewise.
19804         * ipa-struct-reorg.c (build_data_structure): Likewise.
19805         * ipa-type-escape.c (analyze_function): Likewise.
19806         * lto-streamer-in.c (input_function): Likewise.
19807         * lto-streamer-out.c (output_function): Likewise.
19808         * tree-ssa-live.c (remove_unused_locals): Likewise.
19809         * tree.c (free_lang_data_in_decl): Likewise.
19810         (find_decls_types_in_node): Likewise.
19811         * omp-low.c (remove_exit_barrier): Likewise.
19812         (expand_omp_taskreg): Likewise.
19813         (list2chain): Rename to...
19814         (vec2chain): ...this.  Adjust.
19815         * cgraphunit.c (assemble_thunk): Call add_local_decl.
19816         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
19817         * gimple-low.c (record_vars_into): Likewise.
19818         * tree-inline.c (remap_decls): Likewise.
19819         (declare_return_variable): Likewise.
19820         (declare_inline_vars): Likewise.
19821         (copy_forbidden): Adjust for new type of cfun->local_decls.
19822         (add_local_variables): New function.
19823         (expand_call_inline): Call it.
19824         (tree_function_versioning): Likewise.
19825
19826 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
19827
19828         AVX Programming Reference (June, 2010)
19829         * config/i386/cpuid.h (bit_F16C): New.
19830         (bit_RDRND): Likewise.
19831         (bit_FSGSBASE): Likewise.
19832
19833         * config/i386/i386-builtin-types.def: Add
19834         "DEF_FUNCTION_TYPE (UINT16)", function types for
19835         float16 <-> float conversions and
19836         "DEF_FUNCTION_TYPE (VOID, UINT64)".
19837
19838         * config/i386/i386-c.c (ix86_target_macros_internal): Support
19839         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
19840         OPTION_MASK_ISA_F16C.
19841
19842         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
19843         (OPTION_MASK_ISA_RDRND_SET): Likewise.
19844         (OPTION_MASK_ISA_F16C_SET): Likewise.
19845         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
19846         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
19847         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
19848         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
19849         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
19850         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
19851         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
19852         (override_options): Handle them.
19853         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
19854         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
19855         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
19856         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
19857         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
19858         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
19859         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
19860         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
19861         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
19862         (bdesc_args): Likewise.
19863         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
19864         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
19865         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
19866         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
19867         Handle non-memory store.
19868
19869         * config/i386/i386.h (TARGET_FSGSBASE): New.
19870         (TARGET_RDRND): Likewise.
19871         (TARGET_F12C): Likewise.
19872
19873         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
19874         (UNSPEC_VCVTPS2PH): Likewise.
19875         (UNSPECV_RDFSBASE): Likewise.
19876         (UNSPECV_RDGSBASE): Likewise.
19877         (UNSPECV_WRFSBASE): Likewise.
19878         (UNSPECV_WRGSBASE): Likewise.
19879         (UNSPECV_RDRAND): Likewise.
19880         (rdfsbase<mode>): Likewise.
19881         (rdgsbase<mode>): Likewise.
19882         (wrfsbase<mode>): Likewise.
19883         (wrgsbase<mode>): Likewise.
19884         (rdrand<mode>): Likewise.
19885
19886         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
19887
19888         * config/i386/immintrin.h (_rdrand_u16): New.
19889         (_rdrand_u32): Likewise.
19890         (_readfsbase_u32): Likewise.
19891         (_readfsbase_u64): Likewise.
19892         (_readgsbase_u32): Likewise.
19893         (_readgsbase_u64): Likewise.
19894         (_writefsbase_u32): Likewise.
19895         (_writefsbase_u64): Likewise.
19896         (_writegsbase_u32): Likewise.
19897         (_writegsbase_u64): Likewise.
19898         (_rdrand_u64): Likewise.
19899         (_cvtsh_ss): Likewise.
19900         (_mm_cvtph_ps): Likewise.
19901         (_mm256_cvtph_ps): Likewise.
19902         (_cvtss_sh): Likewise.
19903         (_mm_cvtps_ph): Likewise.
19904         (_mm256_cvtps_ph): Likewise.
19905
19906         * config/i386/sse.md (vcvtph2ps): New.
19907         (*vcvtph2ps_load): Likewise.
19908         (vcvtph2ps256): Likewise.
19909         (vcvtps2ph): Likewise.
19910         (*vcvtps2ph): Likewise.
19911         (*vcvtps2ph_store): Likewise.
19912         (vcvtps2ph256): Likewise.
19913
19914         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
19915
19916         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
19917
19918 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
19919
19920         PR bootstrap/44512
19921         * genenums.c (main): Output include of insn-constants.h
19922         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
19923
19924 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
19925
19926         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
19927         (override_options): Initialize it.
19928         (ix86_expand_prologue): Use it.
19929
19930 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
19931
19932         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
19933
19934 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
19935
19936         * double-int.h (fit_double_type): Remove declaration.
19937         * double-int.c (fit_double_type): Remove function.
19938         * tree.h (int_fits_type_p): Adjust prototype.
19939         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
19940         instead of fit_double_type.
19941         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
19942         instead of fit_double_type and build_int_cst_wide.
19943         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
19944         instead of fit_double_type and build_int_cst_wide.
19945         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
19946         of fit_double_type.
19947
19948 2010-07-05  Jan Hubicka  <jh@suse.cz>
19949
19950         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
19951         in_other_partition.
19952         * lto-cgraph.c (referenced_from_other_partition_p,
19953         reachable_from_other_partition_p): Use in_other_partition flags.
19954         (output_node, output_varpool_node): COMDAT nodes always have private
19955         copies and thus are never used from other partition.
19956
19957 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
19958
19959         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
19960         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
19961         * config/ia64/ia64.c Include reload.h.
19962         (ia64_memory_move_cost): New function.
19963         (TARGET_MEMORY_MOVE_COST): Define.
19964         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
19965         memory_move_cost.
19966
19967 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
19968
19969         PR middle-end/42505
19970         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
19971         comments about cost model.
19972         (try_add_cand_for):  Add second strategy for choosing initial set
19973         based on original IVs, controlled by ORIGINALP argument.
19974         (get_initial_solution): Add ORIGINALP argument.
19975         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
19976         (find_optimal_iv_set): Try two different strategies for choosing
19977         the IV set, and return the one with lower cost.
19978
19979 2010-07-05  Richard Guenther  <rguenther@suse.de>
19980
19981         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
19982
19983 2010-07-05  Richard Guenther  <rguenther@suse.de>
19984
19985         * tree.c (reference_alias_ptr_type): New function.
19986         * tree.h (reference_alias_ptr_type): Declare.
19987         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
19988         allow non-TARGET_MEM_REF new refs.
19989         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
19990         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
19991         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
19992         (create_mem_ref): Get alias pointer type.  Adjust calls to
19993         create_mem_ref_raw.
19994         (maybe_fold_tmr): Likewise.
19995         * tree-flow.h (create_mem_ref): Adjust prototype.
19996
19997 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
19998
19999         PR c++/44808
20000         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
20001         *from_p is VAR_DECL.
20002
20003 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20004
20005         * tree.h (build_call_list): Remove.
20006         * tree.c (build_call_list): Remove.
20007
20008 2010-07-05  Richard Guenther  <rguenther@suse.de>
20009
20010         * double-int.h (double_int_sub): Declare.
20011         * double-int.c (double_int_sub): New function.
20012         * dwarf2out.c (field_byte_offset): Use it.
20013         * fixed-value.c (do_fixed_add): Likewise.
20014         (do_fixed_multiply): Likewise.
20015         (do_fixed_divide): Likewise.
20016         * tree-predcom.c (add_ref_to_chain): Likewise.
20017         (determine_roots_comp): Likewise.
20018         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
20019
20020 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20021
20022         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
20023         implementations.
20024
20025 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
20026
20027         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
20028         * arm-modes.def (CC_NOTB): Don't define.
20029         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
20030         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
20031         (LTUGEU): New code_iterator.
20032         (cnb, optab): New corresponding code_attrs.
20033         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
20034         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
20035         using LTUGEU.
20036         (addsi3_carryin_shift_<optab>): Likewise.
20037         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
20038         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
20039         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
20040         (subsi3_compare): Renamed from subsi3_compare0_c.
20041         Change CC_NOTB to CC.
20042         (arm_subsi3_insn): Allow constants for operand 0.
20043         (compare_scc peephole for eq case): New.
20044         (compare_scc splitters): Change CC_NOTB to CC.
20045
20046 2010-07-05  Richard Guenther  <rguenther@suse.de>
20047
20048         * tree-ssa-loop-im.c (for_each_index): Do not handle
20049         ALIGN_INDIRECT_REF.
20050         (gen_lsm_tmp_name): Likewise.
20051         * tree-dump.c (dequeue_and_dump): Likewise.
20052         * tree-pretty-print.c (dump_generic_node): Likewise.
20053         (op_code_prio): Likewise.
20054         (op_symbol_code): Likewise.
20055         * tree.c (staticp): Likewise.
20056         (build1_stat): Likewise.
20057         * tree.h (INDIRECT_REF_P): Likewise.
20058         * fold-const.c (maybe_lvalue_p): Likewise.
20059         (operand_equal_p): Likewise.
20060         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
20061         (ao_ref_init_from_vn_reference): Likewise.
20062         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
20063         (find_interesting_uses_address): Likewise.
20064         * dwarf2out.c (loc_list_from_tree): Likewise.
20065         * gimplify.c (gimplify_expr): Likewise.
20066         * tree-eh.c (tree_could_trap_p): Likewise.
20067         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
20068         * cfgexpand.c (expand_debug_expr): Likewise.
20069         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
20070         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
20071         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
20072         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
20073         * tree-ssa-operands.c (get_expr_operands): Likewise.
20074         * expr.c (safe_from_p): Likewise.
20075         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
20076         * tree-vect-data-refs.c (vect_setup_realignment): Build
20077         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
20078         * tree-vect-stmts.c (vectorizable_load): Likewise.
20079         * tree.def (ALIGN_INDIRECT_REF): Remove.
20080
20081 2010-07-05  Richard Guenther  <rguenther@suse.de>
20082
20083         PR tree-optimization/44784
20084         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
20085         for inserted stmts.
20086         (find_or_generate_expression): Fix SCCVN insertion check.
20087
20088 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
20089
20090         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
20091         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
20092         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
20093         directives.
20094
20095 2010-07-05  Ira Rosen  <irar@il.ibm.com>
20096
20097         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
20098         statements that are not vectorized.
20099         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
20100         in INSIDE_COST.
20101
20102 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
20103
20104         PR bootstrap/44820
20105         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
20106
20107 2010-07-05  Richard Guenther  <rguenther@suse.de>
20108
20109         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
20110         RESULT_DECLs properly.
20111
20112 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
20113
20114         PR rtl-optimization/44695
20115         * config/i386/i386.md (extract_code): Removed.
20116         (<u>divmodqi4): Likewise.
20117         (divmodqi4): New.
20118         (udivmodqi4): Likewise.
20119         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
20120         (udivmodhiqi3): Likewise.
20121
20122 2010-07-04  Jan Hubicka  <jh@suse.cz>
20123
20124         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
20125
20126 2010-07-04  Jan Hubicka  <jh@suse.cz>
20127
20128         * cgraphunit.c (init_cgraph): Only initialize dump file if it
20129         is not already initialized.
20130
20131 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20132
20133         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
20134         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
20135         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
20136         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
20137         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
20138         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
20139         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
20140         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
20141         (sync_new_nand_optab): Redefine as macros.
20142         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
20143         Delete.
20144         (direct_optab_index): New enum.
20145         (direct_optab_d): New structure.
20146         (direct_optab): New typedef.
20147         (direct_optab_table): Declare.
20148         (direct_optab_handler, set_direct_optab_handler): New functions.
20149         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
20150         (sync_lock_release_optab): New macros.
20151         * optabs.c (direct_optab_table): New variable.
20152         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
20153         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
20154         cmpstr_optab and cmpstrn_optab.
20155         (emit_conditional_move): Likewise for movcc_optab.
20156         (can_conditionally_move_p): Likewise for movcc_gen_code.
20157         (init_insn_codes): Clear direct_optab_table.
20158         (init_optabs): Don't initialize the new "direct optabs" here.
20159         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
20160         vcond_gen_code.
20161         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
20162         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
20163         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
20164         (expand_sync_operation): Likewise other sync_*_optabs.
20165         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
20166         to sync_compare_and_swap_optab.
20167         (expand_sync_lock_test_and_set): Use direct_optab_handler for
20168         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
20169         to the names of both.
20170         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
20171         cmpstr_optab and cmpstrn_optab.
20172         (expand_builtin_lock_release): Likewise sync_lock_release.
20173         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
20174         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
20175         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
20176         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
20177         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
20178         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
20179         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
20180         (sync_lock_test_and_set, sync_lock_release): Delete.
20181         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
20182         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
20183         * genopinit.c (optabs): Use set_direct_optab_handler for the new
20184         macro optabs.
20185         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
20186         the "optab" local variable.  Use direct_optab_handler for optab and
20187         sync_compare_and_swap_optab.
20188         * reload1.c (reload_in_optab, reload_out_optab): Delete.
20189         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
20190         reload_in_optab and reload_out_optab.
20191         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
20192         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
20193         * config/pa/pa.c (pa_secondary_reload): Likewise.
20194         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
20195         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
20196         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
20197         (VMSupportsCS8_builtin): Likewise.
20198
20199 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20200
20201         * optabs.h (optab_handlers): Change type of insn_code to int.
20202         (optab_handler, set_optab_handler, convert_optab_handler)
20203         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
20204         CODE_FOR_nothing".
20205         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
20206         (init_insn_codes): Zero both the above arrays.
20207         (init_optabs): Never call init_insn_codes first time around.
20208
20209 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20210
20211         * optabs.h (optab_handler, convert_optab_handler): Turn into
20212         inline functions that return an insn code.
20213         (set_optab_handler, set_convert_optab_handler): New functions.
20214         * builtins.c: Replace optab_handler(X)->insn_code with
20215         optab_handler or set_optab_handler thoughout.  Likewise
20216         convert_optab_handler(X)->insn_code with convert_optab_handler
20217         and set_convert_optab_handler.
20218         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
20219         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
20220         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
20221         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
20222         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
20223         config/spu/spu.c: Likewise.
20224
20225 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
20226
20227         PR target/44531
20228         * config.gcc (sh*-*-*): Use regular expressions instead of
20229         the 'i' modifier for sed substitutions.
20230
20231 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
20232
20233         * gimple.c (gimple_body): Comments added.
20234
20235 2010-07-04  Richard Guenther  <rguenther@suse.de>
20236
20237         PR middle-end/44809
20238         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
20239         of an INDIRECT_REF.
20240
20241 2010-07-04  Richard Guenther  <rguenther@suse.de>
20242
20243         PR tree-optimization/44479
20244         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
20245         extra SSA name copy statements which preserves points-to
20246         information.
20247         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
20248         Copy points-to information for all pointers.  Properly handle
20249         MEM_REFs.
20250         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
20251         copy statements.
20252         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
20253         dependency.
20254
20255 2010-07-04  Richard Guenther  <rguenther@suse.de>
20256
20257         PR middle-end/44785
20258         * tree-inline.c (initialize_inlined_parameters): Do not
20259         re-use pointer-map slot over remap_type call.
20260
20261 2010-07-04  Richard Guenther  <rguenther@suse.de>
20262
20263         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
20264
20265 2010-07-04  Richard Guenther  <rguenther@suse.de>
20266
20267         PR tree-optimization/44656
20268         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
20269         again after value-replacing in the defintions lhs.
20270
20271 2010-07-04  Ira Rosen  <irar@il.ibm.com>
20272             Revital Eres  <eres@il.ibm.com>
20273
20274         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
20275         Document new arguments.
20276         * doc/tm.texi: Regenerate.
20277         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
20278         Handle unaligned store.
20279         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
20280         * target.def (builtin_vectorization_cost): Add new arguments.
20281         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
20282         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
20283         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
20284         (vect_vfa_segment_size): Fix indentation.
20285         * tree-vectorizer.h (struct _vect_peel_info): New.
20286         (struct _vect_peel_extended_info): New.
20287         (struct _loop_vec_info): Add new field for peeling hash table and a
20288         macro for its access.
20289         (VECT_MAX_COST): Define.
20290         (vect_get_load_cost): Declare.
20291         (vect_get_store_cost, vect_get_known_peeling_cost,
20292         vect_get_single_scalar_iteraion_cost): Likewise.
20293         (vect_supportable_dr_alignment): Add new argument.
20294         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
20295         field.
20296         (destroy_loop_vec_info): Free peeling hash table.
20297         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
20298         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
20299         vect_analyze_slp. Fix indentation.
20300         (vect_get_single_scalar_iteraion_cost): New function.
20301         (vect_get_known_peeling_cost): Likewise.
20302         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
20303         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
20304         statement. Move outside cost calculation inside unknown peeling case.
20305         Call vect_get_known_peeling_cost for known amount of peeling.
20306         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
20307         reference to the print message of forced alignment.
20308         (vect_verify_datarefs_alignment): Update call to
20309         vect_supportable_dr_alignment.
20310         (vect_get_data_access_cost): New function.
20311         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
20312         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
20313         vect_peeling_hash_choose_best_peeling): Likewise.
20314         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
20315         to store all the accesses in the loop and find best possible access to
20316         align using peeling for known alignment case. For unknown alignment
20317         check if stores are preferred or if peeling is worthy.
20318         (vect_find_same_alignment_drs): Analyze pairs of loads too.
20319         (vect_supportable_dr_alignment): Add new argument and check aligned
20320         accesses according to it.
20321         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
20322         (cost_for_stmt): Call vect_get_stmt_cost.
20323         (vect_model_simple_cost): Likewise.
20324         (vect_model_store_cost): Call vect_get_stmt_cost. Call
20325         vect_get_store_cost to calculate the cost of the statement.
20326         (vect_get_store_cost): New function.
20327         (vect_model_load_cost): Call vect_get_stmt_cost. Call
20328         vect_get_load_cost to calculate the cost of the statement.
20329         (vect_get_load_cost): New function.
20330         (vectorizable_store): Update call to vect_supportable_dr_alignment.
20331         (vectorizable_load): Likewise.
20332         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
20333         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
20334         arguments. Handle unaligned store.
20335         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
20336         (rs6000_builtin_support_vector_misalignment): Return true for word and
20337         double word alignments for VSX.
20338         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
20339         vect_supportable_dr_alignment and builtin_vectorization_cost.
20340
20341 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20342
20343         PR target/44597
20344         * config/pa/predicates.md (prefetch_cc_operand): Remove.
20345         (prefetch_nocc_operand): Likewise.
20346         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
20347         (prefetch_20): New insn.
20348         (prefetch_cc): Remove.
20349         (prefetch_nocc): Likewise.
20350
20351 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20352
20353         * expr.c (vector_mode_valid_p): Move to c-common.c.
20354         * expr.h (vector_mode_valid_p): Do not declare here.
20355         * system.h: Poison GCC_EXPR_H in front-ends.
20356         * Makefile.in: Update dependencies.
20357
20358 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20359
20360         PR target/44705
20361         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
20362
20363 2010-07-03  Jan Hubicka  <jh@suse.cz>
20364
20365         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
20366         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
20367         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
20368         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
20369         Likewise.
20370
20371         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
20372         Update timevars.V
20373         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
20374         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
20375         TV_IPA_LTO_DECL_OUT): New.
20376         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
20377
20378 2010-07-03  Jan Hubicka  <jh@suse.cz>
20379
20380         * ipa-inline.c (update_edge_key): Break out from ...
20381         update_callers_keys): ... here;
20382         (update_callee_keys): Update only the edges from caller to callee.
20383         (update_all_calle_keys): Do what update_calle_keys did.
20384         (decide_inlining_of_small_functions): Avoid recomputing of all
20385         callees when badness increase.
20386
20387 2010-07-03  Jie Zhang  <jie@codesourcery.com>
20388
20389         * config/arm/arm.c (arm_attr_length_move_neon): New.
20390         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
20391         * config/arm/neon.md (define_mode_attr V_slen): Remove.
20392         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
20393         to compute length attribute.
20394
20395 2010-07-03  Jie Zhang  <jie@codesourcery.com>
20396
20397         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
20398         as predicate for operand 1 and remove its constraint.
20399         * config/arm/predicates.md (vfp_register_operand): New.
20400         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
20401         (*push_fp_multi): Likewise.
20402
20403 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
20404
20405         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
20406
20407 2010-07-03  Jan Hubicka  <jh@suse.cz>
20408
20409         * config/i386/i386.c (override_options): Revert accidental commit.
20410
20411 2010-07-02  Le-Chun Wu  <lcwu@google.com>
20412
20413         PR c++/44128
20414         * doc/invoke.texi: Update documentation of -Wshadow.
20415
20416 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
20417             Julian Brown  <julian@codesourcery.com>
20418             Sandra Loosemore  <sandra@codesourcery.com>
20419
20420         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
20421         comparisons.  Adjust to take both operands.
20422         (arm_select_cc_mode): Handle DImode comparisons.
20423         (arm_gen_compare_reg): Generate a scratch register for DImode
20424         comparisons which require one.  Use xor for Thumb equality checks.
20425         (arm_const_double_by_immediates): New.
20426         (arm_print_operand): Allow 'Q' and 'R' for constants.
20427         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
20428         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
20429         arm_canonicalize_comparison.
20430         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
20431         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
20432         prototype.
20433         (arm_const_double_by_immediates): Declare.
20434         * config/arm/constraints.md (Di): New constraint.
20435         * config/arm/predicates.md (arm_immediate_di_operand)
20436         (arm_di_operand, cmpdi_operand): New.
20437         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
20438         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
20439         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
20440         (cstoredi4): Handle non-Cirrus also.
20441
20442 2010-07-02  Julian Brown  <julian@codesourcery.com>
20443             Sandra Loosemore  <sandra@codesourcery.com>
20444
20445         PR target/43703
20446         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
20447         (smax<mode>3): Disable for NEON float modes when
20448         flag_unsafe_math_optimizations is false.
20449         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
20450         (*mul<mode>3_neon)
20451         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
20452         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
20453         for NEON float modes when flag_unsafe_math_optimizations is false.
20454         (quad_halves_<code>v4sf): Only enable if
20455         flag_unsafe_math_optimizations is true.
20456         * doc/invoke.texi (ARM Options): Add note about floating point
20457         vectorization requiring -funsafe-math-optimizations.
20458
20459 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20460             Julian Brown  <julian@codesourcery.com>
20461
20462         * config/arm/neon.md (UNSPEC_VABA): Delete.
20463         (UNSPEC_VABAL): Delete.
20464         (UNSPEC_VABS): Delete.
20465         (UNSPEC_VMUL_N): Delete.
20466         (adddi3_neon): New.
20467         (subdi3_neon): New.
20468         (mul<mode>3add<mode>_neon): Make the pattern named.
20469         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
20470         (neon_vadd<mode>): Replace with define_expand, and move the remaining
20471         unspec parts...
20472         (neon_vadd<mode>_unspec): ...to this.
20473         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
20474         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
20475         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
20476         (neon_vaba<mode>): Rewrite in terms of vabd.
20477         (neon_vabal<mode>): Rewrite in terms of vabdl.
20478         (neon_vabs<mode>): Rewrite without unspec.
20479         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
20480         (*arm_subdi3): Likewise.
20481         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
20482         No_op attribute to disable assembly output checks.
20483         * config/arm/arm_neon.h: Regenerated.
20484         * doc/arm-neon-intrinsics.texi: Regenerated.
20485
20486 2010-07-02  Jan Hubicka  <jh@suse.cz>
20487
20488         * ipa-split.c (split_function): For aggregate values, set the return
20489         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
20490         *<retval> = fncall.part ().
20491         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
20492
20493 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20494
20495         * config/arm/neon.md (UNSPEC_VAND): Delete.
20496         (UNSPEC_VBIC): Delete.
20497         (UNSPEC_VCLZ): Delete.
20498         (UNSPEC_VCNT): Delete.
20499         (UNSPEC_VEOR): Delete.
20500         (UNSPEC_VORN): Delete.
20501         (UNSPEC_VORR): Delete.
20502         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
20503         core registers too.
20504         (anddi3_neon): Likewise.
20505         (orndi3_neon): Likewise.
20506         (bicdi3_neon): Likewise.
20507         (xordi3_neon): Likewise.
20508         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
20509         rid of unspec and handle unused operand.
20510         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
20511         * config/arm/predicates.md (imm_for_neon_logic_operand):
20512         Require TARGET_NEON.
20513         (imm_for_neon_inv_logic_operand): Likewise.
20514         * config/arm/arm.md (define_split for logical_binary_operator):
20515         Disable for NEON registers.
20516         (anddi3): Add new define_expand, and rename the insn.  Disable
20517         this insn for NEON, where anddi3_neon now applies.
20518         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
20519         (iordi3): As for anddi3.
20520         (xordi3): Likewise.
20521         * config/arm/neon.ml (Vand): Split DImode variants and mark them
20522         as No_op to disable testing for exact instruction match.
20523         (Vorr): Likewise.
20524         (Veor): Likewise.
20525         (Vbic): Likewise.
20526         (Vorn): Likewise.
20527         * config/arm/arm_neon.h: Regenerated.
20528         * doc/arm-neon-intrinsics.texi: Regenerated.
20529
20530 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
20531
20532         * expr.h (emit_stack_probe): Declare.
20533         * explow.c (emit_stack_probe): Make global.
20534         (anti_adjust_stack_and_probe): Fix comments.
20535         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
20536         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20537         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20538         * config/sparc/sparc.c: Include except.h.
20539         (sparc_emit_probe_stack_range): New function.
20540         (output_probe_stack_range): Likewise.
20541         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
20542         built-in stack checking is enabled.
20543         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
20544         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
20545         (probe_stack_range): New insn.
20546
20547 2010-07-02  Richard Guenther  <rguenther@suse.de>
20548
20549         PR target/43958
20550         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
20551         for argument alignment.
20552
20553 2010-07-02  Jan Hubicka  <jh@suse.cz>
20554
20555         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
20556         walk backwards from entry_bb to check only those basic block of header
20557         that might lead to execution of split part.
20558         (consider_split) ... here.
20559         (find_return_bb): Allow assignment in return BB.
20560         (find_retval): New.
20561         (split_function): Fix name of cloned function; take care of updating
20562         return value in return_bb containing move.
20563
20564 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
20565
20566         PR target/44771
20567         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
20568         used variable insn.
20569
20570 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
20571
20572         * implicit-zee.c (combine_reaching_defs): Fix long lines.
20573         (is_set_with_extension_DI): Delete.
20574         (struct zero_extend_info): New structure.
20575         (add_removable_zero_extend): New function.
20576         (find_removable_zero_extends): Use note_stores to find SETs.
20577         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
20578
20579 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
20580
20581         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
20582         is_miss_rate_acceptable. Pull total_positions computation
20583         out of the loops.  Early return if miss_positions exceeds
20584         the acceptable threshold.
20585         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
20586         is_miss_rate_acceptable after renaming of compute_miss_rate.
20587
20588 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
20589
20590         PR middle-end/44576
20591         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
20592         of 1000) for miss rate if the address diference is greater than or
20593         equal to the cache line size (the two reference will never hit the
20594         same cache line).
20595
20596 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
20597
20598         PR target/42835
20599         * config/arm/arm-modes.def (CC_NOTB): New mode.
20600         * config/arm/arm.c (get_arm_condition_code): Handle it.
20601         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
20602         * config/arm/arm.md (subsi3_compare0_c): New pattern.
20603         (compare_scc): Now a define_and_split.  Add a number of extra
20604         splitters before it.
20605
20606         PR target/42172
20607         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
20608         and ZERO_EXTEND.
20609         (arm_rtx_costs_1): Likewise.
20610         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
20611         * config/arm/arm.md (is_arch6): New attribute.
20612         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
20613         extendqisi2): Tighten the code somewhat, avoiding invalid
20614         RTL to occur in the expander patterns.
20615         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
20616         (thumb1_zero_extendhisi2_v6): Delete.
20617         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
20618         (thumb1_extendhisi2_v6): Delete.
20619         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
20620         (thumb1_extendqisi2_v6): Delete.
20621         (zero_extendhisi2 for register input splitter): New.
20622         (zero_extendqisi2 for register input splitter): New.
20623         (thumb1_extendhisi2 for register input splitter): New.
20624         (extendhisi2 for register input splitter): New.
20625         (extendqisi2 for register input splitter): New.
20626         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
20627         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
20628         and add support for a register alternative requiring a split.
20629         (thumb1_zero_extendqisi2): Likewise.
20630         (arm_zero_extendqisi2): Likewise.
20631         (arm_extendhisi2): Likewise.
20632         (arm_extendqisi2): Likewise.
20633
20634 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20635
20636         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
20637         instead of an unspec.
20638         (neon_expand_vector_init): Likewise.
20639         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
20640         (UNSPEC_VDUP_LANE): Delete.
20641         (UNSPEC VDUP_N): Delete.
20642         (UNSPEC_VGET_HIGH): Delete.
20643         (UNSPEC_VGET_LANE): Delete.
20644         (UNSPEC_VGET_LOW): Delete.
20645         (UNSPEC_VMVN): Delete.
20646         (UNSPEC_VSET_LANE): Delete.
20647         (V_double_vector_mode): New.
20648         (vec_set<mode>_internal): Make code emitted match that for the
20649         corresponding intrinsics.
20650         (vec_setv2di_internal): Likewise.
20651         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
20652         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
20653         (neon_vset_lane<mode>): Combine double and quad patterns and
20654         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
20655         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
20656         (neon_vdup_n<mode>): Rewrite RTL without unspec.
20657         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
20658         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
20659         with neon_vdup_lanev2di, adjusting the pattern from the latter
20660         to be predicable for consistency.
20661         (neon_vdup_lane<mode>_internal): New.
20662         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
20663         to avoid using an unspec.
20664         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
20665         (neon_vdup_lanev2di): Turn into a define_expand.
20666         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
20667         (neon_vget_high<mode>): Replace with....
20668         (neon_vget_highv16qi): New pattern using canonical RTL.
20669         (neon_vget_highv8hi): Likewise.
20670         (neon_vget_highv4si): Likewise.
20671         (neon_vget_highv4sf): Likewise.
20672         (neon_vget_highv2di): Likewise.
20673         (neon_vget_low<mode>): Replace with....
20674         (neon_vget_lowv16qi): New pattern using canonical RTL.
20675         (neon_vget_lowv8hi): Likewise.
20676         (neon_vget_lowv4si): Likewise.
20677         (neon_vget_lowv4sf): Likewise.
20678         (neon_vget_lowv2di): Likewise.
20679
20680         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
20681         test for this emitting vmov.
20682         (Vset_lane): Likewise.
20683         (Vdup_n): Likewise.
20684         (Vmov_n): Likewise.
20685
20686         * doc/arm-neon-intrinsics.texi: Regenerated.
20687
20688 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20689
20690         * config/arm/neon.md (vec_extractv2di): Correct error in register
20691         numbering to reconcile with neon_vget_lanev2di.
20692
20693 2010-07-02  Richard Guenther  <rguenther@suse.de>
20694
20695         * tree-ssa-structalias.c (pt_solution_set_var): New function.
20696         * tree-ssa-alias.h (pt_solution_set_var): Declare.
20697         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
20698         points-to information.
20699
20700 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
20701
20702         * config/s390/s390.c (override_options): Adopt prefetching
20703         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
20704
20705 2010-07-02  Jan Hubicka  <jh@suse.cz>
20706
20707         * df-problems.c (df_kill_notes): Do not collect dead  notes.
20708         (df_set_note): Just call add_reg_note.
20709         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
20710         df_create_unused_note): Do not deal with lists of old notes.
20711         (df_note_bb_compute): Likewise.
20712
20713 2010-07-02  Richard Guenther  <rguenther@suse.de>
20714
20715         * tree-ssa-structalias.c (find_func_aliases): Handle
20716         pointer alignment via BIT_AND_EXPR.
20717         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
20718
20719 2010-07-02  Richard Guenther  <rguenther@suse.de>
20720
20721         * tree-data-ref.c (initialize_data_dependence_relation): Handle
20722         mismatching number of dimensions properly.
20723
20724 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20725
20726         PR target/44707
20727         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
20728         (lo_sum (high ...) ...) patterns generated by earlier passes.
20729
20730 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20731
20732         * doc/install.texi (Prerequisites): Document Perl requirement on
20733         Solaris 2.
20734         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
20735
20736 2010-07-02  Richard Guenther  <rguenther@suse.de>
20737
20738         PR middle-end/44777
20739         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
20740
20741 2010-07-02  Jan Hubicka  <jh@suse.cz>
20742
20743         PR middle-end/44706
20744         * predict.c (predict_paths_for_bb): Handle case when control dependence
20745         BB has only abnormal edges.
20746
20747 2010-07-02  Richard Guenther  <rguenther@suse.de>
20748
20749         PR tree-optimization/44748
20750         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
20751         the embedded conversion in MEM_REFs.
20752
20753 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
20754
20755         * reload.c: Include toplev.h.
20756         * recog.c:  Likewise.
20757         * Makefile.in: Adjust dependencies.
20758
20759 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
20760
20761         PR debug/44694
20762         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
20763         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
20764
20765 2010-07-01  Richard Guenther  <rguenther@suse.de>
20766
20767         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
20768         types for offsets.
20769
20770 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
20771
20772         PR target/44732
20773         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
20774         Fix argument types.
20775
20776 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
20777
20778         PR target/44727
20779         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
20780         Make sure operand 0 dies.
20781
20782 2010-07-01  Richard Guenther  <rguenther@suse.de>
20783
20784         PR middle-end/42834
20785         PR middle-end/44468
20786         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
20787         * doc/generic.texi (References to storage): Document MEM_REF.
20788         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
20789         (print_call_name): Likewise.
20790         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
20791         (build_simple_mem_ref_loc): New function.
20792         (mem_ref_offset): Likewise.
20793         * tree.h (build_simple_mem_ref_loc): Declare.
20794         (build_simple_mem_ref): Define.
20795         (mem_ref_offset): Declare.
20796         * fold-const.c: Include tree-flow.h.
20797         (operand_equal_p): Handle MEM_REF.
20798         (build_fold_addr_expr_with_type_loc): Likewise.
20799         (fold_comparison): Likewise.
20800         (fold_unary_loc): Fold
20801         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
20802         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
20803         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
20804         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
20805         (ptr_deref_may_alias_ref_p_1): Likewise.
20806         (ao_ref_base_alias_set): Properly differentiate base object for
20807         offset and TBAA.
20808         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
20809         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
20810         (indirect_refs_may_alias_p): Likewise.
20811         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
20812         chasing code.
20813         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
20814         (call_may_clobber_ref_p_1): Likewise.
20815         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
20816         * expr.c (expand_assignment): Handle MEM_REF.
20817         (store_expr): Handle MEM_REFs from STRING_CSTs.
20818         (store_field): If expanding a MEM_REF of a non-addressable
20819         decl use bitfield operations.
20820         (get_inner_reference): Handle MEM_REF.
20821         (expand_expr_addr_expr_1): Likewise.
20822         (expand_expr_real_1): Likewise.
20823         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
20824         * alias.c (ao_ref_from_mem): Handle MEM_REF.
20825         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
20826         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
20827         (dr_analyze_indices): Likewise.
20828         (dr_analyze_alias): Likewise.
20829         (object_address_invariant_in_loop_p): Likewise.
20830         * gimplify.c (mark_addressable): Handle MEM_REF.
20831         (gimplify_cond_expr): Build MEM_REFs.
20832         (gimplify_modify_expr_to_memcpy): Likewise.
20833         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
20834         (gimple_fold_indirect_ref): Adjust.
20835         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
20836         * tree.def (MEM_REF): New tree code.
20837         * tree-dfa.c: Include toplev.h.
20838         (get_ref_base_and_extent): Handle MEM_REF.
20839         (get_addr_base_and_unit_offset): New function.
20840         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
20841         * gimple-fold.c (may_propagate_address_into_dereference): Handle
20842         MEM_REF.
20843         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
20844         accesses if the array has just one dimension.  Remove always true
20845         parameter.  Do not require type compatibility here.
20846         (maybe_fold_offset_to_component_ref): Remove.
20847         (maybe_fold_stmt_indirect): Remove.
20848         (maybe_fold_reference): Remove INDIRECT_REF handling.
20849         Fold back to non-MEM_REF.
20850         (maybe_fold_offset_to_address): Simplify.  Deal with type
20851         mismatches here.
20852         (maybe_fold_reference): Likewise.
20853         (maybe_fold_stmt_addition): Likewise.  Also handle
20854         &ARRAY + I in addition to &ARRAY[0] + I.
20855         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
20856         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
20857         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
20858         * tree-ssa.c (useless_type_conversion_p): Make most pointer
20859         conversions useless.
20860         (warn_uninitialized_var): Handle MEM_REF.
20861         (maybe_rewrite_mem_ref_base): New function.
20862         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
20863         to SSA form.
20864         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
20865         INDIRECT_REF handling.
20866         (copy_tree_body_r): Handle MEM_REF.
20867         * gimple.c (is_gimple_addressable): Adjust.
20868         (is_gimple_address): Likewise.
20869         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
20870         invariant base are invariant.
20871         (is_gimple_min_lval): Adjust.
20872         (is_gimple_mem_ref_addr): New function.
20873         (get_base_address): Handle MEM_REF.
20874         (count_ptr_derefs): Likewise.
20875         (get_base_loadstore): Likewise.
20876         * gimple.h (is_gimple_mem_ref_addr): Declare.
20877         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
20878         * tree-cfg.c (verify_address): New function, split out from ...
20879         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
20880         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
20881         INDIRECT_REFs.
20882         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
20883         INDIRECT_REF.  Allow conversions.
20884         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
20885         a register does not change its size.
20886         (verify_types_in_gimple_reference): Verify MEM_REF.
20887         (verify_gimple_assign_single): Disallow INDIRECT_REF.
20888         Handle MEM_REF.
20889         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
20890         New.
20891         (mark_address_taken): Handle MEM_REF.
20892         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
20893         (get_asm_expr_operands): Pass opf_not_non_addressable.
20894         (get_expr_operands): Handle opf_[not_]non_addressable.
20895         Handle MEM_REF.  Remove INDIRECT_REF handling.
20896         * tree-vrp.c (check_array_ref): Handle MEM_REF.
20897         (search_for_addr_array): Likewise.
20898         (check_array_bounds): Likewise.
20899         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
20900         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
20901         (ref_always_accessed_p): Likewise.
20902         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
20903         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
20904         Handle MEM_REF.
20905         * cgraphbuild.c (mark_load): Properly check for NULL result
20906         from get_base_address.
20907         (mark_store): Likewise.
20908         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
20909         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
20910         handling for MEM_REF.
20911         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
20912         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
20913         * builtins.c (stabilize_va_list_loc): Use the function ABI
20914         valist type if we couldn't canonicalize the argument type.
20915         Always dereference with the canonical va-list type.
20916         (maybe_emit_free_warning): Handle MEM_REF.
20917         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
20918         memmove to memcpy.
20919         * builtins.c (fold_builtin_memory_op): Use ref-all types
20920         for all memcpy foldings.
20921         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
20922         (build_outer_var_ref): Likewise.
20923         (scan_omp_1_op): Likewise.
20924         (lower_rec_input_clauses): Likewise.
20925         (lower_lastprivate_clauses): Likewise.
20926         (lower_reduction_clauses): Likewise.
20927         (lower_copyprivate_clauses): Likewise.
20928         (expand_omp_atomic_pipeline): Likewise.
20929         (expand_omp_atomic_mutex): Likewise.
20930         (create_task_copyfn): Likewise.
20931         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
20932         Remove old union trick.  Initialize constant offsets.
20933         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
20934         INDIRECT_REF.  Init base_alias_set properly.
20935         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
20936         (vn_reference_fold_indirect): Adjust for MEM_REFs.
20937         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
20938         for ARRAY_REFs.
20939         (may_insert): Remove.
20940         (visit_reference_op_load): Do not test may_insert.
20941         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
20942         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
20943         a field to store the constant offset this op applies.
20944         (run_scc_vn): Adjust prototype.
20945         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
20946         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
20947         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
20948         bother about volatile qualifiers on pointers.
20949         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
20950         * tree-ssa-loop-ivopts.c
20951         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
20952         (strip_offset_1): Likewise.
20953         (find_interesting_uses_address): Replace INDIRECT_REF handling with
20954         MEM_REF handling.
20955         (get_computation_cost_at): Likewise.
20956         * ipa-pure-const.c (check_op): Handle MEM_REF.
20957         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
20958         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
20959         and constants.
20960         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
20961         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
20962         (eliminate_local_variables_1): Likewise.
20963         (create_call_for_reduction_1): Likewise.
20964         (create_loads_for_reductions): Likewise.
20965         (create_loads_and_stores_for_name): Likewise.
20966         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
20967         (ssa_accessed_in_tree): Handle MEM_REF.
20968         (ssa_accessed_in_assign_rhs): Likewise.
20969         (update_type_size): Likewise.
20970         (analyze_accesses_for_call_stmt): Likewise.
20971         (analyze_accesses_for_assign_stmt): Likewise.
20972         (transform_access_sites): Likewise.
20973         (transform_allocation_sites): Likewise.
20974         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
20975         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
20976         not handle INDIRECT_REF.
20977         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
20978         (cond_store_replacement): Likewise.
20979         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
20980         MEM_REF, no not handle INDIRECT_REFs.
20981         (insert_into_preds_of_block): Properly initialize avail.
20982         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
20983         for ARRAY_REFs.  Properly handle reference lookups that
20984         require a bit re-interpretation.
20985         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
20986         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
20987         (build_ref_for_offset_1): Remove.
20988         (build_ref_for_offset): Build MEM_REFs.
20989         (gate_intra_sra): Disable for now.
20990         (sra_ipa_modify_expr): Handle MEM_REF.
20991         (ipa_early_sra_gate): Disable for now.
20992         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
20993         MEM_REF handling.
20994         (disqualify_base_of_expr): Likewise.
20995         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
20996         MEM_REF handling.
20997         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
20998         Use mem_ref_offset.  Remove bogus folding.
20999         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
21000         (make_fancy_name_1): Add support for MEM_REF.
21001         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
21002         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
21003         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
21004         (compute_complex_ancestor_jump_func): Likewise.
21005         (ipa_analyze_virtual_call_uses): Likewise.
21006         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
21007         INDIRECT_REF folding with more generalized MEM_REF folding.
21008         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
21009         (forward_propagate_addr_into_variable_array_index): Also handle
21010         &ARRAY + I in addition to &ARRAY[0] + I.
21011         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
21012         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
21013         creates assignments with overlap.
21014         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
21015         (get_frame_field): Likewise.
21016         (get_nonlocal_debug_decl): Likewise.
21017         (convert_nonlocal_reference_op): Likewise.
21018         (struct nesting_info): Add mem_refs pointer-set.
21019         (create_nesting_tree): Allocate it.
21020         (convert_local_reference_op): Insert to be folded mem-refs.
21021         (fold_mem_refs): New function.
21022         (finalize_nesting_tree_1): Perform defered folding of mem-refs
21023         (free_nesting_tree): Free the pointer-set.
21024         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
21025         (vectorizable_load): Likewise.
21026         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
21027         (propagate_with_phi): Likewise.
21028         * tree-object-size.c (addr_object_size): Handle MEM_REFs
21029         instead of INDIRECT_REFs.
21030         (compute_object_offset): Handle MEM_REF.
21031         (plus_stmt_object_size): Handle MEM_REF.
21032         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
21033         for &MEM_REF.
21034         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
21035         (symbol_marked_for_renaming): Likewise.
21036         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
21037         (fold-const.o): Add $(TREE_FLOW_H).
21038         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
21039         (find_func_clobbers): Likewise.
21040         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
21041         (decompose_access): Likewise.
21042         (replace_field_acc): Likewise.
21043         (replace_field_access_stmt): Likewise.
21044         (insert_new_var_in_stmt): Likewise.
21045         (get_stmt_accesses): Likewise.
21046         (reorg_structs_drive): Disable.
21047         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
21048         (ix86_canonical_va_list_type): Likewise.
21049
21050 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21051
21052         PR other/44566
21053         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
21054         * target.def (struct gcc_target): Replace enum reg_class with
21055         reg_class_t in hook argument / return types.
21056         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
21057         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
21058         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
21059         * targhooks.h (default_branch_target_register_class): Likewise.
21060         (default_ira_cover_classes, default_secondary_reload): Likewise.
21061         (default_memory_move_cost, default_register_move_cost): Likewise.
21062         * targhooks.c (default_branch_target_register_class): Likewise.
21063         (default_ira_cover_classes, default_secondary_reload): Likewise.
21064         (default_memory_move_cost, default_register_move_cost): Likewise.
21065         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
21066         * bt-load.c (branch_target_load_optimize): Likewise.
21067         * ira.c (setup_cover_and_important_classes): Likewise.
21068         * ira-costs.c (copy_cost): Likewise.
21069         * reload1.c (emit_input_reload_insns): Likewise.
21070         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
21071         * config/frv/frv.c (frv_secondary_reload): Likewise.
21072         * config/s390/s390.c (s390_secondary_reload): Likewise.
21073         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
21074         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
21075         (ix86_register_move_cost): Likewise.
21076         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
21077         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
21078         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
21079         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
21080         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
21081         (rs6000_ira_cover_classes): Likewise.
21082         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
21083         * config/picochip/picochip-protos.h (picochip_secondary_reload):
21084         Likewise.
21085         * config/pa/pa.c (pa_secondary_reload): Likewise.
21086         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
21087         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
21088         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
21089         * doc/tm.texi: Regenerate.
21090
21091 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
21092
21093         PR bootstrrap/44726
21094         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
21095         use.
21096         (build_alias_set_optimal_p): Likewise.
21097         (build_base_obj_set_for_drs): Likewise.
21098
21099 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21100
21101         * target.def: Remove comment about licensing problems of function
21102         declarations.
21103
21104         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
21105         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
21106         * doc/tm.texi: Regenerate.
21107
21108         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
21109         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
21110
21111         * target.def (enum_va_list_p): Use DEFHOOK.
21112         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
21113         Rename ptype to ptree.
21114         * doc/tm.texi: Regenerate.
21115
21116         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
21117         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
21118         * doc/tm.texi: Regenerate.
21119
21120         * target.def (memory_move_cost): Use DEFHOOK.
21121         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
21122         Rename regclass AKA class to rclass.
21123         * doc/tm.texi: Regenerate.
21124
21125         * target.def (pragma_parse): Use DEFHOOK.
21126         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
21127         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
21128         * doc/tm.texi: Regenerate.
21129
21130         * target.def (pass_by_reference): Use DEFHOOK.
21131         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
21132         * doc/tm.texi: Regenerate.
21133
21134         * target.def (resolve_overloaded_builtin): Rename params to arglist.
21135         Use DEFHOOK.
21136         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
21137         * doc/tm.texi: Regenerate.
21138
21139         * target.def (return_pops_args): Use DEFHOOK.
21140         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
21141         Rename stack-size to size.
21142         * doc/tm.texi: Regenerate.
21143
21144         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
21145         last-sched_cycle to last_clock, cur_cycle to clock.
21146         * doc/tm.texi.in: Use @hook.
21147         * doc/tm.texi: Regenerate.
21148
21149         * target.def (print_operand, print_operand_address): Update comment.
21150         (print_operand_punct_valid_p): Likewise.
21151
21152 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21153
21154         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
21155         to rtl.h.
21156         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
21157         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
21158         * rtl-error.h: New.
21159         * regrename.c: Do not include toplev.h. Include rtl-error.h.
21160         * rtl-error.c: Likewise.
21161         * reload.c: Likewise.
21162         * recog.c:  Likewise.
21163         * sel-sched.c: Likewise.
21164         * function.c: Likewise.
21165         * reg-stack.c: Likewise.
21166         * cfgrtl.c: Likewise.
21167         * reload1.c: Likewise.
21168         * final.c: Include rtl-error.
21169         * Makefile.in: Adjust dependencies.
21170
21171 2010-06-30  Jan Hubicka  <jh@suse.cz>
21172
21173         PR middle-end/PR44706
21174         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
21175         to return the value.
21176
21177 2010-06-30  Michael Matz  <matz@suse.de>
21178
21179         PR bootstrap/44699
21180         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
21181         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
21182         a gimple reg, attach the original VDEF to the last store in the
21183         sequence.
21184
21185 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
21186
21187         PR other/44034
21188         * config/darwin.c (darwin_override_options): Use renamed
21189         targetm.asm_out.emit_unwind_label.
21190
21191 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
21192
21193         PR tree-optimization/39799
21194         * tree-inline.c (remap_ssa_name): Initialize variable only if
21195         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
21196
21197 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
21198
21199         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
21200
21201 2010-06-30  Richard Guenther  <rguenther@suse.de>
21202
21203         PR target/44722
21204         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
21205         against oscillation with reverse peephole2.
21206
21207 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
21208
21209         PR target/44721
21210         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21211         Fix last commit.
21212
21213 2010-06-30  Nick Clifton  <nickc@redhat.com>
21214
21215         * config/rx/rx-modes.def: New file.
21216         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
21217         (CC_REGNUM): Define.
21218         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
21219         register.
21220         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
21221         (SELECT_CC_MODE): Define.
21222         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
21223         (reg:CC CC_REG) instead of (cc0).
21224         (attr "cc"): Delete.
21225         (cbranchsi4): Do not split compare and branch here. Instead move
21226         it to...
21227         (cbranchsi4_<code>): ... here.  New patterns.
21228         (cmpsi): Call rx-compare_redundant to find out if it is necessary
21229         to emit the compare instruction.
21230         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
21231         cc_status flags.
21232         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
21233         FIRST_PSEUDO_REGNUM.
21234         (rx_expand_prologue, rx_expand_epilogue): Likewise.
21235         (rx_notice_update_cc): Delete.
21236         (rx_cc_modes_compatible): New function.
21237         (flags_needed_for_conditional): New function.
21238         (flags_from_mode): New function.
21239         (rx_compare_redundant): New function - scans backwards through
21240         insn list to find out if condition flags are already set correctly.
21241         (TARGET_CC_MODES_COMPATIBLE): Define.
21242         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
21243
21244         * config/rx/rx.h (BRANCH_COST): Define.
21245         (REGISTER_MOVE_COST): Define.
21246         * config/rx/predicates (rx_source_operand): Allow all constant types.
21247         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
21248         (tstsi4): New pattern.
21249         * config/rx/rx.c (rx_memory_move_cost): Define.
21250         (TARGET_MEMORY_MOVE_COST): Define.
21251
21252 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21253
21254         * tree.h (block_may_fallthru): Declare here.
21255         * tree-flow.h (block_may_fallthru): Do not declare here.
21256         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
21257         bitmap.h
21258         * Makefile.in (c-typeck.o): Update dependencies.
21259
21260 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
21261
21262         PR debug/44694
21263         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
21264         * cselib.c (cfa_base_preserved_regno): New static variable.
21265         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
21266         of REGNO (cfa_base_preserved_val->locs->loc).
21267         (cselib_preserve_cfa_base_value): Add regno argument, set
21268         cfa_base_preserved_regno to it.
21269         (cselib_invalidate_regno): Allow removal of registers other than
21270         cfa_base_preserved_regno from cfa_base_preserved_val.
21271         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
21272         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
21273         of MEM addresses, if not on LHS.
21274         (reverse_op): Don't add reverse ops for cfa_base_rtx.
21275         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
21276
21277 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
21278
21279         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
21280         static variables.
21281         (peep2_buf_position): New static function.
21282         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
21283         peephole2_optimize): Use it.
21284         (peep2_attempt, peep2_update_life): New static functions, broken out
21285         of peephole2_optimize.
21286         (peep2_fill_buffer): New static function.
21287         (peephole2_optimize): Change the main loop to try to fill the buffer
21288         with the maximum number of insns before matching them against
21289         peepholes.  Use a forward scan.  Remove special case for targets with
21290         conditional execution.
21291         * genrecog.c (change_state): Delete dead code.
21292         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21293         Rewrite so as not to expect the second insn to have had a peephole
21294         applied yet.
21295
21296 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21297
21298         * genhooks.c (emit_findices): Cast field precision to int.
21299         (emit_documentation): Likewise.
21300
21301 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
21302
21303         PR tree-optimization/43801
21304         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
21305         if old_decl was DECL_ONE_ONLY.
21306
21307         PR debug/44668
21308         * dwarf2out.c (add_accessibility_attribute): New function.
21309         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
21310         instead of adding DW_AT_accessibility manually.
21311         (gen_enumeration_type_die, gen_struct_or_union_type_die,
21312         gen_typedef_die): Use it.
21313
21314 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21315
21316         * vmsdbgout.c (full_name): Just output the file name if not native.
21317
21318 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21319
21320         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
21321         (funcnam_table): New static table.
21322         (funcnum_table): New static table.
21323         (write_rtnbeg): Write value saved in funcnum_table.
21324         (write_rtnend): Write value saved in funcnum_table.
21325         (vmsdbgout_begin_function): Save current function info in
21326         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
21327         (vmsdbgout_finish): Iterate over funcnum_table.
21328
21329 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21330
21331         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
21332         (vmsdbgout_type_decl): Declare
21333         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
21334         (FUNC_EPILOGUE_LABEL): New macro
21335         (vmsdbgout_begin_epilogue): New function.
21336         (vmsdbgout_type_decl): New function.
21337
21338 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21339
21340         * vmsdbg.h: Update copyright.
21341
21342 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21343
21344         * vmsdbg.h (DST_K_TBG): New DST constant.
21345         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
21346         (write_modbeg): Cast module_language to avoid warning.
21347         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
21348
21349 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
21350
21351         PR other/44034
21352         * target.def, doc/tm.texi.in, genhooks.c: New files.
21353         * target.h: Instead of defining individual hook members,
21354         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
21355         include target.def.
21356         * target-def.h: Instead of defining individual hook initializers,
21357         include target-hooks-def.h.
21358         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
21359         targetm.live_on_entry -> targetm.extra_live_on_entry
21360         targetm.sched.md_finish ->targetm.sched.finish
21361         targetm.sched.md_init -> targetm.sched.init
21362         targetm.sched.md_init_global -> targetm.sched.init_global
21363         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
21364         targetm.asm_out.except_table_label ->
21365           targetm.asm_out.emit_except_table_label
21366         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
21367         targetm.target_help -> targetm.help
21368         targetm.vectorize.builtin_support_vector_misalignment ->
21369           targetm.vectorize.support_vector_misalignment
21370         targetm.file_start_app_off -> targetm.asm_file_start_app_off
21371         targetm.file_start_file_directive ->
21372          targetm.asm_file_start_file_directive
21373         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
21374         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
21375         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
21376         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
21377           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
21378         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
21379           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
21380         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
21381         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
21382         * Makefile.in (TARGET_H): Depend on target.def.
21383         (TARGET_DEF_H): Depend on target-hooks-def.h.
21384         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
21385         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
21386         * doc/tm.texi: Regenerate.
21387
21388         * Makefile.in (s-tm-texi): Remove stray tab / rule.
21389
21390         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
21391         (targetm.sched.init): Likewise.
21392
21393 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21394
21395         PR bootstrap/44713
21396         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
21397         (function_arg_advance_32): Const-ify TYPE parameter.
21398         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
21399         (ix86_function_arg_advance): Change type of NAMED to bool.
21400         (function_arg_32): Const-ify CUM and TYPE parameters.
21401         (function_arg_64): Likewise.  Change type of NAMED to bool.
21402         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
21403         to bool.
21404         (ix86_function_arg): Change type of NAMED to bool.
21405         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
21406         last argument as a bool.
21407
21408 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
21409
21410         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
21411         (OVERRIDE_OPTIONS): Add note of obsolescence.
21412         Replace references with references to TARGET_OPTION_OVERRIDE.
21413         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
21414          the macro).
21415         * targhooks.c (default_target_option_override): New function.
21416         * targhooks.h (default_target_option_override): Declare.
21417         * target.h (struct gcc_target): Add override member to
21418         target_option member.
21419         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
21420         targetm.target_option.override call.
21421         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
21422         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
21423
21424 2010-06-29  Jan Hubicka  <jh@suse.cz>
21425
21426         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
21427
21428 2010-06-29  Jan Hubicka  <jh@suse.cz>
21429
21430         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
21431         unreachable.
21432         (rebuild_frequencies): New function.
21433         * predict.h (rebuild_frequencies): Declare.
21434         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
21435         entry block and edge reaching new_entry.
21436         (tree_function_versioning): When doing partial cloning, rebuild
21437         frequencies when done.
21438         * passes.c (execute_function_todo): Use rebild_frequencies.
21439
21440 2010-06-29  Richard Guenther  <rguenther@suse.de>
21441
21442         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
21443         * tree-flow.h (enum noalias_state): Remove.
21444         (struct var_ann_d): Remove noalias_state member.
21445
21446 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
21447
21448         PR target/43902
21449         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
21450         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
21451         (maddhidi4): Likewise.
21452
21453         Revert parts of the change for PR25130.
21454         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
21455         MEM_ALIAS_SET.
21456
21457 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21458
21459         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
21460         targetm.calls.function_incoming_arg, and
21461         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
21462         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
21463         * target.h (struct gcc_target): Add function_arg_advance,
21464         function_arg, and function_incoming_arg fields.
21465         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
21466         (TARGET_FUNCTION_INCOMING_ARG): Define.
21467         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
21468         and TARGET_FUNCTION_INCOMING_ARG.
21469         * targhooks.h (default_function_arg_advance): Declare.
21470         (default_function_arg, default_function_incoming_arg): Declare.
21471         * targhooks.c (default_function_arg_advance): New function.
21472         (default_function_arg, default_function_incoming_arg): New function.
21473         * config/i386/i386.c (function_arg_advance): Rename to...
21474         (ix86_function_arg_advance): ...this.  Make static.
21475         (function_arg): Rename to...
21476         (ix86_function_arg): ...this.  Make static.
21477         (TARGET_FUNCTION_ARG_ADVANCE): Define.
21478         (TARGET_FUNCTION_ARG): Define.
21479         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
21480         (FUNCTION_ARG): Delete.
21481         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
21482         (function_arg): Delete prototype.
21483
21484 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21485
21486         * reginfo.c (init_reg_sets_1): Adjust comments.
21487         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
21488         * calls.c (prepare_call_address): Likewise.
21489         (emit_call_1): Use targetm.calls.return_pops_args.
21490         (expand_call): Likewise.
21491         * function.c (assign_parms): Likewise.
21492         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
21493         * target.h (struct gcc_target) [struct calls]: Add
21494         return_pops_args field.
21495         * targhooks.h (default_return_pops_args): Declare.
21496         * targhooks.c (default_return_pops_args): Define.
21497         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
21498         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
21499         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
21500         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
21501         documentation.
21502         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
21503         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
21504         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
21505         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
21506         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
21507         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
21508         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
21509         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
21510         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
21511         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
21512         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
21513         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
21514         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
21515         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
21516         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
21517         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
21518         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
21519         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
21520         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
21521         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
21522         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
21523         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
21524         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
21525         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
21526         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
21527         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
21528         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
21529         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
21530         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
21531         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
21532         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
21533         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
21534         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
21535         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
21536         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
21537         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
21538         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
21539         * config/i386/i386.c (ix86_return_pops_args): Make static.
21540         Constify arguments.
21541         (TARGET_RETURN_POPS_ARGS): Define.
21542         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
21543         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
21544         (TARGET_RETURN_POPS_ARGS): Define.
21545         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
21546         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
21547         (TARGET_RETURN_POPS_ARGS): Define.
21548
21549 2010-06-29  Richard Guenther  <rguenther@suse.de>
21550
21551         PR middle-end/44667
21552         * tree-inline.c (initialize_inlined_parameters): Make sure
21553         to remap the inlined parameter variable substitutions types.
21554
21555 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
21556
21557         PR rtl-optimization/44659
21558         * combine.c (make_compound_operation) <SUBREG>: Do not return the
21559         result of force_to_mode if it partially re-expanded the compound.
21560
21561 2010-06-28  Jan Hubicka  <jh@suse.cz>
21562
21563         PR middle-end/44671
21564         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
21565         RESULT_DECL.
21566
21567 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
21568
21569         * double-int.h (force_fit_type_double): Remove declaration.
21570         * double-int.c (force_fit_type_double): Move to tree.c.
21571         * tree.h (force_fit_type_double): Declare.
21572         * tree.h (force_fit_type_double): Moved from double-int.c. Use
21573         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
21574         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
21575         * convert.c (convert_to_pointer): Adjust call to
21576         force_fit_type_double.
21577         * tree-vrp.c (extract_range_from_assert,
21578         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
21579         * fold-const.c: Update comment.
21580         (int_const_binop, fold_convert_const_int_from_int,
21581         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
21582         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
21583         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
21584         round_up_loc): Adjust call to force_fit_type_double.
21585
21586 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
21587
21588         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
21589
21590 2010-06-28  Martin Jambor  <mjambor@suse.cz>
21591
21592         * tree-sra.c (convert_callers): New parameter, change fndecls of
21593         recursive calls.
21594         (modify_function): Pass the old decl to convert_callers.
21595
21596 2010-06-28  Martin Jambor  <mjambor@suse.cz>
21597
21598         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
21599         ipa_check_create_node_params and ipa_initialize_node_params with
21600         checking asserts they are not necessary.
21601
21602 2010-06-28  Jan Hubicka  <jh@suse.cz>
21603
21604         PR tree-optimization/44687
21605         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
21606
21607 2010-06-28  Martin Jambor  <mjambor@suse.cz>
21608
21609         PR c++/44535
21610         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
21611         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
21612         instead of BINFO_BASE_BINFO.
21613
21614 2010-06-28  Michael Matz  <matz@suse.de>
21615
21616         PR middle-end/44592
21617         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
21618         proper VDEF chain for intermediate stores in the sequence.
21619
21620 2010-06-28  Jan Hubicka  <jh@suse.cz>
21621
21622         PR tree-optimization/44357
21623         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
21624         uninlinable functions.
21625
21626 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
21627
21628         * config.gcc (powerpc*-*-*): Handle titan.
21629         * config/rs6000/rs6000.c (titan_cost): New costs.
21630         (rs6000_override_options): Add "titan" to processor_target_table.
21631         Add Titan to branch alignment logic.
21632         Correctly set rs6000_cost for titan.
21633         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
21634         * config/rs6000/titan.md: New file.
21635         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
21636
21637 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
21638
21639         * tree-browser.c (TB_history_stack): Convert to a VEC.
21640         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
21641         (TB_history_prev): Likewise.
21642
21643 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
21644
21645         * vec.h (vec_heap_free): Add parentheses around free.
21646
21647 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
21648
21649         * system.h: Poison GCC_EXCEPT_H for front-end files.
21650
21651         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
21652         langhook.
21653         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
21654         Define to NULL by default.
21655         * except.h: Define GCC_EXCEPT_H.
21656         (doing_eh): Remove prototype.
21657         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
21658         (lang_protect_cleanup_actions): Remove.
21659         * except.c (lang_protect_cleanup_actions): Remove.
21660         (doing_eh): Remove.
21661         (gen_eh_region): Don't check doing_eh here.
21662         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
21663         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
21664         instead of lang_protect_cleanup_actions.
21665         * omp-low.c (maybe_catch_exception): Likewise.
21666         * Makefile.in: Update dependencies.
21667
21668 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
21669
21670         * cgraph.h (struct varpool_node): new used_from_object_file flag.
21671         (struct cgraph_local_info): new used_from_object_file flag.
21672         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
21673         (cgraph_clone_node): initialize used_from_object_file.
21674         (cgraph_create_virtual_clone): initialize used_from_object_file.
21675         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
21676         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
21677         when compiling with -fwhole-program.
21678         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
21679         internal resolver.
21680         * ipa.c (function_and_variable_visibility): Set externally_visible
21681         flag of varpool_node if used_from_object_file flag is set.
21682         (cgraph_externally_visible_p): check used_from_object_file flag.
21683         * doc/invoke.texi (-fwhole-program option): Change description of
21684         externally_visible attribute accordingly.
21685         * doc/extend.texi (externally_visible): Ditto.
21686
21687 2010-06-27  Jan Hubicka  <jh@suse.cz>
21688
21689         * params.def (max-inline-insns-auto): Default to 40.
21690         * doc/invoke.texi (max-inline-insns-auto): Document the change.
21691
21692 2010-06-27  Jan Hubicka  <jh@suse.cz>
21693
21694         PR middle-end/44671
21695         PR middle-end/44686
21696         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
21697         signature change.
21698         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
21699         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
21700
21701 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
21702
21703         * target.h (struct gcc_target): Add register_move_cost field.
21704         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
21705         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
21706         * targhooks.c (default_register_move_cost): New function.
21707         * targhooks.h (default_register_move_cost): Declare function.
21708         * defaults.h (REGISTER_MOVE_COST): Delete.
21709         * ira-int.h (ira_register_move_cost): Update comment.
21710         * ira.c (ira_register_move_cost): Update comment.
21711         * reload.h (register_move_cost): Declare.
21712         * reginfo.c (register_move_cost): New function.
21713         (move_cost): Update comment.
21714         (init_move_cost, memory_move_secondary_cost): Replace
21715         REGISTER_MOVE_COST with register_move_cost.
21716         * postreload.c (reload_cse_simplify_set): (Ditto.).
21717         * reload.c (find_valid_class, find_reloads): (Ditto.).
21718         * reload1.c (choose_reload_regs): (Ditto.).
21719         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
21720         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
21721         * doc/md.texi (can_create_pseudo_p): Update documentation.
21722
21723         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
21724         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
21725         * config/i386/i386.h (ix86_memory_move_cost): Make static.
21726         (TARGET_MEMORY_MOVE_COST): Define.
21727
21728         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
21729         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
21730         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
21731         (TARGET_MEMORY_MOVE_COST): Define.
21732
21733 2010-06-27  Richard Guenther  <rguenther@suse.de>
21734
21735         PR tree-optimization/44683
21736         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
21737         false edge from the inverted condition.
21738
21739 2010-06-27  Richard Guenther  <rguenther@suse.de>
21740
21741         PR middle-end/44684
21742         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
21743         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
21744         for register LHS.  Or non-store assignments.
21745
21746 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
21747
21748         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
21749         (sparc_emit_set_const64): Likewise.  Remove disabled code.
21750         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
21751         (sparc_emit_set_const64): Likewise.
21752
21753 2010-06-26  Catherine Moore  <clm@codesourcery.com>
21754
21755         * config/mips/mips.md (alu_type): New attribute.
21756         (type): Infer type from alu_type.
21757         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
21758         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
21759         *subsi3_extended, negsi2, negdi2, *low<mode>,
21760         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
21761         xor<mode>3, *nor<mode>3,
21762         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
21763         *zero_extendhi_truncqi):  Set alu_type instead of type.
21764
21765 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
21766
21767         * config/alpha/alpha.c (alpha_need_linkage): Adjust
21768         splay_tree_new_ggc call.
21769         (alpha_use_linkage): Likewise.
21770
21771 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
21772
21773         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
21774         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
21775         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
21776         (static_specs): Remove switches_need_spaces.
21777         (process_command, do_self_spec): Hardcode handling "-o" instead of
21778         checking switches_need_spaces.
21779         * system.h (SWITCHES_NEED_SPACES): Poison.
21780
21781 2010-06-26  Richard Guenther  <rguenther@suse.de>
21782
21783         PR tree-optimization/44393
21784         * tree-loop-distribution.c (generate_loops_for_partition): Fix
21785         stmt removal and VOP renaming.
21786         (generate_memset_zero): Remove redundant stmt updating.
21787         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
21788         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
21789
21790 2010-06-26  Jan Hubicka  <jh@suse.cz>
21791
21792         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
21793         edges comming from header are equivalent.
21794         (visit_bb): Handle PHIs correctly.
21795         * tree-inline.c (copy_phis_for_bb): Be able to copy
21796         PHI from entry edge.
21797         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
21798
21799 2010-06-26  Richard Guenther  <rguenther@suse.de>
21800
21801         PR middle-end/44674
21802         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
21803         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
21804
21805 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
21806
21807         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
21808         add_infile, alloc_switch): New.
21809         (process_command): Remove variable lang_n_infiles.  Process
21810         options in a single pass.  Use new functions for allocating
21811         infiles and switches arrays.  Properly skip operands of
21812         -Xpreprocessor and -Xassembler.
21813
21814 2010-06-26  Jan Hubicka  <jh@suse.cz>
21815
21816         PR middle-end/44671
21817         * cgraphunit.c (cgraph_function_versioning): Remove wrong
21818         cgraph_make_decl_local call; fix typo copying RTL data.
21819
21820 2010-06-25  DJ Delorie  <dj@redhat.com>
21821
21822         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
21823         (m32c_output_aligned_common): Likewise.
21824         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
21825         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
21826         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
21827         (m32c_register_pragmas): Register it.
21828         * config/m32c/m32c.c (m32c_get_pragma_address): New.
21829         (m32c_insert_attributes): Set #pragma address decls volatile.
21830         (pragma_entry_eq): New.
21831         (pragma_entry_hash): New.
21832         (m32c_note_pragma_address): New.
21833         (m32c_get_pragma_address): New.
21834         (m32c_output_aligned_common): New.
21835         * doc/extend.texi: Document the new pragma.
21836
21837         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
21838         also.
21839         * config/m32c/predicates.md (m32c_any_operand): Check the code
21840         instead of memory_operand so as to allow matching volatile MEMs.
21841         (m32c_nonimmediate_operand): Likewise.
21842         (mra_operand): Allow volatiles.
21843
21844 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
21845
21846         PR debug/44610
21847         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
21848         address if the offset is unknown.
21849
21850 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
21851
21852         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
21853         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
21854         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
21855         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
21856         to ia64_start_function. Invoke it.
21857         * config/ia64/ia64.c (ia64_start_function): Call new function
21858         dwarf2out_vms_debug_main_pointer.
21859
21860 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
21861
21862         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
21863         statements computing the true predicate.
21864
21865 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
21866
21867         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
21868         to boolean_true_node.
21869         (reset_bb_predicate): New.
21870         (predicate_bbs): Call reset_bb_predicate.
21871
21872 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
21873
21874         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
21875         (tree_if_conversion): Returns true when something has been changed.
21876         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
21877         changed something.
21878
21879 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
21880
21881         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
21882         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
21883         * tree-if-conv.c: Include dbgcnt.h.
21884         (tree_if_conversion): Use if_conversion_tree to count the number of
21885         if-convertible loops.
21886
21887 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
21888
21889         * common.opt (fprefetch-loop-arrays): Re-define
21890         -fprefetch-loop-arrays as a tri-state option with the initial
21891         value of -1.
21892         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
21893         pass only when flag_prefetch_loop_arrays > 0.
21894         * toplev.c (process_options): Note that, with tri-states,
21895         flag_prefetch_loop_arrays>0 means prefetching is enabled.
21896         * config/i386/i386.c (override_options): Enable prefetching at -O3
21897         for a set of CPUs that sw prefetching is helpful.
21898         (software_prefetching_beneficial_p): New.  Return TRUE if software
21899         prefetching is beneficial for the given CPU.
21900
21901 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
21902
21903         PR rtl-optimization/44326
21904         * implicit-zee.c (find_removable_zero_extends): Replace
21905         INSN_P with NONDEBUG_INSN_P.
21906
21907 2010-06-25  Martin Jambor  <mjambor@suse.cz>
21908
21909         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
21910         (struct ipa_node_params): Removed the modification_analysis_done flag.
21911         (ipa_is_param_modified): Removed.
21912         (ipa_analyze_node): Declare.
21913         (ipa_compute_jump_functions): Remove declaration.
21914         (ipa_count_arguments): Likewise.
21915         (ipa_detect_param_modifications): Likewise.
21916         (ipa_analyze_params_uses): Likewise.
21917         * ipa-prop.c (struct param_analysis_info): New type.
21918         (visit_store_addr_for_mod_analysis): Removed.
21919         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
21920         moved down in the file.
21921         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
21922         (ipa_count_arguments): Made static.
21923         (mark_modified): New function.
21924         (is_parm_modified_before_call): New function.
21925         (compute_pass_through_member_ptrs): New parameter parms_info, call
21926         is_parm_modified_before_call instead of ipa_is_param_modified.
21927         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
21928         it to compute_pass_through_member_ptrs.
21929         (ipa_compute_jump_functions): New parameter parms_info, pass it to
21930         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
21931         on the callee if it is analyzed.  Made static.
21932         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
21933         is_parm_modified_before_call instead of ipa_is_param_modified.
21934         (ipa_analyze_call_uses): New parameter parms_info, pass it to
21935         ipa_analyze_indirect_call_uses.
21936         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
21937         ipa_analyze_call_uses.
21938         (ipa_analyze_params_uses): New parameter parms_info, pass it to
21939         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
21940         (ipa_analyze_node): New function.
21941         (ipa_print_node_params): Do not dump the modified flag.
21942         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
21943         it.  Do not stream the modified parameter flag.
21944         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
21945         it.  Do not stream the modified parameter flag.
21946         * ipa-cp.c (ipcp_analyze_node): Removed.
21947         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
21948         with only a call to ipa_analyze_node.
21949         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
21950         node with only a call to ipa_analyze_node.
21951
21952 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21953
21954         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
21955
21956 2010-06-25  Jan Hubicka  <jh@suse.cz>
21957
21958         * tree-pass.h (pass_split_functions): Declare.
21959         * opts.c (decode_options): Enable function splitting at -O2
21960         * timevar.def (TV_IPA_FNSPLIT): New macro.
21961         * ipa-split.c: New file.
21962         * common.opt (-fpartial-inlining): New flag.
21963         * Makefile.in (ipa-split.o): New object file.
21964         * passes.c (init_optimization_passes): Add ipa-split.
21965         * params.def (partial-inlining-entry-probability): New parameters.
21966         * doc/invoke.texi (-fpartial-inlining): New.
21967
21968 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21969
21970         PR 44665
21971         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
21972         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
21973         (gimplify_expr): Likewise.
21974
21975 2010-06-25  Martin Jambor  <mjambor@suse.cz>
21976
21977         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
21978         statements instead of bailing out on them.
21979         (ipa_analyze_indirect_call_uses): Do not require that loads from the
21980         parameter are in the same BB as the condition.  Update comments.
21981
21982 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
21983
21984         PR middle-end/43866
21985         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
21986         true or always false, return NULL_TREE.
21987         (tree_unswitch_single_loop): Optimize conditions even when reaching
21988         max-unswitch-level parameter.  If num > 0, optimize first all conditions
21989         using entry checks, then do still reachable block discovery and consider
21990         only conditions in still reachable basic blocks in the loop.
21991
21992         PR tree-optimization/44539
21993         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
21994         the call doesn't have LHS, but has VDEF.
21995
21996 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
21997
21998         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
21999         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
22000         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
22001         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
22002         * system.h (MODIFY_TARGET_NAME): Poison.
22003
22004 2010-06-25  Alan Modra  <amodra@gmail.com>
22005
22006         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
22007         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
22008         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
22009         CMODEL_LARGE as default.
22010         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
22011         (offsettable_ok_by_alignment): Delete.
22012         (rs6000_emit_move): Remove mcmodel=medium optimization.
22013
22014 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22015
22016         With large parts from Jim Wilson:
22017         PR target/43902
22018         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
22019         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22020         * optabs.c (optab_for_tree_code): Likewise.
22021         (expand_widen_pattern_expr): Likewise.
22022         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
22023         out of execute_optimize_widening_mul.
22024         (convert_plusminus_to_widen): New function.
22025         (execute_optimize_widening_mul): Use the two new functions.
22026         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
22027         Remove code to generate widening multiply-accumulate.  Add support
22028         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22029         * gimple-pretty-print.c (dump_ternary_rhs): New function.
22030         (dump_gimple_assign): Call it when appropriate.
22031         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
22032         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
22033         (expand_gimple_stmt_1): Likewise.
22034         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
22035         WIDEN_MULT_MINUS_EXPR.
22036         * tree-ssa-operands.c (get_expr_operands): Likewise.
22037         * tree-inline.c (estimate_operator_cost): Likewise.
22038         * gimple.c (extract_ops_from_tree_1): Renamed from
22039         extract_ops_from_tree.  Add new arg for a third operand; fill it.
22040         (gimple_build_assign_stat): Support operations with three operands.
22041         (gimple_build_assign_with_ops_stat): Likewise.
22042         (gimple_assign_set_rhs_from_tree): Likewise.
22043         (gimple_assign_set_rhs_with_ops_1): Renamed from
22044         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
22045         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
22046         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
22047         WIDEN_MULT_MINUS_EXPR.
22048         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
22049         (extract_ops_from_tree_1): Adjust declaration.
22050         (gimple_assign_set_rhs_with_ops_1): Likewise.
22051         (gimple_build_assign_with_ops): Pass NULL for last operand.
22052         (gimple_build_assign_with_ops3): New macro.
22053         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
22054         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
22055         functions.
22056         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
22057         (verify_gimple_assign): Call it.
22058         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
22059         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
22060         functions for dealing with three-operand statements.
22061         * tree.c (commutative_ternary_tree_code): New function.
22062         * tree.h (commutative_ternary_tree_code): Declare it.
22063         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
22064         ternary statements.
22065         (gimple_assign_nonzero_warnv_p): Likewise.
22066         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
22067         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
22068         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
22069         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
22070         (struct hashtable_expr): New member ternary in the union.
22071         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
22072         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
22073         (iterative_hash_hashable_expr): Likewise.
22074         (print_expr_hash_elt): Handle EXPR_TERNARY.
22075         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
22076         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
22077         statements.  Handle GIMPLE_TERNARY_RHS.
22078
22079 2010-06-25  Jan Hubicka  <jh@suse.cz>
22080
22081         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
22082
22083 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
22084
22085         PR c/44517
22086         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
22087         parameters are not good.
22088         (c_parser_parameter_declaration): Error unknown type name if the type
22089         name can't start declaration specifiers.
22090
22091 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
22092
22093         * gcc.c (translate_options): Don't mention +e in comment.
22094         (process_command): Don't handle +e specially.
22095
22096 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22097
22098         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
22099
22100         * ira-build.c (merge_hard_reg_conflicts): New function.
22101         (create_cap_allocno, copy_info_to_removed_store_destinations,
22102         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
22103         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
22104         (remove_unnecessary_allocnos, remove_low_level_allocnos)
22105         copy_nifo_to_removed_store_destination): Use them.
22106         * ira-lives.c (make_hard_regno_born): New function, split out of
22107         make_regno_born.
22108         (make_allocno_born): Likewise.
22109         (make_hard_regno_dead): New function, split out of make_regno_dead.
22110         (make_allocno_dead): Likewise.
22111         (inc_register_pressure): New function, split out of set_allocno_live.
22112         (dec_register_pressure): New function, split out of clear_allocno_live.
22113         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
22114         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
22115         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
22116         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
22117         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
22118         mark_pseudo_regno_live.
22119         (process_bb_node_lives): Use mark_pseudo_regno_live,
22120         make_hard_regno_born and make_allocno_dead.
22121         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
22122         set_allocno_live, clear_allocno_live): Delete functions.
22123
22124         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
22125         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
22126         functions.
22127         (ira_flattening): Use ira_parent_allocno.
22128         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
22129         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
22130
22131         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
22132         statement.
22133
22134         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
22135         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
22136         minmax_set_iter_cond, minmax_set_iter_next,
22137         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
22138         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
22139         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
22140         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
22141         uses changed.
22142
22143         * ira-int.h (struct live_range, live_range_t): Renamed from struct
22144         ira_allocno_live_range and allocno_live_range_t; all uses changed.
22145         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
22146         All uses changed.
22147
22148 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
22149
22150         * thumb2.md (thumb2_tlobits_cbranch): Delete.
22151         (peephole2 to convert zero_extract/compare of single bit to
22152          lshift/compare): New.
22153
22154 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
22155
22156         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
22157         recursive call and call to 'int_const_binop'.
22158         (build_range_check, fold_cond_expr_with_comparison, unextend,
22159         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
22160         multiple_of_p): Adjust call to const_binop.
22161
22162 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
22163
22164         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
22165         determine size of XFmode operand.
22166         (XFmode extended DFmode push splitter): Ditto.
22167         (XFmode extended SFmode push splitter): Ditto.
22168
22169 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
22170
22171         PR target/44588
22172         * config/i386/i386.md (extract_code): New.
22173         (<u>divmodqi4): Likewise.
22174         (divmodhiqi3): Likewise.
22175         (udivmodhiqi3): Likewise.
22176         (<u>divqi3): Remvoved.
22177
22178 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
22179
22180         PR middle-end/44492
22181         * recog.h (struct recog_data): Add is_asm field.
22182         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
22183         present in constraints of inline-asm operand and memory operand
22184         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
22185         (extract_insn): Initialize recog_data.is_asm.
22186         * doc/md.texi (Constraints): Document operand side-effect rules.
22187
22188 2010-06-24  Andi Kleen  <ak@linux.intel.com>
22189
22190         * c-parser.c (c_parser_conditional_expression): Call
22191         warn_for_omitted_condop.
22192         * doc/invoke.texi: Document omitted condop warning.
22193
22194 2010-06-24  Nick Clifton<nickc@redhat.com>
22195
22196         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
22197         insn in the sequence is a jump insn before setting its label.
22198
22199 2010-06-24  Alan Modra  <amodra@gmail.com>
22200
22201         * collect2.c (main): Match exactly --version and --help.
22202
22203 2010-06-24  DJ Delorie  <dj@redhat.com>
22204
22205         * config/m32c/m32c-pragma.c: Don't include rtl.h.
22206
22207 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
22208
22209         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
22210         using X87MODEF mode iterator.
22211         (pushsf splitter): Macroize splitter using P mode iterator.
22212         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
22213         mode iterator.
22214
22215         (*movxf_internal): Rename from *movxf_integer.
22216         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
22217         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
22218         (*movdf_internal): Rename from *movdf_integer.
22219         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
22220         (*movsf_internal): Rename from *movdf_1.
22221
22222 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
22223
22224         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
22225         (const_gimple_seq_node): Removed typedefs.
22226
22227         * gimple.h (gimple_seq_node_d, gimple_seq_node)
22228         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
22229
22230 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
22231
22232         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
22233         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
22234         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
22235         and CODE_FOR_vec_extract_lo_v4df.
22236
22237         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
22238         Changed to define_insn_and_split.
22239         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
22240         (vec_extract_lo_v16hi): Likewise.
22241         (vec_extract_lo_v32qi): Likewise.
22242         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
22243         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
22244
22245 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
22246
22247         PR target/44640
22248         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
22249         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
22250         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
22251         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
22252         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
22253
22254         PR target/44640
22255         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
22256
22257         PR other/44644
22258         * df-core.c (struct df): Rename to df_d.
22259         * df.h (struct df): Likewise.
22260         * dse.h (struct df): Remove forward declaration.
22261         * recog.h (struct insn_data): Rename to:
22262         (struct_insn_data_d).  Adjusted all users.
22263
22264 2010-06-23  Arnaud Charlet  <charlet@adacore.com
22265
22266         PR ada/22220
22267         * doc/install.texi: Update requirements to build GNAT.
22268
22269 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
22270
22271         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
22272         enum type.
22273         (m68k_sched_attr_opx_type): Remove unreachable return.
22274         (m68k_sched_attr_opy_type): Likewise.
22275         (m68k_sched_attr_size): Likewise.
22276         (sched_get_opxy_mem_type): Likewise.
22277         (m68k_sched_attr_op_mem): Likewise.
22278
22279 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
22280
22281         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
22282         new statement and adjust VDEF only if necessary.  Remove superfluous
22283         call to maybe_clean_or_replace_eh_stmt.
22284         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
22285         copy the flags.
22286         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
22287         * tree-inline.c (copy_bb): ...and not there.
22288
22289 2010-06-22  Cary Coutant  <ccoutant@google.com>
22290
22291         * dwarf2out.c (is_nested_in_subprogram): New function.
22292         (should_move_die_to_comdat): Use it.
22293         (copy_ancestor_tree): Don't mark DIEs here.
22294         (copy_decls_walk): Start walk from root of newly-added tree;
22295         mark DIEs here instead.
22296
22297 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
22298
22299         * config/i386/i386.md (unit): Also check sseishft1.
22300
22301 2010-06-22  Jan Hubicka  <jh@suse.cz>
22302
22303         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
22304         enabled.
22305
22306 2010-06-22  Jan Hubicka  <jh@suse.cz>
22307
22308         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
22309         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
22310         Return true if something changed.
22311         * df.h (df_confluence_function_n): Return bool.
22312         * df-core.c (df_worklist_propagate_forward,
22313         df_worklist_propagate_backward): Track changes and ages.
22314         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
22315         track ages.
22316         * dse.c (dse_confluence_n): Return always true.
22317
22318 2010-06-22  Jan Hubicka  <jh@suse.cz>
22319
22320         * bitmap.c (bitmap_clear_bit): Micro optimize.
22321
22322 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
22323
22324         * config/i386/i386.md (SWI1248x): New mode iterator.
22325         (SWI48x): Ditto.
22326         (SWI12): Ditto.
22327         (SWI24): Ditto.
22328
22329         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
22330         SWI1248x mode iterator.
22331         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
22332         using SWI124 mode iterator.
22333         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
22334         mode iterator.
22335         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
22336         *pushdi2_prologue_rex64 using P mode iterator.
22337         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
22338         using SWI48 mode iterator.
22339         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
22340         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
22341         using SWI1248x mode iterator.
22342         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
22343         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
22344         SWI48 mode iterator.
22345         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
22346         iterator.
22347         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
22348         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
22349         SWI12 mode iterator.
22350         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
22351         SWI12 mode iterator.
22352         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
22353         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
22354         SWI24 mode iterator.
22355         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
22356         SWI48 mode iterator.
22357         (mov<mode>_insn_1): New expander.
22358         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
22359         using SWI48x mode iterator.
22360
22361         (*movoi_internal_avx): Rename from *movoi_internal.
22362         (*movti_internal_rex64): Rename from *movti_rex64.
22363         (*movti_internal_sse): Rename from *movti_sse.
22364         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
22365         (*movdi_internal): Rename from *movdi_2.
22366         (*movsi_internal): Rename from *movsi_1.
22367         (*movhi_internal): Rename from *movhi_1.
22368         (*movqi_internal): Rename from *movqi_1.
22369
22370         (insv): Update the call to gen_movsi_insv_1 for rename.
22371         * config/i386/i386.c (promote_duplicated_reg): Ditto.
22372
22373 2010-06-22  Jan Hubicka  <jh@suse.cz>
22374
22375         * passes.c (execute_function_todo): Move call of statistics_fini_pass
22376         to ...
22377         (execute_todo) ... this one.
22378
22379 2010-06-22  Alan Modra  <amodra@gmail.com>
22380
22381         PR target/44364
22382         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
22383         * caller-save.c (insert_restore, insert_save): Use non-validate
22384         form of adjust_address.
22385
22386 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22387
22388         PR target/39690
22389         * config/pa/pa.c (override_options): Disable
22390         -freorder-blocks-and-partition.
22391
22392 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
22393
22394         PR target/44615
22395         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
22396
22397         * config/i386/i386.md (type): Add sseishft1
22398
22399         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
22400         (ppro_insn_load): Likewise.
22401         (ppro_insn_store): Likewise.
22402         (ppro_insn_both): Likewise.
22403
22404         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
22405         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
22406         for type.
22407         (*vec_extractv2di_1_avx): Likewise.
22408         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
22409         type.  Remove atom_unit.
22410         (*vec_extractv2di_1_sse2): Likewise.
22411
22412 2010-06-21  DJ Delorie  <dj@redhat.com>
22413
22414         * diagnostic.h (diagnostic_classification_change_t): New.
22415         (diagnostic_context): Add history and push/pop list.
22416         (diagnostic_push_diagnostics): Declare.
22417         (diagnostic_pop_diagnostics): Declare.
22418         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
22419         from pragmas in a history chain instead of the global table.
22420         (diagnostic_push_diagnostics): New.
22421         (diagnostic_pop_diagnostics): New.
22422         (diagnostic_report_diagnostic): Scan history chain to find state
22423         of diagnostics as of the diagnostic location.
22424         * opts.c (set_option): Pass UNKNOWN_LOCATION to
22425         diagnostic_classify_diagnostic.
22426         (enable_warning_as_error): Likewise.
22427         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
22428         use in the history chain.
22429         * doc/extend.texi: Document pragma GCC diagnostic changes.
22430
22431 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
22432
22433         * dwarf2out.c (add_linkage_name): New function.  Don't add
22434         anything to DW_TAG_member DIEs.
22435         (add_name_and_src_coords_attributes): Use it.
22436         (gen_variable_die): Call it for C++ static data members if
22437         specification is DW_TAG_member.
22438
22439         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
22440         C++ char16_t and char32_t.
22441
22442         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
22443         * genattrtab.c: Include vecprim.h.
22444         (cached_attrs, cached_attr_count, attrs_seen_once,
22445         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
22446         attrs_cached_after): New variables.
22447         (find_attrs_to_cache): New function.
22448         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
22449         (write_test_expr): Add attrs_cached argument, return it too,
22450         attempt to cache non-const attributes used more than once in
22451         a single case handling.
22452         (write_attr_get): Use find_attrs_to_cache, for caching candidates
22453         emit cached_* variables.  Adjust write_attr_set callers.
22454         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
22455         to find attributes that should be cached in this block.  Adjust
22456         write_test_expr callers.
22457         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
22458         callers.
22459         (make_automaton_attrs): Adjust write_test_expr caller.
22460
22461         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
22462         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
22463         (make_automaton_attrs): If find_tune_attr returns non-NULL,
22464         write separate internal_dfa_insn_code_* and insn_default_latency_*
22465         functions for each attribute's value and emit init_sched_attrs
22466         function and function pointers.
22467         * genattr.c (const_attrs, reservations): New variables.
22468         (gen_attr): Add const attributes to const_attrs vector.
22469         (check_tune_attr, find_tune_attr): New functions.
22470         (main): Add reservations to reservations vector.  If find_tune_attr
22471         returns true, add prototype for init_sched_attrs and make
22472         internal_dfa_insn_code and insn_default_latency function pointers,
22473         otherwise define init_sched_attrs as dummy macro.
22474         * cfgexpand.c: Include insn-attr.h.
22475         (gimple_expand_cfg): Call init_sched_attrs.
22476
22477         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
22478
22479         PR target/44575
22480         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
22481         va_arg from a set of register save slots into a temporary,
22482         if the container is bigger than type size, do the copying
22483         using smaller mode or using memcpy.
22484
22485         PR bootstrap/44426
22486         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
22487         prototype.
22488         (sel_print_to_dot): Remove macro.
22489         (sel_print): Likewise.  New prototype.
22490         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
22491         (sel_print): New function.
22492
22493 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22494
22495         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
22496         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
22497
22498 2010-06-21  Nick Clifton  <nickc@redhat.com>
22499
22500         * config/rx/rx.h (PTRDIFF_TYPE): Define.
22501         (SMALL_REGISTER_CLASS): Define (to zero).
22502         (PRINT_OPERAND): Delete.
22503         (PRINT_OPERAND_ADDRESS): Delete.
22504         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
22505         (rx_print_operand_address): Delete prototype.
22506         * config/rx/rx.c (rx_print_operand): Make static.
22507         Allow %H and %L to handle CONST_DOUBLEs.
22508         (rx_print_operand_address): Make static.
22509         (rx_gen_move_template): Rename local variable 'template' to
22510         out_template.
22511         (rx_function_arg): Do not pass unknown sized objects in registers.
22512         (TARGET_PRINT_OPERAND): Define.
22513         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22514
22515 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
22516
22517         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
22518
22519 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
22520
22521         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
22522         stack-alignment for simple leaf-functions.
22523
22524 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
22525
22526         * doc/install.texi: Document bootstrap-lto.
22527
22528 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
22529
22530         PR debug/44248
22531         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
22532         (input_function): Drop them here, if VTA is disabled.
22533
22534 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
22535
22536         PR target/44546
22537         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
22538         New predicate.
22539         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
22540         ix86_swapped_fp_comparsion_operator instead of
22541         ix86_fp_comparison_operator.
22542
22543         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
22544         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
22545         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
22546         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
22547         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
22548         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
22549
22550 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
22551
22552         PR other/32998
22553         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
22554         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
22555         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
22556         (decode_cmdline_option): Update for this return value.  Set
22557         orig_option_with_args_text field.  Set arg field for unknown
22558         options.  Make static.
22559         (decode_cmdline_options_to_array): New.
22560         (prune_options): Update handling of find_opt return value.
22561         * opts.c (read_cmdline_option): Take decoded option.  Return void.
22562         (read_cmdline_options): Take decoded options.
22563         (decode_options): Add parameters for decoded options.  Use
22564         decode_cmdline_options_to_array.  Use decoded options for -O
22565         scan.  Use integral_argument for -O parameters.  Update call to
22566         read_cmdline_options.
22567         (enable_warning_as_error): Update handling of find_opt return value.
22568         * opts.h: Update comment on unknown options.
22569         (struct cl_decoded_option): Update comments on opt_index and arg.
22570         Add orig_option_with_args_text.
22571         (decode_cmdline_option): Remove.
22572         (decode_cmdline_options_to_array): Declare.
22573         (decode_options): Update prototype.
22574         * toplev.c (save_argv): Remove.
22575         (save_decoded_options, save_decoded_options_count): New.
22576         (read_integral_parameter): Remove.
22577         (print_switch_values): Use decoded options.
22578         (toplev_main): Don't set save_argv.  Update call to decode_options.
22579         * toplev.h (read_integral_parameter): Remove.
22580         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
22581
22582 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
22583
22584         PR target/44072
22585         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
22586         immediate.
22587         * constraints.md (Pw, Px): New constraints.
22588         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
22589
22590 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
22591
22592         * config/i386/sse.md (fma4modesuffixf4): Removed.
22593         (ssemodesuffixf2s): Likewise.
22594         (ssemodesuffixf4): Likewise.
22595         (ssemodesuffixf2c): Likewise.
22596         (ssescalarmodesuffix2s): Likewise.
22597         (avxmodesuffixf2c): Likewise.
22598         (ssemodesuffix): New.
22599         (ssescalarmodesuffix): Likewise.
22600         Update patterns with ssemodesuffix and ssescalarmodesuffix.
22601
22602 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
22603
22604         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
22605
22606 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
22607
22608         * stor-layout.c (debug_rli): Remove unused local variables.
22609
22610 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
22611
22612         PR rtl-optimization/40900
22613         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
22614         original expression for later reuse.
22615         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
22616         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
22617
22618 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
22619
22620         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
22621         double_int_fits_in_uhwi_p): Implement as static inline.
22622         (double_int_xor): New inline function.
22623         (double_int_lrotate, double_int_rrotate, double_int_max,
22624         double_int_umax, double_int_smax, double_int_min, double_int_umin,
22625         double_int_smin): Declare.
22626         (lrotate_double, rrotate_double): Remove declaration.
22627         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
22628         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
22629         (double_int_lrotate, double_int_rrotate, double_int_max,
22630         double_int_umax, double_int_smax, double_int_min, double_int_umin,
22631         double_int_smin): New function.
22632         * fold-const.c (int_const_binop): Clean up, use double_int_*
22633         functions.
22634         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
22635         double_int_* and immed_double_int_const functions.
22636
22637 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
22638
22639         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
22640         * function.c (types_used_by_cur_var_decl): Likewise.
22641         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
22642
22643 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
22644
22645         * tree.h (record_layout_info): Change type of pending_statics field
22646         to a VEC.
22647         * stor-layout.c (start_record_layout): Store NULL into
22648         pending_statics.
22649         (debug_rli): Call debug_vec_tree instead of debug_tree.
22650         (place_field): Likewise.
22651         (finish_record_layout): Likewise.
22652
22653 2010-06-18  Alan Modra  <amodra@gmail.com>
22654
22655         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
22656
22657 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22658
22659         PR target/43740
22660         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
22661         for SET source operand from SET destination operand.
22662
22663 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
22664
22665         PR rtl-optimization/39871
22666         * reload1.c (init_eliminable_invariants): For flag_pic, disable
22667         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
22668         (function_invariant_p): Rule out a plus of frame or arg pointer with
22669         a SYMBOL_REF.
22670         * ira.c (find_reg_equiv_invariant_const): Likewise.
22671
22672 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
22673
22674         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
22675         print_operand_address and puts to output the operand for CONST.
22676
22677 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
22678
22679         PR debug/44572
22680         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
22681         hook.
22682
22683 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22684
22685         * v850-protos.h (print_operand): Delete.
22686         (print_operand_address): Delete.
22687         * v850.h (PRINT_OPERAND): Delete.
22688         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22689         (PRINT_OPERAND_ADDRESS): Delete.
22690         * v850.c (print_operand_address): Rename to...
22691         (v850_print_operand_address): ...this.  Make static. Call
22692         v850_print_operand.
22693         (print_operand): Rename to...
22694         (v850_print_operand): ...this.  Make static.  Call
22695         v850_print_operand_address.
22696         (v850_print_operand_punct_valid_p): New function.
22697         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
22698         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
22699
22700 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22701
22702         * config/sh/sh-protos.h (print_operand): Delete.
22703         (print_operand_address): Delete.
22704         * config/sh/sh.h (PRINT_OPERAND): Delete.
22705         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22706         (PRINT_OPERAND_ADDRESS): Delete.
22707         * config/sh/sh.c (sh_print_operand_address): Make static.
22708         (sh_print_operand): Make static.  Call sh_print_operand_address
22709         and sh_print_operand.
22710         (sh_print_operand_punct_valid_p): New function.
22711         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
22712         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
22713
22714 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22715
22716         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
22717         (mcore_print_operand_address): Delete.
22718         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
22719         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22720         (PRINT_OPERAND_ADDRESS): Delete.
22721         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
22722         (mcore_print_operand): Make static.
22723         (mcore_print_operand_punct_valid_p): New function.
22724         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
22725         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
22726
22727 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22728
22729         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
22730         (print_operand_address): Delete.
22731         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
22732         (PRINT_OPERAND_ADDRESS): Delete.
22733         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
22734         static.
22735         (m68hc11_print_operand): Make static.
22736         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
22737
22738 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22739
22740         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
22741         (m32r_print_operand_address): Delete.
22742         * config/m32r/m32r.h (m32r_punct_chars): Delete.
22743         (PRINT_OPERAND): Delete.
22744         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22745         (PRINT_OPERAND_ADDRESS): Delete.
22746         * config/m32r/m32r.c (m32r_punct_chars): Make static.
22747         (m32r_print_operand_address): Make static.
22748         (m32r_print_operand): Make static.
22749         (m32r_print_operand_punct_valid_p): New function.
22750         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22751         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22752
22753 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22754
22755         * config/iq2000/iq2000-protos.h (print_operand): Delete.
22756         (print_operand_address): Delete.
22757         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
22758         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22759         (PRINT_OPERAND_ADDRESS): Delete.
22760         (iq2000_print_operand_punct): Delete.
22761         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
22762         (iq2000_print_operand_address): Make static.
22763         (iq2000_print_operand): Make static.
22764         (iq2000_print_operand_punct_valid_p): New function.
22765         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22766         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22767
22768 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22769
22770         * config/frv/frv-protos.h (frv_print_operand): Delete.
22771         (frv_print_operand_address): Delete.
22772         * config/frv/frv.h (PRINT_OPERAND): Delete.
22773         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22774         (PRINT_OPERAND_ADDRESS): Delete.
22775         * config/frv/frv.c (frv_print_operand_address): Make static.
22776         (frv_print_operand): Make static.
22777         (frv_print_operand_punct_valid_p): New function.
22778         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22779         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22780
22781 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
22782
22783         * tree.h (vec_member): Declare.
22784         * tree.c (vec_member): Define.
22785
22786 2010-06-17  Richard Guenther  <rguenther@suse.de>
22787
22788         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
22789         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
22790
22791 2010-06-17  Richard Guenther  <rguenther@suse.de>
22792
22793         * tree-inline.c (declare_return_variable): Remove bogus code.
22794
22795 2010-06-17  Richard Guenther  <rguenther@suse.de>
22796
22797         * gimplify.c (gimplify_bind_expr): Always promote complex
22798         and vector variables to registers if possible.
22799
22800 2010-06-17  Richard Guenther  <rguenther@suse.de>
22801
22802         * expr.c (get_inner_reference): Use double_int for bit_offset
22803         calculation.
22804
22805 2010-06-16  DJ Delorie  <dj@redhat.com>
22806
22807         * common.opt (-fstrict-volatile-bitfields): new.
22808         * doc/invoke.texi: Document it.
22809         * fold-const.c (optimize_bit_field_compare): For volatile
22810         bitfields, use the field's type to determine the mode, not the
22811         field's size.
22812         * expr.c (expand_assignment): Likewise.
22813         (get_inner_reference): Likewise.
22814         (expand_expr_real_1): Likewise.
22815         * expmed.c (store_fixed_bit_field): Likewise.
22816         (extract_bit_field_1): Likewise.
22817         (extract_fixed_bit_field): Likewise.
22818
22819 2010-06-16  Richard Guenther  <rguenther@suse.de>
22820
22821         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
22822
22823 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
22824
22825         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
22826         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
22827         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
22828         * debug.c: Likewise.
22829         * sdbout.c: Likewise.
22830         * vmsdbgout.c: Likewise.
22831         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
22832         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
22833         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
22834         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
22835         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
22836         * dwarf2out.c (dw_fde_struct): New fields
22837         dw_fde_vms_{end,begin}_prologue.
22838         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
22839         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
22840         (dwarf2out_vms_end_prologue): New function.
22841         (dwarf2out_vms_begin_epilogue): New function.
22842         (dw_val_struct): New value dw_val_class_vms_delta.
22843         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
22844         begin_epilogue for VMS.
22845         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
22846         new static functions.
22847         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
22848         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
22849         static functions.
22850         (print_die): New case dw_val_class_vms_delta.
22851         (attr_checksum): Likewise.
22852         (same_dw_val_p: Likewise.
22853         (size_of_die): Likewise.
22854         (value_format): Likewise.
22855         (output_die): Likewise.
22856         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
22857         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
22858         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
22859         dwarf2out_cfi_begin_epilogue
22860         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
22861
22862 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
22863
22864         * config/cris/cris-protos.h (cris_print_operand): Delete.
22865         (cris_print_operand_address): Delete.
22866         * config/cris/cris.h (PRINT_OPERAND): Delete.
22867         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22868         (PRINT_OPERAND_ADDRESS): Delete.
22869         * config/cris/cris.c (cris_print_operand_address): Make static.
22870         (cris_print_operand): Make static.
22871         (cris_print_operand_punct_valid_p): New function.
22872         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22873         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22874
22875 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
22876
22877         * config/arm/arm-protos.h (arm_print_operand): Delete.
22878         (arm_print_operand_address): Delete.
22879         * config/arm/arm.h (PRINT_OPERAND): Delete.
22880         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22881         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
22882         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
22883         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
22884         (arm_print_operand): Make static.
22885         (arm_print_operand_punct_valid_p): New function.
22886         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
22887         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22888
22889 2010-06-16  Nick Clifton  <nickc@redhat.com>
22890
22891         * config/rx/constraints.md (NEGint4): New constraint.
22892         * config/rx/rx.md (attr cc): Add set_zsc.
22893         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
22894         initialised.
22895         (cmpsf): Likewise.
22896         (call_internal): Clobber the cc0 register.
22897         (call_value_internal): Likewise.
22898         (cstoresi4): Likewise.
22899         (movsieq): Likewise.
22900         (movsine): Likewise.
22901         (addsi3): Add alternative to handle small negative constants.
22902         (sunsi3): Likewise.
22903         (addsi3): Do not set the O bit in the cc0 register.
22904         (adddi3): Likewise.
22905         (subsi3): Likewise.
22906         (subdi3): Likewise.
22907         (andsi3): Reorder alternatives to prefer shorter forms.
22908         (mulsi3): Likewise.
22909         (iorsi3): Likewise.
22910         (negsi2): Note that the cc0 flags are set.
22911         (rotlsi3): Note that only the Z and S bits are set in cc0.
22912         (lshrsi3): Likewise.
22913         (ashlsi3): Likewise.
22914         (subsf3): Use %Q for the MEM operand.
22915         (fix_truncsfsi2): Likewise.
22916         (floatsisf2): Likewise.
22917         (bitset): Remove early clobber from destination.
22918         (bitset_in_memory): Likewise.
22919         (lrintsf2): Clobber the cc0 register.
22920         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
22921         (rx_print_operand): Handle %N.
22922
22923 2010-06-16  Jan Hubicka  <jh@suse.cz>
22924
22925         * df-core.c (df_compact_blocks): Free problem_temps vector.
22926
22927 2010-06-16  Martin Jambor  <mjambor@suse.cz>
22928
22929         PR tree-optimization/43905
22930         * tree-sra.c: Include tree-inline.h.
22931         (create_abstract_origin): Removed.
22932         (modify_function): Version the call graph node instead of creating
22933         abstract origins and dealing with same_body aliases.
22934         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
22935         function is versionable.
22936         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
22937
22938 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
22939
22940         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
22941         (CHOOSE_DYNAMIC_LINKER): Update.
22942
22943 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
22944
22945         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
22946         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
22947         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
22948         *prefetch_3dnow_rex.
22949
22950 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
22951
22952         * target.h (struct asm_out):Add declare_constant_name field.
22953         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
22954         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
22955         * output.h (default_asm_declare_constant_name): Declare.
22956         (assemble_label): Update prototype.
22957         * varasm.c (assemble_constant_contents): Use
22958         targetm.asm_out.declare_constant_name target hook.
22959         (assemble_label): Add 'file' argument.
22960         (default_asm_declare_constant_name): New function.
22961         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
22962         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
22963         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
22964
22965         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
22966         * config/darwin.c (darwin_asm_declare_constant_name): New function.
22967         (machopic_output_indirection): Update assemble_label argument list.
22968         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
22969         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
22970
22971 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
22972
22973         PR middle-end/44391
22974         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
22975         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
22976
22977 2010-06-15  Richard Guenther  <rguenther@suse.de>
22978
22979         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
22980
22981 2010-06-15  Paul Brook  <paul@codesourcery.com>
22982
22983         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
22984         hard-float ABI.
22985
22986 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
22987
22988         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
22989         don't get a vector type for output.
22990
22991 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
22992
22993         PR fortran/44536
22994         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
22995         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
22996         (LANG_HOOKS_DECLS): Add it.
22997         * gimplify.c (omp_notice_variable): Call
22998         lang_hooks.decls.omp_report_decl.
22999
23000 2010-06-15  Martin Jambor  <mjambor@suse.cz>
23001
23002         PR lto/44464
23003         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
23004         on the newly dead SSA name.
23005
23006 2010-06-15  Alan Modra  <amodra@gmail.com>
23007
23008         * doc/invoke.texi: Add mcmodel to powerpc options.
23009         * configure.ac: Add HAVE_LD_LARGE_TOC test.
23010         * configure: Regenerate.
23011         * config.in: Regenerate.
23012         * config/rs6000/linux64.opt (mcmodel): New.
23013         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
23014         (TARGET_CMODEL, SET_CMODEL): Define.
23015         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
23016         select CMODEL_MEDIUM default.
23017         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
23018         (TARGET_CMODEL): Define default.
23019         * config/rs6000/rs6000.c (cmodel): New variable.
23020         (rs6000_explicit_options): Add cmodel field.
23021         (rs6000_handle_option): Handle -mcmodel.
23022         (create_TOC_reference): Add largetoc_reg param.  Generate high,
23023         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
23024         (rs6000_delegitimize_address): Recognise new toc reference rtl
23025         and minimal-toc rtl.
23026         (rs6000_legitimize_reload_address): Handle new toc references.
23027         (print_operand_address): Handle legitimate_constant_pool_address_p
23028         match before lo_sum.
23029         (rs6000_eliminate_indexed_memrefs): Tidy.
23030         (rs6000_emit_move): Tweak threshold for inlining constants.
23031         Keep rs6000_emit_allocate_stack large stack frame offsets
23032         loaded into r0 inline.
23033         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
23034         (tocrel_base, tocrel_offset): New variables.
23035         (toc_relative_expr_p): Set them here.
23036         (print_operand_address): Skip over any offset on constant pool address.
23037         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
23038         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
23039         (offsettable_ok_by_alignment): New function.
23040         (rs6000_emit_move): Address suitably aligned local symbol_refs
23041         relative to the toc pointer for -mcmodel=medium.
23042         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
23043         strict param.  Allow lo_sum version of addressing.  Verify reg
23044         used for -mminimal-toc and -mcmodel != small.  Update all callers.
23045         * config/rs6000/constraints.md: Update for above change.
23046         * config/rs6000/predicates.md: Likewise.
23047         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
23048         code.
23049         (tls_gd): Split for -mcmodel=medium/large.
23050         (tls_gd_high, tls_gd_low): New.
23051         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
23052         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
23053         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
23054         (largetoc_high, largetoc_low): New.
23055         (cmptf_internal2): Add clobber.
23056         * config/rs6000/rs6000-protos.h: Update.
23057
23058 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
23059
23060         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
23061         true if no prefetch is going to be generated for a given group.
23062         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
23063         estimate the prefetch_count.
23064         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
23065         prefetch count by considering the unroll_factor and prefetch_mod
23066         for is_loop_prefetching_profitable.
23067
23068 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
23069
23070         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
23071         anything if the argument is not a MEM.
23072
23073 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23074
23075         PR debug/43650
23076         PR debug/44181
23077         PR debug/44247
23078         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
23079         debug stmts.
23080         (canonicalize_loop_ivs): Likewise.
23081
23082 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23083
23084         PR debug/43656
23085         * haifa-sched.c (setup_insn_reg_pressure_info,
23086         update_register_pressure): Reject debug insns.
23087         (ready_sort): Don't setup reg pressure for debug insns.
23088         (schedule_insn): Don't update reg pressure for debug insns.
23089
23090 2010-06-14  Richard Guenther  <rguenther@suse.de>
23091
23092         * lto-streamer.c (cached_bp): Remove.
23093         (bitpack_delete): Likewise.
23094         (bitpack_create): Likewise.
23095         (bp_get_next_word): Likewise.
23096         (bp_pack_value, bp_unpack_value): Move ...
23097         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
23098         Re-implement.
23099         (struct bitpack_d): Likewise.
23100         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
23101         New inline functions.
23102         * lto-streamer-out.c (lto_output_bitpack): Remove.
23103         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23104         (pack_value_fields): Adjust.
23105         (lto_write_tree): Likewise.
23106         (output_gimple_stmt): Likewise.
23107         (output_function): Likewise.
23108         * lto-streamer-in.c (input_gimple_stmt): Adjust.
23109         (input_function): Likewise.
23110         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23111         (lto_input_bitpack): Remove.
23112         (lto_materialize_tree): Adjust.
23113         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
23114         * lto-cgraph.c (lto_output_edge): Adjust.
23115         (lto_output_node): Likewise.
23116         (lto_output_varpool_node): Likewise.
23117         (lto_output_ref): Likewise.
23118         (input_node): Likewise.
23119         (input_varpool_node): Likewise.
23120         (input_ref): Likewise.
23121         (input_edge): Likewise.
23122         (output_node_opt_summary): Likewise.
23123         (input_node_opt_summary): Likewise.
23124         * ipa-pure-const.c (pure_const_write_summary): Likewise.
23125         (pure_const_read_summary): Likewise.
23126         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
23127         (ipa_read_indirect_edge_info): Likewise.
23128         (ipa_write_node_info): Likewise.
23129         (ipa_read_node_info): Likewise.
23130
23131 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
23132
23133         PR target/44534
23134         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
23135         (vec_extract_lo_v16hi): Likewise.
23136         (vec_extract_lo_v32qi): Likewise.
23137
23138 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23139
23140         PR bootstrap/44426
23141         * tree.h (build_call_expr): Don't define as vararg macro, instead
23142         add a prototype.
23143         * builtins.c (build_call_nofold): Remove.
23144         (expand_builtin_int_roundingfn, expand_builtin_pow,
23145         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
23146         expand_builtin_memset_args, expand_builtin_strcmp,
23147         expand_builtin_strncmp, expand_builtin_memory_chk): Use
23148         build_call_nofold_loc instead of build_call_nofold.
23149         (build_call_expr): New function.
23150
23151         PR tree-optimization/44508
23152         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
23153         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
23154         don't eliminate trivially dead stmts.
23155         * tree-vrp.c (vrp_finalize): Pass false as last argument
23156         to substitute_and_fold.
23157         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
23158         to substitute_and_fold.
23159         * tree-ssa-ccp.c (ccp_finalize): Likewise.
23160
23161         PR bootstrap/44509
23162         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
23163
23164 2010-06-14  Ira Rosen  <irar@il.ibm.com>
23165
23166         PR tree-optimization/44507
23167         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
23168         to build initial vector for BIT_AND_EXPR.
23169         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
23170
23171 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23172
23173         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
23174         adjust z10prop set_attr.
23175
23176 2010-06-13  Jan Hubicka  <jh@suse.cz>
23177
23178         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
23179         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
23180         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
23181         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
23182         datastructure checks into checking asserts.
23183         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
23184         * tree-ssa-sccvn.c (VN_INFO): Likewise.
23185         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
23186         df_ref_create_structure): Likewise.
23187         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
23188         pool_free): Use gcc_checking_assert.
23189         * alias.c (get_alias_set): Likewise.
23190         * var-tracking.c (variable_htab_free, shared_hash_copy,
23191         canonicalize_values_mark, variable_merge_over_cur): Likewise.
23192         * lto-streamer.c (bp_unpack_value): Likewise.
23193
23194 2010-06-13  Richard Guenther  <rguenther@suse.de>
23195
23196         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
23197         Do not stream but initialize TYPE_CANONICAL to NULL.
23198         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
23199         * gimple.c (gimple_types_compatible_p): Disregard
23200         TYPE_STRUCTURAL_EQUALITY_P.
23201         (gimple_register_type): Use TYPE_CANONICAL as cache.
23202         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
23203         before registering common types.
23204         * config/i386/i386.c (ix86_function_arg_boundary): Do not
23205         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
23206         * tree.h (TYPE_CANONICAL): Clarify documentation.
23207
23208 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
23209
23210         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
23211         LIBCALL_VALUE): Remove macros.
23212         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
23213         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23214         TARGET_FUNCTION_VALUE_REGNO_P): Define.
23215         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
23216         (ia64_function_value): Make static. Handle receiving the function
23217         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
23218
23219 2010-06-12  Jan Hubicka  <jh@suse.cz>
23220
23221         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
23222         at correct place.
23223
23224 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
23225
23226         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
23227
23228 2010-06-12  Jan Hubicka  <jh@suse.cz>
23229
23230         * df-core.c (df_clear_bb_info): New function.
23231         (df_set_blocks): bb_info is always allocated.
23232         (df_get_bb_info): Use block_info_elt_size.
23233         (df_set_bb_info): Likewise.
23234         (df_compact_blocks): Update for new block_info.
23235         (grow_bb_info): New function.
23236         * df-problems.c (df_grow_bb_info): Move to df-core.c
23237         (df_rd_set_bb_info): Remove.
23238         (df_rd_free_bb_info): Do not free block pool.
23239         (df_rd_alloc): Do not create pool, use check for
23240         obstack presence instead of NULL pointer for new blocks.
23241         (df_rd_free): DO not free alloc pool; clear block_info.
23242         (problem_RD): Add size of block info structure.
23243         (df_lr_set_bb_info): Remove.
23244         (df_lr_free_bb_info): Do not free block pool.
23245         (df_lr_alloc): Do not create pool, use check for
23246         obstack presence instead of NULL pointer for new blocks.
23247         (df_lr_free): DO not free alloc pool; clear block_info.
23248         (problem_LR): Add size of block info structure.
23249         (df_live_set_bb_info): Remove.
23250         (df_live_free_bb_info): Do not free block pool.
23251         (df_live_alloc): Do not create pool, use check for
23252         obstack presence instead of NULL pointer for new blocks.
23253         (df_live_free): DO not free alloc pool; clear block_info.
23254         (problem_LIVE): Add size of block info structure.
23255         (problem_CHAIN): Add size of block info structure.
23256         (df_byte_lr_set_bb_info): Remove.
23257         (df_byte_lr_free_bb_info): Do not free block pool.
23258         (df_byte_lr_alloc): Do not create pool, use check for
23259         obstack presence instead of NULL pointer for new blocks.
23260         (df_byte_lr_free): DO not free alloc pool; clear block_info.
23261         (problem_BYTE_LR): Add size of block info structure.
23262         (problem_NOTE): Add size of block info structure.
23263         (df_byte_MD_set_bb_info): Remove.
23264         (df_byte_MD_free_bb_info): Do not free block pool.
23265         (df_byte_MD_alloc): Do not create pool, use check for
23266         obstack presence instead of NULL pointer for new blocks.
23267         (df_byte_MD_free): DO not free alloc pool; clear block_info.
23268         (problem_BD): Add size of block info structure.
23269         * df-scan.c (df_scan_free_internal): Free block pool.
23270         (df_scan_set_bb_info): Remove.
23271         (df_scan_free_bb_info): Check for artificial_defs instead
23272         of bb_info being non-NULL.
23273         (df_scan_alloc): DO not create df_scan_block pool.
23274         (problem_SCAN): Set size of block info.
23275         (df_bb_refs_record): Do not allocate bb_info.
23276         * df.h (df_problem): Add block_info_elt_size.
23277         (struct dataflow): Change block_info to void *.
23278         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
23279         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
23280         in-line structures.
23281
23282 2010-06-12  Jan Hubicka  <jh@suse.cz>
23283
23284         PR tree-optimize/44485
23285         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
23286         containing use of return value of noreturn function.
23287
23288 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
23289
23290         * targhooks.c (default_function_value): Don't use
23291         FUNCTION_OUTGOING_VALUE.
23292         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
23293         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
23294
23295 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
23296
23297         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
23298         Add crtfastmath.o to extra_parts.
23299         * config/mips/crtfastmath.c: New.
23300         * config/mips/linux.h (ENDFILE_SPEC): New.
23301
23302 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
23303
23304         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
23305         old_type in parameter.
23306         (gcc_type_for_value): Update call to gcc_type_for_interval.
23307         (compute_type_for_level_1): Renamed compute_type_for_level.
23308         Update call to gcc_type_for_interval.
23309
23310 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
23311
23312         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
23313         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
23314
23315 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
23316
23317         * opts-common.c: Include options.h.
23318         (integral_argument): Move from opts.c.
23319         (decode_cmdline_option): New.  Based on read_cmdline_option.
23320         * opts.c (integral_argument): Move to opts-common.c.
23321         (read_cmdline_option): Move most contents to
23322         decode_cmdline_option.  Use %qs in diagnostics.
23323         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
23324         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
23325         decode_cmdline_option): New.
23326
23327 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23328
23329         PR target/44481
23330         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
23331         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
23332         (partiysi2_cmp): Ditto.
23333         (*partiyhi2_cmp): Ditto.
23334         (*parityqi2_cmp): Remove.
23335
23336 2010-06-11  Jan Hubicka  <jh@suse.cz>
23337
23338         * bitmap.h (bmp_iter_next_bit): New.
23339         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
23340
23341 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
23342             Eric Botcazou  <ebotcazou@adacore.com>
23343
23344         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
23345         computed cost.
23346
23347 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23348
23349         * config/i386/i386.md (unspec): New define_c_enum.
23350         (unspecv): Ditto.
23351
23352 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
23353
23354         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
23355
23356 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
23357
23358         PR middle-end/44483
23359         * tree-if-conv.c (bb_predicate_s): New struct.
23360         (bb_predicate_p): New.
23361         (bb_has_predicate): New.
23362         (bb_predicate): New.
23363         (set_bb_predicate): New.
23364         (bb_predicate_gimplified_stmts): New.
23365         (set_bb_predicate_gimplified_stmts): New.
23366         (add_bb_predicate_gimplified_stmts): New.
23367         (init_bb_predicate): New.
23368         (free_bb_predicate): New.
23369         (is_predicated): Use bb_predicate.
23370         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
23371         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
23372         before processing their successors.
23373         (clean_predicate_lists): Removed.
23374         (find_phi_replacement_condition): Use bb_predicate.
23375         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
23376         computations.
23377         (insert_gimplified_predicates): New.
23378         (combine_blocks): Call insert_gimplified_predicates.
23379         (tree_if_conversion): Call free_bb_predicate instead of
23380         clean_predicate_lists.
23381
23382 2010-10-11  Paul Brook  <paul@codesourcery.com>
23383
23384         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
23385         * config/arm/arm.c (all_architectures): Change v7e-m default to
23386         cortexm4.
23387         * config/arm/arm-cores.def: Add cortex-m4.
23388         * config/arm/arm-tune.md: Regenerate.
23389
23390 2010-06-11  Jan Hubicka  <jh@suse.cz>
23391
23392         * ipa-pure-const.c (special_builtlin_state): New function.
23393         (check_call): Use it instead of special casign BUILT_IN_RETURN.
23394         (propagate_pure_const): Use it.
23395
23396 2010-06-11  Jan Hubicka  <jh@suse.cz>
23397
23398         * df-problems.c (df_live_scratch): Convert to bitmap_head.
23399         (df_live_alloc): Initialize df_live_scratch when initializing
23400         problem_data.
23401         (df_live_transfer_function): Update uses of df_live_scratch.
23402         (df_live_free): Free problem_data; clear df_live_scratch before
23403         releasing the obstack.
23404         (df_md_free): Free problem data.
23405
23406 2010-06-11  Jan Hubicka  <jh@suse.cz>
23407
23408         * doc/invoke.texi (Wsuggest-attribute): Document.
23409         (Wmissing-noreturn): Remove.
23410         * ipa-pure-const.c (warn_function_noreturn): New function.
23411         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
23412         warn_missing_noreturn.
23413         * common.opt (Wsuggest-attribute=noreturn): New.
23414         * tree-flow.h (warn_function_noreturn): Declare.
23415         * tree-cfg.c (execute_warn_function_noreturn): Use
23416         warn_function_noreturn.
23417         (gate_warn_function_noreturn): New.
23418         (pass_warn_function_noreturn): Update.
23419
23420 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23421
23422         * c-typeck.c (handle_warn_cast_qual): Add loc
23423         parameter. Improve warning message.
23424         (build_c_cast): Pass location to handle_warn_cast_qual.
23425
23426 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23427
23428         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
23429         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
23430         insn mnemonic.
23431         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
23432
23433 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
23434
23435         Fix bootstap on mips
23436         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
23437         be naming typedefs.
23438
23439 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
23440
23441         * system.h (helper_const_non_const_cast): New inline for
23442         gcc version <= 4.0.
23443         (CONST_CAST2): For gcc version <= 4.0 use
23444         new helper to do const/non-const casting.
23445
23446 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23447
23448         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
23449         * Makefile.in (OBJS-common): Include insn-enums.o.
23450         (insn-enums.o): New rule.
23451         (simple_generated_c): Add insn-enums.c.
23452         (build/genenums.o): New rule.
23453         (genprogmd): Add "enums".
23454         * genconstants.c (print_enum_type): Declare a C string array
23455         for each enum.
23456         * genenums.c: New file.
23457         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
23458         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
23459         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
23460
23461 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23462
23463         * doc/md.texi (define_enum_attr): Document.
23464         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
23465         * read-md.h (lookup_enum_type): Declare.
23466         * read-md.c (lookup_enum_type): New function.
23467         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
23468         * genattrtab.c (attr_desc): Add an enum_name field.
23469         (evaluate_eq_attr): Take the associated attribute as argument.
23470         Get the enum prefix from the enum_name field, if defined.
23471         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
23472         (simplify_test_exp): Pass attr to evaluate_eq_attr.
23473         (add_attr_value): New function, split out from...
23474         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
23475         (write_test_expr): Pass attr to evaluate_eq_attr.
23476         (write_attr_get): Use the enum_name as the enum tag, if defined.
23477         (write_attr_valueq): Use the enum_name as a prefix, if defined.
23478         (find_attr): Initialize enum_name.
23479         (main): Handle DEFINE_ENUM_ATTR.
23480         * gensupport.c (process_rtx): Likewise.
23481         * config/mips/mips.h (mips_tune_attr): Delete.
23482         * config/mips/mips.md (cpu): Use define_attr_enum.
23483
23484 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23485
23486         * doc/md.texi (define_c_enum, define_enum): Document.
23487         * read-md.h (md_constant): Add a parent_enum field.
23488         (enum_value, enum_type): New structures.
23489         (upcase_string, traverse_enum_types): Declare.
23490         * read-md.c (enum_types): New variable.
23491         (upcase_string, add_constant): New functions.
23492         (handle_constants): Don't create the hash table here.
23493         Use add_constant.
23494         (traverse_md_constants): Don't check for a null md_constants.
23495         (decimal_string, handle_enum, traverse_enum_types): New functions.
23496         (read_md_files): Initialize md_constants and md_enums.
23497         * genconstants.c (print_md_constant): Ignore info argument.
23498         Only print constants that belong to no enum.
23499         (print_enum_type): New function.
23500         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
23501         for each defined enum type.
23502         * config/mips/mips.md (processor): New define_enum.
23503         (unspec): New define_c_enum.
23504         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
23505         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
23506         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
23507         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
23508         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
23509         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
23510         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
23511         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
23512         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
23513         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
23514         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
23515         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
23516         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
23517         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
23518         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
23519         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
23520         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
23521         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
23522         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
23523         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
23524         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
23525         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
23526         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
23527         (UNSPEC_RDDSP): Move to mips-dsp.md.
23528         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
23529         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
23530         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
23531         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
23532         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
23533         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
23534         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
23535         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
23536         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
23537         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
23538         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
23539         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
23540         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
23541         Moved to mips-dspr2.md.
23542         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
23543         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
23544         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
23545         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
23546         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
23547         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
23548         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
23549         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
23550         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
23551         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
23552         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
23553         UNSPEC_LOONGSON_PSADBH)
23554         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
23555         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
23556         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
23557         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
23558         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
23559         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
23560         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
23561         (cpu): Update comment.
23562         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
23563         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
23564         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
23565         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
23566         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
23567         UNSPEC_LOONGSON_PCMPEQ)
23568         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
23569         UNSPEC_LOONGSON_PINSR_0)
23570         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
23571         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
23572         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
23573         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
23574         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
23575         UNSPEC_LOONGSON_PSADBH)
23576         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
23577         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
23578         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
23579         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
23580         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
23581         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
23582         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
23583         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
23584         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
23585         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
23586         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
23587         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
23588         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
23589         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
23590         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
23591         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
23592         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
23593         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
23594         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
23595         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
23596         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
23597         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
23598         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
23599         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
23600         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
23601         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
23602         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
23603         (UNSPEC_RDDSP): Moved from mips.md.
23604         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
23605         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
23606         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
23607         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
23608         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
23609         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
23610         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
23611         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
23612         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
23613         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
23614         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
23615         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
23616         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
23617         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
23618         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
23619         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
23620         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
23621         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
23622         (UNSPEC_SCC): Moved from mips.md.
23623         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
23624         "processor_type" to "processor".
23625         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
23626         * config/mips/mips.h (processor_type): Delete.
23627         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
23628         "processor_type" to "processor".
23629
23630 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23631
23632         * configure.ac (tm_include_list): Add insn-constants.h.
23633         * configure: Regenerate.
23634         * Makefile.in (GTM_H): Move insn-constants.h here from...
23635         (TM_H): ...here.
23636         * mkconfig.sh: Remove special handling for insn-constants.h.
23637
23638 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23639
23640         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
23641         (BUILD_MD): ...this new variable.
23642         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
23643         that include the old contents of simple_generated_h and
23644         simple_generated_c.
23645         (simple_generated_h, simple_generated_c): Include them.  Add
23646         insn-constants.h.
23647         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
23648         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
23649         Remove these dependencies from the main rule and include
23650         insn-conditions.md in the command line only if it appears
23651         in the dependency list.
23652         (insn-constants.h, s-constants): Delete.
23653         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
23654         or gensupport.h.
23655         (build/genmddeps.o): Likewise.
23656         (genprogrtl): New variable that contains everything from genprogmd
23657         except mddeps and constants.
23658         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
23659         depend on $(BUILD_MD)
23660         (genprog): New variable.  Make these programs depend on
23661         $(BUILD_ERRORS).
23662         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
23663         (main): Use read_md_files instead of init_rtx_reader_args.
23664         * genconstants.c: As for genmddeps.c.
23665         * read-md.h (read_skip_construct): Declare.
23666         * read-md.c (read_skip_construct): New function.
23667         (handle_file): Allow a null handle_directive, skipping the
23668         construct if so.
23669         (parse_include): Update the comment accordingly.
23670
23671 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23672
23673         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
23674         * genmddeps.c: Include read-md.h.
23675         (main): Call init_rtx_reader_args instead of init_md_reader_args.
23676         * genattr.c (main): Likewise.
23677         * genattrtab.c (main): Likewise.
23678         * genautomata.c (main): Likewise.
23679         * gencodes.c (main): Likewise.
23680         * genconditions.c (main): Likewise.
23681         * genconfig.c (main): Likewise.
23682         * genconstants.c (main): Likewise.
23683         * genemit.c (main): Likewise.
23684         * genextract.c (main): Likewise.
23685         * genflags.c (main): Likewise.
23686         * genopinit.c (main): Likewise.
23687         * genoutput.c (main): Likewise.
23688         * genpeep.c (main): Likewise.
23689         * genrecog.c (main): Likewise.
23690         * genpreds.c (main): Likewise.
23691         * gensupport.h (in_fname): Move to read-md.h.
23692         (init_md_reader_args_cb): Rename to...
23693         (init_rtx_reader_args_cb): ...this and return a bool.
23694         (init_md_reader_args): Rename to...
23695         (init_rtx_reader_args): ...this and return a bool.
23696         (include_callback): Move to read-md.h.
23697         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
23698         (file_name_list, first_dir_md_include): Move to read-md.c
23699         (first_bracket_include): Delete unused variable.
23700         (last_dir_md_include): Move to read-md.c.
23701         (process_include): Delete, moving code to read-md.c:handle_include.
23702         (process_rtx): Don't handle INCLUDE.
23703         (save_string): Delete.
23704         (rtx_handle_directive): New function.
23705         (init_md_reader_args_cb): Rename to...
23706         (init_rtx_reader_args_cb): ...this and return a boolean success value.
23707         Use read_md_args.
23708         (init_md_reader_args): Rename to...
23709         (init_rtx_reader_args): ...this and return a boolean success value.
23710         * rtl.def (INCLUDE): Delete.
23711         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
23712         argument.
23713         * read-rtl.c (read_conditions): Don't gobble ')' here.
23714         (read_mapping): Likewise.
23715         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
23716         Handle top-level non-rtx constructs here rather than in read_rtx_1.
23717         Store the whole queue in *X.  Remove call to init_md_reader.
23718         (read_rtx_1): Rename to...
23719         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
23720         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
23721         here.
23722         (read_nested_rtx): New function.  Handle (nil) here rather than
23723         in read_rtx_code.
23724         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
23725         gobble ')' here.
23726         * read-md.h (directive_handler_t): New type.
23727         (in_fname, include_callback): Moved from read-md.h.
23728         (read_constants, init_md_reader): Delete.
23729         (read_md_files): Declare.
23730         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
23731         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
23732         from gensupport.c.
23733         (read_constants): Rename to...
23734         (handle_constants): ...this.  Don't gobble ')' here.
23735         (handle_include, handle_file, handle_toplevel_file)
23736         (parse_include): New functions, mostly taken from gensupport.c.
23737         (init_md_reader): Subsume into...
23738         (read_md_files): ...this new function.
23739
23740 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23741
23742         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
23743         (unread_char): Decrement read_md_lineno after putting back '\n'.
23744         * read-md.c (fatal_with_file_and_line): Push back any characters
23745         that we decide not to add to the context.
23746         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
23747         fatal_expected_char in cases where '/' ends a line (for example).
23748         (read_name): Don't increment read_md_lineno here.
23749         (read_escape): Likewise.
23750         (read_quoted_string): Likewise.
23751         (read_braced_string): Likewise.
23752
23753 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23754
23755         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
23756         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
23757         * genconstants.c: Include read-md.h.
23758         * read-rtl.c (md_constants): Move to read-md.c.
23759         (md_name): Move to read-md.h.
23760         (initialize_iterators): Use leading_string_hash instead of def_hash
23761         and leading_string_eq_p instead of def_name_eq_p.
23762         (read_name): Move to read-md.c.
23763         (def_hash, def_name_eq_p): Delete.
23764         (read_constants, traverse_md_constants): Move to read-md.c.
23765         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
23766         * read-md.h: Include hashtab.h.
23767         (md_name): Moved from read-rtl.c.
23768         (md_constant): Moved from read-md.h.
23769         (leading_string_hash, leading_string_eq_p, read_name)
23770         (read_constants, traverse_md_constants): Declare.
23771         * read-md.c (md_constants): Moved from read-rtl.c.
23772         (leading_string_hash, leading_string_eq_p): New functions.
23773         (read_name, read_constants, traverse_md_constants): Moved from
23774         read-rtl.c.
23775
23776 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23777
23778         * read-rtl.c (md_name): New structure.
23779         (read_name): Take an md_name instead of a buffer pointer.
23780         Use the "string" field instead of strcpy when expanding constants.
23781         (read_constants): Remove the tmp_char argument.  Update the calls
23782         to read_name, using two local name buffers instead of the tmp_char
23783         argument.  Merge the constant-creation code.
23784         (read_conditions): Remove the tmp_char argument.  Update the calls
23785         to read_name, using a local name buffer instead of the tmp_char
23786         argument.
23787         (read_mapping): Replace tmp_char variable with a local name buffer.
23788         Update the calls to read_name.
23789         (read_rtx_1): Likewise.  Update the calls to read_constants and
23790         read_conditions.
23791
23792 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23793
23794         * Makefile.in (build/read-md.o): Depend on errors.h.
23795         * read-md.h (error_with_line): Declare.
23796         * read-md.c: Include errors.h.
23797         (message_with_line_1): New function, extracted from...
23798         (message_with_line): ...here.
23799         (error_with_line): New function.
23800         * genattrtab.c: If a call to message_with_line is followed by
23801         "have_error = 1;", replace both statements with a call to
23802         error_with_line.
23803         * genoutput.c: Likewise.
23804         * genpreds.c: Likewise.
23805         * genrecog.c: If a call to message_with_line is followed by
23806         "error_count++;", replace both statements with a call to
23807         error_with_line.
23808         (errorcount): Delete.
23809         (main): Don't check it.
23810         * gensupport.c: If a call to message_with_line is followed by
23811         "errors = 1;", replace both statements with a call to error_with_line.
23812         (errors): Delete.
23813         (process_define_cond_exec): Check have_error instead of errors.
23814         (init_md_reader_args_cb): Likewise.  Don't set errors.
23815
23816 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23817
23818         * read-md.h (read_md_file): Declare.
23819         (read_char, unread_char): New functions.
23820         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
23821         (read_quoted_string, read_string): Remove FILE * argument.
23822         * read-md.c (read_md_file): New variable.
23823         (read_md_filename, read_md_lineno): Update comments and remove
23824         unnecessary initialization.
23825         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
23826         (read_escape, read_quoted_string, read_braced_string, read_string):
23827         Remove FILE * argument.  Update calls accordingly, using read_char
23828         and unread_char instead of getc and ungetc.
23829         * rtl.h (read_rtx): Remove FILE * argument.
23830         * read-rtl.c (iterator_group): Remove FILE * argument from
23831         "find_builtin".
23832         (iterator_traverse_data): Remove "infile" field.
23833         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
23834         (add_mapping, read_name, read_constants, read_conditions)
23835         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
23836         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
23837         Remove file arguments from all calls, using read_char and unread_char
23838         instead of getc and ungetc.
23839         * gensupport.c (process_include): Preserve read_md_file around
23840         the include.  Set read_md_file to the handle of the included file.
23841         Update call to read_rtx.
23842         (init_md_reader_args_cb): Set read_md_file to the handle of the file
23843         and remove local FILE *.  Update calls to read_rtx.
23844
23845 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23846
23847         * read-md.h (read_rtx_lineno): Rename to...
23848         (read_md_lineno): ...this.
23849         (read_rtx_filename): Rename to...
23850         (read_md_filename): ...this.
23851         (copy_rtx_ptr_loc): Rename to...
23852         (copy_md_ptr_loc): ...this.
23853         (print_rtx_ptr_loc): Rename to...
23854         (print_md_ptr_loc): ...this.
23855         * read-md.c: Likewise.  Update references after renaming.
23856         (string_obstack): Replace RTL with MD in comment.
23857         (set_rtx_ptr_loc): Rename to...
23858         (set_md_ptr_loc): ...this.
23859         (get_rtx_ptr_loc): Rename to...
23860         (get_md_ptr_loc): ...this.
23861         * genconditions.c: Update references after renaming.
23862         * genemit.c: Likewise.
23863         * genoutput.c: Likewise.
23864         * genpreds.c: Likewise.
23865         * gensupport.c: Likewise.
23866         * read-rtl.c: Likewise.
23867
23868 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23869
23870         * Makefile.in (READ_MD_H): New variable.
23871         (BUILD_RTL): Add build/read-md.o.
23872         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
23873         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
23874         (build/genattrtab.o, build/genconditions.o build/genemit.o)
23875         (build/genextract.o, build/genflags.o, build/genoutput.o)
23876         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
23877         (build/read-md.o): New rule.
23878         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
23879         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
23880         * coretypes.h: ...here.
23881         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
23882         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
23883         * genattr.c: Include read-md.h.
23884         * genattrtab.c: Likewise.
23885         * genconditions.c: Likewise.
23886         * genemit.c: Likewise.
23887         * genextract.c: Likewise.
23888         * genflags.c: Likewise.
23889         * genoutput.c: Likewise.
23890         * genpreds.c: Likewise.
23891         * genrecog.c: Likewise.
23892         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
23893         (join_c_conditions, print_c_condition, read_rtx_filename)
23894         (read_rtx_lineno): Move to read-md.h.
23895         * read-rtl.c: Include read-md.h.
23896         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
23897         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
23898         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
23899         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
23900         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
23901         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
23902         (read_braced_string, read_string): Move to read-md.c.
23903         (read_rtx): Move some initialization to init_md_reader and call
23904         init_md_reader here.
23905         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
23906         Move to read-md.h.
23907         * gensupport.c: Include read-md.h.
23908         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
23909         * read-md.h, read-md.c: New files.
23910
23911 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
23912
23913         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
23914         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
23915         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
23916         * config/moxie/moxie.c (moxie_function_value): Make static.
23917         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
23918         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
23919
23920 2010-06-10  Martin Jambor  <mjambor@suse.cz>
23921
23922         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
23923         * dbgcnt.def (tree_sra): New counter.
23924         * tree-sra.c: Include dbgcnt.h.
23925         (gate_intra_sra): Check tree_sra debug counter.
23926
23927 2010-06-10  Martin Jambor  <mjambor@suse.cz>
23928
23929         PR tree-optimization/44258
23930         * tree-sra.c (build_access_subtree): Return false iff there is a
23931         partial overlap.
23932         (build_access_trees): Likewise.
23933         (analyze_all_variable_accesses): Disqualify candidates if
23934         build_access_trees returns true for them.
23935
23936 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
23937
23938         PR debug/41371
23939         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
23940         tail-recurse into canonical node.  Fast-forward over
23941         non-canonical VALUEs.
23942
23943 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
23944
23945         PR boostrap/44470
23946         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
23947         (*addsi_1_zext) <TYPE_LEA>: Likewise.
23948         (add lea splitter): Likewise.
23949         (add_zext lea splitter): Likewise.
23950
23951 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
23952
23953         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
23954
23955 2010-06-10  Jan Hubicka  <jh@suse.cz>
23956
23957         * df-problems.c (df_live_problem_data): Add live_bitmaps.
23958         (df_live_alloc): Initialize problem data and live_osbtacks.
23959         (df_live_finalize): Remove obstack, problem data; do not
23960         clear all bitmaps.
23961         (df_live_top_dump, df_live_bottom_dump): Do not dump old
23962         data when not allocated.
23963         (df_live_verify_solution_start): Do not allocate problem data.
23964         (df_live_verify_solution_end): Check if out is allocated.
23965         (struct df_md_problem_data): New structure.
23966         (df_md_alloc): Allocate problem data.
23967         (df_md_free): Free problem data; do not clear bitmaps.
23968
23969 2010-06-10  Jan Beulich  <jbeulich@novell.com>
23970
23971         PR bootstrap/37304
23972         * configure.ac: Replace $() with ${} when intending to expand
23973         variables rather than invoking commands.
23974         * configure: Re-generate.
23975
23976 2010-06-10  Jan Hubicka  <jh@suse.cz>
23977
23978         PR rtl-optimization/44460
23979         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
23980         TYPE_NEEDS_CONSTRUCTING sanity check.
23981
23982 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
23983
23984         * doc/include/fdl.texi: Move to GFDL version 1.3.
23985
23986         * doc/cpp.texi: Move to GFDL version 1.3.
23987         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
23988         * doc/gccint.texi: Move to GFDL version 1.3.
23989         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
23990         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
23991         * doc/invoke.texi: Move to GFDL version 1.3.
23992
23993 2010-06-09  Jan Hubicka  <jh@suse.cz>
23994
23995         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
23996         Break out from ...
23997         (propagate) ... here; swap the order.
23998
23999 2010-06-09  Jan Hubicka  <jh@suse.cz>
24000
24001         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
24002         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
24003         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
24004         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
24005
24006 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24007
24008         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
24009         Do not the gather memory reference in the outer loop if the step
24010         is not a constant.
24011
24012 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24013
24014         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
24015         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
24016         8 to 4.  Minor change of the related comments.
24017
24018 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24019
24020         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
24021         the scev analysis when the variable is not used outside the loop
24022         in a close phi node: call compute_overall_effect_of_inner_loop.
24023
24024 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24025
24026         * graphite-sese-to-poly.c (single_pred_cond): Renamed
24027         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
24028         (build_sese_conditions_before): Renamed call to single_pred_cond.
24029         (build_sese_conditions_after): Same.
24030
24031 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24032
24033         * graphite-poly.h: Fix comments and indentation.
24034         * graphite-sese-to-poly.c: Same.
24035         (build_sese_conditions_before): Compute stmt and gbb only when needed.
24036         * tree-chrec.c: Fix comments and indentation.
24037         (tree-ssa-loop-niter.c): Same.
24038
24039 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
24040
24041         PR rtl-optimization/42461
24042         * dce.c (deletable_insn_p): Return true for const or pure calls again.
24043         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
24044
24045 2010-06-09  Jan Hubicka  <jh@suse.cz>
24046
24047         * bitmap.c (bitmap_and): Walk array forward.
24048         (bitmap_and_compl_into): Likewise.
24049         (bitmap_xor): Likewise.
24050         (bitmap_xor_into):  Likewise.
24051         (bitmap_equal_p): Likewise.
24052         (bitmap_intersect_p): Likewise.
24053         (bitmap_intersect_compl_p): Likewise.
24054         (bitmap_ior_and_into): Likewise.
24055         (bitmap_elt_copy): Likewise.
24056         (bitmap_and_compl): Likewise.
24057         (bitmap_elt_ior): Likewise.
24058
24059 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
24060
24061         * opts-common.c (prune_options): Ensure replacement argv array
24062         is correctly terminated by a NULL entry.
24063
24064 2010-06-09  Jan Hubicka  <jh@suse.cz>
24065
24066         * cgraph.h (varpool_first_static_initializer,
24067         varpool_next_static_initializer): Make checking only when
24068         checking enabled.
24069         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
24070         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
24071         gcc_assert to gcc_checking_assert.
24072         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
24073         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
24074         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
24075         op_iter_init_phiuse, op_iter_init_phidef,
24076         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
24077         gcc_checking_assert.
24078         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
24079         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
24080         partition_is_global, live_on_entry, live_on_exit,
24081         live_merge_and_clear): Likewise.
24082         * system.h (gcc_checking_assert): New macro.
24083         * gimple.h (set_bb_seq): Use gcc_checking_assert.
24084
24085 2010-06-09  Jason Merrill  <jason@redhat.com>
24086
24087         * Makefile.in (TAGS): Collect tags info from c-family.
24088
24089 2010-06-09  Jan Hubicka  <jh@suse.cz>
24090
24091         * gimple.h (gcc_gimple_checking_assert): New macro.
24092         (gimple_set_def_ops, gimple_set_use_ops,
24093         gimple_set_vuse, gimple_set_vdef,
24094         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
24095         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
24096         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
24097         gimple_asm_output_op, gimple_asm_output_op_ptr,
24098         gimple_asm_set_output_op, gimple_asm_clobber_op,
24099         gimple_asm_set_clobber_op, gimple_asm_label_op,
24100         gimple_asm_set_label_op, gimple_try_set_kind,
24101         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
24102         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
24103         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
24104         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
24105         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
24106         gimple_omp_for_set_initial, gimple_omp_for_final,
24107         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
24108         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
24109         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
24110         conditional with ENABLE_GIMPLE_CHECKING.
24111         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
24112
24113 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
24114
24115         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
24116         (get_computation_cost_at): Use it.
24117         (determine_use_iv_cost_condition): Likewise.
24118         (determine_iv_cost): Likewise.
24119
24120 2010-06-09  Richard Guenther  <rguenther@suse.de>
24121
24122         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
24123         replace constants.
24124
24125 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
24126
24127         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
24128
24129 2010-06-09  Martin Jambor  <mjambor@suse.cz>
24130
24131         PR tree-optimization/44423
24132         * tree-sra.c (dump_access): Dump also grp_assignment_read.
24133         (analyze_access_subtree): Pass negative allow_replacements to children
24134         if the current type is scalar.
24135
24136 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24137
24138         PR testsuite/42843
24139         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
24140         * doc/plugins.texi (Plugin license check): Update information
24141         on type of plugin_is_GPL_compatible.
24142         * Makefile.in (PLUGINCC): Define as $(COMPILER).
24143         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
24144
24145 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
24146
24147         * config/arm/arm.c (thumb2_reorg): New function.
24148         (arm_reorg): Call it.
24149         * config/arm/thumb2.md (define_peephole2 for flag clobbering
24150         arithmetic operations): Delete.
24151
24152 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
24153
24154         PR target/44067
24155         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
24156         e500v2 target.
24157
24158 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24159
24160         PR plugins/44459
24161         * gcc-plugin.h: Encapsulate all declarations in extern "C".
24162
24163 2010-06-08  Jan Hubicka  <jh@suse.cz>
24164
24165         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
24166         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
24167
24168 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
24169
24170         PR tree-optimization/39874
24171         PR middle-end/28685
24172         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
24173         Declare.
24174         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
24175         same_bool_result_p): New.
24176         (and_var_with_comparison, and_var_with_comparison_1,
24177         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
24178         (or_var_with_comparison, or_var_with_comparison_1,
24179         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
24180         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
24181         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
24182         of combine_comparisons.
24183         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
24184
24185 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
24186
24187         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24188         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24189         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
24190         pdp11_function_value_regno_p): New functions.
24191         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24192         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24193
24194 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
24195
24196         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
24197         Thumb-2 in the MINUS case.
24198
24199 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
24200
24201         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
24202
24203         * doc/gty.texi (GTY Options): Document typed GC allocation and
24204         variable_size GTY option.
24205
24206         * ggc-internal.h: New.
24207
24208         * ggc.h: Update copyright year.
24209         (digit_string): Move to stringpool.c.
24210         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
24211         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
24212         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
24213         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
24214         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
24215         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
24216         (ggc_force_collect, ggc_get_size, ggc_statistics)
24217         (ggc_print_common_statistics): Move to ggc-internal.h.
24218         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
24219         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
24220         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
24221         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
24222         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
24223         (ggc_alloc_zone_pass_stat): Remove.
24224         (ggc_internal_alloc_stat, ggc_internal_alloc)
24225         (ggc_internal_cleared_alloc_stat): New.
24226         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
24227         (ggc_internal_vec_alloc_stat)
24228         (ggc_internal_cleared_vec_alloc_stat)
24229         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
24230         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
24231         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
24232         (ggc_cleared_alloc_ptr_array_two_args): New.
24233         (htab_create_ggc, splay_tree_new_ggc): Redefine.
24234         (ggc_splay_alloc): Change the type of the first argument to
24235         enum gt_types_enum.
24236         (ggc_alloc_string): Make macro.
24237         (ggc_alloc_string_stat): New.
24238         (ggc_strdup): Redefine.
24239         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
24240         (ggc_alloc_rtvec_sized): New.
24241         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
24242         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
24243         (ggc_internal_cleared_alloc_zone_stat)
24244         (ggc_internal_zone_alloc_stat)
24245         (ggc_internal_zone_cleared_alloc_stat)
24246         (ggc_internal_zone_vec_alloc_stat)
24247         (ggc_alloc_zone_rtx_def_stat)
24248         (ggc_alloc_zone_tree_node_stat)
24249         (ggc_alloc_zone_cleared_tree_node_stat)
24250         (ggc_alloc_cleared_gimple_statement_d_stat): New.
24251
24252         * ggc-common.c: Include ggc-internal.h.
24253         (ggc_internal_cleared_alloc_stat): Rename from
24254         ggc_alloc_cleared_stat.
24255         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
24256         (ggc_calloc): Remove.
24257         (ggc_cleared_alloc_htab_ignore_args): New.
24258         (ggc_cleared_alloc_ptr_array_two_args): New.
24259         (ggc_splay_alloc): Add obj_type parameter.
24260         (init_ggc_heuristics): Formatting fixes.
24261
24262         * ggc-none.c: Update copyright year.
24263         (ggc_alloc_stat): Rename to ggc_alloc_stat.
24264         (ggc_alloc_cleared_stat): Rename to
24265         ggc_internal_cleared_alloc_stat.
24266         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
24267
24268         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
24269         Remove references to ggc_alloc in comments.
24270         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
24271         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
24272         (new_ggc_zone, destroy_ggc_zone): Remove.
24273         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
24274
24275         * ggc-zone.c: Include ggc-internal.h.  Remove references to
24276         ggc_alloc in comments.
24277         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
24278         (ggc_internal_alloc_zone_pass_stat): New.
24279         (ggc_internal_cleared_alloc_zone_stat): New.
24280         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
24281         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
24282         (new_ggc_zone, destroy_ggc_zone): Remove.
24283
24284         * stringpool.c: Update copyright year.  Include ggc-internal.h
24285         (digit_vector): Make static.
24286         (digit_string): Moved from ggc.h.
24287         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
24288         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
24289
24290         * Makefile.in (GGC_INTERNAL_H): New.
24291         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
24292         $(GGC_INTERNAL_H) to dependencies.
24293
24294         * gengtype.c: Update copyright year.
24295         (walk_type): Accept variable_size GTY option.
24296         (USED_BY_TYPED_GC_P): New macro.
24297         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
24298         whitespace at the end of strings.
24299         (get_type_specifier, variable_size_p): New functions.
24300         (alloc_quantity, alloc_zone): New enums.
24301         (write_typed_alloc_def): New function.
24302         (write_typed_struct_alloc_def): Likewise.
24303         (write_typed_typed_typedef_alloc_def): Likewise.
24304         (write_typed_alloc_defns): Likewise.
24305         (output_typename, write_splay_tree_allocator_def): Likewise.
24306         (write_splay_tree_allocators): Likewise.
24307         (main): Call write_typed_alloc_defns and
24308         write_splay_tree_allocators.
24309
24310         * lto-streamer.h (lto_file_decl_data_ptr): New.
24311
24312         * passes.c (order): Define using cgraph_node_ptr.
24313
24314         * strinpool.c (struct string_pool_data): Declare nested_ptr using
24315         ht_identifier_ptr.
24316
24317         * gimple.h (union gimple_statement_d): Likewise.
24318
24319         * rtl.h (struct rtx_def): Likewise.
24320         (struct rtvec_def): Likewise.
24321
24322         * tree.h (union tree_node): Likewise.
24323
24324         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
24325
24326         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
24327
24328         * tree-scalar-evolution.c (scev_initialize): Likewise.
24329
24330         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
24331
24332         * dwarf2asm.c (dw2_force_const_mem): Likewise.
24333
24334         * omp-low.c (lower_omp_critical): Likewise.
24335
24336         * bitmap.h (struct bitmap_head_def): Update comment to not
24337         reference ggc_alloc.
24338
24339         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
24340
24341         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
24342
24343         * ipa-prop.c (duplicate_ggc_array): Rename to
24344         duplicate_ipa_jump_func_array.  Use typed GC allocation.
24345         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
24346
24347         * gimple.c (gimple_alloc_stat): Use
24348         ggc_alloc_cleared_gimple_statement_d_stat.
24349
24350         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
24351
24352         * tree.c (make_node_stat): Use
24353         ggc_alloc_zone_cleared_tree_node_stat.
24354         (make_tree_vec_stat): Likewise.
24355         (build_vl_exp_stat): Likewise.
24356         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
24357         (make_tree_binfo_stat): Likewise.
24358         (tree_cons_stat): Likewise.
24359
24360         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
24361         (shallow_copy_rtx_stat): Likewise.
24362         (make_node_stat): Likewise.
24363
24364         * lto-symtab.c: Fix comment.
24365
24366         * tree-cfg.c (create_bb): Update comment to not reference
24367         ggc_alloc_cleared.
24368         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
24369
24370         * varpool.c (varpool_node): Use typed GC allocation.
24371         (varpool_extra_name_alias): Likewise.
24372
24373         * varasm.c (emutls_decl): Likewise.
24374         (get_unnamed_section): Likewise.
24375         (get_noswitch_section): Likewise.
24376         (get_section): Likewise.
24377         (get_block_for_section): Likewise.
24378         (build_constant_desc): Likewise.
24379         (create_constant_pool): Likewise.
24380         (force_const_mem): Likewise.
24381
24382         * tree.c (build_vl_exp_stat): Likewise.
24383         (build_real): Likewise.
24384         (build_string): Likewise.
24385         (decl_debug_expr_insert): Likewise.
24386         (decl_value_expr_insert): Likewise.
24387         (type_hash_add): Likewise.
24388         (build_omp_clause): Likewise.
24389
24390         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
24391
24392         * tree-ssa.c (init_tree_ssa): Likewise.
24393
24394         * tree-ssa-structalias.c (heapvar_insert): Likewise.
24395
24396         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
24397
24398         * tree-ssa-loop-niter.c (record_estimate): Likewise.
24399
24400         * tree-ssa-alias.c (get_ptr_info): Likewise.
24401
24402         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
24403
24404         * tree-phinodes.c (allocate_phi_node): Likewise.
24405
24406         * tree-iterator.c (tsi_link_before): Likewise.
24407         (tsi_link_after): Likewise.
24408
24409         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
24410
24411         * tree-dfa.c (create_var_ann): Likewise.
24412
24413         * tree-cfg.c (create_bb): Likewise.
24414
24415         * toplev.c (alloc_for_identifier_to_locale): Likewise.
24416         (general_init): Likewise.
24417
24418         * stringpool.c (stringpool_ggc_alloc): Likewise.
24419         (gt_pch_save_stringpool): Likewise.
24420
24421         * sese.c (if_region_set_false_region): Likewise.
24422
24423         * passes.c (do_per_function_toporder): Likewise.
24424
24425         * optabs.c (set_optab_libfunc): Likewise.
24426         (set_conv_libfunc): Likewise.
24427
24428         * lto-symtab.c (lto_symtab_register_decl): Likewise.
24429
24430         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
24431         (input_eh_region): Likewise.
24432         (input_eh_lp): Likewise.
24433         (make_new_block): Likewise.
24434         (unpack_ts_real_cst_value_fields): Likewise.
24435
24436         * lto-section-in.c (lto_new_in_decl_state): Likewise.
24437
24438         * lto-cgraph.c (input_node_opt_summary): Likewise.
24439
24440         * loop-init.c (loop_optimizer_init): Likewise.
24441
24442         * lambda.h (lambda_vector_new): Likewise.
24443
24444         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
24445
24446         * ira.c (update_equiv_regs): Likewise.
24447
24448         * ipa.c (cgraph_node_set_new): Likewise.
24449         (cgraph_node_set_add): Likewise.
24450         (varpool_node_set_new): Likewise.
24451         (varpool_node_set_add): Likewise.
24452
24453         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
24454         (duplicate_ipa_jump_func_array): Likewise.
24455         (ipa_read_node_info): Likewise.
24456
24457         * ipa-cp.c (ipcp_create_replace_map): Likewise.
24458
24459         * integrate.c (get_hard_reg_initial_val): Likewise.
24460
24461         * gimple.c (gimple_alloc_stat): Likewise.
24462         (gimple_build_omp_for): Likewise.
24463         (gimple_seq_alloc): Likewise.
24464         (gimple_copy): Likewise.
24465
24466         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
24467         (gsi_insert_after_without_update): Likewise.
24468
24469         * function.c (add_frame_space): Likewise.
24470         (insert_temp_slot_address): Likewise.
24471         (assign_stack_temp_for_type): Likewise.
24472         (allocate_struct_function): Likewise.
24473         (types_used_by_var_decl_insert): Likewise.
24474
24475         * except.c (init_eh_for_function): Likewise.
24476         (gen_eh_region): Likewise.
24477         (gen_eh_region_catch): Likewise.
24478         (gen_eh_landing_pad): Likewise.
24479         (add_call_site): Likewise.
24480
24481         * emit-rtl.c (get_mem_attrs): Likewise.
24482         (get_reg_attrs): Likewise.
24483         (start_sequence): Likewise.
24484         (init_emit): Likewise.
24485
24486         * dwarf2out.c (new_cfi): Likewise.
24487         (queue_reg_save): Likewise.
24488         (dwarf2out_frame_init): Likewise.
24489         (new_loc_descr): Likewise.
24490         (find_AT_string): Likewise.
24491         (new_die): Likewise.
24492         (add_var_loc_to_decl): Likewise.
24493         (clone_die): Likewise.
24494         (clone_as_declaration): Likewise.
24495         (break_out_comdat_types): Likewise.
24496         (new_loc_list): Likewise.
24497         (loc_descriptor): Likewise.
24498         (add_loc_descr_to_each): Likewise.
24499         (add_const_value_attribute): Likewise.
24500         (tree_add_const_value_attribute): Likewise.
24501         (add_comp_dir_attribute): Likewise.
24502         (add_name_and_src_coords_attributes): Likewise.
24503         (lookup_filename): Likewise.
24504         (store_vcall_insn): Likewise.
24505         (dwarf2out_init): Likewise.
24506
24507         * dbxout.c (dbxout_init): Likewise.
24508
24509         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
24510
24511         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
24512
24513         * config/score/score7.c (score7_output_external): Likewise.
24514
24515         * config/score/score3.c (score3_output_external): Likewise.
24516
24517         * config/s390/s390.c (s390_init_machine_status): Likewise.
24518
24519         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
24520         (rs6000_init_machine_status): Likewise.
24521         (output_toc): Likewise.
24522
24523         * config/pa/pa.c (pa_init_machine_status): Likewise.
24524         (get_deferred_plabel): Likewise.
24525
24526         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
24527
24528         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
24529
24530         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
24531
24532         * config/mep/mep.c (mep_init_machine_status): Likewise.
24533         (mep_note_pragma_flag): Likewise.
24534
24535         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
24536
24537         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
24538
24539         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
24540
24541         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
24542         (i386_pe_maybe_record_exported_symbol): Likewise.
24543
24544         * config/i386/i386.c (get_dllimport_decl): Likewise.
24545         (ix86_init_machine_status): Likewise.
24546         (assign_386_stack_local): Likewise.
24547
24548         * config/frv/frv.c (frv_init_machine_status): Likewise.
24549
24550         * config/darwin.c (machopic_indirection_name): Likewise.
24551
24552         * config/cris/cris.c (cris_init_machine_status): Likewise.
24553
24554         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
24555
24556         * config/avr/avr.c (avr_init_machine_status): Likewise.
24557
24558         * config/arm/arm.c (arm_init_machine_status): Likewise.
24559
24560         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
24561         (alpha_need_linkage): Likewise.
24562         (alpha_use_linkage): Likewise.
24563
24564         * cgraph.c (cgraph_allocate_node): Likewise.
24565         (cgraph_create_edge_1): Likewise.
24566         (cgraph_create_indirect_edge): Likewise.
24567         (cgraph_add_asm_node): Likewise.
24568
24569         * cfgrtl.c (init_rtl_bb_info): Likewise.
24570
24571         * cfgloop.c (alloc_loop): Likewise.
24572         (rescan_loop_exit): Likewise.
24573
24574         * cfg.c (init_flow): Likewise.
24575         (alloc_block): Likewise.
24576         (unchecked_make_edge): Likewise.
24577
24578         * c-parser.c (c_parse_init): Likewise.
24579         (c_parse_file): Likewise.
24580
24581         * c-decl.c (bind): Likewise.
24582         (record_inline_static): Likewise.
24583         (push_scope): Likewise.
24584         (make_label): Likewise.
24585         (lookup_label_for_goto): Likewise.
24586         (finish_struct): Likewise.
24587         (finish_enum): Likewise.
24588         (c_push_function_context): Likewise.
24589
24590         * bitmap.c (bitmap_element_allocate): Likewise.
24591         (bitmap_gc_alloc_stat): Likewise.
24592
24593         * alias.c (record_alias_subset): Likewise.
24594         (init_alias_analysis): Likewise.
24595
24596 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
24597
24598         * fold-const.c (fold_comparison): Remove redundant parenthesis.
24599         * tree-inline.c (expand_call_inline): Pass translated return value of
24600         cgraph_inline_failed_string to diagnostic function.
24601
24602 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
24603             Shujing Zhao  <pearly.zhao@oracle.com>
24604
24605         PR c/37724
24606         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
24607         implicit bad conversions is initialization.
24608         (error_init): Use gmsgid instead of msgid for argument name and change
24609         the call for error.
24610         (pedwarn_init): Use gmsgid instead of msgid for argument name and
24611         change the call for pedwarn.
24612         (warning_init): Use gmsgid instead of msgid for argument name and
24613         change the call for warning.
24614
24615 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
24616
24617         * config/mips/mips-protos.h (mips_print_operand): Delete.
24618         (mips_print_operand_address): Delete.
24619         * config/mips/mips.h (mips_print_operand_punct): Delete.
24620         (PRINT_OPERAND): Delete.
24621         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24622         (PRINT_OPERAND_ADDRESS): Delete.
24623         * config/mips/mips.c (mips_print_operand_punct): Make static.
24624         (mips_print_operand_address): Make static.
24625         (mips_print_operand): Make static.  Call
24626         mips_print_operand_punct_valid_p.
24627         (mips_print_operand_punct_valid_p): New function.
24628         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
24629         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
24630
24631 2010-06-07  Jan Hubicka  <jh@suse.cz>
24632
24633         PR middle-end/44454
24634         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
24635         are allocated.
24636
24637 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
24638
24639         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
24640         name of RECORD.
24641
24642 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24643
24644         * doc/sourcebuild.texi (Effective-Target Keywords, Other
24645         attributes): Document gas.
24646
24647 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
24648
24649         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
24650         <TYPE_LEA>: Split instruction.
24651         <default>: Remove alternative 2 handling.
24652         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
24653         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
24654         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
24655
24656         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
24657         (ashift_zext lea splitter): Use DImode for multiplication.
24658
24659         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
24660         to generate addition.
24661
24662 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
24663
24664         * common.opt (fira-verbose): Use Var.
24665         (fpcc-struct-return): Use Init instead of VarExists.
24666         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
24667         toplev.c.
24668         * flags.h (flag_signed_char, flag_short_enums,
24669         flag_pcc_struct_return, flag_ira_verbose,
24670         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
24671         * toplev.c (flag_detailed_statistics, flag_signed_char,
24672         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
24673         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
24674         * toplev.h (flag_crossjumping, flag_if_conversion,
24675         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
24676         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
24677         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
24678         flag_cprop_registers, time_report, flag_ira_loop_pressure,
24679         flag_ira_coalesce, flag_ira_move_spills,
24680         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
24681
24682 2010-06-07  Jan Hubicka  <jh@suse.cz>
24683
24684         * df-core.c (df_analyze_problem): Do verification after allocation.
24685
24686         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
24687         (df_lr_alloc): Initialize problem data; move bitmaps to
24688         lr_bitmaps obstack.
24689         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
24690         (df_lr_verify_solution_start): Do not initialize problem data;
24691         allocate bitmaps in lr_bitmaps.
24692         (df_lr_verify_solution_end): Do not free problem data.
24693
24694 2010-06-07  Jan Hubicka  <jh@suse.cz>
24695
24696         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
24697         if caller is noreturn.
24698         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
24699         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
24700         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
24701         * ipa-pure-const.c (check_decl): Add IPA parameter.
24702         (state_from_flags): New function.
24703         (better_state, worse_state): New functions.
24704         (check_call): When in IPA mode, do not care about callees.
24705         (check_load, check_store): Update.
24706         (check_ipa_load, check_ipa_store): New.
24707         (check_stmt): When in IPA mode, use IPA checkers.
24708         (analyze_function): Use state_from_flags.
24709         (propagate): Check indirect edges and references.
24710
24711 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
24712
24713         PR rtl-optimization/44404
24714         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
24715         of count_occurrences to see if it's safe to modify mem_insn.
24716
24717 2010-06-07  Richard Guenther  <rguenther@suse.de>
24718
24719         * gimplify.c (gimplify_cleanup_point_expr): For empty body
24720         and EH-only cleanup drop the cleanup instead of inserting it
24721         unconditionally.
24722
24723 2010-06-07  Ira Rosen  <irar@il.ibm.com>
24724
24725         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
24726         documentation.
24727         * targhooks.c (default_builtin_vectorization_cost): New function.
24728         * targhooks.h (default_builtin_vectorization_cost): Declare.
24729         * target.h (enum vect_cost_for_stmt): Define.
24730         (builtin_vectorization_cost): Change argument and comment.
24731         * tree-vectorizer.h: Remove cost model macros.
24732         * tree-vect-loop.c: Include target.h.
24733         (vect_get_cost): New function.
24734         (vect_estimate_min_profitable_iters): Replace cost model macros with
24735         calls to vect_get_cost.
24736         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
24737         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
24738         default implementation.
24739         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
24740         calls to target hook builtin_vectorization_cost.
24741         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
24742         Likewise.
24743         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
24744         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
24745         implementation to return costs.
24746         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
24747         * config/spu/spu.h: Remove vectorizer cost model macros.
24748         * config/i386/i386.h: Likewise.
24749         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
24750         a call to target hook builtin_vectorization_cost.
24751
24752 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
24753
24754         PR target/44319
24755         * config/i386/i386.c (override_options): Turn zee pass on for level 2
24756         and above and defer till target is known.
24757         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
24758         turn off otherwise.
24759
24760 2010-05-25  Jan Hubicka  <jh@suse.cz>
24761
24762         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
24763         (df_compact_blocks): Likewise.
24764         * df.h (struct df): Turn hardware_regs_used,
24765         regular_block_artificial_uses, eh_block_artificial_uses,
24766         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
24767         bitmap_head.
24768         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
24769         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
24770         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
24771         df_scan_blocks, df_insn_delete, df_insn_rescan,
24772         df_insn_rescan_debug_internal, df_insn_rescan_all,
24773         df_process_deferred_rescans, df_process_deferred_rescans,
24774         df_notes_rescan, df_get_call_refs, df_get_call_refs,
24775         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
24776         df_record_entry_block_defs, df_record_exit_block_uses,
24777         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
24778         df_scan_verify): Update.
24779
24780 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
24781
24782         PR c++/44188
24783         * c-common.c (is_typedef_decl): Move this definition ...
24784         * tree.c (is_typedef_decl): ... here.
24785         (typdef_variant_p): Move definition here from cp/tree.c.
24786         * c-common.h (is_typedef_decl): Move this declaration ...
24787         * tree.h (is_typedef_decl): ... here.
24788         (typedef_variant_p): Move declaration here from cp/cp-tree.h
24789         * dwarf2out.c (is_naming_typedef_decl): New function.
24790         (gen_tagged_type_die): Split out of ...
24791         (gen_type_die_with_usage): ... this function. When an anonymous
24792         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
24793         is emitted for the typedef.
24794         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
24795         anonymous tagged types.
24796
24797 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24798
24799         PR c/20000
24800         * c-decl.c (grokdeclarator): Delete warning.
24801
24802 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
24803
24804         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
24805         newly built CALL_EXPR.
24806         * tree-profile.c (tree_profiling): Don't profile functions produced
24807         for built-in stuff.
24808
24809 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
24810
24811         PR bootstrap/44427
24812         PR bootstrap/44428
24813         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
24814         endianness-independent.
24815
24816 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
24817
24818         * c-common.c: Move to c-family/.
24819         * c-common.def: Likewise.
24820         * c-common.h: Likewise.
24821         * c-cppbuiltin.c: Likewise.
24822         * c-dump.c: Likewise.
24823         * c-format.c: Likewise.
24824         * c-format.h : Likewise.
24825         * c-gimplify.c: Likewise.
24826         * c-lex.c: Likewise.
24827         * c-omp.c: Likewise.
24828         * c.opt: Likewise.
24829         * c-opts.c: Likewise.
24830         * c-pch.c: Likewise.
24831         * c-ppoutput.c: Likewise.
24832         * c-pragma.c: Likewise.
24833         * c-pragma.h: Likewise.
24834         * c-pretty-print.c: Likewise.
24835         * c-pretty-print.h: Likewise.
24836         * c-semantics.c: Likewise.
24837         * stub-objc.c: Likewise.
24838
24839         * gengtype.c (get_file_langdir): Special-case files in c-family/.
24840         (get_output_file_with_visibility): Fix name for c-common.h.
24841         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
24842
24843         * c-tree.h: Update include path for moved files.
24844         * c-lang.c: Likewise.
24845         * c-lang.h: Likewise.
24846         * c-parser.c: Likewise.
24847         * c-convert.c: Likewise.
24848         * c-decl.c: Likewise.
24849         * c-objc-common.c: Likewise.
24850         * configure.ac: Make sure c-family/ exists in the build directory.
24851         * configure: Regenerate.
24852         * Makefile.in: Update paths for moved files.  Regroup files per
24853         location and update dependencies.  Move generated_files down after
24854         ALL_GTFILES_H.
24855
24856         * config/spu/spu-c.c: Update paths for moved files.
24857         * config/mep/mep-pragma.c: Likewise.
24858         * config/darwin-c.c: Likewise.
24859         * config/i386/msformat-c.c: Likewise.
24860         * config/i386/i386-c.c: Likewise.
24861         * config/avr/avr-c.c: Likewise.
24862         * config/sol2-c.c: Likewise.
24863         * config/ia64/ia64-c.c: Likewise.
24864         * config/rs6000/rs6000-c.c: Likewise.
24865         * config/arm/arm.c: Likewise.
24866         * config/arm/arm-c.c: Likewise.
24867         * config/h8300/h8300.c: Likewise.
24868         * config/v850/v850-c.c: Likewise.
24869
24870         * config/t-darwin: Fix dependencies for moved files.
24871         * config/t-sol2: Fix dependencies for moved files.
24872         * config/mep/t-mep: Fix dependencies for moved files.
24873         * config/ia64/t-ia64: Fix dependencies for moved files.
24874         * config/rs6000/t-rs6000: Fix dependencies for moved files.
24875         * config/v850/t-v850: Fix dependencies for moved files.
24876         * config/v850/t-v850e: Fix dependencies for moved files.
24877
24878         * config/m32c/m32c-pragma.c
24879
24880         * po/exgettext: Look in c-family/ also.
24881
24882 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
24883
24884         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
24885         (mark_control_dependent_edges_necessary): Call it instead of marking
24886         the last statement manually.
24887         (propagate_necessity): Likewise.
24888
24889 2010-06-05  Jan Hubicka  <jh@suse.cz>
24890
24891         * basic-block.h (compute_dominance_frontiers): Updated.
24892         (compute_idf): Likewise.
24893
24894         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
24895         for dominance frontiers.
24896         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
24897         (insert_updated_phi_nodes_for): Likewise.
24898         (update_ssa): Likewise.
24899         * cfganal.c (compute_dominance_frontiers_1): Likewise.
24900         (compute_dominance_frontiers): Likewise.
24901         (compute_idf): Likewise.
24902         * df-problems.c (df_md_local_compute): Likewise.
24903
24904 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
24905
24906         * target.h (struct gcc_target): Add memory_move_cost field.
24907         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
24908         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
24909         * targhooks.c (default_memory_move_cost): New function.
24910         * targhooks.h (default_memory_move_cost): Declare function.
24911         * reload.h (memory_move_cost): Declare.
24912         (memory_move_secondary_cost): Change type of 'in' argument to bool.
24913         * reginfo.c (memory_move_cost): New function.
24914         (memory_move_secondary_cost): Change type of 'in' argument to bool.
24915         * ira.h (ira_memory_move_cost): Update comment.
24916         * ira.c (ira_memory_move_cost): Update comment.
24917         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
24918         with memory_move_cost.
24919         * postreload.c (reload_cse_simplify_set): (Ditto.).
24920         * reload1.c (choose_reload_regs): (Ditto.).
24921         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
24922         (MEMORY_MOVE_COST):  Revise documentation.
24923
24924         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
24925         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
24926         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
24927         type of 'in' argument to bool.
24928         (TARGET_MEMORY_MOVE_COST): Define.
24929
24930 2010-06-05  Jan Hubicka  <jh@suse.cz>
24931
24932         * ipa-pure-const.c (propagate): Fix typo in handling of functions
24933         that cannot return.  Be more careful when merging the results with
24934         previously known ones.
24935
24936 2010-06-05  Matthias Klose  <doko@ubuntu.com>
24937
24938         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
24939         function to add the -iplugindir option.
24940         (find_plugindir_spec_function): Add new declaration and function.
24941         (static_spec_func): Use it for "find-plugindir".
24942
24943 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
24944
24945         PR c++/44361
24946         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
24947         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
24948         statement expression.
24949
24950 2010-06-05  Jan Hubicka  <jh@suse.cz>
24951
24952         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
24953         (df_rd_problem_data): Convert sparse_invalidated_by_call,
24954         dense_invalidated_by_call to bitmap head.
24955         (df_rd_alloc, df_rd_bb_local_compute_process_def,
24956         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
24957         df_rd_start_dump, df_lr_verify_transfer_functions,
24958         df_live_verify_transfer_functions, df_chain_create_bb,
24959         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
24960         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
24961         df_simulate_one_insn_forwards, df_md_alloc,
24962         df_md_bb_local_compute_process_def,
24963         df_md_bb_local_compute_process_def, df_md_local_compute,
24964         df_md_transfer_function df_md_free): Update.
24965
24966 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
24967
24968         PR c/44322
24969         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
24970         target type for ADDR_EXPR; require no changes to qualifiers except
24971         for function types.
24972         * c-tree.h (c_build_type_variant): Remove.
24973
24974 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
24975
24976         * genautomata.c (get_excl_set): Do work per element, not per char.
24977         (check_presence_pattern_sets): Similar.
24978         (check_absence_pattern_sets): Similar.
24979
24980 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
24981
24982         * genautomata.c (curr_state_pass_num): Delete.
24983         (min_issue_delay_pass_states): Delete.
24984         (min_issue_delay): Delete.
24985         (initiate_min_issue_delay_pass_states): Delete.
24986         (output_min_issue_delay_table): Compute min_issue_delay_vect
24987         using a breadth-first search variant.
24988         (output_tables): Don't call initiate_min_issue_delay_pass_states.
24989
24990 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
24991
24992         PR boostrap/44421
24993         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
24994         (df_byte_lr_bb_local_compute): Likewise.
24995
24996 2010-06-03  Jason Merrill  <jason@redhat.com>
24997
24998         Implement noexcept operator (5.3.7)
24999         * c-common.c (c_common_reswords): Add noexcept.
25000         * c-common.h (enum rid): Add RID_NOEXCEPT.
25001
25002 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
25003
25004         * config/darwin-driver.c (darwin_default_min_version): Use
25005         GCC-specific formats in diagnostics.
25006         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
25007         diagnostics.
25008         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
25009         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
25010         eval_spec_function, handle_braces, process_brace_body, main,
25011         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
25012         getenv_spec_function, compare_version_strings,
25013         version_compare_spec_function): Use GCC-specific formats in
25014         diagnostics.
25015
25016 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25017
25018         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
25019         that operand 0 and operand 1 are equal.
25020         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
25021         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
25022         and operand 1 are equal.
25023         <default>: Ditto.  Remove ??? comment.
25024         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
25025         and operand 1 are equal.
25026         <default>: Ditto.  Remove ??? comment.
25027         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
25028         are equal.
25029         (*add<mode>_4) <default>: Ditto.
25030         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
25031
25032 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
25033
25034         * config/i386/i386-protos.h (ix86_print_operand): Declare.
25035         * config/i386/i386.c (ix86_print_operand): Make non-static.
25036         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
25037         * output.h (output_operand): Declare.
25038         * final.c (output_operand): Make non-static.
25039
25040 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
25041
25042         PR rtl-optimization/44013
25043         * sched-deps.c (add_dependence_list_and_free): Don't free lists
25044         when processing debug insns.
25045
25046         PR debug/41371
25047         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
25048         recursing.  Check that recursion is bounded.  Rename inner var
25049         to avoid hiding incoming argument.
25050
25051 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25052
25053         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
25054         operands[2] == 255.
25055         (*addqi_3): Ditto.
25056         (*addqi_4): Ditto.
25057         (*addqi_5): Ditto.
25058         (*addqi_ext_1_rex64): Ditto.
25059         (*addqi_ext_1): Ditto.
25060
25061         (*addqi_4): Check for incdec_operand in QImode.
25062
25063         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
25064         using SWI mode iterator.
25065         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
25066         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
25067         mode iterator.
25068         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
25069         using SWI mode iterator.
25070
25071 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25072
25073         PR c/25880
25074         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
25075         * c-format.c (gcc_diag_flag_specs): Add hash.
25076         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
25077         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
25078         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
25079         pp_c_cv_qualifiers. Handle qualifiers spelling here.
25080         (pp_c_type_qualifier_list): Call the function above.
25081         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
25082         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
25083         (WARN_FOR_QUALIFIERS): New macro.
25084         (convert_for_assignment): Use it.
25085
25086 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
25087
25088         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
25089
25090 2010-06-04  Jan Hubicka  <jh@suse.cz>
25091
25092         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
25093         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
25094         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
25095         DF_BYTE_LR_OUT): Update for embedded bitmaps.
25096         * fwprop.c (single_def_use_enter_block): Likewise.
25097         * ddg.c (create_ddg_dep_from_intra_loop_link,
25098         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
25099         * loop-iv.c (latch_dominating_def): Likewise.
25100         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
25101         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
25102         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
25103         df_rd_transfer_function, df_rd_top_dump,
25104         df_rd_bottom_dump): Update.
25105         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
25106         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
25107         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
25108         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
25109         df_lr_verify_solution_start, df_lr_verify_solution_end,
25110         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
25111         df_live_free_bb_info, df_live_alloc, df_live_reset,
25112         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
25113         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
25114         df_live_verify_solution_start, df_live_verify_solution_end,
25115         df_live_verify_transfer_functions, df_chain_create_bb,
25116         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
25117         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25118         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25119         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
25120         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
25121         df_byte_lr_transfer_function, df_byte_lr_top_dump,
25122         df_byte_lr_bottom_dump, df_create_unused_note,
25123         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
25124         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
25125         df_md_transfer_function, df_md_init, df_md_confluence_0,
25126         df_md_confluence_n,
25127         df_md_top_dump, df_md_bottom_dump): Update.
25128         (struct df_lr_problem_data): Embedd bitmap headers.
25129
25130 2010-06-04  Jan Hubicka  <jh@suse.cz>
25131
25132         * dce.c (dce_process_block): Do not re-scan already marked
25133         instructions.
25134
25135 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
25136
25137         PR rtl-optimization/39871
25138         PR rtl-optimization/40615
25139         PR rtl-optimization/42500
25140         PR rtl-optimization/42502
25141         * ira.c (init_reg_equiv_memory_loc: New function.
25142         (ira): Call it twice.
25143         * reload.h (calculate_elim_costs_all_insns): Declare.
25144         * ira-costs.c: Include "reload.h".
25145         (regno_equiv_gains): New static variable.
25146         (init_costs): Allocate it.
25147         (finish_costs): Free it.
25148         (ira_costs): Call calculate_elim_costs_all_insns.
25149         (find_costs_and_classes): Take estimated elimination costs
25150         into account.
25151         (ira_adjust_equiv_reg_cost): New function.
25152         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
25153         * reload1.c (init_eliminable_invariants, free_reg_equiv,
25154         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
25155         (elim_bb): New static variable.
25156         (reload): Move code out of here into init_eliminable_invariants and
25157         free_reg_equiv.  Call them.
25158         (calculate_elim_costs_all_insns): New function.
25159         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
25160         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
25161         but call note_reg_elim_costly if we turned a valid memory address
25162         into an invalid one.
25163         * Makefile.in (ira-costs.o): Depend on reload.h.
25164
25165 2010-06-04  Julian Brown  <julian@codesourcery.com>
25166
25167         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
25168         for pool ranges.
25169
25170 2010-06-04  Richard Guenther  <rguenther@suse.de>
25171
25172         PR lto/41584
25173         * cgraph.h (struct varpool_node): Add lto_file_data field.
25174         * lto-cgraph.c (input_varpool_node): Initialize it.
25175
25176 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25177
25178         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
25179         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
25180         predicate in "type" attribute calculation.
25181         (*addsi_1_zext): Ditto.
25182         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
25183         (*addsi_2_zext): Ditto.
25184         (*add<mode>_3): Ditto.
25185         (*addsi_3_zext): Ditto.
25186         (*add<mode>_5): Ditto.
25187
25188 2010-06-03  Jan Hubicka  <jh@suse.cz>
25189
25190         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
25191         of bitmap_bit_p.
25192         * cfganal.c (compute_dominance_frontiers_1): Likewise.
25193
25194 2010-06-03  Jan Hubicka  <jh@suse.cz>
25195
25196         * df-problems.c (df_create_unused_note, df_note_bb_compute):
25197         micro-optimize the checks when to add new note.
25198
25199 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
25200
25201         * final.c (output_asm_insn): Call
25202         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
25203         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
25204         (output_address): Call targetm.asm_out.print_operand_address.
25205         Update comments.
25206         * target.h (struct gcc_target): Add print_operand,
25207         print_operand_address, and print_operand_punct_valid_p fields.
25208         * targhooks.h (default_print_operand): Declare.
25209         (default_print_operand_address): Declare.
25210         (default_print_operand_punct_valid_p): Declare.
25211         * targhooks.c (default_print_operand): Define.
25212         (default_print_operand_address): Define.
25213         (default_print_operand_punct_valid_p): Define.
25214         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
25215         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
25216         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
25217         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
25218         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
25219         * vmsdbgout.c (addr_const_to_string): Update comment.
25220         * config/i386/i386.c (print_operand): Rename to...
25221         (ix86_print_operand): ...this.  Make static.
25222         (print_operand_address): Rename to...
25223         (ix86_print_operand_address): ...this.  Make static.  Call
25224         ix86_print_operand instead of PRINT_OPERAND.
25225         (ix86_print_operand_punct_valid_p): New function.
25226         (TARGET_PRINT_OPERAND): Define.
25227         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25228         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25229         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
25230         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25231         (PRINT_OPERAND): Delete.
25232         (PRINT_OPERAND_ADDRESS): Delete.
25233         * config/i386/i386-protos.h (print_operand): Delete prototype.
25234         (print_operand_address): Delete prototype.
25235
25236 2010-06-03  Richard Guenther  <rguenther@suse.de>
25237
25238         PR tree-optimization/44403
25239         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
25240         Preserve pointer qualifiers.
25241         (vect_create_data_ref_ptr): Likewise.
25242
25243 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
25244
25245         PR c++/44294
25246         * defaults.h (MAX_FIXED_MODE_SIZE): New.
25247
25248         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
25249
25250 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
25251
25252         PR debug/44375
25253         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
25254         return false if merging the bbs would lead to goto_locus
25255         location being lost from the IL.
25256
25257 2010-06-03  Jan Hubicka  <jh@suse.cz>
25258             Jakub Jelinek  <jakub@redhat.com>
25259
25260         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
25261         set->regs[i] is NULL or has just one entry.
25262
25263 2010-06-03  Jan Hubicka  <jh@suse.cz>
25264
25265         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
25266         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
25267
25268 2010-06-03  Paul Brook  <paul@codesourcery.com>
25269
25270         * config/arm/arm.c (FL_TUNE): Define.
25271         (arm_default_cpu, arm_cpu_select): Remove.
25272         (all_cores): Populate core field.
25273         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
25274         (arm_find_cpu): New function.
25275         (arm_handle_option): Lookup cpu/architecture names.
25276         (arm_override_options): Cleanup mcpu/march/mtune handling.
25277         (arm_file_start): Ditto.
25278
25279 2010-06-03  Alan Modra  <amodra@gmail.com>
25280
25281         PR target/44169
25282         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
25283         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
25284         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
25285         (rs6000_emit_load_toc_table): Likewise.
25286
25287 2010-06-02  Jan Hubicka  <jh@suse.cz>
25288
25289         * passes.c (init_optimization_passes): Put ipa reference
25290         after ipa pure-const.
25291
25292 2010-06-02  Jan Hubicka  <jh@suse.cz>
25293
25294         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
25295         calls_read_all and calls_write_all.
25296         (get_reference_optimization_summary): Fix formatting.
25297         (is_proper_for_analysis): Check that decl is not readonly.
25298         (propagate_bits): Check CONST/PURE/noreturn flags.
25299         (ipa_init): Move all_module_statics to optimization_summary_obstack.
25300         (analyze_function): Ignore indirect edges.
25301         (copy_global_bitmap): For all module statics, do nothing.
25302         (generate_summary): Do not print calls_read_all/calls_write_all.
25303         (read_write_all_from_decl): Take node as argument; check
25304         cgraph_node_cannot_return.
25305         (propagate): Reorganize read_all/write_all computation;
25306         check indirect edges; check ecf flags; use all_module_statics
25307         in the results; do not free all_module_statics.
25308         (stream_out_bitmap): Handle all_module_statics.
25309         (ipa_reference_write_optimization_summary): Likewise; use
25310         varpool/cgraph encoders to get boundaries.
25311         (ipa_reference_read_optimization_summary): Read in all_module_statics;
25312         use it when possible.
25313
25314 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
25315
25316         PR target/44218
25317         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
25318         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
25319
25320         * doc/extend.texi (powerpc builtins): Document vec_recip,
25321         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
25322
25323         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
25324         (rs6000_emit_swrsqrt): Ditto.
25325         (rs6000_emit_swdivsf): Delete.
25326         (rs6000_emit_swdivdf): Ditto.
25327         (rs6000_emit_swrsqrtsf): Ditto.
25328
25329         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
25330         describe the reciprocal estimate support for each type.
25331         (recip_options): Map -mrecip=<opt> into option bits.
25332         (gen_2arg_fn_t): New typedef for binary rtx gen function.
25333         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
25334         reciprocal estimate instructions.
25335         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
25336         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
25337         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
25338         cost information if -mdebug=cost or -mdebug=reg.
25339         (rs6000_override_options): Set -mrecip-precision for power6, and
25340         power7 machines.  If -mvsx or -mdfp, enable various options that
25341         came in previous instruction set ISAs, unless the option was
25342         explicitly disabled by the command line option.  Parse
25343         -mrecip=<opt> options.
25344         (rs6000_builtin_vectorized_function): Add support for vectorizing
25345         the reciprocal estimate builtins and expansions.
25346         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
25347         (bdesc_2arg): Add reciprocal estimate builtins.
25348         (bdesc_1arg): Add reciprocal square root estimate builtins.
25349         (rs6000_expand_builtin): Rewrite to use a switch statement,
25350         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
25351         (rs6000_init_builtins): Create declarations for reciprocal
25352         estimate builtins.
25353         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
25354         sized, prefer traditional floating point registers, if integer
25355         vector types, prefer altivec registers.  Don't actually look at
25356         the memory address any more.
25357         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
25358         builtins.
25359         (rs6000_load_constant_and_splat): New helper function to load up
25360         the constant for reciprocal estimate instructions.
25361         (rs6000_emit_madd): New helper function for generating
25362         multiply/add type instructions, based on the current switches.
25363         (rs6000_emit_msub): Ditto.
25364         (rs6000_emit_mnsub): Ditto.
25365         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
25366         replace a divide with a reciprocal estimate and fixup, adding
25367         support for machines with high precision and vectors.
25368         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
25369         low precision machines.
25370         (rs6000_emit_swdiv): New common function to be called to replace a
25371         division with reciprocal estimate and fixup.
25372         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
25373         for double and vector types.  Add support for high precision machines.
25374
25375         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
25376         the reciprocal estimate instructions can be generated.
25377         (TARGET_FRE): Ditto.
25378         (TARGET_FRSQRTES): Ditto.
25379         (TARGET_FRSQRTE): Ditto.
25380         (RS6000_RECIP_*): New macros for reciprocal estimate support.
25381
25382         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
25383         square root estimate on vectors.
25384         (re<mode>2): New insn for reciprocal division estimate on vectors.
25385
25386         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
25387         New builtin.
25388         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
25389         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
25390         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
25391         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
25392         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
25393         (RS6000_BUILTIN_RSQRT): Ditto.
25394         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
25395         floating point builtin.
25396
25397         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
25398         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
25399         __RECIP_PRECISION__ based on the command line switches.
25400         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
25401
25402         * config/rs6000/rs6000.opt (-mrecip): Document add support for
25403         replacing division instructions with reciprocal estimate and fixup.
25404         (-mrecip=<opt>): New option.
25405         (-mrecip-precision): Ditto.
25406
25407         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
25408         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
25409         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
25410         precision scalar.
25411
25412         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
25413         (UNSPEC_VREFP): Ditto.
25414         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
25415         conterparts with regard to support of -mno-fused-madd and -ffast-math.
25416         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
25417         reciprocal estimate instructions to be generated.
25418         (altivec_vrefp): Ditto.
25419
25420         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
25421         estimate support.
25422         (rreg): New mode attribute for reciprocal estimate support.
25423         (recip<mode>3): New insn for division using reciprocal estimate
25424         and fixup builtins.
25425         (divide define_split): New define_split to convert floating point
25426         division to use reciprocal estimate if the user used the
25427         appropriate options and the split is run when we can add new
25428         pseudo registers for the fixup.
25429         (rsqrt<mode>2): New insn for reciprocal square root support.
25430         (recipsf3): Move into recip<mode>3.
25431         (recipdf3): Ditto.
25432         (fres): Use TARGET_FRES.
25433         (rsqrtsf2): Move into rsqrt<mode>2.
25434         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
25435         (copysignsf3): Add support for VSX.
25436         (fred): Use TARGET_FRE.
25437         (fred_fpr): Ditto.
25438         (rsqrtdf_internal1): New function for frsqrte instruciton.
25439
25440         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
25441         (vec_rsqrt): Ditto.
25442
25443 2010-06-03  Richard Guenther  <rguenther@suse.de>
25444
25445         PR middle-end/44291
25446         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
25447         (set_user_assembler_libfunc): Likewise.
25448
25449 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25450
25451         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
25452         defaults.h.
25453         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
25454         to defaults.h
25455         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
25456         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
25457         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
25458         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
25459         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
25460         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
25461         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
25462         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
25463         * defaults.h: Updated for above mentioned changes.
25464
25465 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
25466
25467         * c-common.c: Remove header include of tm_p.h.
25468         * Makefile.in (c-common.o): Remove TM_P_H dependency.
25469
25470 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
25471
25472         * tree.h (struct tree_decl_map): New type.
25473         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
25474         (tree_decl_map_hash): New prototype.
25475         (debug_expr_for_decl, value_expr_for_decl): Change into
25476         tree_decl_map hashtab from tree_map.
25477         (init_ttree): Adjust initialization.
25478         (tree_decl_map_hash): New function.
25479         (decl_debug_expr_lookup, decl_debug_expr_insert,
25480         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
25481
25482 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25483
25484         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
25485         linker emulations.
25486         * configure: Regenerate.
25487         * config.in: Regenerate.
25488
25489         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
25490         (X86_64_EMULATION): Define.
25491         (TARGET_LD_EMULATION): Use them.
25492
25493         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
25494         (SPARC64_EMULATION): Define.
25495         (LINK_ARCH_SPEC): Use them.
25496
25497 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25498
25499         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
25500         smallest_mode_for_size for computing the precision types of new
25501         graphite IVs.  Do not call lang_hooks.types.type_for_size.
25502
25503 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25504
25505         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
25506         information.
25507         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
25508
25509 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25510
25511         PR middle-end/44363
25512         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
25513         return false instead.
25514
25515 2010-06-02  Jan Hubicka  <jh@suse.cz>
25516
25517         PR middle-end/44295
25518         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
25519         create new cgraph node to check callee.
25520
25521 2010-06-02  Richard Guenther  <rguenther@suse.de>
25522
25523         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
25524
25525 2010-06-02  Richard Guenther  <rguenther@suse.de>
25526
25527         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
25528         (lto_wrapper_cleanup): ... this.  Do not exit.
25529         (fatal): Adjust.  Exit here.
25530         (fatal_perror): Likewise.
25531         (fatal_signal): New function.
25532         (main): Set up signal handlers to cleanup temporary files.
25533         * Makefile.in (lto-wrapper.o): Adjust dependencies.
25534
25535 2010-06-02  Richard Guenther  <rguenther@suse.de>
25536
25537         PR tree-optimization/44377
25538         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
25539
25540 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25541
25542         * config/s390/2097.md (z10_fhex): Remove insn reservation.
25543         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
25544         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
25545         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
25546         instruction.
25547         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
25548
25549 2010-06-02  Jan Hubicka  <jh@suse.cz>
25550
25551         * bitmap.c (bitmap_descriptor): Add search_iter.
25552         (bitmap_find_bit): Increment it.
25553         (print_statistics): Print it.
25554
25555 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
25556
25557         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
25558         instead of gimple_build_call_vec.  Delete unnecessary local variable.
25559
25560 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25561
25562         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
25563         change from yesterday.
25564
25565 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25566
25567         * c-ada-spec.c: Clean up redundant includes.
25568
25569 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
25570
25571         * gimplify.c: Do not include except.h and optabs.h.
25572         (gimplify_body): Do not initialize RTL profiling.
25573         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
25574         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
25575         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
25576         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
25577         langhooks.h.
25578
25579         * tree-pretty-print.h: Include pretty-print.h.
25580         * gimple-pretty-print.h: Include pretty-print.h.
25581
25582         * tree-pretty-print.c: Do not include diagnostic.h.
25583         * tree-vrp.c: Likewise.
25584         * tree-tailcall.c: Likewise
25585         * tree-scalar-evolution.c: Likewise
25586         * tree-ssa-dse.c: Likewise
25587         * tree-chrec.c: Likewise
25588         * tree-ssa-sccvn.c: Likewise
25589         * tree-ssa-copyrename.c: Likewise
25590         * tree-nomudflap.c: Likewise
25591         * tree-call-cdce.c: Likewise
25592         * tree-stdarg.c: Likewise
25593         * tree-ssa-math-opts.c: Likewise
25594         * tree-nrv.c: Likewise
25595         * tree-ssa-sink.c: Likewise
25596         * tree-browser.c: Likewise
25597         * tree-ssa-loop-ivcanon.c: Likewise
25598         * tree-ssa-loop.c: Likewise
25599         * tree-parloops.c: Likewise
25600         * tree-ssa-address.c: Likewise
25601         * tree-ssa-ifcombine.c: Likewise
25602         * tree-if-conv.c: Likewise
25603         * tree-data-ref.c: Likewise
25604         * tree-affine.c: Likewise
25605         * tree-ssa-phiopt.c: Likewise
25606         * tree-ssa-coalesce.c: Likewise
25607         * tree-ssa-pre.c: Likewise
25608         * tree-ssa-live.c: Likewise
25609         * tree-predcom.c: Likewise
25610         * tree-ssa-forwprop.c: Likewise
25611         * tree-ssa-dce.c: Likewise
25612         * tree-ssa-ter.c: Likewise
25613         * tree-ssa-loop-prefetch.c: Likewise
25614         * tree-optimize.c: Likewise
25615         * tree-ssa-phiprop.c: Likewise
25616         * tree-object-size.c: Likewise
25617         * tree-outof-ssa.c: Likewise
25618         * tree-ssa-structalias.c: Likewise
25619         * tree-switch-conversion.c: Likewise
25620         * tree-ssa-reassoc.c: Likewise
25621         * tree-ssa-operands.c: Likewise
25622         * tree-vectorizer.c: Likewise
25623         * tree-vect-data-refs.c: Likewise
25624         * tree-vect-generic.c: Likewise
25625         * tree-vect-stmts.c: Likewise
25626         * tree-vect-patterns.c: Likewise
25627         * tree-vect-slp.c: Likewise
25628         * tree-vect-loop.c: Likewise
25629         * tree-ssa-loop-ivopts.c: Likewise
25630         * tree-ssa-loop-im.c: Likewise
25631         * tree-ssa-loop-niter.c: Likewise
25632         * tree-ssa-loop-unswitch.c: Likewise
25633         * tree-ssa-loop-manip.c: Likewise
25634         * tree-ssa-loop-ch.c: Likewise
25635         * tree-dump.c: Likewise
25636         * tree-complex.c: Likewise
25637
25638         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
25639         * tree-ssa-uninit.c: Likewise
25640         * tree-ssa-threadupdate.c: Likewise
25641         * tree-ssa-uncprop.c: Likewise
25642         * tree-ssa-ccp.c: Likewise
25643         * tree-ssa-dom.c: Likewise
25644         * tree-ssa-propagate.c: Likewise
25645         * tree-ssa-alias.c: Likewise
25646         * tree-dfa.c: Likewise
25647         * tree-cfgcleanup.c: Likewise
25648         * tree-sra.c: Likewise
25649         * tree-ssa-copy.c: Likewise
25650         * tree-ssa.c: Likewise
25651         * tree-profile.c: Likewise
25652         * tree-cfg.c: Likewise
25653         * tree-ssa-threadedge.c: Likewise
25654         * tree-vect-loop-manip.c: Likewise
25655
25656         * tree-inline.c: Do not include diagnostic.h and expr.h.
25657         Include rtl.h.
25658         (copy_decl_for_dup_finish): Do not use NULL_RTX.
25659
25660         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
25661         * tree-loop-distribution.c: Likewise.
25662
25663 2010-06-01  Jan Hubicka  <jh@suse.cz>
25664
25665         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
25666
25667 2010-06-01  Jan Hubicka  <jh@suse.cz>
25668
25669         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
25670         remove return value.
25671         (split_bbs_on_noreturn_calls) .... here.
25672         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
25673         * tree-flow.h (fixup_noreturn_call): New.
25674
25675 2010-06-01  Jan Hubicka  <jh@suse.cz>
25676
25677         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
25678
25679 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
25680
25681         * tree.h (build_nt_call_list): Delete.
25682         * tree.c (build_nt_call_list): Delete.
25683
25684 2010-06-01  Jan Hubicka  <jh@suse.cz>
25685
25686         * fwprop.c: Make emit-rtl.h include last.
25687         * rtlanal.c: Include emit-rtl.h.
25688         * genautomata.c: Output emit-rtl include into insn-automata.c
25689         * df-scan.c: Include emit-rtl.h.
25690         * haifa-sched.c: Indlude emit-rtl.h.
25691         * mode-switching.c: Indlude emit-rtl.h.
25692         * graph.c: Indlude emit-rtl.h.
25693         * sel-sched.c: Include emit-rtl.h.
25694         * sel-sched-ir.c: Include emit-rtl.h.
25695         * ira-build.c: Include emit-rtl.h.
25696         * emit-rtl.c (first_insn, last_insn): Remove defines.
25697         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
25698         Move to emit-rtl.h.
25699         (set_new_first_and_last_insn, get_last_insn_anywhere,
25700         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
25701         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
25702         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
25703         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
25704         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
25705         Use accessor functions.
25706         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
25707          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
25708         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
25709         mem_expr_equal_p): Move here from rtl.h.
25710         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
25711         Move here from emit-rtl.c; make inline.
25712         * cfglayout.h: Include emit-rtl.h.
25713         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
25714          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
25715         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
25716         mem_expr_equal_p, get_insns, set_first-insn,
25717         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
25718         * reg-stack.c: Include emit-rtl.h.
25719         * dce.c: Likewise.
25720
25721 2010-06-01  Jan Hubicka  <jh@suse.cz>
25722
25723         * cgraph.h (tree_function_versioning): Update prototype.
25724         (cgraph_function_versioning): Update prototype.
25725         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
25726         bitmap.
25727         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
25728         (cgraph_materialize_clone, save_inline_function_body): Update use of
25729         tree_function_versioning.
25730         * tree-inline.c (copy_bb): Look for previous copied block to link
25731         after; fix debug output.
25732         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
25733         (copy_body): Likewise.
25734         (expand_call_inline): Update use of copy_body.
25735         (tree_function_versioning): Update use of copy body; accept
25736         blocks_to_copy and new_entry.
25737
25738 2010-06-01  Jan Hubicka  <jh@suse.cz>
25739
25740         * gegenrtl.c: Remove unnecesary prototypes.
25741         (gendecl): Remove.
25742         (gendef): Produce static inline.
25743         (gencode): Remove.
25744         (main): Do not decode parameters; generate header only.
25745         * Makefile.in (genrtl.c): Remove.
25746
25747 2010-06-01  Jan Hubicka  <jh@suse.cz>
25748
25749         * tree-switch-conversion.c (build_one_array): Make it readonly.
25750
25751 2010-06-01  Richard Guenther  <rguenther@suse.de>
25752
25753         * optabs.c (init_optabs): Guard all accesses to reinit.
25754         * ipa-pure-const.c (propagate): Fix another typo.
25755         * opts.c (common_handle_option): Split assignment to bool.
25756         * c-opts.c (c_common_handle_option): Likewise.
25757
25758 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
25759             Matthew Gingell  <gingell@adacore.com>
25760
25761         * doc/invoke.texi: Mention -fdump-ada-spec.
25762         * tree-dump.c (dump_files): Add ada-spec.
25763         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
25764         * tree-pass.h (tree_dump_index): Add TDI_ada.
25765         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
25766         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
25767         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
25768         * c-decl.c: Include c-ada-spec.h.
25769         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
25770         functions.
25771         (c_write_global_declarations): Add handling of -fdump-ada-spec.
25772         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
25773         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
25774         * c-ada-spec.h, c-ada-spec.c: New files.
25775
25776 2010-06-01  Richard Guenther  <rguenther@suse.de>
25777
25778         PR lto/43853
25779         * ipa-pure-const.c (get_function_state): Hand back varying state
25780         if we do not have one.
25781         (has_function_state): New function.
25782         (duplicate_node_data): Adjust.
25783         (remove_node_data): Likewise.
25784         (pure_const_write_summary): Likewise.
25785         (propagate): Likewise.  Fix typo.
25786
25787 2010-06-01  Jan Hubicka  <jh@suse.cz>
25788
25789         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
25790         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
25791         (execute_all_ipa_transforms): Do not play with the states.
25792
25793 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
25794
25795         * config/arm/t-linux-androideabi: New.
25796         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
25797
25798 2010-06-01  Jan Hubicka  <jh@suse.cz>
25799
25800         * tree-inline.c (estimate_num_insns): For stdarg functions look
25801         into call statement to count cost of argument passing.
25802
25803 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
25804
25805         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
25806         argument for fprintf.
25807         (ix86_output_addr_diff_elt): Likewise.
25808         (x86_function_profiler): Likewise.
25809         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
25810         (LPREFIX): Likewise.
25811         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
25812
25813 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
25814
25815         PR target/44338
25816         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
25817         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
25818         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
25819         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
25820         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
25821         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
25822         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
25823         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
25824         TARGET_FUSED_MADD.
25825
25826 2010-05-31  Jan Hubicka  <jh@suse.cz>
25827
25828         * tree.h (tree_range_check_failed): Declare noreturn.
25829
25830 2010-05-31  Jan Hubicka  <jh@suse.cz>
25831
25832         * gimple.c (gimple_call_builtin_p): New function.
25833         * gimple.h (gimple_call_builtin_p): Declare.
25834         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
25835         to exit.
25836         (execute_warn_function_return): BUILT_IN_RETURN is return.
25837         (split_critical_edges): Return edges are not critical.
25838         (is_ctrl_altering_stmt): Builtin_in_return is altering.
25839         (gimple_verify_flow_info): Handle built_in_return.
25840         (execute_warn_function_return): Handle built_in_return.
25841         * ipa-pure-const.c (check_call): Ignore builtin_return.
25842
25843 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
25844
25845         PR middle-end/44337
25846         * expr.c (expand_assignment): Don't store anything for out-of-bounds
25847         array accesses with non-MEM.
25848
25849         PR tree-optimization/44182
25850         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
25851         newly needs to end a bb is followed by debug stmts, instead return
25852         true from the function at the end.
25853         (maybe_move_debug_stmts_to_successors): New function.
25854         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
25855
25856 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
25857
25858         PR target/44161
25859         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
25860
25861 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
25862
25863         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
25864         for nested functions in non-optimized compilation.
25865
25866 2010-05-31  Richard Guenther  <rguenther@suse.de>
25867
25868         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
25869
25870 2010-05-30  Jan Hubicka  <jh@suse.cz>
25871
25872         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
25873
25874 2010-05-30  Richard Guenther  <rguenther@suse.de>
25875
25876         PR lto/42975
25877         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
25878         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
25879         no longer needed.
25880
25881 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
25882
25883         * config/darwin.c (output_objc_section_asm_op): Add comment.
25884         (name_needs_quotes): Add '_' to list of valid comment chars.
25885         (machopic_output_function_base_name): Remove unneeded quotes.
25886         (darwin_encode_section_info): Adjust asm whitespace.
25887         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
25888         (ASM_OUTPUT_LOCAL): Ditto.
25889         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
25890         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
25891         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
25892
25893 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
25894
25895         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
25896         RS6000_OUTPUT_BASENAME unconditionally.
25897         (rs6000_output_function_epilogue): Likewise.
25898
25899 2010-05-30  Jan Hubicka  <jh@suse.cz>
25900
25901         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
25902         nodes.
25903
25904 2010-05-30  Richard Guenther  <rguenther@suse.de>
25905
25906         * tree-cfg.c (verify_gimple_assign_single): Implement
25907         verification for COND_EXPR rhs.
25908
25909 2010-05-30  Jan Hubicka  <jh@suse.cz>
25910
25911         * cgraph.h (cgraph_dump_file): Declare.
25912         * cgraphunit.c (cgraph_dump_file): Export.
25913         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
25914
25915 2010-05-30  Jan Hubicka  <jh@suse.cz>
25916
25917         * dwarf2out.c (reference_to_unused,
25918         premark_types_used_by_global_vars_helper): Avoid creation of new
25919         varpool nodes.
25920
25921 2010-05-30  Jan Hubicka  <jh@suse.cz>
25922
25923         * cgraph.h (cgraph_node_cannot_return,
25924         cgraph_edge_cannot_lead_to_return): New functions.
25925         * cgraph.c (cgraph_node_cannot_return,
25926         cgraph_edge_cannot_lead_to_return): Use them.
25927         * ipa-pure-const.c (pure_const_names): New static var.
25928         (check_call): Handle calls not leading to return.
25929         (pure_const_read_summary): Dump info read.
25930         (propagate): Dump info about propagation process; ignore side effects
25931         of functions not leading to exit; fix handling of pure functions.
25932
25933 2010-05-30  Jan Hubicka  <jh@suse.cz>
25934
25935         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
25936         for tail call epilogues.
25937
25938 2010-05-30  Jan Hubicka  <jh@suse.cz>
25939
25940         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
25941         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
25942         dump files.
25943
25944 2010-05-29  Jan Hubicka  <jh@suse.cz>
25945
25946         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
25947         node; remove references in node we no longer keep in cgrpah but need
25948         body of.
25949
25950 2010-05-29  Jan Hubicka  <jh@suse.cz>
25951
25952         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
25953
25954 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25955
25956         PR target/44165
25957         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
25958
25959 2010-05-29  Jan Hubicka  <jh@suse.cz>
25960
25961         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
25962         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
25963         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
25964         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
25965         debug_names_replaced_by, debug_update_ssa): Likewise.
25966         * sbitmap.c (debug_sbitmap): Likewise.
25967         * genrecog.c (debug_decision, debug_decision_list): Likewise.
25968         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
25969         debug_tree_chain): Likewise.
25970         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
25971         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
25972         * optabs.c (debug_optab_libfuncs): Likewise.
25973         (verify_loop_closed_ssa): Likewise.
25974         * value-prof.c (verify_histograms): Likewise.
25975         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
25976         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
25977         * cfghooks.c (verify_flow_info): Likewise.
25978         * fold-const.c (debug_fold_checksum): Likewise.
25979         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
25980         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
25981         Likewise.
25982         * omega.c (debug_omega_problem): Likewise.
25983         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
25984         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
25985         * dominance.c (verify_dominators, debug_dominance_info,
25986         debug_dominance_tree): Likewise.
25987         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
25988         * df_regno_debug, df_ref_debug,
25989         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
25990         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
25991         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
25992         * sel-sched.c (debug_state): Likewise.
25993         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
25994         Likewise.
25995         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
25996         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
25997         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
25998         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
25999         Likewise.
26000         * c-pretty-print.c (debug_c_tree): Likewise.
26001         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
26002         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
26003         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
26004         * ebitmap.c (debug_ebitmap): Likewise.
26005         * function.c (debug_find_var_in_block_tree): Likewise.
26006         * print-rtl.c (debug_rtx): Likewise.
26007         (debug_rtx_count): Likewise.
26008         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
26009         * stor-layout.c (debug_rli): Likewise.
26010         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
26011         * tree-data-ref.c (debug_data_references,
26012         debug_data_dependence_relations, debug_data_reference,
26013         debug_data_dependence_relation, debug_rdg_vertex,
26014         debug_rdg_component, debug_rdg): Likewise.
26015         * tree-affine.c (debug_aff): Likewise.
26016         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
26017         Likewise.
26018         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
26019         * emit-rtl.c (verify_rtl_sharing): Likewise.
26020         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
26021         debug_value_expressions): Likewise.
26022         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
26023         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
26024         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
26025         * cfglayout.c (verify_insn_chain): Likewise.
26026         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
26027         debug_clast_stmt, debug_generated_program): Likewise.
26028         * ggc-page.c (debug_print_page_list): Likewise.
26029         * tree-ssa-ter.c (debug_ter): Likewise.
26030         * graphite-dependences.c (debug_pddr): Likewise.
26031         * sched-deps.c (debug_ds): Likewise.
26032         * tree-ssa.c (verify_ssa): Likewise.
26033         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
26034         debug_scattering_functions, debug_iteration_domains, debug_pdr,
26035         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
26036         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
26037         * tree-inline.c (debug_find_tree): Likewise.
26038         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
26039         debug_ppl_powerset_matrix): Likewise.
26040         * var-tracking.c (debug_dv): Likewise.
26041         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
26042         * cfgloop.c (verify_loop_structure): Likewise.
26043         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
26044         * c-common.c (verify_sequence_points): Likewise.
26045         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
26046         debug_candidates, debug_rgn_dependencies): Likewise.
26047         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
26048         * debug_constraint_graph, debug_solution_for_var,
26049         debug_sa_points_to_info): Likewise.
26050         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
26051         Likewie.
26052         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
26053         debug_loops, debug_loop, debug_loop_num): Likewise.
26054         * passes.c (debug_pass): Likewise.
26055         (dump_properties): Likewise; add cfglayout property.
26056         (debug_properties): Likewise.
26057         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
26058         * varpool.c (debug_varpool): Likewise.
26059         * regcprop.c (debug_value_data): Likewise.
26060         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
26061         debug_immediate_uses_for): Likewise.
26062
26063 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26064
26065         PR bootstrap/44315
26066         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
26067         Filter out insn-flags.h.
26068
26069 2010-05-29  Jan Hubicka  <jh@suse.cz>
26070
26071         * cgraph.h (struct varpool_node_set_def,
26072         struct cgraph_node_set_def): Remove unused AUX pointer.
26073         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
26074         VEC_empty macro.
26075
26076 2010-05-29  Jan Hubicka  <jh@suse.cz>
26077
26078         PR middle-end/44324
26079         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
26080
26081 2010-05-29  Richard Guenther  <rguenther@suse.de>
26082
26083         * lto-streamer.c (cached_bp): New global variable.
26084         (bitpack_create): Return the cached bitpack, if available.
26085         (bitpack_delete): Clear and cache the bitpack, if appropriate.
26086         (bp_pack_value): Remove redundant asserts.
26087
26088 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26089
26090         PR middle-end/44306
26091         * tree-if-conv.c (is_true_predicate): New.
26092         (is_predicated): Use is_true_predicate.
26093         (add_to_predicate_list): Same.  Do not use unshare_expr.
26094         (add_to_dst_predicate_list): Same.
26095
26096 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26097
26098         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
26099         field on edges.
26100         (predicate_bbs): Same.
26101         (clean_predicate_lists): Same.
26102         (find_phi_replacement_condition): Do not AND the predicate from
26103         edge->aux.
26104
26105 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26106
26107         PR bootstrap/44315
26108         * Makefile.in (build/gencondmd.o): Add a missing `\'.
26109
26110 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26111
26112         PR target/44261
26113         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
26114         (negdf2): Adjust expander pattern and use negdf2_slow.
26115         (negsf2): Likewise.
26116
26117 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
26118
26119         * basic-block.h (struct control_flow_graph): Move last_label_uid field
26120         up.
26121         * df.h (struct df_base_ref): Move regno field up.
26122         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
26123         * expr.h (struct separate_ops): Move location field up.
26124         * optabs.h (struct optab_d): Move libcall_basename field down.
26125         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
26126         * config/i386/i386.h (struct machine_function): Convert call_abi field
26127         into a bitfield.  Move cfa field to the end of the structure.
26128
26129 2010-05-29  Jan Hubicka  <jh@suse.cz>
26130
26131         * varpool.c (varpool_get_node): Fix lookup.
26132
26133 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26134
26135         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
26136         RTL specific prototypes with #ifdef RTX_CODE.
26137         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
26138         * config/spu/t-spu-elf: Fix dependencies.
26139
26140         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
26141
26142 2010-05-29  Mike Stump  <mikestump@comcast.net>
26143
26144         PR bootstrap/44315
26145         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
26146         TM_H when building to avoid dependency loops.
26147
26148 2010-05-29  Jan Hubicka  <jh@suse.cz>
26149
26150         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
26151         refs and body; not the whole node for masters of materialized clones.
26152
26153 2010-05-29  Mike Stump  <mikestump@comcast.net>
26154
26155         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
26156
26157 2010-05-29  Jan Hubicka  <jh@suse.cz>
26158
26159         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
26160         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
26161         use of clone_function_name.
26162         * cgraph.h (cgraph_create_virtual_clone,
26163         cgraph_function_versioning): update prototypes.
26164         (clone_function_name): Declare.
26165         * ipa-cp.c (ipcp_insert_stage): Update call of
26166         cgraph_create_virtual_clone.
26167         * omp-low.c (create_omp_child_function_name): Use
26168         cgraph_create_virtual_clone.
26169         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
26170         (cgraph_function_versioning): Take SUFFIX argument; produce new name
26171         and make decl local.
26172
26173 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26174
26175         * vec.h: Include statistics.h
26176         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
26177         with VEC_H.
26178
26179 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26180
26181         * c-lex.c: Do not include c-tree.h.
26182         * c-pretty-print.c: Likewise.
26183         * c-opts.c: Likewise.
26184         * c-gimplify.c: Likewise.
26185         * c-common.c: Likewise.
26186         * c-dump.c: Likewise.  Include c-common.h.
26187
26188 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26189
26190         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
26191         before including diagnostic-core.h.
26192         (c_cpp_error): New prototype moved from c-tree.h.
26193         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
26194         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
26195         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
26196         (c_cpp_error): Prototype moved to c-common.h.
26197         * Makefile.in: Update dependency for C_COMMON_H.
26198
26199 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26200
26201         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
26202         * c-common.c (c_register_addr_space): Remove here.
26203         * c-decl.c (c_register_addr_space): Re-add here.
26204
26205 2010-05-28  Mike Stump  <mikestump@comcast.net>
26206
26207         * config/darwin-c.c: Remove c-tree.h include.
26208
26209 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26210
26211         * gcc.c: Include diagnostic.h.
26212         (error_count): Remove.  All users changed to use errorcount.
26213         (programname): Remove.  All users changed to use progname.
26214         (fancy_abort, internal_error, fatal_error, error, warning, inform,
26215         fnotice): Remove.
26216         (execute): Don't include "Internal error" and bug reporting
26217         information in argument of internal_error call.
26218         (process_command): Don't increment error_count after calling
26219         perror_with_name.
26220         (input_filename): Rename to gcc_input_filename.  All users
26221         changed.
26222         (main): Call diagnostic_initialize.  Register delete_temp_files
26223         with atexit.  Use seen_error to test for errors.
26224         * gcc.h: Include diagnostic-core.h.
26225         (fatal_error, error, warning): Remove.
26226         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
26227         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
26228         (gcc.o): Update dependencies.
26229
26230 2010-05-28  Jeff Law  <law@redhat.com>
26231
26232         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
26233         functions.
26234         * ira.h (ira_bad_reload_regno): Declare
26235         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
26236
26237         * ira-color.c (update_curr_costs): Free updated hard reg costs.
26238         (ira_reassign_conflict_allocnos): Remove bogus asserts.
26239         (allocno_reload_assign): Likewise.
26240
26241 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
26242
26243         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
26244         build1_stat.
26245
26246 2010-05-28  Richard Guenther  <rguenther@suse.de>
26247
26248         PR lto/44312
26249         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
26250         Stream fixed-point constants mode.
26251         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
26252         and TYPE_PRECISION.
26253         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
26254         Stream fixed-point constants mode.
26255         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
26256         and TYPE_PRECISION.
26257
26258 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26259
26260         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
26261         only place it was called from.
26262         (number_of_latch_executions): Do not return chrec_dont_know when the
26263         may_be_zero is a runtime condition: instead, return a COND_EXPR
26264         including the may_be_zero condition.
26265         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
26266         of nb_iterations.
26267         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
26268         COND_EXPRs.
26269
26270 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26271
26272         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
26273         generate COND_EXPRs for degenerate_phi_result.
26274
26275 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26276
26277         PR middle-end/44293
26278         * tree-if-conv.c (if_convertible_loop_p): Check the
26279         if-convertibility of phi nodes in non predicated BBs.
26280
26281 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26282
26283         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
26284
26285 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26286
26287         PR driver/15303
26288         * gcc.c (inform, warning, inform): New functions.
26289         (fatal_ice): Rename to internal_error; change cmsgid parameter to
26290         gmsgid.  All callers changed.
26291         (notice): Rename to fnotice; add parameter fp.  All callers changed.
26292         (fatal_error): Rename to fatal_signal.  All users changed.
26293         (fatal): Rename to fatal_error; change cmsgid parameter to
26294         gmsgid.  All callers changed.
26295         (process_command): Use warning instead of error for warnings.
26296         (end_going_arg): Don't use _() around argument of error.
26297         (do_spec_1): Use inform for message from %n specs.  Use warning
26298         instead of error for warnings.
26299         (main): Use inform for comparison messages.  Use warning for
26300         message about unused linker input.
26301         (error): Increment error_count.  Print "error: ".
26302         * gcc.h (fatal): Change to fatal_error.
26303         (warning): Declare.
26304         * config/darwin-driver.c (darwin_default_min_version): Use warning
26305         instead of fprintf for warnings.
26306         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
26307
26308 2010-05-28  Julian Brown  <julian@codesourcery.com>
26309
26310         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
26311         (*thumb2_addsi3_compare0_scratch): New.
26312         * config/arm/constraints.md (Pv): New.
26313         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
26314         for ARM mode only.
26315         (*addsi3_compare0_scratch): Likewise.
26316
26317 2010-05-28  Jan Hubicka  <jh@suse.cz>
26318
26319         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
26320         check.
26321         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
26322         only on local statics.
26323
26324 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
26325
26326         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
26327
26328 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
26329
26330         PR bootstrap/44314
26331         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
26332         (OPTION_GLIBC): Define.
26333
26334 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
26335
26336         PR debug/41048
26337         * dwarf2out.c (double_int_type_size_in_bits): New function.
26338         (round_up_to_align): Change first argument and return value to
26339         double_int.
26340         (field_byte_offset): Work internally on double_ints.
26341
26342         PR target/43636
26343         * builtins.c (expand_movstr): Use a temporary pseudo instead
26344         of target even when target is not NULL and not const0_rtx, but
26345         fails movstr predicate.
26346         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
26347
26348 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26349
26350         * final.c (rest_of_clean_state): Use %m in errors instead of
26351         strerror (errno).
26352         * gengtype.c (read_input_list, close_output_files): Use xstrerror
26353         instead of strerror.
26354         * toplev.c (process_options): Use %m in errors instead of strerror
26355         (errno).
26356         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
26357         (errno).
26358
26359 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
26360
26361         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
26362         (ix86_canonical_va_list_type): Make static.  Add declaration.
26363         (ix86_enum_va_list): Make static.  Reindent.
26364         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
26365         (ix86_canonical_va_list_type): Ditto.
26366         (ix86_enum_va_list): Ditto.
26367
26368 2010-05-28  Richard Guenther  <rguenther@suse.de>
26369
26370         * lto-wrapper.c (run_gcc): With -save-temps generate a
26371         user-visible ltrans filename.  Fixup ltrans unit numbering.
26372
26373 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
26374
26375         * c-common.c (c_common_nodes_and_builtins): Replace use
26376         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
26377         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
26378         to ix86_enum_va_list.
26379         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
26380         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
26381         (TARGET_ENUM_VA_LIST_P): Add hook description.
26382         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
26383         * target.h (gcc_target): Add enum_va_list hook.
26384
26385         PR bootstrap/44299
26386         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
26387         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
26388         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
26389
26390 2010-05-28  Alan Modra  <amodra@gmail.com>
26391
26392         PR target/44266
26393         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
26394         emit_library_call machinery to set up __tls_get_addr calls.
26395
26396 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26397
26398         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
26399
26400 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
26401
26402         Revert fix for PR c++/44188
26403         * c-common.c (is_typedef_decl): Revert the moving of  this
26404         definition ...
26405         * tree.c (is_typedef_decl): ... here.
26406         (typdef_variant_p): Revert the moving of this  definition
26407         here from cp/tree.c.
26408         * c-common.h (is_typedef_decl): Revert the moving of this
26409         declaration ...
26410         * tree.h (is_typedef_decl): ... here.
26411         (typedef_variant_p): Revert the moving of this  declaration here
26412         from cp/cp-tree.h
26413         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
26414         (gen_tagged_type_die): Revert the splitting out of ...
26415         (gen_type_die_with_usage): ... this function. Revert the anonymous
26416         tagged type handling.
26417         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
26418         typedefs naming anonymous tagged types.
26419
26420 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
26421
26422         * config/rs6000/rs6000-modes.def (PSImode): Delete.
26423
26424 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
26425
26426         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
26427         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
26428         throughout.
26429         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
26430         "xer" to "ca".
26431         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
26432         XER_REGS to CA_REGS throughout.
26433         * config/rs6000/rs6000.h: Same.
26434         (ADDITIONAL_REGISTER_NAMES): Add "xer".
26435         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
26436         that mode_iterator "P" is the size for arithmetic carries as well.
26437         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
26438
26439 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
26440
26441         PR bootstrap/44255
26442         * combine.c (struct rtx_subst_pair): Define unconditionally.
26443         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
26444         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
26445         Call make_compound_operation on pair->to.
26446         (propagate_for_debug): Don't call make_compound_operation here.
26447         Always use simplify_replace_fn_rtx.
26448
26449 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
26450
26451         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
26452         * config/xtensa/xtensa.c (override_options): Check
26453           TARGET_FORCE_NO_PIC and set flag_pic.
26454         * config/xtensa/xtensa.opt: Document -mforce-no-pic
26455
26456 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
26457
26458         PR bootstrap/44299
26459         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
26460         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
26461
26462 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
26463
26464         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
26465         toplev.h.
26466         * diagnostic.c: Don't include toplev.h.
26467         (progname): Define.  Moved from toplev.c.
26468         (seen_error): New function.
26469         * diagnostic.h: Include diagnostic-core.h.
26470         (diagnostic_t, emit_diagnostic): Don't declare here.
26471         * toplev.c (progname): Move to toplev.c.
26472         (emit_debug_global_declarations, compile_file, finalize,
26473         do_compile, toplev_main): Use seen_error.
26474         * toplev.h: Include diagnostic-core.h.
26475         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
26476         internal_error, warning, warning_at, error, error_n, error_at,
26477         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
26478         verbatim, fnotice, progname): Move to diagnostic-core.h.
26479         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
26480         (expand_builtin_expect): Use seen_error.
26481         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
26482         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
26483         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
26484         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
26485         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
26486         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
26487         errorcount for errors.
26488         * c-opts.c (c_common_finish): Use seen_error.
26489         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
26490         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
26491         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
26492         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
26493         (get_coverage_counts): Use seen_error.
26494         * dwarf2out.c (dwarf2out_finish): Use seen_error.
26495         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
26496         gimplify_body): Use seen_error.
26497         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
26498         * ipa-pure-const.c (gate_pure_const): Use seen_error.
26499         * ipa-reference.c (gate_reference): Use seen_error.
26500         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
26501         * lambda-code.c: Include diagnostic-core.h instead of
26502         diagnostic.h.
26503         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
26504         * lto-compress.c: Include diagnostic-core.h instead of
26505         diagnostic.h.
26506         * lto-section-in.c: Include diagnostic-core.h instead of
26507         diagnostic.h.
26508         * lto-streamer-out.c: Include diagnostic-core.h instead of
26509         diagnostic.h.
26510         * lto-streamer.c: Include diagnostic-core.h instead of
26511         diagnostic.h.
26512         (gate_lto_out): Use seen_error.
26513         * matrix-reorg.c: Include diagnostic-core.h instead of
26514         diagnostic.h.
26515         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
26516         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
26517         (gate_expand_omp, lower_omp_1): Use seen_error.
26518         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
26519         (rest_of_decl_compilation, rest_of_type_compilation,
26520         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
26521         * tree-cfg.c (label_to_block_fn): Use seen_error.
26522         * tree-inline.c (optimize_inline_calls): Use seen_error.
26523         * tree-mudflap.c (mudflap_finish_file): Use
26524         seen_error.
26525         * tree-optimize.c (gate_all_optimizations,
26526         gate_all_early_local_passes, gate_all_early_optimizations): Use
26527         seen_error.
26528         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
26529         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
26530         (varpool_remove_unreferenced_decls,
26531         varpool_assemble_pending_decls): Use seen_error.
26532         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
26533         (TOPLEV_H, DIAGNOSTIC_H): Update.
26534         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
26535         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
26536         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
26537         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
26538         coverage.o, lambda-code.o): Update dependencies.
26539
26540 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
26541
26542         PR c++/44188
26543         * c-common.c (is_typedef_decl): Move this definition ...
26544         * tree.c (is_typedef_decl): ... here.
26545         (typdef_variant_p): Move definition here from cp/tree.c.
26546         * c-common.h (is_typedef_decl): Move this declaration ...
26547         * tree.h (is_typedef_decl): ... here.
26548         (typedef_variant_p): Move declaration here from cp/cp-tree.h
26549         * dwarf2out.c (is_naming_typedef_decl): New function.
26550         (gen_tagged_type_die): Split out of ...
26551         (gen_type_die_with_usage): ... this function. When an anonymous
26552         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
26553         is emitted for the typedef.
26554         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
26555         anonymous tagged types.
26556
26557 2010-05-27  Jason Merrill  <jason@redhat.com>
26558
26559         * print-tree.c (debug_vec_tree): New fn.
26560         (print_vec_tree): New fn.
26561         * tree.h: Declare them.
26562         * gdbinit.in (pvt): New command.
26563
26564         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
26565
26566         * gdbinit.in (pdd): New command.
26567
26568 2010-05-27  Jan Hubicka  <jh@suse.cz>
26569
26570         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
26571         (update_caller_keys): Return early if there are no callers;
26572         only update fibheap when decresing the key.
26573         (update_callee_keys): Avoid recursion.
26574         (decide_inlining_of_small_functions): When badness does not match;
26575         re-insert into fibheap.
26576
26577 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
26578
26579         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
26580         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
26581         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
26582         (ALL_HOST_OBJS): Now a union of the above two.
26583         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
26584         all files in ALL_HOST_FRONTEND_OBJS.
26585         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
26586
26587         * c-common.c: Pretend to be a backend file by undefining
26588         IN_GCC_FRONTEND (still need rtl.h here).
26589
26590 2010-05-27  Jan Hubicka  <jh@suse.cz>
26591
26592         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
26593         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
26594
26595 2010-05-27  Jan Hubicka  <jh@suse.cz>
26596
26597         * sched-ebb.c: Rename struct deps to struct deps_desc.
26598         * ddg.c: Likewise.
26599         * sel-sched-ir.c: Likewise.
26600         * sched-deps.c: Likewise.
26601         * sched-int.h: Likewise.
26602         * sched-rgn.c: Likewise.
26603
26604 2010-05-27  Jon Beniston  <jon@beniston.com>
26605
26606         PR 43726
26607         * config/lm32/lm32.h: Remove definition of
26608         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
26609
26610 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
26611
26612         PR lto/44230
26613         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
26614
26615 2010-05-27  Richard Guenther  <rguenther@suse.de>
26616
26617         PR tree-optimization/44284
26618         * tree-vect-stmts.c (vectorizable_assignment): Handle
26619         sign-changing conversions as simple copy.
26620
26621 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
26622
26623         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
26624         Bionic C library.
26625         (__gthread_active_p): Check for pthread_create if compiling against
26626         Bionic C library.
26627
26628 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
26629
26630         Support compilation for Android platform.  Reimplement -mandroid.
26631
26632         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
26633         (*android*): Set ANDROID_DEFAULT.
26634         (arm*-*-linux*): Include linux-android.h.
26635         (arm*-*-eabi*): Don't include previous -mandroid implementation.
26636         * config/arm/eabi.h: Remove, move Android-specific parts ...
26637         * config/linux-android.h: ... here.  New file.
26638         * config/arm/eabi.opt: Rename to ...
26639         * config/linux-android.opt: ... this.
26640         (mandroid): Allow -mno-android option.  Initialize based on
26641         ANDROID_DEFAULT.
26642         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
26643         Move logic to corresponding LINUX_TARGET_* macros.
26644         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
26645         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
26646         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
26647         Android definitions.
26648         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
26649         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
26650         Document.
26651
26652 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
26653
26654         Add support for Bionic C library
26655
26656         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
26657         macro.
26658         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
26659         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
26660
26661         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
26662         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
26663         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
26664         to support multiple C libraries.  Handle Bionic.
26665         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
26666         (BIONIC_DYNAMIC_LINKER64): Define.
26667         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
26668         Update.
26669         (TARGET_HAS_SINCOS): Enable for Bionic.
26670
26671         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
26672         the last option specified on command line take effect.
26673         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
26674         (mbionic): New.
26675         (mglibc, muclibc): Update.
26676
26677         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
26678         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
26679         DEFAULT_LIBC.
26680
26681         * doc/invoke.texi (-mglibc, -muclibc): Update.
26682         (-mbionic): Document.
26683
26684 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
26685
26686         * c-common.h (c_register_addr_space): Add prototype.
26687         (ADDR_SPACE_KEYWORD): Remove.
26688         * c-common.c (c_register_addr_space): New function.
26689         (c_addr_space_name): Reimplement.
26690         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
26691
26692         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
26693         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
26694
26695         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
26696         Remove TARGET_ADDR_SPACE_KEYWORDS.
26697
26698 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
26699
26700         * input.c: New file.
26701         * input.h (main_input_filename): Move declaration to toplev.h.
26702         * toplev.c (input_location, line_table): Move to input.c
26703         * toplev.h (main_input_filename): Move declaration from input.h.
26704         * tree.c (expand_location): Move to input.c.
26705         * Makefile.in (OBJS-common): Add input.o.
26706         (input.o): Add dependencies.
26707
26708 2010-05-27  Richard Guenther  <rguenther@suse.de>
26709
26710         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
26711         for non-existant files.
26712         (fork_execute): Mark args_name file as deleted.
26713
26714 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
26715
26716         PR bootstrp/44287
26717         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
26718         (narrow_signed_type): Likewise.
26719
26720 2010-05-26  Jan Hubicka  <jh@suse.cz>
26721
26722         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
26723         edge only when checking is enabled; check using former_clone_of;
26724         check inline clones too.
26725         (cgraph_materialize_clone): Record former_clone_of pointer.
26726         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
26727         combining redirections; dump args_to_skip bitmap
26728         (cgraph_materialize_all_clones): Do no redirection here.
26729         * ipa-inline.c (inline_transform): Do redirection here.
26730         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
26731         cheking only).
26732
26733 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
26734
26735         * config/avr/avr-c.c: Do not include regs.h.
26736         Include cpplib.h for cpp_define and tree.h for c-common.h.
26737         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
26738         * config/avr/t-avr: Fix dependencies for avr-c.o.
26739
26740 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
26741
26742         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
26743         string instead of SYMBOL_REF rtx.
26744         * rtl.h (set_stack_check_libfunc): Move prototype from here...
26745         * libfuncs.h: ...to here.  Adjust for explow.c change.
26746
26747 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
26748
26749         * pretty-print.c: Don't include ggc.h.
26750         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
26751         (identifier_to_locale): Use them for allocation.
26752         * pretty-print.h (identifier_to_locale_alloc,
26753         identifier_to_locale_free): Declare.
26754         * toplev.c (alloc_for_identifier_to_locale): New.
26755         (general_init): Set identifier_to_locale_alloc and
26756         identifier_to_locale_free.
26757         * Makefile.in (pretty-print.o): Update dependencies.
26758
26759 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
26760
26761         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
26762         pointer types if they have different alignment or mode.
26763
26764 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
26765
26766         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
26767         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
26768         * config/sparc/sparc-protos.h (function_value): Remove declaration.
26769         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
26770         sparc_function_value_regno_p): New functions.
26771         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
26772         TARGET_FUNCTION_VALUE_REGNO_P): Define.
26773         (function_value): Rename to...
26774         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
26775         argument to 'outgoing'.
26776         (function_arg_record_value, function_arg_union_value,
26777         function_arg_vector_value): Update comment.
26778
26779 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
26780
26781         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
26782         (fde_needed_for_eh_p): New predicate.
26783         (output_call_frame_info): Use it throughout to decide whether FDEs
26784         are needed for EH purpose.
26785         (dwarf2out_begin_prologue): Reorder assignments.
26786
26787 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26788
26789         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
26790         special case loop->header.
26791         (is_predicated): New.
26792         (if_convertible_loop_p): Call it.
26793
26794 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26795
26796         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
26797         iterator in parameter.  Do not generate code during the analysis.
26798         (tree_if_convert_cond_stmt): Removed.
26799         (tree_if_convert_stmt): Removed.
26800         (predicate_bbs): New.
26801         (if_convertible_loop_p): Call predicate_bbs.
26802         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
26803         now contains all the analysis part.
26804
26805 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26806
26807         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
26808         statements in the analysis part.
26809         (tree_if_convert_stmt): Update comment.
26810         (remove_conditions_and_labels): New.
26811         (combine_blocks): Call remove_conditions_and_labels.
26812         (tree_if_conversion): Update comment.
26813
26814 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26815
26816         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
26817         than 2 predecessors or more than 2 successors.
26818
26819 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26820
26821         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
26822         of loops in which the data dependence analysis fails.
26823
26824 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26825
26826         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
26827         CDI_POST_DOMINATORS.
26828         (tree_if_conversion): Same.
26829
26830 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26831
26832         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
26833
26834 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
26835
26836         * tree-if-conv.c: Update copyright years.  Fix comments.
26837         Fix indentation.
26838
26839 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
26840
26841         * builtin-types.def (BT_INT128): New primitive type.
26842         (BT_UINT128): Likewise.
26843         * c-common.c (c_common_r): Add __int128 keyword.
26844         (c_common_type_for_size): Handle __int128.
26845         (c_common_type_for_mode): Likewise.
26846         (c_common_signed_or_unsigned_type): Likewise.
26847         (c_common_nodes_and_builtins): Add builtin type
26848         if target supports 128-bit integer scalar.
26849         * c-common.h (enum rid): Add RID_INT128.
26850         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
26851         if target supports 128-bit integer scalar.
26852         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
26853         (finish_declspecs): Likewise.
26854         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
26855         (c_token_starts_declspecs): Likewise.
26856         (c_parser_declspecs): Likewise.
26857         (c_parser_attributes): Likewise.
26858         (c_parser_objc_selector): Likewise.
26859         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
26860         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
26861         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
26862         * tree.c (make_or_reuse_type): Likewise.
26863         (make_unsigned_type): Likewise.
26864         (build_common_tree_nodes_2): Likewise.
26865         * tree.h (enum integer_type_kind): Add itk_int128 and
26866         itk_unsigned_int128.
26867         (int128_integer_type_node): New define.
26868         (int128_unsigned_type_node): New define.
26869         * doc/extend.texi: Add documentation about __int128 type.
26870
26871 2010-05-26  Richard Guenther  <rguenther@suse.de>
26872
26873         * tree-ssa-sccvn.c (copy_nary): Adjust.
26874         (copy_phis): Rename to ...
26875         (copy_phi): ... this.  Adjust.
26876         (copy_references): Rename to ...
26877         (copy_reference): ... this.  Adjust.
26878         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
26879         result into the valid table.
26880
26881 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
26882
26883         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
26884         insn-config.h, insn-codes.h, recog.h, and optabs.h.
26885
26886 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26887
26888         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
26889
26890 2010-05-26  Richard Guenther  <rguenther@suse.de>
26891
26892         * opts.c (common_handle_option): Handle OPT_Ofast.
26893
26894 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
26895
26896         * diagnostic.c: Don't include opts.h.
26897         (permissive_error_option): Define.
26898         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
26899         for classify_diagnostic.  Don't use memset for
26900         classify_diagnostic.  Initialize new and recently added fields.
26901         (diagnostic_classify_diagnostic): Use context->n_opts instead of
26902         N_OPTS.
26903         (diagnostic_report_diagnostic): Pass context parameter to
26904         diagnostic_report_warnings_p.  Use option_enabled and option_name
26905         hooks from context.
26906         (emit_diagnostic): Use permissive_error_option.
26907         (permerror): Likewise.
26908         * diagnostic.h: Don't include options.h.
26909         (struct diagnostic_context): Add n_opts, opt_permissive,
26910         inhibit_warnings, warn_system_headers, option_enabled and
26911         option_name fields.  Change classify_diagnostic to a pointer.
26912         * opts-diagnostic.h: New file.
26913         * opts.c: Include opts-diagnostic.h.
26914         (common_handle_option): Set global_dc fields for -Wfatal-errors,
26915         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
26916         (option_name): New function.
26917         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
26918         (c_common_handle_option): Set global_dc->permissive for
26919         -fpermissive.
26920         * c-common.c (c_cpp_error): Save and restore
26921         global_dc->warn_system_headers, not variable warn_system_headers.
26922         * toplev.c: Include opts-diagnostic.h.
26923         (general_init): Update call to diagnostic_initialize.  Set
26924         global_dc->show_column, global_dc->option_enabled and
26925         global_dc->option_name.
26926         (process_options): Don't set global_dc fields here.
26927         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
26928         (diagnostic.o, opts.o, toplev.o): Update dependencies.
26929
26930 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
26931
26932         * config/picochip/picochip.md (movsi): Split a movsi from a
26933         const after reload.
26934
26935 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26936
26937         * ggc-zone.c: Update copyright year.
26938         (poison_region): Mark memory for Valgrind as undefined before
26939         memset () call and inaccessible afterwards.
26940         (ggc_pch_total_size): Change type of i to int.
26941
26942 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26943
26944         * ggc-common.c (ggc_free_overhead): Allow empty slot.
26945
26946 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26947
26948         * ggc-common.c: Update copyright year.
26949         (ggc_rlimit_bound): Remove prototype.  Compile only if
26950         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
26951         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
26952         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
26953         (ggc_min_heapsize_heuristic): Likewise.
26954
26955 2010-05-26  Richard Guenther  <rguenther@suse.de>
26956
26957         PR rtl-optimization/44164
26958         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
26959         no-common access-path disambiguation.
26960         (indirect_ref_may_alias_decl_p): Adjust.
26961         (indirect_refs_may_alias_p): Likewise.
26962         (refs_may_alias_p_1): Likewise.
26963
26964 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
26965
26966         * c-typeck.c: Do not include expr.h.
26967
26968 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
26969
26970         * rtl.h (decl_default_tls_model): Move prototype from here...
26971         * output.h: ...to here.
26972         * c-decl.c: Do not include rtl.h.
26973         * c-pragma.c: Likewise.
26974         * c-parser.c: Likewise.
26975         * c-gimplify.c: Likewise.  And also not hard-reg-set.
26976         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
26977         FIXME note for it.  Add a FIXME note for expr.h.
26978         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
26979         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
26980         defined.
26981
26982 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
26983
26984         PR target/44199
26985         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
26986         or total_size is larger than red zone size for non-V4 ABI, emit a
26987         stack_tie resp. frame_tie insn before stack pointer restore.
26988         * config/rs6000/rs6000.md (frame_tie): New insn.
26989
26990 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
26991
26992         * function.h (struct function): Add can_throw_non_call_exceptions bit.
26993         * lto-streamer-in.c (input_function): Stream it in.
26994         * lto-streamer-out.c (output_function): Stream it out.
26995         * function.c (allocate_struct_function): Set it.
26996         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
26997         for flag_non_call_exceptions.
26998         * cfgbuild.c (control_flow_insn_p): Likewise.
26999         (make_edges): Likewise.
27000         * cfgexpand.c (expand_stack_alignment): Likewise.
27001         * combine.c (distribute_notes): Likewise.
27002         * cse.c (cse_extended_basic_block): Likewise.
27003         * except.c (insn_could_throw_p): Likewise.
27004         * gcse.c (simple_mem): Likewise.
27005         * ipa-pure-const.c (check_call): Likewise.
27006         (check_stmt ): Likewise.
27007         * lower-subreg.c (lower-subreg.c): Likewise.
27008         * optabs.c (emit_libcall_block): Likewise.
27009         (prepare_cmp_insn): Likewise.
27010         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
27011         * postreload.c (rest_of_handle_postreload): Likewise.
27012         * reload1.c (reload_as_needed): Likewise.
27013         (emit_input_reload_insns): Likewise.
27014         (emit_output_reload_insns): Likewise.
27015         (fixup_abnormal_edges): Likewise.
27016         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
27017         * store-motion.c (find_moveable_store): Likewise.
27018         * tree-eh.c (stmt_could_throw_p): Likewise.
27019         (tree_could_throw_p): Likewise.
27020         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
27021         * config/arm/arm.c (arm_expand_prologue): Likewise.
27022         (thumb1_expand_prologue): Likewise.
27023         * config/rx/rx.md (cbranchsf4): Likewise.
27024         (cmpsf): Likewise.
27025         * config/s390/s390.c (s390_emit_prologue): Likewise.
27026         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
27027         (inline_forbidden_into_p): New predicate.
27028         (expand_call_inline): Use it to forbid inlining.
27029         (tree_can_inline_p): Likewise.
27030
27031 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27032
27033         * config/i386/i386-c.c: Do not include rtl.h.
27034         * config/i386/t-i386: Update dependencies.
27035
27036 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27037
27038         * attribs.c: Do not include rtl.h.
27039         * Makefile.in: Update dependencies.
27040
27041 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
27042
27043         * double-int.h (double_int_and): New.
27044         * combine.c (try_combine): Clean up, use double_int_* and
27045         immed_double_int_const functions.
27046
27047 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27048
27049         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
27050         stderr to /dev/null instead of grep -q.
27051         * configure: Regenerate.
27052
27053 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27054
27055         * Makefile.in (EXCEPT_H): Fix typo.
27056
27057 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
27058
27059         * ira-build.c (update_conflict_hard_reg_costs): New.
27060         (ira_build): Call update_conflict_hard_reg_costs.
27061
27062 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27063
27064         PR debug/41371
27065         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
27066         ENABLE_CHECKING.
27067         (intersect_loc_chains): Walk the s2var's loc_chain together
27068         with s1node chain as long as the locations are equal, don't
27069         call find_loc_in_1pdv in that case.
27070
27071         PR debug/42801
27072         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
27073         (copy_bind_expr): ... instead of here.
27074         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
27075         if the block hasn't been remapped.
27076         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
27077         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
27078
27079 2010-05-25  Richard Guenther  <rguenther@suse.de>
27080
27081         PR middle-end/44069
27082         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
27083         out-of-bounds array accesses.
27084
27085 2010-05-25  Richard Guenther  <rguenther@suse.de>
27086
27087         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
27088         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
27089         (run_gcc): Re-organize to make cleanup easier.
27090
27091 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27092
27093         * config/s390/s390.c (optimization_options): Fix and move the
27094         flag_prefetch_loop_arrays override ...
27095         (override_options): ... here.
27096
27097 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
27098
27099         * diagnostic.c: Don't include plugin.h.
27100         (diagnostic_report_diagnostic): Don't handle plugins specially
27101         here.  Pass context to internal_error callback.
27102         * diagnostic.h (struct diagnostic_context): Add context parameter
27103         to internal_error callback.
27104         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
27105         * plugin.h (struct diagnostic_context): Declare.
27106         (warn_if_plugins, plugins_internal_error_function): Declare.
27107         * toplev.c (general_init): Set global_dc->internal_error.
27108         * Makefile.in (diagnostic.o): Update dependencies.
27109
27110 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
27111
27112         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
27113         * config/rs6000/t-darwin64: New.
27114         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
27115         build crt2.
27116
27117 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
27118
27119         PR 44203
27120         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
27121         match the original (and intended) behaviour before r159557.  This
27122         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
27123         in two ways.
27124
27125 2010-05-25  Richard Guenther  <rguenther@suse.de>
27126
27127         * doc/invoke.texi: Document -Ofast.
27128         * target.h (struct gcc_target): Add handle_ofast.
27129         * target-def.h (TARGET_HANDLE_OFAST): Add.
27130         (TARGET_INITIALIZER): Adjust.
27131         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
27132         * common.opt (Ofast): Add.
27133
27134 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27135
27136         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
27137         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
27138
27139 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27140
27141         PR target/43610
27142         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
27143         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
27144         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
27145         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
27146
27147 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27148
27149         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
27150         DW_OP_minus with negated offset instead of DW_OP_plus.
27151         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
27152
27153 2010-05-25  Wei Guozhi  <carrot@google.com>
27154
27155         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
27156         tst instruction and a new alternative.
27157         * config/arm/constraints.md (Pu): New constraint.
27158
27159 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
27160
27161         * function.c (assign_stack_local_1): Initialize variable
27162         to avoid warning when bootstrapping at -O3.
27163
27164 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
27165
27166         * configure.ac (all_lang_makefiles): Remove everything related to it.
27167         * configure: Regenerate.
27168         * Makefile.in: Fix reference to ada Make-lang.in.
27169         Remove support for LANG_MAKEFILES.
27170
27171 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
27172             Sandra Loosemore  <sandra@codesourcery.com>
27173
27174         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
27175         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
27176         description.  Add arm_neon_fp16_ok.
27177         (Add Options): Add arm_neon and arm_neon_fp16.
27178
27179 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
27180
27181         * diagnostic.c: Don't include flags.h.
27182         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
27183         context parameters.  Check flags in the context passed as a parameter.
27184         (diagnostic_build_prefix): Add context parameter.  Check
27185         show_column flag in context.
27186         (diagnostic_action_after_output): Check fatal_errors flag in context.
27187         (diagnostic_report_current_module): Check show_column flag in context.
27188         (default_diagnostic_starter): Update call to
27189         diagnostic_build_prefix.
27190         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
27191         (emit_diagnostic): Pass context to permissive_error_kind.
27192         (permerror): Pass context to permissive_error_kind.
27193         * diagnostic.h (struct diagnostic_context): Add show_column,
27194         pedantic_errors, permissive and fatal_errors fields.
27195         (diagnostic_build_prefix): Update prototype.
27196         * langhooks.c
27197         * toplev.c (process_options): Set flags in global_dc from
27198         flag_show_column, flag_pedantic_errors, flag_permissive,
27199         flag_fatal_errors.
27200         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
27201         to diagnostic_build_prefix.
27202         * Makefile.in (diagnostic.o): Update dependencies.
27203
27204 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
27205
27206         * config/i386/ia32intrin.h (__crc32q): Define only if
27207         __SSE4_2__ is defined.
27208
27209 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
27210
27211         PR target/44132
27212         PR middle-end/43602
27213         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
27214         DECL_VISIBILITY_SPECIFIED.
27215         (emutls_decl): Set DECL_PRESERVE_P and copy
27216         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
27217         (emutls_finalize_control_var): New callback.
27218         (emutls_finish): Finalize emutls control variables.
27219         * toplev.c (compile_file): Move the call to emutls_finish ()
27220         before varpool_assemble_pending_decls ().
27221
27222 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
27223
27224         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
27225         added to the preprocessor condition.
27226
27227 2010-05-24  Paul Brook  <paul@codesourcery.com>
27228
27229         * gengtype-lex.l: Add HARD_REG_SET.
27230         * expr.c (expand_expr_real_1): Record writes to hard registers.
27231         * function.c (rtl_data): Add asm_clobbers.
27232         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
27233         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
27234         Use crtl->asm_clobbers.
27235
27236 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27237
27238         * doc/makefile.texi (Makefile): Mention stages 'profile'
27239         and 'feedback' for profiledbootstrap.
27240
27241 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
27242
27243         PR target/44245
27244         * config/i386/i386.c (def_builtin): Properly check
27245         OPTION_MASK_ISA_64BIT.
27246
27247 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
27248
27249         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
27250         typedefs with different but compatible types.  Allow duplicate
27251         typedefs with the same type except for pedantic non-C1X, but give
27252         warning for variably modified types.
27253         * c-typeck.c (tagged_types_tu_compatible_p,
27254         function_types_compatible_p, type_lists_compatible_p,
27255         comptypes_internal): Add parameter different_types_p; set
27256         *different_types_p for different but compatible types.  All
27257         callers changed.
27258         (comptypes_check_different_types): New.
27259         * c-tree.h (comptypes_check_different_types): Declare.
27260
27261 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
27262
27263         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
27264         * jump.c: Include basic-block.h.
27265         * profile.c: Likewise.
27266         * tree-profile.c: Likewise.
27267         * coverage.c: Likewise.
27268         * basic-block.h (optimize_function_for_size_p): Move to function.h.
27269         (optimize_function_for_speed_p): Likewise.
27270         * function.h (optimize_function_for_size_p,
27271         optimize_function_for_speed_p): Moved here from basic-block.h.
27272         * Makefile.in: Update dependencies.
27273
27274 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27275
27276         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
27277         before calling make; allow override through $MAKE.
27278         * doc/invoke.texi (Optimize Options): Document override.
27279
27280 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
27281
27282         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
27283         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27284         (rs6000_mode_dependent_address_ptr): Make static.
27285         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27286         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
27287         Remove.
27288
27289 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
27290
27291         PR target/43869
27292         * config/i386/i386.c: Make sure that the correct regparm is passed.
27293
27294 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
27295
27296         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
27297         * sbitmap.c: ...to here to internalize sbitmap element access.
27298         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
27299         Explain why basic-block.h is included.
27300         * function.h: Include tm.h for CUMULATIVE_ARGS.
27301         * Makefile.in: Update dependencies.
27302
27303 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
27304
27305         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
27306         New core types.
27307         * sbitmap.h (struct sbitmap_def): Do not typedef here.
27308         * sbitmap.c: Include sbitmap.h.
27309         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
27310         hard-reg-set.h.  Split everything related to regsets out from here...
27311         * regset.h: ...to here.  New file.
27312         * df.h: Include regset.h and sbitmap.h.
27313         * tree-flow.h: Likewise.
27314         * cfgloop.h: Likewise.
27315         * except.h: Do not include sbitmap.h.  Include hashtab.h.
27316         * cgraph.h: Include vec.h and function.h.
27317         * reload.h (struct insn_chain): Change types of live_throughout
27318         and dead_or_set from regset_head to bitmap_head.
27319         (compute_use_by_pseudos): Be defined also if regset.h is not included.
27320         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
27321         spilled_regs from regset_head to bitmap_head to avoid dependency
27322         in regset.h.
27323         * sel-sched-ir.h: Include regset.h.
27324         * reload.c: Include df.h before reload.h.
27325         * caller-save.c: Likewise.
27326         * reload1.c: Likewise.
27327         * ira.c: Likewise.
27328         (mark_elimination): Update type of r to bitmap, consistent with
27329         DF_LR_IN.
27330         * dominance.c: Include bitmap.h.
27331         * modulo-sched.c: Include df.h.
27332         * cfganal.c: Include bitmap.h and sbitmap.h.
27333         * cfgbuild.c: Include sbitmap.h.
27334         * lcm.c: Include sbitmap.h.
27335         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
27336         * domwalk.c: Include sbitmap.h, exclude ggc.h.
27337         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
27338         * cselib.c: Include bitmap.h.
27339         * tree-optimize.c: Include regset.h.
27340         * stmt.c: Include bitmap.h.
27341         * Makefile.in: Update dependencies.
27342
27343 2010-05-22  Jan Hubicka  <jh@suse.cz>
27344
27345         * cgraph.h (struct varpool_node): Add same_comdat_group.
27346         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
27347         pointer.
27348         (output_varpool): Update call of lto_output_varpool_node.
27349         (input_varpool): Read same_comdat_group pointer.
27350         (input_varpool_1): Fixup same_comdat_group pointer.
27351         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
27352         group is needed, all are.
27353         * varpool.c (varpool_remove_node): Remove node from same comdat group
27354         linklist too.
27355         (varpool_analyze_pending_decls): Walk same comdat groups.
27356
27357 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
27358
27359         * rtl.h (union rtunion_def): Remove rt_bit member.
27360         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
27361         * print-rtl (print_rtx): Do not print the member.
27362         * gengtype.c (adjust_field_rtx_def): Do not handle it.
27363         * gengenrtl.c (type_from_format): Likewise.
27364         (accessor_from_format): Likewise.
27365
27366 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
27367
27368         * dbgcnt.c: Include toplev.h instead of errors.h.
27369         * ira-emit.c: Don't include errors.h.
27370         * ira.c: Include toplev.h instead of errors.h.
27371         * lto-compress.c: Include toplev.h instead of errors.h.
27372         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
27373         ira.o, dbgcnt.o): Update dependencies.
27374
27375 2010-05-22  Richard Guenther  <rguenther@suse.de>
27376
27377         * gimple.c (gimple_types_compatible_p): Check type qualifications
27378         before merging pointer to complete and pointer to incomplete type.
27379         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
27380         we use our own resolution algorithm.  The gold linker plugin
27381         doesn't do the job we want it to do here.
27382
27383 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
27384
27385         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27386         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27387         (sparc_mode_dependent_address_p): New function.
27388
27389 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
27390
27391         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
27392
27393         * timevar.c: Do not include any core headers.
27394         (timevar_print): De-i18n-ize.
27395         (print_time): Likewise.
27396         * timevar.h (timevar_push, timevar_pop): Make inline functions.
27397
27398 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
27399
27400         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
27401         langhooks-def.h.
27402         (diagnostic_initialize): Initialize x_data not last_function.
27403         (diagnostic_report_current_function): Move to tree-diagnostic.c.
27404         (default_diagnostic_starter): Call
27405         diagnostic_report_current_module not
27406         diagnostic_report_current_function.
27407         (diagnostic_report_diagnostic): Initialize x_data not
27408         abstract_origin.
27409         (verbatim): Likewise.
27410         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
27411         x_data.
27412         (struct diagnostic_context): Change last_function to x_data.
27413         (diagnostic_auxiliary_data): Replace with
27414         diagnostic_context_auxiliary_data and
27415         diagnostic_info_auxiliary_data.
27416         (diagnostic_last_function_changed, diagnostic_set_last_function,
27417         diagnostic_report_current_function): Move to tree-diagnostic.h.
27418         (print_declaration, dump_generic_node, print_generic_stmt,
27419         print_generic_stmt_indented, print_generic_expr,
27420         print_generic_decl, debug_c_tree, dump_omp_clauses,
27421         print_call_name, debug_generic_expr, debug_generic_stmt,
27422         debug_tree_chain, default_tree_printer): Move to
27423         tree-pretty-print.h.
27424         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
27425         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
27426         gimple-pretty-print.h.
27427         * pretty-print.c: Don't include tree.h
27428         (pp_base_format): Don't handle %K here.
27429         (pp_base_tree_identifier): Move to tree-pretty-print.c.
27430         * pretty-print.h (text_info): Change abstract_origin to x_data.
27431         (pp_tree_identifier, pp_unsupported_tree,
27432         pp_base_tree_identifier): Move to tree-pretty-print.h.
27433         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
27434         tree-pretty-print.h: New files.
27435         * tree-pretty-print.c: Include tree-pretty-print.h.
27436         (percent_K_format): New.  Moved from pretty-print.c.
27437         (pp_base_tree_identifier): Move from pretty-print.c.
27438         * c-objc-common.c: Include tree-pretty-print.h.
27439         (c_tree_printer): Handle %K here.
27440         * langhooks.c: Include tree-diagnostic.h.
27441         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
27442         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
27443         (default_tree_printer): Handle %K using percent_K_format.
27444         (general_init): Use default_tree_diagnostic_starter.
27445         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
27446         (free_lang_data): Use default_tree_diagnostic_starter.
27447         * c-pretty-print.c: Include tree-pretty-print.h.
27448         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27449         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27450         * dwarf2out.c: Include tree-pretty-print.h.
27451         * except.c: Include tree-pretty-print.h.
27452         * gimple-pretty-print.c: Include tree-pretty-print.h and
27453         gimple-pretty-print.h.
27454         * gimplify.c: Include tree-pretty-print.h.
27455         * graphite-poly.c: Include tree-pretty-print.h and
27456         gimple-pretty-print.h.
27457         * ipa-cp.c: Include tree-pretty-print.h.
27458         * ipa-inline.c: Include gimple-pretty-print.h.
27459         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27460         * ipa-pure-const.c: Include gimple-pretty-print.h.
27461         * ipa-struct-reorg.c: Include tree-pretty-print.h and
27462         gimple-pretty-print.h.
27463         * ipa-type-escape.c: Include tree-pretty-print.h.
27464         * print-rtl.c: Include tree-pretty-print.h.
27465         * print-tree.c: Include gimple-pretty-print.h.
27466         * sese.c: Include tree-pretty-print.h.
27467         * tree-affine.c: Include tree-pretty-print.h.
27468         * tree-browser.c: Include tree-pretty-print.h.
27469         * tree-call-cdce.c: Include gimple-pretty-print.h.
27470         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27471         * tree-chrec.c: Include tree-pretty-print.h.
27472         * tree-data-ref.c: Include tree-pretty-print.h and
27473         gimple-pretty-print.h.
27474         * tree-dfa.c: Include tree-pretty-print.h.
27475         * tree-if-conv.c: Include tree-pretty-print.h and
27476         gimple-pretty-print.h.
27477         * tree-inline.c: Include tree-pretty-print.h.
27478         * tree-into-ssa.c: Include tree-pretty-print.h and
27479         gimple-pretty-print.h.
27480         * tree-nrv.c: Include tree-pretty-print.h.
27481         * tree-object-size.c: Include tree-pretty-print.h and
27482         gimple-pretty-print.h.
27483         * tree-outof-ssa.c: Include tree-pretty-print.h and
27484         gimple-pretty-print.h.
27485         * tree-parloops.c: Include tree-pretty-print.h and
27486         gimple-pretty-print.h.
27487         * tree-predcom.c: Include tree-pretty-print.h and
27488         gimple-pretty-print.h.
27489         * tree-scalar-evolution.c: Include tree-pretty-print.h and
27490         gimple-pretty-print.h.
27491         * tree-sra.c: Include tree-pretty-print.h.
27492         * tree-ssa-address.c: Include tree-pretty-print.h.
27493         * tree-ssa-alias.c: Include tree-pretty-print.h.
27494         * tree-ssa-ccp.c: Include tree-pretty-print.h and
27495         gimple-pretty-print.h.
27496         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
27497         * tree-ssa-copy.c: Include tree-pretty-print.h and
27498         gimple-pretty-print.h.
27499         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
27500         * tree-ssa-dce.c: Include tree-pretty-print.h and
27501         gimple-pretty-print.h.
27502         * tree-ssa-dom.c: Include tree-pretty-print.h and
27503         gimple-pretty-print.h.
27504         * tree-ssa-dse.c: Include gimple-pretty-print.h.
27505         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
27506         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
27507         * tree-ssa-live.c: Include tree-pretty-print.h and
27508         gimple-pretty-print.h.
27509         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
27510         gimple-pretty-print.h.
27511         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
27512         gimple-pretty-print.h.
27513         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
27514         gimple-pretty-print.h.
27515         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
27516         gimple-pretty-print.h.
27517         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
27518         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
27519         * tree-ssa-operands.c: Include tree-pretty-print.h and
27520         gimple-pretty-print.h.
27521         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
27522         gimple-pretty-print.h.
27523         * tree-ssa-pre.c: Include tree-pretty-print.h and
27524         gimple-pretty-print.h.
27525         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
27526         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
27527         gimple-pretty-print.h.
27528         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
27529         gimple-pretty-print.h.
27530         * tree-ssa-sink.c: Include gimple-pretty-print.h.
27531         * tree-ssa-ter.c: Include tree-pretty-print.h and
27532         gimple-pretty-print.h.
27533         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
27534         * tree-ssa.c: Include tree-pretty-print.h and
27535         gimple-pretty-print.h.
27536         * tree-stdarg.c: Include gimple-pretty-print.h.
27537         * tree-switch-conversion.c: Include gimple-pretty-print.h.
27538         * tree-tailcall.c: Include tree-pretty-print.h and
27539         gimple-pretty-print.h.
27540         * tree-vect-data-refs.c: Include tree-pretty-print.h and
27541         gimple-pretty-print.h.
27542         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
27543         gimple-pretty-print.h.
27544         * tree-vect-loop.c: Include tree-pretty-print.h and
27545         gimple-pretty-print.h.
27546         * tree-vect-patterns.c: Include gimple-pretty-print.h.
27547         * tree-vect-slp.c: Include tree-pretty-print.h and
27548         gimple-pretty-print.h.
27549         * tree-vect-stmts.c: Include tree-pretty-print.h and
27550         gimple-pretty-print.h.
27551         * tree-vectorizer.c: Include tree-pretty-print.h.
27552         * tree-vrp.c: Include tree-pretty-print.h and
27553         gimple-pretty-print.h.
27554         * value-prof.c: Include tree-pretty-print.h and
27555         gimple-pretty-print.h.
27556         * var-tracking.c: Include tree-pretty-print.h.
27557         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
27558         (tree-diagnostic.o): New dependencies.
27559         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
27560         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
27561         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
27562         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
27563         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
27564         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
27565         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
27566         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
27567         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
27568         tree-ssa-address.o, tree-ssa-loop-niter.o,
27569         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
27570         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
27571         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
27572         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
27573         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
27574         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
27575         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
27576         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
27577         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
27578         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
27579         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
27580         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
27581         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
27582         tree-switch-conversion.o, var-tracking.o, value-prof.o,
27583         cfgexpand.o, pretty-print.o): Update dependencies.
27584
27585 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
27586
27587         * tree-ssa-structalias.c: Remove tm_p.h from include.
27588
27589 2010-05-21  Jeff Law  <law@redhat.com>
27590
27591         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
27592
27593 2010-05-21  Jason Merrill  <jason@redhat.com>
27594
27595         * tree-eh.c (cleanup_is_dead_in): New.
27596         (lower_try_finally): Don't generate a dead cleanup region.
27597         (lower_cleanup): Likewise.
27598
27599 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
27600
27601         PR debug/44223
27602         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
27603         unchain each use from the cyclic next_regno_use chain first.
27604
27605 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
27606
27607         * real: Do not include gmp.h, mpfr.h, and mpc.h.
27608         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
27609         (real_value_negate, real_value_abs): New prototypes.
27610         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
27611         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
27612         new include file for interface between MPFR and REAL_VALUE_TYPE.
27613         * real.c: Include realmpfr.h.
27614         (real_arithmetic2): Remove legacy function.
27615         (real_value_negate): New.
27616         (real_value_abs): New.
27617         (mfpr_from_real, real_from_mpfr): Move from here...
27618         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
27619         * builtins.c: Include realmpfr.h.
27620         * fold-const.c: Include realmpfr.h.
27621         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
27622         (fold_negate_const): Likewise.
27623         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
27624         * toplev.c: Include realmpfr.h.
27625         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
27626         and real_value_negate.
27627         * fixed-value.c (check_real_for_fixed_mode): Likewise.
27628         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
27629         (vfp3_const_double_index): Likewise.
27630         (arm_print_operand): Likewise.
27631         * Makefile.in: Update dependencies.
27632
27633 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27634
27635         * config/s390/s390.c (override_options): Increase the default
27636         of max-completely-peel-times.
27637
27638 2010-05-21  Julian Brown  <julian@codesourcery.com>
27639             Mark Mitchell  <mark@codesourcery.com>
27640
27641         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
27642         sibling calls for Thumb-1.
27643         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
27644         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
27645         Thumb-2.
27646         (*call_insn, *call_value_insn): Don't use for Thumb-2.
27647         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
27648         for Thumb-2.
27649         (return): New expander.
27650         (*arm_return): New name for ARM return insn.
27651         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
27652
27653 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
27654
27655         * config.gcc (sparc64-*-rtems*): New target.
27656
27657 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
27658
27659         * tree.c (build_function_decl_skip_args): Fix grammar.
27660         (build_function_type_list_1): Fix typos, adjust formatting.
27661
27662 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
27663
27664         * tree.h: Include real.h and fixed-value.h as basic datatypes.
27665         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
27666         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
27667         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
27668         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
27669         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
27670         tree-pretty-print.c, tree-loop-distribution.c,
27671         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
27672         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
27673         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
27674         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
27675         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
27676         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
27677         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
27678         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
27679         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
27680         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
27681         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
27682         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
27683         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
27684         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
27685         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
27686         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
27687         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
27688         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
27689         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
27690         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
27691         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
27692         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
27693         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
27694         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
27695         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
27696         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
27697         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
27698         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
27699         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
27700         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
27701         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
27702         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
27703         config/score/score7.c, config/score/score.c, config/arm/arm.c,
27704         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
27705         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
27706         config/bfin/bfin.c: Clean up redundant includes.
27707         * Makefile.in: Update accordingly.
27708
27709 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
27710
27711         PR middle-end/44204
27712         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
27713         statement has no arguments.
27714
27715 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
27716
27717         PR/44139
27718         * varasm.c (emutls_decl): Merge attributes to new decl.
27719
27720 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
27721
27722         PR middle-end/44101
27723         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
27724         around the uniquized constructor if its type requires a conversion.
27725
27726 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
27727
27728         PR debug/44205
27729         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
27730         at -O0 goto_locus of any of the incoming edges differs from
27731         goto_locus of outgoing edge, or gimple_location of any of the
27732         labels differs.
27733
27734 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
27735
27736         * ira.c (ira_non_ordered_class_hard_regs): Define.
27737         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
27738         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
27739         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
27740         cost of unaligned hard regs when allocating multi-reg pseudos.
27741
27742 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
27743
27744         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
27745         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
27746         for TARGET_NO_FLOAT.
27747         * config/mips/mips.c (mips_file_start): Expand conditional expression
27748         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
27749         (mips_override_options): Move -mno-float override -msoft-float and
27750         -mhard-float.
27751         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
27752         Condition(TARGET_SUPPORTS_NO_FLOAT).
27753         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
27754         __mips_no_float here.
27755         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
27756         (TARGET_SUPPORTS_NO_FLOAT): Define.
27757         * config/mips/sdemtk.opt: Delete.
27758
27759 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
27760
27761         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
27762
27763 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
27764
27765         PR target/43733
27766         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
27767         * configure: Regenerate.
27768         * config.in: Regenerate.
27769         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
27770         instead of sahf only for 64bit targets.
27771
27772 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
27773
27774         PR debug/44178
27775         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
27776         setup_ref_regs for DEBUG_INSNs.
27777
27778 2010-05-20  Jan Hubicka  <jh@suse.cz>
27779
27780         PR middle-end/44197
27781         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
27782
27783 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
27784
27785         PR bootstrap/43870
27786         * df-scan.c (df_ref_compare): Stabilize sort.
27787
27788 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
27789
27790         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
27791         argument.  Don't use DW_OP_piece if offset is non-zero,
27792         put offset into second DW_OP_bit_piece argument.
27793         (dw_sra_loc_expr): Adjust callers.  For memory expressions
27794         compute offset.
27795
27796 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
27797
27798         PR target/44202
27799         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
27800         settings for 16-bit-constant "addo" alternative.
27801
27802 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
27803
27804         * config/mips/mips-dsp.md (add<DSPV:mode>3,
27805         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
27806
27807         PR target/43764
27808         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
27809         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
27810         Use it.
27811
27812 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
27813
27814         * diagnostic.c (FLOAT, FFS): Don't undefine.
27815         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
27816         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
27817         include ordering.
27818
27819 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
27820
27821         * combine.c (propagate_for_debug): Call make_compound_operation
27822         on the source value.
27823         (try_combine): When implementing a split chosen by find_split_point,
27824         either copy i2src or set it to null.  Assert that i2src is not null
27825         before substituting into CALL_INSN_FUNCTION_USAGE.
27826
27827 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
27828
27829         * double-int.h (double_int_ior): New function.
27830         * tree.h (build_int_cst_wide_type): Remove.
27831         * tree.c (build_int_cst_wide_type): Remove.
27832         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
27833         of build_int_cst_wide_type.
27834         * stor-layout.c (set_sizetype): (Ditto.).
27835         * dojump.c (do_jump): Use build_int_cstu instead of
27836         build_int_cst_wide_type.
27837
27838 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
27839
27840         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
27841         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
27842         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
27843         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
27844         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
27845         propagate the 'data' argument to copy_tree_r.
27846         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
27847         Propagate 'data' argument to walk_tree.
27848         (copy_if_shared): New function.
27849         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
27850         (unmark_visited): New function.
27851         (unshare_body): Call copy_if_shared instead of doing it manually.
27852         (unvisit_body): Call unmark_visited instead of doing it manually.
27853
27854 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
27855
27856         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
27857         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
27858         * hooks.c: Likewise.
27859         * target-def.h (TARGET_FOLD_BUILTIN): Define to
27860         hook_tree_tree_int_treep_bool_null.
27861         * target.h (struct gcc_target): Update signature of fold_builtin
27862         field.
27863         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
27864         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
27865         instead of the call expression.
27866         (fold_builtin_call_array): Pass n and argarray directly.
27867         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
27868         consing a list.
27869         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
27870         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
27871         `i' and use it in place of `arity'.
27872         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
27873         Dereference `args' directly.
27874         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
27875
27876 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27877
27878         * doc/sourcebuild.texi (Effective-Target Keywords): Document
27879         3dnow, sse3, sse2.
27880         (Directives): Document optional dg-require-effective-target
27881         selector.
27882
27883 2010-05-19  Richard Guenther  <rguenther@suse.de>
27884
27885         PR lto/44196
27886         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
27887
27888 2010-05-19  Richard Guenther  <rguenther@suse.de>
27889
27890         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
27891         * common.opt (fwhopr=): New.
27892         * opts.c (common_handle_option): Handle OPT_fwhopr.
27893         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
27894         * collect2.c (main): Match -fwhopr*.
27895         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
27896         Execute ltrans stage in parallel when jobs is bigger than 1.
27897
27898 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27899
27900         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
27901         pentiumpro on Solaris 8/x86 with Sun as.
27902         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
27903         hidden alias bug.
27904         (gcc_cv_as_ix86_quad): Check for .quad directive.
27905         * configure: Regenerate.
27906         * config.in: Regenerate.
27907         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
27908
27909 2010-05-19  Martin Jambor  <mjambor@suse.cz>
27910
27911         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
27912         also for indirect edges.  Actual printing moved...
27913         (ipa_print_node_jump_functions_for_edge): ...here.
27914         (ipa_compute_jump_functions): Renamed to
27915         ipa_compute_jump_functions_for_edge and made static.
27916         (ipa_compute_jump_functions): New function.
27917         (make_edge_direct_to_target): Check if the number of arguments on
27918         the newly direct edge is the same as the number of parametrs of
27919         the callee.
27920         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
27921         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
27922         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
27923         analysis functions unconditionally, call the new
27924         ipa_analyze_params_uses on the node instead of every edge.
27925
27926 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
27927
27928         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
27929         to tree.
27930         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
27931         also checks for a constant int vs.  non-constant but
27932         loop-invariant steps.
27933         (find_or_create_group): Change the sort algorithm to only consider
27934         steps that are constant ints.
27935         (idx_analyze_ref): Adopt code to handle a tree instead of a
27936         HOST_WIDE_INT for step.
27937         (gather_memory_references_ref): Handle tree instead of int and be
27938         prepared to see a NULL_TREE.
27939         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
27940         prefetches if the step cannot be calculated at compile time.
27941         (issue_prefetch_ref): Issue prefetches for non-constant but
27942         loop-invariant steps.
27943
27944 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
27945
27946         Revert:
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  Nathan Froyd  <froydnj@codesourcery.com>
27953
27954         * tree.h (build_call_list): Remove.
27955         * tree.c (build_call_list): Remove.
27956
27957 2010-05-18  Jan Hubicka  <jh@suse.cz>
27958
27959         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
27960
27961 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
27962
27963         PR rtl-optimization/43332
27964         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
27965
27966 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
27967
27968         * tree.h (build_int_cstu): Implement as static inline.
27969         * tree.c (build_int_cstu): Remove function.
27970         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
27971         sign extended.
27972
27973 2010-05-18  Richard Guenther  <rguenther@suse.de>
27974
27975         PR lto/44143
27976         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
27977         (debug): Initialize from -save-temps.
27978         (collect_execute): Print command-line when verbose.
27979         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
27980         for ltrans invocation.  Produce -dumpbase flag again.
27981         (process_args): Remove.
27982         (main): Simplify.
27983         * collect2.c (maybe_run_lto_and_relink): Only pass object
27984         files to lto-wrapper.
27985         * gcc.c (LINK_COMMAND_SPEC): Likewise.
27986
27987 2010-05-18  Jan Hubicka  <jh@suse.cz>
27988
27989         * opts.c (decode_options): Do not disable whopr at ipa_cp.
27990         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
27991
27992 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
27993
27994         PR lto/44184
27995         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
27996         in a GIMPLE_ASM.
27997         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
27998         in a GIMPLE_ASM.
27999
28000 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
28001
28002         PR debug/41371
28003         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
28004         rtx_equal_p inline.
28005
28006 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
28007
28008         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
28009         lto-macho as lto_binary_reader.
28010
28011         * darwin.c (darwin_asm_named_section): Do not add assembler comment
28012         after .section directive; just print it before the directive instead.
28013
28014 2010-05-17  Jan Hubicka  <jh@suse.cz>
28015
28016         * cgraph.c (cgraph_create_virtual_clone): Only check
28017         versionable_function_p when not in wpa and checking is enabled.
28018         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
28019         there are no more functions to materialize.
28020
28021 2010-05-17  Jan Hubicka  <jh@suse.cz>
28022
28023         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
28024         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
28025         New functions.
28026         (output_cgraph): Call output_cgraph_opt_summary.
28027         (input_cgrpah): Call input_cgraph_opt_summary.
28028         (output_cgraph_opt_summary_p, output_node_opt_summary,
28029         input_node_opt_summary, input_cgraph_opt_section): New functions.
28030         * lto-section-in.c (lto_section_name): Add cgraphopt.
28031         * tree-inline.c (tree_function_versioning): Handle parm_num.
28032         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
28033         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
28034
28035 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28036
28037         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
28038         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
28039         the insn to prefetch ratio heuristic to loops with known trip count.
28040
28041 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28042
28043         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
28044         (schedule_prefetches): Do not generate a prefetch if the unroll factor
28045         is far from what is required by the prefetch.
28046
28047 2010-05-17  Jan Hubicka  <jh@suse.cz>
28048
28049         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
28050         (ipcp_estimate_growth): Likewise.
28051         (ipcp_const_param_count): Likewise.
28052         (ipcp_insert_stage): Likewise.
28053         * ipa-prop.c (visit_load_for_mod_analysis): New function.
28054         (visit_store_addr_for_mod_analysis): Set used flag.
28055         (ipa_detect_param_modifications): Set used flag for SSE params;
28056         update use of walk_stmt_load_store_addr_ops.
28057         (ipa_print_node_params): Print used flag.
28058         (ipa_write_node_info): Stream used flag.
28059         (ipa_read_node_info): Likewise.
28060         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
28061         (ipa_is_param_used): New function.
28062         (lto_ipa_fixup_call_notes): Remove unused declaration.
28063
28064 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28065
28066         PR target/44074
28067         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
28068         * configure: Regenerate.
28069         * config.in: Regenerate.
28070         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
28071         !HAVE_AS_IX86_REP_LOCK_PREFIX.
28072         Don't emit whitespace.
28073         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
28074         (*rep_movsi): Likewise.
28075         (*rep_movsi_rex64): Likewise.
28076         (*rep_movqi): Likewise.
28077         (*rep_movqi_rex64): Likewise.
28078         (*rep_stosdi_rex64): Likewise.
28079         (*rep_stossi): Likewise.
28080         (*rep_stossi_rex64): Likewise.
28081         (*rep_stosqi): Likewise.
28082         (*rep_stosqi_rex64): Likewise.
28083         (*cmpstrnqi_nz_1): Use {%;} after repz.
28084         (*cmpstrnqi_nz_rex_1): Likewise.
28085         (*cmpstrnqi_1): Likewise.
28086         (*cmpstrnqi_rex_1): Likewise.
28087         (*strlenqi_1): Use {%;} after repnz.
28088         (*strlenqi_rex_1): Likewise.
28089         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
28090         (*sync_compare_and_swap<mode>): Likewise.
28091         (sync_double_compare_and_swap<mode>): Likewise.
28092         (*sync_double_compare_and_swapdi_pic): Likewise.
28093         (sync_old_add<mode>): Likewise.
28094         (sync_add<mode>): Likewise.
28095         (sync_sub<mode>): Likewise.
28096         (sync_<code><mode>): Likewise.
28097
28098 2010-05-17  Martin Jambor  <mjambor@suse.cz>
28099
28100         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
28101         otr_token and polymorphic.
28102         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
28103         (cgraph_clone_edge): Copy the above fields.
28104         * tree.c (get_binfo_at_offset): New function.
28105         * tree.h (get_binfo_at_offset): Declare.
28106         * ipa-prop.h (enum jump_func_type): Added known_type jump function
28107         type, reordered items, updated comments.
28108         (union jump_func_value): Added base_type field, reordered fields.
28109         (enum ipa_lattice_type): Moved down in the file.
28110         (struct ipa_param_descriptor): New field polymorphic.
28111         (ipa_is_param_polymorphic): New function.
28112         * ipa-prop.c: Include gimple.h and gimple-fold.h.
28113         (ipa_print_node_jump_functions): Print known type jump functions.
28114         (compute_complex_pass_through): Renamed to...
28115         (compute_complex_assign_jump_func): this.
28116         (compute_complex_ancestor_jump_func): New function.
28117         (compute_known_type_jump_func): Likewise.
28118         (compute_scalar_jump_functions): Create known type and complex ancestor
28119         jump functions.
28120         (ipa_note_param_call): New parameter polymorphic, set the corresponding
28121         flag in the call note accordingly.
28122         (ipa_analyze_call_uses): Renamed to...
28123         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
28124         variable var only in the block where it is used.
28125         (ipa_analyze_virtual_call_uses): New function.
28126         (ipa_analyze_call_uses): Likewise.
28127         (combine_known_type_and_ancestor_jfs): Likewise.
28128         (update_jump_functions_after_inlining): Implemented handling of a
28129         number of new jump function types combination.
28130         (print_edge_addition_message): Removed.
28131         (make_edge_direct_to_target): New function.
28132         (try_make_edge_direct_simple_call): Likewise.
28133         (try_make_edge_direct_virtual_call): Likewise.
28134         (update_call_notes_after_inlining): Renamed to...
28135         (update_indirect_edges_after_inlining): this.  Moved edge creation for
28136         indirect calls to try_make_edge_direct_simple_call, also calls
28137         try_make_edge_direct_virtual_call for virtual calls.
28138         (ipa_print_node_params): Changed the header message.
28139         (ipa_write_jump_function): Stream also known type jump functions.
28140         (ipa_read_jump_function): Likewise.
28141         (ipa_write_indirect_edge_info): Stream new fields in
28142         cgraph_indirect_call_info.
28143         (ipa_read_indirect_edge_info): Likewise.
28144         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
28145         GIMPLE_FOLD_H.
28146
28147 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28148
28149         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
28150
28151 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
28152
28153         * tree.h (CALL_EXPR_ARGS): Delete.
28154         (call_expr_arglist): Delete.
28155         * tree.c (call_expr_arglist): Delete.
28156         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
28157         targetm.fold_builtin.
28158         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
28159         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
28160         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
28161         arglist parameter.  Use CALL_EXPR_ARG.
28162         (picochip_expand_builtin_3op): Likewise.
28163         (picochip_expand_builtin_2opvoid): Likewise.
28164         (picochip_expand_array_get): Likewise.
28165         (picochip_expand_array_put): Likewise.
28166         (picochip_expand_array_testport): Likewise.
28167         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
28168         rather than arglist.
28169         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
28170         CALL_EXPR_ARGS.
28171         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
28172         than TREE_VALUE and TREE_CHAIN.
28173         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
28174         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
28175         the arglist.
28176
28177 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
28178
28179         PR bootstrap/42347
28180         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
28181         to have no fallthru edge.
28182
28183         PR middle-end/44102
28184         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
28185         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
28186         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
28187         add BARRIER after previous bb if needed.
28188
28189 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
28190
28191         * tree.c (build_function_type_list_1): Remove bogus assert condition.
28192
28193 2010-05-17  Alan Modra  <amodra@gmail.com>
28194
28195         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
28196         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
28197         with copy_reg rtx param.
28198         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
28199         Correct cases where code for ABI_V4 did not initialise the reg
28200         used to access frame.  Also leave frame_reg_rtx as sp for large
28201         frames that save no regs.
28202
28203 2010-05-17  Martin Jambor  <mjambor@suse.cz>
28204
28205         PR middle-end/44133
28206         * tree-sra.c (create_access_replacement): New parameter rename, mark
28207         the replaement for renaming only when it is true.
28208         (get_access_replacement): Pass true in the rename parameter of
28209         create_access_replacement.
28210         (get_unrenamed_access_replacement): New function.
28211         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
28212         replacement declaration from it.
28213
28214 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
28215
28216         * function.c (try_fit_stack_local, add_frame_space): New static
28217         functions.
28218         (assign_stack_local_1): Use them.  Look for opportunities to use
28219         space previously wasted on alignment.
28220         * function.h (struct frame_space): New.
28221         (struct rtl_data): Add FRAME_SPACE_LIST member.
28222         * reload1.c (something_was_spilled): New static variable.
28223         (alter_reg): Set it.
28224         (reload): Test it in addition to testing if the frame size changed.
28225
28226 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
28227
28228         * config/s390/s390.c: Define sane prefetch settings and activate
28229         flag_prefetch_loop_arrays on -O3.
28230         * config/s390/s390.h: Declare that read can use write prefetch.
28231
28232 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
28233
28234         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
28235         build.
28236
28237 2010-05-16  Jan Hubicka  <jh@suse.cz>
28238
28239         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
28240         function body; do not check stdarg field of struct function.
28241
28242 2010-05-16  Jan Hubicka  <jh@suse.cz>
28243
28244         * cgraph.c (dump_cgraph_node): Dump versionable flag.
28245         * cgraph.h (cgraph_local_info): Add versionable flag.
28246         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
28247         (ipcp_versionable_function_p): Use it.
28248         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
28249         versionable flag.
28250
28251 2010-05-16  Jan Hubicka  <jh@suse.cz>
28252
28253         * cgraph.c (cgraph_clone_node): Take decl argument and insert
28254         clone into hash when it is different from orig.
28255         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
28256         * cgraph.h (cgraph_clone_node): Update prototype.
28257         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
28258         (lto_cgraph_encoder_delete): Delete body map.
28259         (lto_cgraph_encoder_size): Move to header.
28260         (lto_cgraph_encoder_encode_body_p,
28261         lto_set_cgraph_encoder_encode_body): New.
28262         (lto_output_node): Do not take written_decls argument; output clone_of
28263         pointer.
28264         (add_node_to): Add include_body_argument; call
28265         lto_set_cgraph_encoder_encode_body on master of the clone.
28266         (add_references): Update use of add_node_to.
28267         (compute_ltrans_boundary): Likewise.
28268         (output_cgraph): Do not create written_decls bitmap.
28269         (input_node): Take nodes argument; stream in clone_of correctly.
28270         (input_cgraph_1): Update use of input_node.
28271         * lto-streamer-out.c (lto_output): Use encoder info to decide
28272         what bodies to output.
28273         * ipa-inline.c (cgraph_clone_inlined_nodes,
28274         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
28275         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
28276         (lto_cgraph_encoder_size): Define here.
28277         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
28278         Declare.
28279
28280 2010-05-16  Richard Guenther  <rguenther@suse.de>
28281
28282         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
28283         -fipa-type-escape.
28284         * ipa-type-escape.c (gate_type_escape_vars): Run when
28285         -fipa-struct-reorg runs.
28286         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
28287         * common.opt (fipa-type-escape): Remove.
28288
28289 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
28290
28291         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
28292         (decode_options): Likewise.
28293         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
28294
28295 2010-05-16  Jan Hubicka  <jh@suse.cz>
28296
28297         * ipa.c (function_and_variable_visibility): Also bring local all
28298         aliases.
28299
28300 2010-05-16  Richard Guenther  <rguenther@suse.de>
28301
28302         * alias.c (nonoverlapping_memrefs_p): Remove use of
28303         IPA type-escape information.
28304
28305 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
28306
28307         * c-common.c (c_common_reswords): Add _Static_assert for C.
28308         * c-parser.c (c_token_starts_declaration,
28309         c_parser_next_token_starts_declaration,
28310         c_parser_static_assert_declaration_no_semi,
28311         c_parser_static_assert_declaration): New.
28312         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
28313         Handle static assertions if static_assert_ok.
28314         (c_parser_external_declaration, c_parser_declaration_or_fndef,
28315         c_parser_compound_statement_nostart, c_parser_label,
28316         c_parser_for_statement, c_parser_objc_methodprotolist,
28317         c_parser_omp_for_loop): All callers of
28318         c_parser_declaration_or_fndef changed.
28319         (c_parser_struct_declaration): Handle static assertions.
28320         (c_parser_compound_statement_nostart): Use
28321         c_parser_next_token_starts_declaration and
28322         c_token_starts_declaration to detect start of declarations.
28323         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
28324         Likewise.
28325
28326 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
28327
28328         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
28329         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
28330         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
28331         TARGET_FUNCTION_VALUE_REGNO_P): Define.
28332         (mmix_function_outgoing_value): Rename to...
28333         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
28334         (mmix_function_value_regno_p): Make static.
28335         (mmix_libcall_value): New function.
28336         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
28337         mmix_function_value_regno_p): Remove declaration.
28338
28339 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
28340
28341         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
28342         BUILT_IN_ALLOCA if stack checking is enabled.
28343
28344 2010-05-16  Richard Guenther  <rguenther@suse.de>
28345
28346         * var-tracking.c (vars_copy_1): Inline ...
28347         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
28348         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
28349         (variable_merge_over_cur): Adjust.  Merge asserts.
28350         (variable_merge_over_src): Likewise.
28351         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
28352         (variable_post_merge_new_vals): Merge asserts.
28353         (variable_post_merge_perm_vals): Likewise.
28354         (find_mem_expr_in_1pdv): Likewise.
28355         (dataflow_set_different_value): Remove.
28356         (onepart_variable_different_p): Merge asserts.
28357         (variable_different_p): Likewise.
28358         (dataflow_set_different_1): Inline ...
28359         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
28360         (emit_notes_for_differences_1): Merge asserts.
28361
28362 2010-05-16  Richard Guenther  <rguenther@suse.de>
28363
28364         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
28365         * optabs.c (libfunc_decl_hash): Likewise.
28366         * varasm.c (emutls_decl): Likewise.
28367
28368 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
28369
28370         * c-decl.c: Don't include gimple.h.
28371         (merge_decls): Do not copy gimple_body.
28372
28373 2010-05-15  Jason Merrill  <jason@redhat.com>
28374
28375         * c.opt: Add -fnothrow-opt.
28376
28377 2010-05-15  Jan Hubicka  <jh@suse.cz>
28378
28379         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
28380         analyzed.
28381         * passes.c (ipa_write_summaries): Write all analyzed nodes.
28382
28383 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
28384
28385         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
28386         * Makefile.in: Add it.
28387         Fix all other Makefile dependencies for changes below.
28388         * tree.h: Include it instead of defining VEC primitives here.
28389         * gimple.h: Likewise.
28390         * rtl.h: Likewise.
28391         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
28392         * except.h: Include vecir.h, break dependence on tree.h.
28393
28394         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
28395         Move from here...
28396         * tree-iterator.c: ...to here.
28397         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
28398
28399         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
28400         tm_p.h.
28401         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
28402         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
28403         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
28404         tree-mudflap.h, and target.h.
28405         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
28406         predict.h, tree-inline.h, gimple.h, and langhooks.h.
28407         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
28408         Add FIXME for why gimple.h is still included (should be unnecessary
28409         since GCC 4.5 gimplification unit-at-a-time).
28410         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
28411         * c-pragma.c: Add FIXME for why function.h needs to be included just
28412         for cfun, at front-end level.
28413         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
28414         Do not include ggc.h, but include vecprim.h for VEC(char).
28415         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
28416         Explain why target.h is included.
28417         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
28418         Explain why gimple.h is included.
28419         * c-ppoutput.c: Do not include tm.h.
28420         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
28421         * c-parses.c: Explain why rtl.h is included, and that this (and only
28422         this) is also why tm.h must be included.
28423         Do not include except.h.
28424         * c-lang.c: Do not include ggc.h.
28425
28426 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
28427
28428         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
28429
28430 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
28431
28432         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
28433         unions by default if those structs and unions have no tags.  Do
28434         not condition anonymous struct and unions handling on flag_iso.
28435         Allow anonymous structs and unions for C1X.
28436         (finish_struct): Do not diagnose lack of named fields when
28437         anonymous structs and unions present for C1X.  Accept flexible
28438         array members in structure with anonymous structs or unions but no
28439         directly named fields.
28440         * doc/extend.texi (Unnamed Fields): Update.
28441
28442 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
28443
28444         * gimple.h (compare_field_offset): Rename into...
28445         (gimple_compare_field_offset): ...this.
28446         * gimple.c (compare_field_offset): Rename into...
28447         (gimple_compare_field_offset): ...this.  Compare the full access if
28448         the offset is self-referential.
28449         (gimple_types_compatible_p): Adjust for above renaming.
28450         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
28451         DECL_NONADDRESSABLE_P flag of fields before merging them.
28452
28453 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
28454
28455         * tree.h (ctor_to_list): Delete.
28456         * tree.c (ctor_to_list): Delete.
28457
28458 2010-05-15  Jan Hubicka  <jh@suse.cz>
28459
28460         * ipa-reference.c: Include toplev.h
28461         (is_proper_for_analysis): Only add to all_module_statics
28462         if it is allocated.
28463         (write_node_summary_p, stream_out_bitmap,
28464         ipa_reference_write_optimization_summary,
28465         ipa_reference_read_optimization_summary): New.
28466         (struct ipa_opt_pass_d pass_ipa_reference): Add
28467         optimization summary streaming.
28468         * lto-cgraph.c (referenced_from_this_partition_p,
28469         reachable_from_this_partition_p): New functions.
28470         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
28471         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
28472         * opts.c (decode_options): Enable ipa_reference.
28473         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
28474         * lto-streamer.h (referenced_from_this_partition_p,
28475         reachable_from_this_partition_p): Declare.
28476
28477 2010-05-15  Richard Guenther  <rguenther@suse.de>
28478
28479         PR tree-optimization/44038
28480         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
28481         taking the address of a V_C_E of a constant.
28482
28483 2010-05-14  Jan Hubicka  <jh@suse.cz>
28484
28485         * tree.h (memory_identifier_string): Remove.
28486         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
28487         (ipa_reference_global_vars_info_d): Remove statics_not_read and
28488         statics_not_written.
28489         (ipa_reference_optimization_summary_d): New structure.
28490         (ipa_reference_optimization_summary_t): New type and vector.
28491         (ipa_reference_vars_info_d): Embedd structures instead of using
28492         pointers.
28493         (reference_vars_to_consider): Remove out of GGC space.
28494         (module_statics_escape): Remove.
28495         (global_info_obstack): Rename to ...
28496         (optimization_summary_obstack): ... this one.
28497         (initialization_status_t): Remove.
28498         (memory_identifier_string): Remove.
28499         (get_reference_vars_info): Fix indenting.
28500         (set_reference_vars_info): Likewise.
28501         (get_reference_optimization_summary): New.
28502         (set_reference_optimization_summary): New.
28503         (get_global_reference_vars_info): Remove.
28504         (ipa_reference_get_read_global): Remove.
28505         (ipa_reference_get_written_global): Remove.
28506         (ipa_reference_get_not_read_global): Update.
28507         (ipa_reference_get_not_written_global): Update.
28508         (is_proper_for_analysis): Outlaw addressable.
28509         (propagate_bits): Update for new datastructures.
28510         (analyze_variable): Remove.
28511         (init_function_info): Update for new datastructures.
28512         (clean_function_local_data): Remove.
28513         (clean_function): Remove.
28514         (copy_global_bitmap): Use optimizations_summary_obstack.
28515         (duplicate_node_data): Duplicate optimization summary only.
28516         (remove_node_data): Remove optimization summary only.
28517         (generate_summary): Do not analyze variables; do not compute
28518         module_statics_escape; do not prune solutions by it.
28519         (read_write_all_from_decl): Fix typos in comments.
28520         (propagate): Doscover readonly and nonaddressable first;
28521         update for new datastructures; share global bitmaps.
28522         * ipa-reference.h (ipa_reference_get_read_global,
28523         ipa_reference_get_written_global): Remove.
28524         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
28525         * Makefile.in: Remove ipa-refereference from GT files.
28526
28527 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
28528
28529         PR debug/44112
28530         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
28531         for all SYMBOL_REF_DECLs.
28532
28533 2010-05-14  Jan Hubicka  <jh@suse.cz>
28534
28535         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
28536         (varpool_all_refs_explicit_p): New inline function.
28537         * ipa-reference.c: Update comment.
28538         (module_statics_written): Remove.
28539         (get_static_decl): Remove.
28540         (ipa_init): Do not initialize module_statics_written.
28541         (analyze_function): Likewise.
28542         (generate_summary): Likewise; do not compute module_statics_readonly
28543         and do not update variable flags.
28544         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
28545         * ipa.c: Inlucde flags.h
28546         (cgraph_local_node_p): New.
28547         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
28548         promote functions to local.
28549         (ipa_discover_readonly_nonaddressable_vars): New function.
28550         (function_and_variable_visibility): Use cgraph_local_node_p.
28551         * varpool.c (varpool_finalize_decl): Set force_output for
28552         DECL_PRESERVE_P vars.
28553
28554 2010-05-14  Jan Hubicka  <jh@suse.cz>
28555
28556         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
28557
28558 2010-05-14  Richard Guenther  <rguenther@suse.de>
28559
28560         PR tree-optimization/44119
28561         * tree-ssa-pre.c (eliminate): Properly mark replacement of
28562         a PHI node necessary.
28563
28564 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
28565
28566         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
28567
28568 2010-05-14  Jason Merrill  <jason@redhat.com>
28569
28570         PR c++/44127
28571         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
28572         (gimple_call_set_nothrow): New.
28573         * gimple.c (gimple_build_call_from_tree): Call it.
28574         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
28575
28576         PR c++/44127
28577         * gimplify.c (gimplify_seq_add_stmt): No longer static.
28578         * gimple.h: Declare it.
28579         * gimple.c (gimple_build_eh_filter): No ops.
28580
28581 2010-05-14  Jan Hubicka  <jh@suse.cz>
28582
28583         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
28584         nodes already in queue.
28585         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
28586         re-enqueueing node.
28587
28588 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
28589
28590         PR debug/44136
28591         * cfgexpand.c (expand_debug_expr): If non-memory op0
28592         has BLKmode, return NULL.
28593
28594 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
28595
28596         * config.gcc: Add support for --with-cpu option for bdver1.
28597         * config/i386/i386.h (TARGET_BDVER1): New macro.
28598         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
28599         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
28600         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
28601         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
28602         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
28603         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
28604         (processor_type): Add PROCESSOR_BDVER1.
28605         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
28606         processor_type in config/i386/i386.h.
28607         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
28608         movaps <reg, reg> instead of movapd <reg, reg> when replacing
28609         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
28610         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
28611         to emit packed xor instead of packed double/packed integer
28612         xor for SSE and AVX when moving a zero value.
28613         * config/i386/sse.md: Add check for
28614         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
28615         movapd/movdqa for SSE and AVX.
28616         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
28617         single logical operations i.e and, or and xor instead of packed double
28618         logical operations for SSE and AVX.
28619         * config/i386/i386-c.c (ix86_target_macros_internal):
28620         Add PROCESSOR_BDVER1.
28621         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
28622         (has_fma4, has_xop): New.
28623         * config/i386/i386.c (bdver1_cost): New variable.
28624         (m_BDVER1): New macro.
28625         (m_AMD_MULTIPLE): Add m_BDVER1.
28626         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
28627         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
28628         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
28629         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
28630         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
28631         x86_tune_sse_partial_reg_dependency,
28632         x86_tune_sse_unaligned_load_optimal,
28633         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
28634         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
28635         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
28636         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
28637         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
28638         Enable/disable for bdver1.
28639         (processor_target_table): Add bdver1_cost.
28640         (cpu_names): Add bdver1.
28641         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
28642          processor_alias_table.
28643         (ix86_expand_vector_move_misalign): Change.
28644         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
28645         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
28646         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
28647         of movupd/movdqu for SSE and AVX.
28648         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
28649         (ix86_tune_adjust_cost): Add code for bdver1.
28650         (standard_sse_constant_opcode): Add check for
28651         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
28652         of packed double xor for SSE and AVX.
28653
28654 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
28655
28656         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
28657         result to unsigned.
28658
28659 2010-05-14  Tristan Gingold  <gingold@adacore.com>
28660
28661         * toplev.c (default_debug_hooks): Remove this variable.
28662         (process_options): Remove assignments to default_debug_hooks.
28663
28664 2010-05-14  Martin Jambor  <mjambor@suse.cz>
28665
28666         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
28667         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
28668         * langhooks.h (struct lang_hooks_for_decls): Removed field
28669         fold_obj_type_ref.
28670         * tree.c (free_lang_data): Remove assignment to
28671         lang_hooks.fold_obj_type_ref.
28672         * tree.def (OBJ_TYPE_REF): Update comment.
28673
28674 2010-05-14  Richard Guenther  <rguenther@suse.de>
28675
28676         PR tree-optimization/44124
28677         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
28678
28679 2010-05-14  Alan Modra  <amodra@gmail.com>
28680
28681         PR target/44075
28682         * config/rs6000/rs6000.c (struct machine_function): Reorder
28683         fields for better packing.  Add lr_save_state.
28684         (rs6000_ra_ever_killed): Return lr_save_state if set.
28685         (rs6000_emit_eh_reg_restore): Set lr_save_state.
28686
28687 2010-05-13  Jan Hubicka  <jh@suse.cz>
28688
28689         * varpool.c (decide_is_variable_needed): Drop code checking
28690         TREE_SYMBOL_REFERENCED.
28691
28692 2010-05-13  Jan Hubicka  <jh@suse.cz>
28693
28694         * final.c (output_addr_const): Do not call mark_decl_referenced.
28695         * cgraphunit.c (process_function_and_variable_attributes): Use
28696         mark_needed_node dirrectly.
28697         (assemble_thunk): Do not call mark_decl_referenced.
28698
28699 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
28700
28701         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
28702
28703 2010-05-13  Jeff Law  <law@redhat.com>
28704
28705         * ira-conflicts.c (print_allocno_conflicts): New function broken out
28706         from...
28707         (print_conflicts): Call print_allocno_conflicts.
28708
28709 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
28710
28711         PR debug/44104
28712         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
28713         if it is NULL.
28714
28715 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
28716
28717         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
28718         t-mingw-w64 or t-mingw-w32 for multilib configuration.
28719         * config/i386/t-mingw-w32: New.
28720         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
28721
28722 2010-05-13  Martin Jambor  <mjambor@suse.cz>
28723
28724         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
28725         gimple-fold.c).
28726         * gimple-fold.c (get_base_binfo_for_type): New function.
28727         (gimple_get_relevant_ref_binfo): Likewise.
28728         (gimple_fold_obj_type_ref_known_binfo): Likewise.
28729         (gimple_fold_obj_type_ref): Likewise.
28730         (fold_gimple_call): Simplify condition for folding virtual calls
28731         and call gimple_fold_obj_type_ref.
28732         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
28733         (gimple_fold_obj_type_ref_known_binfo): Likewise.
28734
28735 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
28736
28737         * config/rs6000/rs6000-protos.h
28738         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
28739         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
28740         (rs6000_debug_mode_dependent_address)
28741         (rs6000_mode_dependent_address_ptr): Likewise.
28742
28743 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
28744
28745         PR debug/43983
28746         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
28747         by SRA.
28748         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
28749         * tree-sra.c (create_access_replacement): Call unshare_expr before
28750         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
28751         * dwarf2out.c: Include tree-flow.h.
28752         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
28753         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
28754         Handle DW_OP_bit_piece.
28755         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
28756         construct_piece_list, adjust_piece_list): New functions.
28757         (add_var_loc_to_decl): Handle SRA optimized variables.
28758         Adjust for var_loc_note to loc field renaming.
28759         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
28760         in VAR_LOCATION note.
28761         (new_loc_descr_op_bit_piece): New function.
28762         (dw_sra_loc_expr): New function.
28763         (dw_loc_list): Use it.  Don't handle the last range after the
28764         loop, handle it inside of the loop.  Adjust for var_loc_note
28765         to loc field renaming.
28766         (add_location_or_const_value_attribute): Only special case
28767         single entry loc lists if loc is NOTE_P.  Adjust for
28768         var_loc_note to loc field renaming.
28769         (dwarf2out_var_location): Don't set newloc->var_loc_note
28770         and newloc->next here.
28771
28772 2010-05-12  Jan Hubicka  <jh@suse.cz>
28773
28774         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
28775         flag.
28776         * cgraph.h (cgraph_only_called_directly_p,
28777         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
28778         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
28779         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
28780         (assemble
28781         * ipa.c (cgraph_remove_unreachable_nodes): Use
28782         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
28783         flags.
28784         * tree-inline.c (copy_bb): Check address_taken flag.
28785         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
28786         externally_visible flag.
28787
28788 2010-05-12  Jason Merrill  <jason@redhat.com>
28789
28790         PR bootstrap/44048
28791         PR target/44099
28792         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
28793         * sdbout.c (plain_type_1): Likewise.
28794         * dwarf2out.c (is_base_type): Likewise.
28795         (gen_type_die_with_usage): Likewise.  Generate
28796         DW_TAG_unspecified_type for any LANG_TYPE.
28797
28798 2010-05-12  Jan Hubicka  <jh@suse.cz>
28799
28800         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
28801         indrect edges too.
28802         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
28803         (cgraph_clone_edge): Update.
28804         (cgraph_node_remove_callees): Remove indirect calls too.
28805         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
28806         (cgraph_create_indirect_edge): Update prototype.
28807         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
28808         is_proper_for_analysis.
28809         (add_new_function, visited_nodes, function_insertion_hook_holder,
28810         get_local_reference_vars_info, mark_address_taken, mark_address,
28811         mark_load, mark_store, check_asm_memory_clobber, check_call,
28812         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
28813         (ipa_init): Do not initialize visited_nodes;
28814         function_insertion_hook_holder.
28815         (analyze_variable): Rewrite.
28816         (analyze_function): Rewrite.
28817         (copy_local_bitmap): Remove.
28818         (duplicate_node_dat): Do not duplicate local info.
28819         (generate_summary): Simplify to only walk cgraph.
28820         (write_node_summary_p, ipa_reference_write_summary,
28821         ipa_reference_read_summary): Remove.
28822         (propagate): Do not remove function insertion;
28823         generate summary.
28824         (pass_ipa_reference): NULLify summary handling fields.
28825         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
28826         (input_edge): Input ecf_flags.
28827         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
28828         (update_indirect_edges_after_inlining): Ignore edges with unknown
28829         param.
28830
28831 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
28832
28833         * implicit-zee.c: New file.
28834         * tree-pass.h (pass_implicit_zee): Declare.
28835         * passes.c (init_optimization_passes): Add zee pass.
28836         * common.opt (fzee): New flag.
28837         * timevar.def (TV_ZEE): Define.
28838         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
28839         and beyond.
28840         * Makefile.in (implicit-zee.o): Add new build file.
28841
28842 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
28843             Nathan Froyd  <froydnj@codesourcery.com>
28844
28845         * c-common.c (sync_resolve_params): Remove write-only variable.
28846
28847 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
28848
28849         * target.h (struct gcc_target): Add mode_dependent_address_p field.
28850         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
28851         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
28852         * targhooks.c (default_mode_dependent_address_p): New function.
28853         * targhooks.h (default_mode_dependent_address_p): Declare function.
28854         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
28855         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
28856         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
28857         target hook. Change return type to bool.
28858         * recog.h (mode_dependent_address_p): Change return type to bool.
28859
28860 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
28861             Nathan Froyd  <froydnj@codesourcery.com>
28862
28863         * tree-mudflap.c (build_function_type_0, build_function_type_1,
28864         build_function_type_2, build_function_type_3): Remove.
28865         (mudflap_init): Use build_function_type_list.
28866
28867 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
28868             Nathan Froyd  <froydnj@codesourcery.com>
28869
28870         * coverage.c (build_fn_info_value): Call build_constructor instead of
28871         build_constructor_from_list.
28872         (build_ctr_info_value): Likewise.
28873         (build_gcov_info): Likewise.
28874
28875 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
28876
28877         * tree.c (build_constructor): Compute TREE_CONSTANT for the
28878         resultant constructor.
28879         (build_constructor_single): Don't set TREE_CONSTANT.
28880         (build_constructor_from_list): Don't compute TREE_CONSTANT.
28881
28882 2010-05-12  Jan Hubicka  <jh@suse.cz>
28883
28884         * cgraph.h (struct varpool_node): Add aux.
28885         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
28886         * varpool.c (varpool_remove_node): Do not remove initializer.
28887         (varpool_reset_queue): Export.
28888         (varpool_finalize_decl): Volatile vars are forced to be output.
28889         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
28890         replaced decl.
28891         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
28892         process_references, varpool_can_remove_if_no_refs): New functions.
28893         (cgraph_remove_unreachable_nodes): Handle variables too.
28894
28895 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
28896
28897         PR target/44088
28898         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
28899
28900 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
28901
28902         PR middle-end/44085
28903         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
28904         change value of ORT_TASK.
28905         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
28906         (omp_notice_threadprivate_variable): New function.
28907         (omp_notice_variable): Call it for threadprivate variables.
28908         If enclosing ctx is a task, print enclosing task rather than
28909         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
28910         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
28911         if task has untied clause.
28912
28913         PR debug/42278
28914         * dwarf2out.c (base_type_die): Don't add name attribute here.
28915         (modified_type_die): Instead of sizetype use
28916         its underlying original type.  If a DW_TAG_base_type doesn't
28917         have name added, add __unknown__.
28918         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
28919         always call force_type_die instead.
28920
28921 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
28922
28923         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
28924         for __stack_chk_guard.
28925
28926 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
28927
28928         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
28929         don't call start_source_file debug hook here...
28930         (finish_options): ... but here, after outputting predefined and
28931         command line defines and undefs.
28932
28933         PR middle-end/44071
28934         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
28935         no fallthru edge.
28936         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
28937         optimizing away empty bb with no successors, move over its
28938         footer chain to fallthru predecessor.
28939         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
28940         (rtl_split_edge): For asm goto call patch_jump_insn even if
28941         splitting fallthru edge.
28942
28943         PR c++/44059
28944         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
28945         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
28946         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
28947         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
28948         on DW.ref.* decls.
28949
28950         PR c++/44062
28951         * c-parser.c (c_parser_expression): Mark LHS of a comma
28952         expression as read if it is a decl, handled component or
28953         COMPOUND_EXPR with that on the RHS.
28954         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
28955         if it is a decl or handled component.
28956
28957 2010-05-11  Jan Hubicka  <jh@suse.cz>
28958
28959         * lto-symtab.c (lto_symtab_free): New function.
28960         * lto-streamer.h (lto_symtab_free): Declare.
28961
28962 2010-05-11  Jan Hubicka  <jh@suse.cz>
28963
28964         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
28965         that if function is needed it is reachable.
28966         (lto_output_node): See if it the function is reachable or referenced.
28967         (output_cgraph): Update call of lto_output_node.
28968         * lto-streamer.h (reachable_from_other_partition_p): Declare.
28969
28970 2010-05-11  Jan Hubicka  <jh@suse.cz>
28971
28972         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
28973         Mark as used.
28974
28975 2010-05-11  Jan Hubicka  <jh@suse.cz>
28976
28977         PR tree-optimize/44063
28978         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
28979         queue.
28980         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
28981         limits.
28982         (estimate_function_body_sizes): Compute sizes even when disregarding.
28983
28984 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
28985
28986         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
28987
28988 2010-05-11  Jan Hubicka  <jh@suse.cz>
28989
28990         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
28991         into every boundary.
28992
28993 2010-05-11  Jan Hubicka  <jh@suse.cz>
28994
28995         * matrix-reorg.c (matrix_reorg): Rebuild edges.
28996
28997 2010-05-11  Jan Hubicka  <jh@suse.cz>
28998
28999         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
29000         lto_streamer_cache_delete): Put nodes into heap.
29001         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
29002         heap.
29003
29004 2010-05-11  Jan Hubicka  <jh@suse.cz>
29005
29006         * cgraphbuild.c (cgraph_rebuild_references): New.
29007         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
29008         out extern inlines.
29009         * cgraph.h (cgraph_rebuild_references): Declare.
29010         * tree-inline.c (tree_function_versioning): Use it.
29011         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
29012
29013 2010-05-11  Jan Hubicka  <jh@suse.cz>
29014
29015         * cgraph.c: Include ipa-utils.h
29016         (cgraph_create_virtual_clone): Update references.
29017         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
29018
29019 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29020
29021         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
29022         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
29023         cache size.
29024
29025 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29026
29027         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
29028
29029 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
29030
29031         * gcc.c (execute): For -### don't quote arguments that
29032         contain just alphanumerics and _/-. characters.
29033         * doc/invoke.texi: Document that change for -###.
29034
29035         PR debug/44023
29036         * df-problems.c (struct dead_debug): Add to_rescan field.
29037         (dead_debug_init): Clear to_rescan field.
29038         (dead_debug_finish): Rescan all debug insns in to_rescan
29039         bitmap and free the bitmap.
29040         (dead_debug_insert_before): Instead of rescanning debug insns
29041         immediately queue their rescanning until dead_debug_finish.
29042         (df_note_bb_compute): After dead_debug_add do continue instead
29043         of break.
29044
29045 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
29046
29047         PR debug/44028
29048         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
29049         clear also INSN_REG_USE_LIST.
29050
29051 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29052
29053         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
29054
29055 2010-05-10  Jan Hubicka  <jh@suse.cz>
29056
29057         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
29058         commited change.
29059
29060 2010-05-10  Jan Hubicka  <jh@suse.cz>
29061
29062         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
29063         Allocate encoders.
29064         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
29065         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
29066         (lto_streamer_cache_create): Init alloc pool.
29067         (lto_streamer_cache_delete): Free alloc pool.
29068         * lto-streamer.h: Include alloc pool.
29069         (lto_streamer_cache_d): Use alloc pool.
29070         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
29071
29072 2010-05-10  Jan Hubicka  <jh@suse.cz>
29073
29074         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
29075         * cgraphbuild.c: Include except.h
29076         (record_type_list, record_eh_tables): New function.
29077         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
29078
29079 2010-05-10  Jan Hubicka  <jh@suse.cz>
29080
29081         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
29082         __frame_dummy_init_array_entry, force_to_data): Attribute as used
29083         rather than unused.
29084
29085 2010-05-10  Michael Matz  <matz@suse.de>
29086
29087         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
29088         (can_reassociate_p): Use FLOAT_TYPE_P.
29089         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
29090         (vect_force_simple_reduction): ... this.
29091         * tree-parloops.c (gather_scalar_reductions): Use
29092         vect_force_simple_reduction.
29093         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
29094         vect_is_simple_reduction, add modify argument, if true rewrite
29095         "a-b" into "a+(-b)".
29096         (vect_is_simple_reduction, vect_force_simple_reduction): New
29097         functions.
29098         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
29099
29100 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
29101             Vladimir Makarov  <vmakarov@redhat.com>
29102
29103         PR rtl-optimization/44012
29104         * ira-build.c (remove_unnecessary_allocnos): Nullify
29105         regno_allocno_map of the removed allocno.
29106
29107 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29108
29109         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
29110         to /dev/null.
29111         * configure: Regenerate.
29112
29113 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29114
29115         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
29116         unused.
29117         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
29118         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
29119         support in Sun ld.
29120         * configure: Regenerate.
29121
29122 2010-05-10  Richard Guenther  <rguenther@suse.de>
29123
29124         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
29125         marked if the entry identifier is marked.
29126
29127 2010-05-10  Richard Guenther  <rguenther@suse.de>
29128
29129         * c-common.c (struct c_common_attributes): Add fnspec attribute.
29130         (handle_fnspec_attribute): New function.
29131         * gimple.h (gimple_call_return_flags): Declare.
29132         (gimple_call_arg_flags): Likewise.
29133         * gimple.c (gimple_call_arg_flags): New function.
29134         (gimple_call_return_flags): Likewise.
29135         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
29136         New argument flags.
29137         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
29138         return value flags.
29139         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
29140         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
29141         main work to ...
29142         (make_heapvar_for): ... this new function.
29143         (handle_rhs_call): Handle fnspec attribute argument specifiers.
29144         (handle_lhs_call): Likewise.
29145         (find_func_aliases): Adjust.
29146
29147 2010-05-10  Richard Guenther  <rguenther@suse.de>
29148
29149         PR tree-optimization/44050
29150         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
29151
29152 2010-05-10  Wei Guozhi  <carrot@google.com>
29153
29154         PR target/42879
29155         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
29156
29157 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29158
29159         PR c/10676
29160         * c-typeck.c (lookup_field): Take a type directly.  Update
29161         recursive calls.
29162         (build_component_ref): Update call to lookup_field.
29163         (set_init_label): Use lookup_field to find initialized field.
29164         Handle returned list of fields like a sequence of designators.
29165
29166 2010-05-09  Richard Guenther  <rguenther@suse.de>
29167
29168         PR middle-end/44024
29169         * fold-const.c (tree_single_nonzero_warnv_p): Properly
29170         handle &FUNCTION_DECL.
29171
29172 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29173
29174         PR c/4784
29175         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
29176         structures and unions recursively.
29177         (detect_field_duplicates): Move duplicate detection with a hash to
29178         detect_field_duplicates_hash.  Always use a hash if anonymous
29179         structures or unions are present.
29180         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
29181         give errors.
29182
29183 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
29184
29185         PR target/44046
29186         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
29187         detect Atom, Core 2 and Core i7.
29188
29189 2010-05-09  Richard Guenther  <rguenther@suse.de>
29190
29191         * gcc.c (store_arg): Handle temporary file deletion for
29192         joined arguments.
29193
29194 2010-05-09  Richard Guenther  <rguenther@suse.de>
29195
29196         PR middle-end/44043
29197         * ipa-inline.c (estimate_function_body_sizes): Return after
29198         disregarding inline limits.
29199
29200 2010-05-09  Richard Guenther  <rguenther@suse.de>
29201
29202         * gcc.c (store_arg): Revert last change.
29203
29204 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
29205
29206         PR middle-end/28685
29207         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
29208         (optimize_ops_list): Call it.
29209
29210 2010-05-08  Richard Guenther  <rguenther@suse.de>
29211
29212         PR tree-optimization/44030
29213         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
29214         NECESSARY flag if we propagate from a inserted expression.
29215
29216 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
29217
29218         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
29219         domain types as equal if they are both PLACEHOLDER_EXPRs.
29220
29221 2010-05-08  Richard Guenther  <rguenther@suse.de>
29222
29223         * lto-wrapper.c (run_gcc): Remove linker output from
29224         command line for LTRANS invocation.
29225
29226 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
29227
29228         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
29229         lto-macho as lto_binary_reader.
29230         * target.h (struct gcc_target): New hooks lto_start and lto_end.
29231         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
29232         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
29233         in lto_start and lto_end calls.
29234         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
29235         magic numbers.
29236         (scan_prog_file): Update is_elf_or_coff call.
29237         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
29238
29239         * collect2.c (main): Fix enum comparison.
29240
29241         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
29242         Add prototypes.
29243         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
29244         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
29245         and TARGET_ASM_LTO_END.
29246         * darwin.c: Include obstack.h and lto-streamer.h.
29247         (lto_section_names_offset, lto_section_names_obstack,
29248         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
29249         global variables.
29250         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
29251         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
29252         to a temporary file.
29253         (darwin_asm_lto_end): New function.  Restore asm_out_file.
29254         (darwin_asm_named_section): For LTO sections, replace the name with
29255         the offset of the section name in a string table, and build this
29256         table.
29257         (darwin_file_start): Initialize global vars for LTO support.
29258         (darwin_file_end): If output to asm_out_file was redirected, append it
29259         to the proper asm_out_file here.  Add the section names section.
29260
29261 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
29262
29263         * c-pragma.c (pending_weak_d, pending_weak): New.
29264         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
29265         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
29266         handle_pragma_weak): Update the uses of pending_weaks.
29267
29268 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29269
29270         PR documentation/44016
29271         * doc/standards.texi (Standards): Link to unversioned
29272         cxx0x_status.html page.
29273
29274 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
29275
29276         PR target/43708
29277         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
29278         in addition to TREE_USED, to avoid "set but unused" warnings.
29279
29280 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29281
29282         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
29283         (is_loop_prefetching_profitable): Do not insert prefetches
29284         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
29285         times the prefetch ahead distance.
29286
29287 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29288
29289         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
29290         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
29291         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
29292         the unroll_factor.
29293
29294 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29295
29296         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
29297         a diagnostic info when the insn-to-mem ratio is too small.
29298
29299 2010-05-07  Richard Guenther  <rguenther@suse.de>
29300
29301         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
29302         the linker plugin.
29303         (store_arg): Queue temp_filename for deletion instead of
29304         the whole argument.
29305
29306 2010-05-07  Richard Guenther  <rguenther@suse.de>
29307
29308         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
29309         (run_gcc): Handle LTRANS phase invocation.
29310         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
29311
29312 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
29313
29314         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
29315         this is also meaningful on PARM_DECLs and RESULT_DECLs.
29316
29317 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29318
29319         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
29320
29321 2010-05-07  Richard Guenther  <rguenther@suse.de>
29322
29323         PR tree-optimization/44020
29324         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
29325         code when PRE is not yet initialized.
29326
29327 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29328
29329         * config/mips/dbxmdebug.h: Remove.
29330         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
29331
29332 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
29333
29334         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
29335         with null pointer and also warn about ordered comparison of zero with
29336         pointer if -Wextra.
29337
29338 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
29339
29340         * graphite-blocking.c
29341         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
29342         * graphite-clast-to-gimple.c
29343         (clast_to_gcc_expression): Same.
29344         (precision_for_value): Same.
29345         (precision_for_interval): Same.
29346         (gcc_type_for_interval): Same.
29347         (graphite_create_new_guard): Same.
29348         (compute_bounds_for_level): Same.
29349         (graphite_create_new_loop_guard): Same.
29350         * graphite-interchange.c
29351         (build_linearized_memory_access): Same.
29352         (pdr_stride_in_loop): Same.
29353         (memory_strides_in_loop_1): Same.
29354         (memory_strides_in_loop): Same.
29355         (extend_scattering): Same.
29356         (psct_scattering_dim_for_loop_depth): Same.
29357         (pbb_number_of_iterations): Same.
29358         * graphite-poly.h
29359         (debug_iteration_domains): Same.
29360         * graphite-ppl.c
29361         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
29362         (ppl_set_inhomogeneous_gmp): Same.
29363         (ppl_strip_loop): Same.
29364         (ppl_lexico_compare_linear_expressions): Same.
29365         (ppl_read_polyhedron_matrix): Same.
29366         (ppl_max_for_le_pointset): Same.
29367         * graphite-ppl.h
29368         (ppl_read_polyhedron_matrix): Same.
29369         (tree_int_to_gmp): Same.
29370         (gmp_cst_to_tree): Same.
29371         (ppl_set_inhomogeneous): Same.
29372         (ppl_set_inhomogeneous_tree): Same.
29373         (ppl_set_coef): Same.
29374         (ppl_set_coef_tree): Same.
29375         * graphite-sese-to-poly.c
29376         (build_pbb_scattering_polyhedrons): Same.
29377         (build_scop_scattering): Same.
29378         (scan_tree_for_params_right_scev): Same.
29379         (scan_tree_for_params): Same.
29380         (find_params_in_bb): Same.
29381         (find_scop_parameters): Same.
29382         (add_upper_bounds_from_estimated_nit): Same.
29383         (build_loop_iteration_domains): Same.
29384         (add_condition_to_domain): Same.
29385         (pdr_add_memory_accesses): Same.
29386
29387 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
29388
29389         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
29390         CLooG's value_* macros to their respective mpz_* counterparts.
29391         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
29392         (graphite_create_new_loop_guard): Same.
29393         * graphite-interchange.c (build_linearized_memory_access): Same.
29394         (pdr_stride_in_loop): Same.
29395         (memory_strides_in_loop_1): Same.
29396         (1st_interchange_profitable_p): Same.
29397         * graphite-poly.c (extend_scattering): Same.
29398         (psct_scattering_dim_for_loop_depth): Same.
29399         (pbb_number_of_iterations): Same.
29400         (pbb_number_of_iterations_at_time): Same.
29401         * graphite-poly.h (new_1st_loop): Same.
29402         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
29403         (oppose_constraint): Same.
29404         (insert_constraint_into_matrix): Same.
29405         (ppl_set_inhomogeneous_gmp): Same.
29406         (ppl_set_coef_gmp): Same.
29407         (ppl_strip_loop): Same.
29408         (ppl_lexico_compare_linear_expressions): Same.
29409         (ppl_max_for_le_pointset): Same.
29410         (ppl_min_for_le_pointset): Same.
29411         (ppl_build_realtion): Same.
29412         * graphite-ppl.h (gmp_cst_to_tree): Same.
29413         (ppl_set_inhomogeneous): Same.
29414         (ppl_set_inhomogeneous_tree): Same.
29415         (ppl_set_coef): Same.
29416         (ppl_set_coef_tree): Same.
29417         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
29418         (build_scop_scattering): Same.
29419         (add_value_to_dim): Same.
29420         (scan_tree_for_params_right_scev): Same.
29421         (scan_tree_for_params_int): Same.
29422         (scan_tree_for_params): Same.
29423         (find_params_in_bb): Same.
29424         (find_scop_parameters): Same.
29425         (add_upper_bounds_from_estimated_nit): Same.
29426         (build_loop_iteration_domains): Same.
29427         (create_linear_expr_from_tree): Same.
29428         (add_condition_to_domain): Same.
29429         (pdr_add_memory_accesses): Same.
29430
29431 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
29432             Jason Merrill  <jason@redhat.com>
29433
29434         * c-common.c (c_common_reswords): Add nullptr.
29435         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
29436         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
29437         (gen_type_die_with_usage): Likewise.
29438         * dbxout.c (dbxout_type): Likewise.
29439         * sdbout.c (plain_type_1): Likewise.
29440
29441 2010-05-06  Jason Merrill  <jason@redhat.com>
29442
29443         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
29444         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
29445         ret appropriately.
29446         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
29447
29448         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
29449         stripping WITH_SIZE_EXPR.
29450         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
29451         change.
29452
29453 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29454
29455         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
29456         list of obsolete configurations.
29457         Disabled check for obsolete configurations.
29458         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
29459         Removed support for previous versions.
29460         * config/mips/iris.h: Removed.
29461         * config/mips/iris5.h: Removed.
29462         * config/mips/iris6.h: Merged old iris.h contents.
29463         (TARGET_IRIX): Removed.
29464         (DRIVER_SELF_SPECS): Removed mabi=32.
29465         (IDENT_ASM_OP): Removed undef.
29466         (STARTFILE_SPEC): Removed mabi=32.
29467         (ENDFILE_SPEC): Likewise.
29468         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
29469         (MACHINE_TYPE): Update for IRIX 6.5.
29470         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
29471         TARGET_IRIX by TARGET_IRIX6.
29472         (mips_file_start): Likewise.
29473         (mips_output_external): Remove IRIX 5/6 O32 support.
29474         (mips_output_function_prologue): Likewise.
29475         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
29476         TARGET_IRIX6.
29477         (TARGET_CPU_CPP_BUILTINS): Likewise.
29478         (TARGET_IRIX): Removed.
29479         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
29480         (MULTILIB_DIRNAMES): Removed 32.
29481         (MULTILIB_OSDIRNAMES): Removed ../lib.
29482         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
29483         (Specific, mips-sgi-irix5): Document removal.
29484         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
29485         Remove references to older IRIX 6 releases and the O32 ABI.
29486
29487 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
29488
29489         PR bootstrap/43994
29490         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
29491         instead of DF_REF_REAL_REG.
29492
29493 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
29494
29495         PR target/43888
29496         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
29497         handling to still return true for x64 targets.
29498
29499 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
29500
29501         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
29502
29503 2010-05-06  Jan Hubicka  <jh@suse.cz>
29504
29505         PR tree-optimization/43791
29506         * ipa-inline.c (update_caller_keys): Remove bogus
29507         disregard_inline_limits check.
29508
29509 2010-05-06  Michael Matz  <matz@suse.de>
29510
29511         PR tree-optimization/43984
29512         * tree-ssa-pre.c (inserted_phi_names): Remove.
29513         (inserted_exprs): Change to bitmap.
29514         (create_expression_by_pieces): Set bits, don't append to vector.
29515         (insert_into_preds_of_block): Don't handle inserted_phi_names.
29516         (eliminate): Don't look at inserted_phi_names, remove deleted
29517         insns from inserted_exprs.
29518         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
29519         (init_pre, fini_pre): Allocate and free bitmaps.
29520         (execute_pre): Insert insns on edges before elimination.
29521
29522 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
29523
29524         * tree.c (initializer_zerop): Handle STRING_CST.
29525
29526 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29527
29528         PR 40989
29529         * doc/invoke.texi (Wimplicit): Document as C only.
29530         * opts.c (common_handle_option): Add argument kind.
29531         (handle_option): Rename as read_cmdline_option. Factor out code to...
29532         (handle_option): ... here. New.
29533         (handle_options): Rename as read_cmdline_options.
29534         (decode_options): Update call.
29535         (set_option): Use option index instead of option pointer. Classify
29536         diagnostics correctly.
29537         (enable_warning_as_error): Call handle_option.
29538         * opts.h (set_option): Update declaration.
29539         (handle_option): Declare.
29540         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
29541         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
29542         * c-opts.c (set_Wimplicit): Delete.
29543         (c_family_lang_mask): New static constant.
29544         (c_common_handle_option): Add argument kind. Use handle_option
29545         instead of set_Wimplicit.
29546         (c_common_post_options): warn_implicit and warn_implicit_int
29547         are disabled by default.
29548         * c-common.c (warn_implicit): Do not define here.
29549         * c-common.h (warn_implicit): Do not declare here.
29550         (c_common_handle_option): Update declaration.
29551         * lto-opts.c (lto_reissue_options): Update call to set_option.
29552
29553 2010-05-06  Richard Guenther  <rguenther@suse.de>
29554
29555         PR tree-optimization/43571
29556         * domwalk.c (walk_dominator_tree): Walk the dominator
29557         sons in more optimal order.
29558
29559 2010-05-06  Richard Guenther  <rguenther@suse.de>
29560
29561         PR tree-optimization/43934
29562         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
29563         (stmt_cost): Likewise.
29564         (extract_true_false_args_from_phi): New helper.
29565         (determine_max_movement): For PHI nodes verify we can hoist them
29566         and compute their cost.
29567         (determine_invariantness_stmt): Handle PHI nodes.
29568         (move_computations_stmt): Likewise.  Hoist PHI nodes in
29569         if-converted form using COND_EXPRs.
29570         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
29571         (tree_ssa_lim): Likewise.
29572         * tree-flow.h (tree_ssa_lim): Adjust prototype.
29573         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
29574
29575 2010-05-06  Richard Guenther  <rguenther@suse.de>
29576
29577         PR tree-optimization/43987
29578         * tree-ssa-structalias.c (could_have_pointers): For possibly
29579         address-taken variables force pointers to be recorded.
29580         (create_variable_info_for_1): Likewise.
29581         (push_fields_onto_fieldstack): Pass in wheter all fields
29582         must have pointers.
29583         (find_func_aliases): Query types instead of vars whether
29584         they contain pointers where appropriate.
29585
29586 2010-05-06  Jan Hubicka  <jh@suse.cz>
29587
29588         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
29589         (record_reference, mark_address, mark_load, mark_store): Record
29590         references.
29591         (record_references_in_initializer): Update call of record_references.
29592         (rebuild_cgraph_edges): Remove all references before rebuiding.
29593         * cgraph.c (cgraph_create_node): Clear ref list.
29594         (cgraph_remove_node): Remove references.
29595         (dump_cgraph_node): Dump references.
29596         (cgraph_clone_node): Clone references.
29597         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
29598         (struct cgraph_node, varpool_node): Add ref_lst.
29599         * ipa-ref.c: New file.
29600         * ipa-ref.h: New file.
29601         * ipa-ref-inline.h: New file.
29602         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
29603         (referenced_from_other_partition_p): New function.
29604         (lto_output_varpool_node): Take set arugment; call
29605         referenced_from_other_partition.
29606         (lto_output_ref): New.
29607         (add_references): New.
29608         (output_refs): New.
29609         (output_cgraph): Compute boundary based on references; output refs.
29610         (output_varpool): Accept cgraph_node_set argument.
29611         (input_ref): New.
29612         (input_refs): New.
29613         (input_cgraph): Call input_refs.
29614         * lto-section-in.c (lto_section_name): Add refs.
29615         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
29616         (ipa-ref.o): New file.
29617         * varpool.c (varpool_node): Clear ipa ref list.
29618         (varpool_remove_node): Remove references.
29619         (dump_varpool_node): Dump references.
29620         (varpool_assemble_decl): Only compile finalized ones.
29621         (varpool_extra_name_alias): Initialize ref list.
29622         * lto-streamer.c (lto-get_section_name): Add .refs section.
29623         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
29624         (referenced_from_other_partition_p): Declared.
29625
29626 2010-05-06  Ira Rosen  <irar@il.ibm.com>
29627
29628         PR tree-optimization/43901
29629         * tree-vect-stmts.c (vectorizable_call): Assert that vector
29630         type is not NULL if it's transformation phase, and return
29631         FALSE if it's analysis.
29632         (vectorizable_conversion, vectorizable_operation,
29633         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
29634
29635 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
29636
29637         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
29638         Delete.
29639         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
29640         New define.
29641         * config/mips/mips-protos.h
29642         (mips_small_register_classes_for_mode_p): Delete prototype.
29643
29644 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
29645
29646         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
29647         * config/arm/arm.c (multiple_operation_profitable_p,
29648         compute_offset_order): New static functions.
29649         (load_multiple_sequence, store_multiple_sequence): Use them.
29650         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
29651         memory offsets, not register numbers.
29652         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
29653
29654 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
29655
29656         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
29657         (get_pending_sizes, put_pending_size, put_pending_sizes):
29658         Update the uses of pending_sizes.
29659         * c-decl.c (store_parm_decls): Likewise.
29660         * c-tree.h (struct c_arg_info): Likewise.
29661         * tree.h: Update the prototype for get_pending_sizes and
29662         put_pending_sizes.
29663
29664 2010-05-05  Jason Merrill  <jason@redhat.com>
29665
29666         PR debug/43370
29667         * c-common.c (handle_aligned_attribute): Respect
29668         ATTR_FLAG_TYPE_IN_PLACE.
29669
29670         PR testsuite/43758
29671         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
29672         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
29673         (TARGET_INITIALIZER): Use it.
29674         * c-common.c (attribute_takes_identifier_p): Call it.
29675         * c-common.h: Update prototype.
29676         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
29677         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
29678
29679 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
29680
29681         PR debug/43950
29682         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
29683         DW_ID_down_case for Fortran compilation units.
29684
29685 2010-05-05  Jan Hubicka  <jh@suse.cz>
29686
29687         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
29688         handle aliases.
29689
29690 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
29691
29692         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
29693         a variable-sized RESULT_DECL.
29694
29695 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
29696
29697         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
29698
29699 2010-05-05  Jason Merrill  <jason@redhat.com>
29700
29701         PR c++/43787
29702         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
29703         returns GS_OK.
29704         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
29705
29706 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
29707             Jakub Jelinek  <jakub@redhat.com>
29708
29709         PR debug/43478
29710         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
29711         (dead_debug_init, dead_debug_finish): New functions.
29712         (dead_debug_add, dead_debug_insert_before): Likewise.
29713         (df_note_bb_compute): Initialize a dead_debug object, add dead
29714         debug uses to it, insert debug bind insns before death insns,
29715         reset debug insns that refer to pending uses at the end.
29716         * rtl.h (make_debug_expr_from_rtl): New prototype.
29717         * varasm.c (make_debug_expr_from_rtl): New function.
29718
29719 2010-05-05  Jan Hubicka  <jh@suse.cz>
29720
29721         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
29722         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
29723         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
29724         lto_varpool_encoder_deref, lto_varpool_encoder_size,
29725         lto_varpool_encoder_encode_initializer_p,
29726         lto_set_varpool_encoder_encode_initializer): New functions.
29727         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
29728         call output_varpool.
29729         (input_varpool_node): Do not always set analyzed.
29730         (input_cgraph_1): Return vector of cgraph nodes.
29731         (input_varpool_1): Return vector of varpools.
29732         (input_cgraph): Free the vectors.
29733         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
29734         output only initializers needed.
29735         (lto_output): Only call output_cgraph.
29736         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
29737         * lto-section-out.c (lto_new_out_decl_state): Initialize
29738         state->varpool_node_encoder.
29739         * lto-streamer.h (lto_varpool_encoder_d): New.
29740         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
29741         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
29742         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
29743         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
29744         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
29745         Declare.
29746         (output_varpool, input_varpool): Remove declarations.
29747
29748 2010-05-05  Jan Hubicka  <jh@suse.cz>
29749
29750         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
29751         with body can prevail.
29752
29753 2010-05-05  Jan Hubicka  <jh@suse.cz>
29754
29755         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
29756         size.
29757
29758 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29759
29760         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
29761
29762         * gengtype.h (erro_at_line): Constify pos argument.
29763
29764         * gengtype.c: Include hashtab.h.
29765         (enum gc_used): Document GC_MAYBE_POINTED_TO.
29766         (error_at_line): Constify pos argument.
29767         (do_typedef): Initialize p->opt field.
29768         (get_file_gtfilename): Fix comment typo.
29769         (struct walk_type_data): Constify line field.
29770         (get_output_file_for_structure): New function.
29771         (write_local_func_for_structure): Constify orig_s argument.
29772         Use get_output_file_for_structure.
29773         (write_func_for_structure): Use get_output_file_for_structure.
29774         (INDENT): New define.
29775         (dump_pair, dump_type, dump_type_list, dump_typekind)
29776         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
29777         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
29778         functions.
29779         (seen_types): New variable.
29780         (main): New variable do_dump.  Process "-d" command line option.
29781         Call dump_everything if dump requested.
29782
29783 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
29784
29785         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
29786         in a temporary instead of invoking the macro multiple times.
29787         (track_expr_p): Likewise.
29788
29789 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
29790
29791         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
29792         per new semantics.
29793         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
29794         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
29795         conditions for printing notes.
29796         * common.opt (-Wcoverage-mismatch): Allow negative, default to
29797         true, update documentation.
29798         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
29799
29800 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
29801
29802         PR c/43981
29803         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
29804         on dimen.
29805
29806 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
29807
29808         PR target/43799
29809         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
29810         (*sse_prologue_save_insn1): Likewise.
29811         (SSE prologue save splitter): Likewise.
29812
29813 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
29814
29815         * tree.c (free_lang_data_in_one_sizepos): New inline function.
29816         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
29817         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
29818         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
29819         all decls.  Call it on DECL_FIELD_OFFSET of fields.
29820         (find_decls_types_r): Follow DECL_VALUE_EXPR.
29821         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
29822
29823 2010-05-04  Martin Jambor  <mjambor@suse.cz>
29824
29825         * tree-sra.c (build_access_from_expr_1): The first parameter type
29826         changed to simple tree.
29827         (build_access_from_expr): Likewise, gsi parameter was eliminated.
29828         (scan_assign_result): Renamed to assignment_mod_result, enum elements
29829         renamed as well.
29830         (build_accesses_from_assign): Removed all parameters except for a
29831         simple gimple statement.  Now returns a simple bool.
29832         (scan_function): All non-analysis parts moved to separate functions
29833         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
29834         parameters and updated both callers.
29835         (sra_modify_expr): Removed parameter data.
29836         (sra_modify_function_body): New function.
29837         (perform_intra_sra): Call sra_modify_function_body to modify the
29838         function body.
29839         (replace_removed_params_ssa_names): Parameter data changed into
29840         adjustments vector.
29841         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
29842         changed the parameter dont_convert to convert with the opposite
29843         meaning.
29844         (sra_ipa_modify_assign): Parameter data changed into adjustments
29845         vector, return value changed to bool.
29846         (ipa_sra_modify_function_body): New function.
29847         (sra_ipa_reset_debug_stmts): Updated a comment.
29848         (modify_function): Use ipa_sra_modify_function_body to modify function
29849         body.
29850
29851 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
29852
29853         PR middle-end/43671
29854         * alias.c (true_dependence): Handle the same VALUE in x and mem.
29855         (canon_true_dependence): Likewise.
29856         (write_dependence_p): Likewise.
29857
29858 2010-05-04  Jan Hubicka  <jh@suse.cz>
29859
29860         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
29861         * cgraphbuild.c: Include ipa-utils.h
29862         (record_reference_ctx): New struct.
29863         (record_reference): Simplify to work on initializers; not statements.
29864         (mark_address, mark_load, mark_store): New.
29865         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
29866         walk PHI nodes too.
29867         (record_references_in_initializer): Update use of record_reference.
29868         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
29869         walk PHI nodes too.
29870
29871 2010-05-04  Jan Hubicka  <jh@suse.cz>
29872
29873         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
29874         node will be removed anyway.
29875         (lto_varpool_replace_node): Allow also unanalyzed nodes;
29876         relink aliases of node into prevailing node.
29877         * varpool.c (varpool_remove_node): Remove aliases properly;
29878         when removing node, remove all its aliases too; remove DECL_INITIAL
29879         of removed node; ggc_free the varpool node.
29880
29881 2010-05-04  Richard Guenther  <rguenther@suse.de>
29882
29883         PR tree-optimization/43879
29884         * tree-ssa-structalias.c (alias_get_name): Use
29885         DECL_ASSEMBLER_NAME if available.
29886         (create_function_info_for): Return the varinfo node.
29887         (ipa_pta_execute): Associate same-body aliases and extra names
29888         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
29889
29890 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
29891
29892         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
29893
29894 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
29895
29896         PR bootstrap/43964
29897         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
29898         only if HONOR_REG_ALLOC_ORDER is not defined.
29899
29900 2010-05-04  Richard Guenther  <rguenther@suse.de>
29901
29902         PR tree-optimization/43949
29903         * tree-vrp.c (extract_range_from_binary_expr): Only handle
29904         TRUNC_MOD_EXPR.
29905
29906 2010-04-26  Jason Merrill  <jason@redhat.com>
29907
29908         * c.opt (-fstrict-enums): New.
29909         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
29910
29911 2010-05-03  David Ung  <davidu@mips.com>
29912             James E. Wilson  <wilson@codesourcery.com>
29913
29914         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
29915         emit the trap instruction before the divide for TUNE_74K.
29916
29917 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
29918
29919         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
29920         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
29921         based on the above, for new target hook.
29922
29923         * hooks.c (hook_bool_mode_true): New generic hook.
29924         * hooks.h (hook_bool_mode_true): Add prototype.
29925
29926         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
29927         target hook.
29928         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
29929         target hook, set to hook_bool_mode_false.
29930         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
29931         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
29932         with targetm.small_register_classes_for_mode_p.
29933         (find_reusable_reload): Likewise.
29934         (combine_reloads): Likewise.
29935         * reload1.c (reload_as_needed): Likewise.
29936         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
29937         * ifcvt.c (noce_process_if_block, check_cond_move_block,
29938         dead_or_predicable): Likewise.
29939         * regmove.c (optimize_reg_copy_1): Likewise.
29940         * calls.c (prepare_call_address): Likewise.
29941         (precompute_register_parameters): Likewise.
29942
29943         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
29944         hook definition.
29945         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
29946         implementation of the hook that considers all register classes
29947         small except for SH64.
29948         (sh_override_options): Use the new hook.
29949         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
29950         Add prototype.
29951
29952         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
29953         hook definition.
29954         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
29955         implementation of the hook that considers all register classes
29956         small for THUMB1.
29957         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
29958         Add prototype.
29959
29960         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
29961         hook definition.
29962         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
29963         implementation of the hook that considers all register classes
29964         small for MIPS16.
29965         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
29966         Add prototype.
29967
29968         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
29969         hook definition.
29970         * config/m32c/m32c.h: Likewise.
29971         * config/pdp11/pdp11.h: Likewise.
29972         * config/avr/avr.h: Likewise.
29973         * config/xtensa/xtensa.h: Likewise.
29974         * config/m68hc11/m68hc11.h: Likewise.
29975         * config/mn10300/mn10300.h: Likewise.
29976         * config/mcore/mcore.h: Likewise.
29977         * config/h8300/h8300.h: Likewise.
29978         * config/bfin/bfin.h: Likewise.
29979
29980         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
29981         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
29982
29983 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
29984
29985         * double-int.h (tree_to_double_int): Remove macro.
29986         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
29987         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
29988         (tree_to_double_int): New function.
29989         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
29990         Move ...
29991         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
29992
29993 2010-05-03  Richard Guenther  <rguenther@suse.de>
29994
29995         PR tree-optimization/43971
29996         * tree-ssa-structalias.c (get_constraint_for_1): Fix
29997         constraints in the !flag_delete_null_pointer_checks case.
29998
29999 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
30000
30001         PR debug/43972
30002         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
30003         result mode matches original rtl mode.
30004
30005 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
30006
30007         PR target/43888
30008         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
30009
30010 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30011
30012         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
30013         when processing flag options.
30014
30015 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30016
30017         * gcov-iov.c (main): Change format string placeholder
30018         from %#08x to 0x%08x.
30019         * genchecksum.c (dosum): Change format string placeholder
30020         from %#02x to 0x%02x.
30021
30022 2010-05-02  Richard Guenther  <rguenther@suse.de>
30023
30024         PR tree-optimization/43879
30025         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
30026
30027 2010-05-02  Bruno Haible  <bruno@clisp.org>
30028
30029         * doc/extend.texi (Function Attributes): Fix a typo.
30030
30031 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30032
30033         Revert:
30034         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
30035         placeholder from 0x%x to %#x.
30036         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30037         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
30038         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
30039         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
30040         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
30041         * config/i386/i386.c (ix86_target_string): Ditto.
30042         * config/i386/i386.c (output_pic_addr_const): Ditto.
30043         (print_operand): Ditto.
30044
30045 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30046
30047         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
30048         placeholder from 0x%x to %#x.
30049         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
30050         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
30051         (ASM_OUTPUT_DEBUG_DATA): Ditto.
30052         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
30053         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
30054         * optc-gen.awk: Ditto.
30055         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
30056         (HOST_WIDE_INT_PRINT_HEX): Ditto.
30057         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
30058         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30059
30060 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30061
30062         * target.h (struct calls): Add function_value_regno_p field.
30063         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
30064         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
30065         * targhooks.c (default_function_value_regno_p): New function.
30066         * targhooks.h (default_function_value_regno_p): Declare function.
30067         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
30068         * builtins.c. (apply_result_size): (Ditto.).
30069         * combine.c. (likely_spilled_retval_p): (Ditto.).
30070         * mode-switching.c. Include 'target.h'.
30071         (create_pre_exit): Use function_value_regno_p hook.
30072         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
30073         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
30074         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
30075
30076         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
30077         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
30078         (ix86_function_value_regno_p): Declare as static, change argument
30079         type to const unsigned int.
30080         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
30081
30082 2010-05-01  Richard Guenther  <rguenther@suse.de>
30083
30084         PR tree-optimization/43949
30085         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
30086         types.
30087         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
30088
30089 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30090
30091         * rtl.h (CONST_DOUBLE_P): Define.
30092         (rtx_to_double_int): Declare.
30093         * emit-rtl.c (rtx_to_double_int): New function.
30094         * dwarf2out.c (insert_double): New function.
30095         (loc_descriptor, add_const_value_attribute): Clean up, use
30096         rtx_to_double_int and insert_double functions.
30097
30098 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
30099
30100         * doc/extend.texi (Inline): Add missing return keyword to examples.
30101         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
30102         "command-line".
30103
30104 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
30105
30106         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
30107         the variable part of the offset as well.  Use highest_pow2_factor for
30108         all alignment checks.
30109
30110 2010-04-30  Richard Guenther  <rguenther@suse.de>
30111
30112         PR tree-optimization/43879
30113         * tree-ssa-structalias.c (type_could_have_pointers): Functions
30114         can have pointers.
30115
30116 2010-04-30  Jan Hubicka  <jh@suse.cz>
30117
30118         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
30119         varpool.
30120         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
30121
30122 2010-04-30  Jan Hubicka  <jh@suse.cz>
30123
30124         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
30125         New.
30126         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
30127         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
30128         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
30129         cgraph_node_set_needs_ltrans_p): Remove.
30130
30131 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30132
30133         * sdbout.c: Include vec.h, do not include varray.h.
30134         (deferred_global_decls, sdbout_global_decl,
30135         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
30136         * toplev.c: Do not include varray.h.
30137         (dump_memory_report): Do not dump VARRAY statistics.
30138         * gengtype.c (open_base_file): Ignore varray.h.
30139         * Makefile.in: Update for abovementioned changes.
30140         Remove all traces of varray.c and varray.h.
30141         * varray.c: Remove file.
30142         * varray.h: Remove file.
30143
30144 2010-04-30  Jan Hubicka  <jh@suse.cz>
30145
30146         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
30147         references.
30148
30149 2010-04-30  Jan Hubicka  <jh@suse.cz>
30150
30151         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
30152         needed.
30153
30154 2010-04-30  Richard Guenther  <rguenther@suse.de>
30155
30156         * tree-ssa-structalias.c (get_constraint_for_1): Generate
30157         constraints for CONSTRUCTOR.
30158
30159 2010-04-30  Richard Guenther  <rguenther@suse.de>
30160
30161         PR lto/43946
30162         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
30163         first after all lowering passes.
30164
30165 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30166
30167         * toplev.c: Include varray.h for statistics dumping.
30168         * tree.h: Do not declare varray_head_tag.
30169         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
30170         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
30171         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
30172         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
30173         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
30174         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
30175         c-common.c, c-common.h, reg-stack.c, basic-block.h,
30176         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
30177         include varray.h.
30178         * Makefile.in: Update for abovementioned changes.
30179
30180 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
30181
30182         PR debug/43942
30183         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
30184
30185 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
30186
30187         * config/picochip/picochip.c (picochip_legitimize_address): Define.
30188         Use this function to do machine-specific conversion.
30189         (picochip_legitimize_reload_address): Likewise.
30190         (picochip_legitimate_address_p): Check valid base register only if
30191         strict.
30192         (picochip_check_conditional_copy): Check for modw only if opnd is
30193         register.
30194         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
30195         to call the function in c.
30196         * config/picochip/picochip-protos.h
30197         (picochip_legitimize_reload_address): Define.
30198         * config/picochip/picochip.md (supported_compare1): Define.
30199
30200 2010-04-30  Jan Hubicka  <jh@suse.cz>
30201
30202         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
30203         (cgraph_global_info): Remove inlined.
30204         (LTO_cgraph_tag_names): Remove.
30205         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
30206         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
30207         simplify cgraph tags and document.
30208         (lto_output_node): Use only LTO_cgraph_unavail_node and
30209         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
30210         for_functions_valid, global info, process and output flags.
30211         (input_overwrite_node): Initialize estimated stack size and
30212         estimated growth.  Do not read flags we no longer store.
30213         (input_node): Likewise do not read info no longer stored.
30214         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
30215         flag.
30216
30217 2010-04-30  Richard Guenther  <rguenther@suse.de>
30218
30219         PR tree-optimization/43879
30220         * tree-ssa-structalias.c (get_constraint_for_1): Properly
30221         handle non-zero initializers.
30222
30223 2010-04-30  Richard Guenther  <rguenther@suse.de>
30224
30225         * builtins.c (fold_builtin_1): Delete free (0).
30226
30227 2010-04-29  Jan Hubicka  <jh@suse.cz>
30228
30229         * gengtype.c (open_base_files): Add lto-streamer.h
30230         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
30231         (pass_ipa_cp): GGC collect.
30232         * toplev. (compile_file): Do not output symbols.
30233         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
30234         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
30235         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
30236         * lto-section-in.c: Include ggc.h
30237         (lto_new_in_decl_state): Alloc in GGC.
30238         (lto_delete_in_decl_state): Likewise.
30239         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
30240         Collect.
30241
30242 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
30243
30244         PR target/42895
30245         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
30246         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
30247         (HONOR_REG_ALLOC_ORDER): Describe new macro.
30248         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
30249         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
30250         account only if HONOR_REG_ALLOC_ORDER is not defined.
30251         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
30252         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
30253
30254 2010-04-29  Jon Grant  <04@jguk.org>
30255
30256         * collect2.c (vflag): Change type from int to bool.
30257         (debug): Likewise.
30258         (helpflag): New global bool.
30259         (main): Set vflag and debug with boolean, not integer truth values.
30260         Accept new "--help" option and output usage text if found.
30261         * collect2.h (vflag): Update prototype.
30262         (debug): Likewise.
30263
30264 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
30265
30266         PR bootstrap/43936
30267         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
30268
30269 2010-04-29  Richard Guenther  <rguenther@suse.de>
30270
30271         PR bootstrap/43935
30272         * plugin.h (invoke_plugin_callbacks): Annotate arguments
30273         with ATTRIBUTE_UNUSED.
30274
30275 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
30276
30277         PR target/43921
30278         * config/i386/i386.c (get_some_local_dynamic_name): Replace
30279         INSN_P with NONDEBUG_INSN_P.
30280         (distance_non_agu_define): Likewise.
30281         (distance_agu_use): Likewise.
30282
30283 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
30284
30285         From Dominique d'Humieres  <dominiq@lps.ens.fr>
30286         PR bootstrap/43858
30287         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
30288         test_set.
30289
30290 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
30291
30292         * plugin.h (invoke_plugin_callbacks): New inline function.
30293         * plugin.c (flag_plugin_added): New global flag.
30294         (add_new_plugin): Initialize above flag.
30295         (invoke_plugin_callbacks): Rename to ...
30296         (invoke_plugin_callbacks_full): ... this.
30297
30298 2010-04-28  Jan Hubicka  <jh@suse.cz>
30299
30300         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
30301         (lto_varpool_replace_node): New.
30302         (lto_symtab_resolve_symbols): Resolve varpool nodes.
30303         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
30304         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
30305         * cgraph.h (varpool_node_ptr): New type.
30306         (varpool_node_ptr): New vector.
30307         (varpool_node_set_def): New structure.
30308         (varpool_node_set): New type.
30309         (varpool_node_set): New vector.
30310         (varpool_node_set_element_def): New structure.
30311         (varpool_node_set_element, const_varpool_node_set_element): New types.
30312         (varpool_node_set_iterator): New type.
30313         (varpool_node): Add prev pointers, add used_from_other_partition,
30314         in_other_partition.
30315         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
30316         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
30317         varpool_get_node, varpool_remove_node): Declare.
30318         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
30319         varpool_node_set_size): New inlines.
30320         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
30321         * tree-pass.h (varpool_node_set_def): Forward declare.
30322         (ipa_opt_pass_d): Summary writting takes vnode sets too.
30323         (ipa_write_optimization_summaries): Update prototype.
30324         * ipa-cp.c (ipcp_write_summary): Update.
30325         * ipa-reference.c (ipa_reference_write_summary): Update.
30326         * lto-cgraph.c (lto_output_varpool_node): New static function.
30327         (output_varpool): New function.
30328         (input_varpool_node): New static function.
30329         (input_varpool_1): New function.
30330         (input_cgraph): Input varpool.
30331         * ipa-pure-const.c (pure_const_write_summary): Update.
30332         * lto-streamer-out.c (lto_output): Update, output varpool too.
30333         (write_global_stream): Kill WPA hack.
30334         (produce_asm_for_decls): Update.
30335         (output_alias_pair_p): Handle variables.
30336         (output_unreferenced_globals): Output only needed partition of varpool.
30337         * ipa-inline.c (inline_write_summary): Update.
30338         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
30339         cgraph.
30340         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
30341         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
30342         varpool_node_set_new, varpool_node_set_add,
30343         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
30344         debug_varpool_node_set): New functions.
30345         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
30346         (execute_one_pass): Process new decls too.
30347         (ipa_write_summaries_2): Pass around vsets.
30348         (ipa_write_summaries_1): Likewise.
30349         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
30350         to add.
30351         (ipa_write_optimization_summaries_1): Pass around vsets.
30352         (ipa_write_optimization_summaries): Likewise.
30353         * varpool.c (varpool_get_node): New.
30354         (varpool_node): Update doubly linked lists.
30355         (varpool_remove_node): New.
30356         (dump_varpool_node): More dumping.
30357         (varpool_enqueue_needed_node): Update doubly linked lists.
30358         (decide_is_variable_needed): Kill ltrans hack.
30359         (varpool_finalize_decl): Kill lto hack.
30360         (varpool_assemble_decl): Skip decls in other partitions.
30361         (varpool_assemble_pending_decls): Update doubly linkes lists.
30362         (varpool_empty_needed_queue): Likewise.
30363         (varpool_extra_name_alias): Likewise.
30364         * lto-streamer.c (lto_get_section_name): Add vars section.
30365         * lto-streamer.h (lto_section_type): Update.
30366         (output_varpool, input_varpool): Declare.
30367
30368 2010-04-28  Mike Stump  <mikestump@comcast.net>
30369
30370         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
30371
30372 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30373
30374         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
30375         record or union type with RECORD_OR_UNION_TYPE_P predicate.
30376         (lto_input_ts_type_tree_pointers): Likewise.
30377         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
30378         (lto_output_ts_type_tree_pointers): Likewise.
30379
30380 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30381
30382         Uniquization of constants at the Tree level
30383         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
30384         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
30385         bit to the end.
30386         (tree_output_constant_def): Declare.
30387         * gimplify.c (gimplify_init_constructor): When using block copy, first
30388         uniquize the constant constructor on the RHS.
30389         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
30390         DECL_IN_CONSTANT_POOL flag.
30391         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
30392         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
30393         constant pool.
30394         (assemble_variable): Deal with symbols belonging to the tree constant
30395         pool.
30396         (get_constant_section): Add ALIGN parameter and simplify.
30397         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
30398         (assemble_constant_contents): Use the expression of the VAR_DECL.
30399         (output_constant_def_contents): Use the alignment of the VAR_DECL.
30400         (tree_output_constant_def): New global function.
30401         (mark_constant): Use the expression of the VAR_DECL.
30402         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
30403         its expression.
30404         (output_object_block): Likewise and assemble the expression.
30405
30406 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30407
30408         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
30409         hash_tree, eq_tree): New tree hash table.
30410         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
30411         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
30412         lto_orig_address_remove): Reimplement.
30413
30414 2010-04-28  Xinliang David Li  <davidxl@google.com>
30415
30416         PR c/42643
30417         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
30418         (compute_uninit_opnds_pos): New function.
30419         (is_non_loop_exit_postdominating): New function.
30420         (compute_control_dep_chain): New function.
30421         (find_pdom): New function.
30422         (convert_control_dep_chain_into_preds): New function.
30423         (find_predicates): New function.
30424         (find_control_equiv_block): New function.
30425         (collect_phi_def_edges): New function.
30426         (find_def_preds): New function.
30427         (find_dom): New function.
30428         (dump_predicates): New function.
30429         (get_cmp_code): New function.
30430         (is_value_included_in): New function.
30431         (find_matching_predicate_in_rest_chains): New function.
30432         (use_pred_not_overlap_with_undef_path_pred): New function.
30433         (is_use_properly_guarded): New function.
30434         (normalize_cond_1): New function.
30435         (is_and_or_or): New function.
30436         (normalize_cond): New function.
30437         (is_gcond_subset_of): New function.
30438         (is_subset_of_any): New function.
30439         (is_or_set_subset_of): New function.
30440         (is_and_set_subset_of): New function.
30441         (is_norm_cond_subset_of): New function.
30442         (is_pred_expr_subset_of): New function.
30443         (is_pred_chain_subset_of): New function.
30444         (is_included_in): New function.
30445         (is_superset_of): New function.
30446         (find_uninit_use): New function.
30447         (warn_uninitialized_phi): New function.
30448         (compute_possibly_undefined_names): New function.
30449         (ssa_undefined_value_p): New function.
30450         (execute_late_warn_uninitialized): New function.
30451         * tree-ssa.c (ssa_undefined_value_p): Removed.
30452         (warn_uninit): Changed to extern.
30453         (warn_uninitialized_phi): Removed.
30454         (warn_uninitialized_vars): Changed to extern.
30455         (execute_late_warn_uninitialized): Removed
30456         * tree-flow.h: Add new prototypes.
30457         * timevar.def: Add new time variable.
30458         * Makefile.in: Add new build file.
30459
30460 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
30461
30462         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
30463         type if available.
30464
30465 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30466
30467         PR target/22224
30468         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
30469
30470 2010-04-28  Martin Jambor  <mjambor@suse.cz>
30471
30472         * cgraph.h (struct cgraph_node): New field indirect_calls.
30473         (struct cgraph_indirect_call_info): New type.
30474         (struct cgraph_edge): Removed field indirect_call. New fields
30475         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
30476         (cgraph_create_indirect_edge): Declare.
30477         (cgraph_make_edge_direct): Likewise.
30478         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
30479         * ipa-prop.h (struct ipa_param_call_note): Removed.
30480         (struct ipa_node_params): Removed field param_calls.
30481         (ipa_create_all_structures_for_iinln): Declare.
30482         * cgraph.c: Described indirect edges and uids in initial comment.
30483         (cgraph_add_edge_to_call_site_hash): New function.
30484         (cgraph_edge): Search also among the indirect edges, use
30485         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
30486         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
30487         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
30488         site hash.
30489         (initialize_inline_failed): Assign a reason to indirect edges.
30490         (cgraph_create_edge_1): New function.
30491         (cgraph_create_edge): Moved some functionality to
30492         cgraph_create_edge_1.
30493         (cgraph_create_indirect_edge): New function.
30494         (cgraph_edge_remove_callee): Add an assert checking for
30495         non-indirectness.
30496         (cgraph_edge_remove_caller): Special-case indirect edges.
30497         (cgraph_remove_edge): Likewise.
30498         (cgraph_set_edge_callee): New function.
30499         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
30500         (cgraph_make_edge_direct): New function.
30501         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
30502         the declaration of the call statement matches.
30503         (cgraph_node_remove_callees): Special-case indirect edges.
30504         (cgraph_clone_edge): Likewise.
30505         (cgraph_clone_node): Clone also the indirect edges.
30506         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
30507         indirect_call, dump count of indirect_calls edges.
30508         * ipa-prop.c (iinlining_processed_edges): New variable.
30509         (ipa_note_param_call): Create indirect edges instead of
30510         creating notes.  New parameter node.
30511         (ipa_analyze_call_uses): New parameter node, pass it on to
30512         ipa_note_param_call.
30513         (ipa_analyze_stmt_uses): Likewise.
30514         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
30515         (print_edge_addition_message): Work on edges rather than on notes.
30516         (update_call_notes_after_inlining): Likewise, renamed to
30517         update_indirect_edges_after_inlining.
30518         (ipa_create_all_structures_for_iinln): New function.
30519         (ipa_free_node_params_substructures): Do not free notes.
30520         (ipa_edge_duplication_hook): Propagate bits within
30521         iinlining_processed_edges bitmap.
30522         (ipa_node_duplication_hook): Do not duplicate notes.
30523         (free_all_ipa_structures_after_ipa_cp): Renamed to
30524         ipa_free_all_structures_after_ipa_cp.
30525         (free_all_ipa_structures_after_iinln): Renamed to
30526         ipa_free_all_structures_after_iinln.
30527         (ipa_write_param_call_note): Removed.
30528         (ipa_read_param_call_note): Removed.
30529         (ipa_write_indirect_edge_info): New function.
30530         (ipa_read_indirect_edge_info): Likewise.
30531         (ipa_write_node_info): Do not stream notes, do stream information
30532         in indirect edges.
30533         (ipa_read_node_info): Likewise.
30534         (lto_ipa_fixup_call_notes): Removed.
30535         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
30536         * ipa-inline.c (pass_ipa_inline): Likewise.
30537         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
30538         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
30539         * tree-inline.c (copy_bb): Removed an unnecessary double check for
30540         is_gimple_call.
30541         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
30542         edges.
30543         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
30544         (output_cgraph): Stream also indirect edges.
30545         (lto_output_edge): Added capability to stream indirect edges.
30546         (input_edge): Likewise.
30547         (input_cgraph_1): Likewise.
30548         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
30549         of indirect edges.
30550
30551 2010-04-28  Richard Guenther  <rguenther@suse.de>
30552
30553         PR tree-optimization/43879
30554         PR tree-optimization/43909
30555         * tree-ssa-structalias.c (struct variable_info): Add
30556         only_restrict_pointers flag.
30557         (new_var_info): Initialize it.  Increment stats.total_vars here.
30558         (create_function_info_for): Do not increment stats.total_vars here.
30559         (get_function_part_constraint): Fix build with C++.
30560         (insert_into_field_list): Remove.
30561         (push_fields_onto_fieldstack): Properly merge fields.
30562         (create_variable_info_for): Split and simplify.
30563         (create_variable_info_for_1): New piece.
30564         (intra_create_variable_infos): Properly make restrict constraints
30565         from parameters.
30566
30567 2010-04-28  Richard Guenther  <rguenther@suse.de>
30568
30569         PR c++/43880
30570         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
30571
30572 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30573             Jan Hubicka  <hubicka@ucw.cz>
30574
30575         * doc/invoke.texi (-Wsuggest-attribute=const,
30576         -Wsuggest-attribute=pure): Document.
30577         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
30578         (function_always_visible_to_compiler_p,
30579         suggest_attribute, warn_function_pure, warn_function_const):
30580         New functions.
30581         (check_call): Improve debug info.
30582         (analyze_function): Do not check availability.
30583         (add_new_function): Check availability.
30584         (propagate): Output warnings.
30585         (skip_function_for_local_pure_const): New function.
30586         (local_pure_const): Use it; output warnings.
30587         * common.opt (Wsuggest-attribute=const,
30588         Wsuggest-attribute=pure): New.
30589
30590 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
30591
30592         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
30593         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
30594         or DW_CFA_def_cfa_offset{,_sf}.
30595
30596 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
30597
30598         * tree.h: Fix truncated long macros.
30599
30600 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
30601
30602         * collect2.c (TARGET_64BIT): Redefine to target's default.
30603         * tlink.c: Likewise.
30604         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
30605         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
30606         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
30607         for underscoring __USER_LABEL_PREFIX__.
30608         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
30609         (SUB_LINK_ENTRY32): New.
30610         (SUB_LINK_ENTRY64): New.
30611         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
30612         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
30613         (SUB_LINK_ENTRY64): New.
30614         (SUB_LINK_ENTRY): New.
30615         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
30616         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
30617         x64 target is choosen.
30618         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
30619         * configure: Regenerated.
30620         * configure.ac (leading-mingw64-underscores): Option added.
30621
30622 2010-04-27  Jan Hubicka  <jh@suse.cz>
30623
30624         * doc/invoke.texi (-fipa-profile): Document.
30625         * opts.c (decode_options): Enable ipa-profile at -O1.
30626         * timevar.def (TV_IPA_PROFILE): Define.
30627         * common.opt (fipa-profile): Add.
30628         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
30629         flag for clones.
30630         (cgraph_propagate_frequency): Handle only local ones.
30631         * tree-pass.h (pass_ipa_profile): Declare.
30632         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
30633         (pass_ipa_profile): Use TV_IPA_PROFILE.
30634         * ipa.c (ipa_profile): New function.
30635         (gate_ipa_profile): Likewise.
30636         (pass_ipa_profile): New global variable.
30637         * passes.c (pass_ipa_profile): New.
30638
30639 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
30640
30641         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
30642
30643 2010-04-27  Martin Jambor  <mjambor@suse.cz>
30644
30645         PR middle-end/43812
30646         * ipa.c (dissolve_same_comdat_group_list): New function.
30647         (function_and_variable_visibility): Call
30648         dissolve_same_comdat_group_list when comdat group contains external or
30649         newly local nodes.
30650         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
30651         lists are circular and that they contain only DECL_ONE_ONLY nodes.
30652
30653 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
30654
30655         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
30656         (const_hash_1) <VECTOR_CST>: New case.
30657         (compare_constant) <VECTOR_CST>: Likewise.
30658         <ADDR_EXPR>: Deal with LABEL_REFs.
30659         (copy_constant) <VECTOR_CST>: New case.
30660
30661 2010-04-27  Jan Hubicka  <jh@suse.cz>
30662
30663         * cgraph.c (cgraph_propagate_frequency): New function.
30664         * cgraph.h (cgraph_propagate_frequency): Declare.
30665         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
30666         cgraph_propagate_frequency.
30667
30668 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
30669
30670         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
30671
30672 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
30673
30674         PR target/40657
30675         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
30676         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
30677         here to determine which regs to push and how much stack to reserve.
30678
30679 2010-04-27  Jie Zhang  <jie@codesourcery.com>
30680
30681         * doc/gimple.texi (gimple_statement_with_ops): Remove
30682         addresses_taken field.
30683         (gimple_statement_with_memory_ops): Likewise.
30684
30685 2010-04-27  Jan Hubicka  <jh@suse.cz>
30686
30687         * tree-inline.c (eni_inlining_weights): Remove.
30688         (estimate_num_insns): Special case more builtins.
30689
30690 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
30691
30692         PR c/32207
30693         * c-typeck.c (build_binary_op): Move forward check for comparison
30694         pointer with null pointer constant and adjust the diagnostic message.
30695
30696 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
30697
30698         PR lto/42776
30699         * configure.ac (gcc_cv_as_section_has_align): Set if installed
30700         binutils supports extended .section directive needed by LTO, or
30701         warn if older binutils found.
30702         (LTO_BINARY_READER): New AC_SUBST'd variable.
30703         (LTO_USE_LIBELF): Likewise.
30704         * config.gcc (lto_binary_reader): New target-specific configure
30705         variable.
30706         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
30707         (LTO_USE_LIBELF): Likewise.
30708         * configure: Regenerate.
30709
30710         * collect2.c (is_elf): Rename from this ...
30711         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
30712          object files in addition to ELF-formatted ones.
30713         (scan_prog_file): Caller updated.  Also allow for LTO info marker
30714         symbol to be prefixed or not by an extra underscore.
30715
30716         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
30717         * config/i386/winnt.c: Also #include lto-streamer.h
30718         (i386_pe_asm_named_section): Specify 1-byte section alignment for
30719         LTO named sections.
30720         (i386_pe_asm_output_aligned_decl_common): Add comment.
30721         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
30722
30723 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
30724
30725         PR target/43889
30726         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
30727         Add missing earlyclobber for second alternative.
30728
30729 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
30730
30731         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
30732         bits for artificial defs at the top of the block.
30733         * fwprop.c (single_def_use_enter_block): Don't call it.
30734
30735 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
30736
30737         PR 43715
30738         * configure.ac: Use "$gcc_cv_nm -g" on darwin
30739         instead of "$gcc_cv_objdump -T".
30740         Use "-undefined dynamic_lookup" on darwin.
30741         * configure: Regenerate.
30742
30743 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
30744
30745         PR c/43893
30746         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
30747
30748 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
30749
30750         * c-parser.c (struct c_token): Move location field up.
30751         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
30752         (struct c_declspecs): Convert typespec_word, storage_class, and
30753         default_int_p into bitfields.
30754         (struct c_declarator): Move loc field up.
30755
30756 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
30757
30758         * cfgloop.h (struct loop): Move can_be_parallel field up.
30759         * ipa-prop.h (struct ip_node_params): Move bitfields up.
30760         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
30761         down.
30762         (struct iv_cand): Convert pos field into a bitfield.
30763         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
30764         field up.
30765         (struct _stmt_vec_info): Shuffle fields for better packing.
30766
30767 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
30768
30769         * varasm.c (IN_NAMED_SECTION): Remove guard.
30770         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
30771         (IN_NAMED_SECTION_P): ...this.
30772         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
30773         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
30774
30775 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
30776
30777         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
30778         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
30779         of shadowing it.  Fix comments.
30780
30781 2010-04-26  Jan Hubicka  <jh@suse.cz>
30782
30783         * cgraph.c (cgraph_create_node): Set node frequency to normal.
30784         (cgraph_clone_node): Copy function frequency.
30785         * cgraph.h (node_frequency): New enum
30786         (struct cgraph_node): Add.
30787         * final.c (rest_of_clean_state): Update.
30788         * lto-cgraph.c (lto_output_node): Output node frequency.
30789         (input_overwrite_node): Input node frequency.
30790         * tre-ssa-loop-ivopts (computation_cost): Update.
30791         * lto-streamer-out.c (output_function): Do not output function
30792         frequency.
30793         * predict.c (maybe_hot_frequency_p): Update and handle functions
30794         executed once.
30795         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
30796         attribute lookup.
30797         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
30798         (compute_function_frequency): Set noreturn functions to be executed
30799         once.
30800         (choose_function_section): Update.
30801         * lto-streamer-in.c (input_function): Do not input function frequency.
30802         * function.c (allocate_struct_function): Do not initialize function
30803         frequency.
30804         * function.h (function_frequency): Remove.
30805         (struct function): Remove function frequency.
30806         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
30807         (try_update): Update.
30808         * tree-inline.c (initialize_cfun): Do not update function frequency.
30809         * passes.c (pass_init_dump_file): Update.
30810         * i386.c (ix86_compute_frame_layout): Update.
30811         (ix86_pad_returns): Update.
30812
30813 2010-04-26  Jie Zhang  <jie@codesourcery.com>
30814
30815         PR tree-optimization/43833
30816         * tree-vrp.c (range_int_cst_p): New.
30817         (range_int_cst_singleton_p): New.
30818         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
30819         when both operands are constants.  Use range_int_cst_p in
30820         BIT_IOR_EXPR case.
30821
30822 2010-04-26  Jan Hubicka  <jh@suse.cz>
30823
30824         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
30825
30826 2010-04-26  Richard Guenther  <rguenther@suse.de>
30827
30828         PR lto/43080
30829         * gimple.c (gimple_decl_printable_name): Deal gracefully
30830         with a NULL DECL_NAME.
30831
30832 2010-04-26  Richard Guenther  <rguenther@suse.de>
30833
30834         PR lto/42425
30835         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
30836         if emitting debug information and it is either a function
30837         or a namespace decl.
30838
30839 2010-04-26  Ira Rosen  <irar@il.ibm.com>
30840
30841         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
30842         determine if the statement is vectorizable, and a macro to access it.
30843         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
30844         Skip statements that can't be vectorized. If the analysis fails,
30845         mark the statement as unvectorizable if vectorizing basic block.
30846         (vect_compute_data_refs_alignment): Likewise.
30847         (vect_verify_datarefs_alignment): Skip statements marked as
30848         unvectorizable. Add print.
30849         (vect_analyze_group_access): Skip statements that can't be
30850         vectorized. If the analysis fails, mark the statement as
30851         unvectorizable if vectorizing basic block.
30852         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
30853         * tree-vect-stmts.c (vectorizable_store): Fix the number of
30854         generated stmts for SLP.
30855         (new_stmt_vec_info): Initialize the new field.
30856         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
30857         statements marked as unvectorizable.
30858
30859 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
30860
30861         * c-common.c (flag_isoc1x): New.
30862         (flag_isoc99): Update comment.
30863         * c-common.h (flag_isoc1x): New.
30864         (flag_isoc99): Update comment.
30865         * c-cppbuiltin.c (builtin_define_float_constants): Also define
30866         __<type>_DECIMAL_DIG__.
30867         * c-opts.c (set_std_c1x): New.
30868         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
30869         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
30870         * c.opt (-std=c1x, -std=gnu1x): New options.
30871         * doc/cpp.texi: Mention -std=c1x.
30872         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
30873         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
30874         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
30875         * doc/standards.texi: Mention C1X.
30876         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
30877         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
30878         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
30879         Define for C1X.
30880
30881 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
30882
30883         * config/i386/gmon-sol2.c (_mcleanup): Change format string
30884         placeholder from 0x%x to %#x.
30885         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
30886         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
30887         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
30888         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
30889         * config/i386/i386.c (ix86_target_string): Ditto.
30890         (output_pic_addr_const): Ditto.
30891         (print_operand): Ditto.
30892
30893 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
30894
30895         * combine.c (find_split_point): Add third argument.  Use it
30896         to find nested multiply-accumulate instructions.  Adjust calls.
30897         (try_combine): Adjust call to find_split_point.
30898
30899 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
30900
30901         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
30902
30903 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
30904
30905         PR tree-optimization/41442
30906         * fold-const.c (merge_truthop_with_opposite_arm): New function.
30907         (fold_binary_loc): Call it.
30908
30909 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30910
30911         * toplev.c (general_init): Set default for fdiagnostics-show-option.
30912         * opts.c (common_handle_option): Allow disabling it.
30913         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
30914
30915 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
30916
30917         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
30918         between modes if both types are integral.
30919
30920 2010-04-23  Richard Guenther  <rguenther@suse.de>
30921
30922         PR tree-optimization/43572
30923         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
30924
30925 2010-04-23  Richard Guenther  <rguenther@suse.de>
30926
30927         PR lto/43455
30928         * tree-inline.c (tree_can_inline_p): Also check compatibility
30929         of return types.
30930
30931 2010-04-23  Martin Jambor  <mjambor@suse.cz>
30932
30933         PR tree-optimization/43846
30934         * tree-sra.c (struct access): New flag grp_assignment_read.
30935         (build_accesses_from_assign): Set grp_assignment_read.
30936         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
30937         (enum mark_read_status): New type.
30938         (analyze_access_subtree): Propagate grp_assignment_read, create
30939         accesses also if both direct_read and root->grp_assignment_read.
30940
30941 2010-04-23  Martin Jambor  <mjambor@suse.cz>
30942
30943         PR middle-end/43835
30944         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
30945         function does not have type attributes.
30946
30947 2010-04-23  Richard Guenther  <rguenther@suse.de>
30948
30949         PR lto/42653
30950         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
30951         of FUNCTION_DECLs.
30952
30953 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30954
30955         * sese.h (create_if_region_on_edge): Remove.
30956
30957         * sese.c (create_if_region_on_edge): Make static.
30958
30959         * tree-inline.c: Do not include ggc.h.
30960
30961         * expr.c: Do not include ggc.h.
30962
30963         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
30964         dependencies.
30965
30966 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
30967
30968         PR target/43744
30969         * config/sh/sh.c (find_barrier): Don't emit a constant pool
30970         in the middle of insns for casesi_worker_2.
30971
30972 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
30973
30974         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
30975
30976 2010-04-22  Ira Rosen  <irar@il.ibm.com>
30977
30978         PR tree-optimization/43842
30979         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
30980         loop unrolling in update of exit phis. Fix comment.
30981         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
30982         least two reduction statements in the loop before starting SLP
30983         analysis.
30984
30985 2010-04-22  Nick Clifton  <nickc@redhat.com>
30986
30987         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
30988
30989 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
30990
30991         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
30992         to simplify a + ~a.
30993
30994 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30995
30996         * tree-parloops.c (loop_parallel_p): New argument
30997         parloop_obstack.  Pass it down.
30998         (parallelize_loops): New variable parloop_obstack.  Initialize it,
30999         pass it down, free it.
31000
31001         * tree-loop-linear.c (linear_transform_loops): Pass down
31002         lambda_obstack.
31003
31004         * tree-data-ref.h (lambda_compute_access_matrices): New argument
31005         of type struct obstack *.
31006
31007         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
31008         scratch_obstack.  Initialize it, pass down, free it.
31009
31010         * lambda.h (lambda_loop_new): Remove.
31011         (lambda_matrix_new, lambda_matrix_inverse)
31012         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
31013         argument of type struct obstack *.
31014
31015         * lambda-trans.c (lambda_trans_matrix_new): New argument
31016         lambda_obstack.  Pass it down, use obstack allocation for ret.
31017         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
31018         it down.
31019
31020         * lambda-mat.c (lambda_matrix_get_column)
31021         (lambda_matrix_project_to_null): Remove.
31022         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
31023         allocation for mat.
31024         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
31025         lambda_obstack.
31026
31027         * lambda-code.c (lambda_loop_new): New function.
31028         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
31029         (lambda_compute_auxillary_space, lambda_compute_target_space)
31030         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
31031         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
31032         (build_access_matrix): New argument lambda_obstack.  Use obstack
31033         allocation for am.
31034         (lambda_compute_step_signs, lambda_compute_access_matrices): New
31035         argument lambda_obstack.  Pass it down.
31036
31037 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31038
31039         * optabs.h (expand_widening_mult): Declare.
31040
31041 2010-04-22  Richard Guenther  <rguenther@suse.de>
31042
31043         PR tree-optimization/43845
31044         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
31045         lookup the CALL_EXPR function and arguments.
31046
31047 2010-04-22  Nick Clifton  <nickc@redhat.com>
31048
31049         * config/stormy16/stormy16.c
31050         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
31051         * config/stormy16/stormy16.h: Tidy up formatting.
31052         (DONT_USE_BUILTIN_SETJMP): Remove definition.
31053         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
31054         (ineqbranchsi): Delete pattern.
31055         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
31056         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
31057         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
31058         stormy16-lib2-ucmpsi2.c.
31059
31060 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31061
31062         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
31063         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
31064         extra set merge_set_noclobber, and use it to relax the final test
31065         slightly.
31066         * df.h (df_simulate_find_noclobber_defs): Declare.
31067         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
31068         conditional defs.
31069         (df_simulate_find_noclobber_defs): New function.
31070
31071 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
31072
31073         * config/i386/i386.md: Use {} around multi-line preparation statements.
31074
31075 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31076
31077         * c-tree.h (push_init_level, pop_init_level, set_init_index)
31078         (process_init_element): New argument of type struct obstack *.
31079
31080         * c-typeck.c (push_init_level, pop_init_level, set_designator)
31081         (set_init_index, set_init_label, set_nonincremental_init)
31082         (set_nonincremental_init_from_string, find_init_member)
31083         (output_init_element, output_pending_init_elements)
31084         (process_init_element): New argument braced_init_obstack.  Pass it
31085         down.
31086         (push_range_stack, add_pending_init): New argument
31087         braced_init_obstack.  Use obstack allocation.
31088
31089         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
31090         braced_init_obstack.  Pass it down.
31091         (c_parser_braced_init): New variables ret, braced_init_obstack.
31092         Initialize obstack, pass it down and finally free it.
31093
31094 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31095
31096         PR middle-end/29274
31097         * tree-pass.h (pass_optimize_widening_mul): Declare.
31098         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
31099         gate_optimize_widening_mul): New static functions.
31100         (pass_optimize_widening_mul): New.
31101         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
31102         <case MULT_EXPR>: Remove support for widening multiplies.
31103         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
31104         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
31105         simplify_gen_unary rather than directly building extensions.
31106         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
31107         WIDEN_MULT_EXPR.
31108         * expmed.c (expand_widening_mult): New function.
31109         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
31110
31111 2010-04-21  Jan Hubicka  <jh@suse.cz>
31112
31113         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
31114         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
31115         * lto-wpa-fixup.c: Remove.
31116         * Makefile.in (lto-wpa-fixup.o): Remove.
31117         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
31118         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
31119         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
31120
31121 2010-04-21  Jan Hubicka  <jh@suse.cz>
31122
31123         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
31124         add write_optimization_summary, read_optimization_summary.
31125         (ipa_write_summaries_of_cgraph_node_set): Remove.
31126         (ipa_write_optimization_summaries): Declare.
31127         (ipa_read_optimization_summaries): Declare.
31128         * ipa-cp.c (pass_ipa_cp): Update.
31129         * ipa-reference.c (pass_ipa_reference): Update.
31130         * ipa-pure-const.c (pass_ipa_pure_const): Update.
31131         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
31132         Update.
31133         * ipa-inline.c (pass_ipa_inline): Update.
31134         * ipa.c (pass_ipa_whole_program): Update.
31135         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
31136         * passes.c (ipa_write_summaries_1): Do not test wpa.
31137         (ipa_write_optimization_summaries_1): New.
31138         (ipa_write_optimization_summaries): New.
31139         (ipa_read_summaries): Do not test ltrans.
31140         (ipa_read_optimization_summaries_1): New.
31141         (ipa_read_optimization_summaries): New.
31142
31143 2010-04-21  Jan Hubicka  <jh@suse.cz>
31144
31145         * lto-cgraph.c (lto_output_node): Do not output comdat groups
31146         for boundary nodes.
31147         (output_cgraph): Do not arrange comdat groups for boundary nodes.
31148
31149 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31150
31151         PR debug/40040
31152         * dwarf2out.c (add_name_and_src_coords_attributes): Add
31153         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
31154
31155 2010-04-21  Jan Hubicka  <jh@suse.cz>
31156
31157         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
31158
31159 2010-04-21  Jan Hubicka  <jh@suse.cz>
31160
31161         * varpool.c (decide_is_variable_needed): Variable is always needed
31162         during ltrans.
31163
31164 2010-04-21  Jan Hubicka  <jh@suse.cz>
31165
31166         * opts.c (decode_options): Enable pure-const pass for whopr.
31167
31168 2010-04-21  Jan Hubicka  <jh@suse.cz>
31169
31170         * cgraph.c (dump_cgraph_node): Dump also assembler name.
31171         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
31172         at WPA dumping.
31173         (cgraph_decide_inlining): Do not expect callee to be removed in all
31174         cases.
31175
31176 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
31177
31178         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
31179
31180 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
31181
31182         * config/i386/i386.md (x86_shrd): Add athlon_decode and
31183         amdfam10_decode attributes.
31184
31185 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31186
31187         PR middle-end/43570
31188         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
31189         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
31190         (lower_copyprivate_clauses): Use private var in outer
31191         context instead of original var.  Make sure the types
31192         are correct for VLAs.
31193
31194 2010-04-21  Richard Guenther  <rguenther@suse.de>
31195
31196         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
31197         to non-pointer objects.
31198
31199 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31200
31201         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
31202         last chain entry if it starts with the still current label.
31203         (add_location_or_const_value_attribute): Check that
31204         loc_list->first->next is NULL instead of comparing ->first with ->last.
31205         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
31206         to add_var_loc_to_decl.
31207
31208         * dwarf2out.c (output_call_frame_info): For dw_cie_version
31209         >= 4 add also address size and segment size fields into CIE header.
31210
31211         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
31212         long as address size is the same as sizeof (void *) and
31213         segment size is 0.
31214         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
31215         address size or segment size is unexpected, return DW_EH_PE_omit.
31216         (classify_object_over_fdes): If get_cie_encoding returned
31217         DW_EH_PE_omit, return -1.
31218         (init_object): If classify_object_over_fdes returned -1,
31219         pretend there were no FDEs at all.
31220
31221 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
31222
31223         * config/i386/i386.md (bswap<mode>2): Macroize expander from
31224         bswap{si,di}2 using SWI48 mode iterator.
31225         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
31226         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
31227         set modrm attribute of bswap insn to 0 and remove length attribute.
31228         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
31229         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
31230         set mode attribute to <MODE> and remove length attribute.
31231
31232 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
31233
31234         PR rtl-optimization/43520
31235         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
31236         zero available registers.
31237
31238 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31239
31240         * builtins.c (fold_builtin_cproj): Fold more cases.
31241
31242 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31243
31244         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
31245         (fold_builtin_1): Fold builtin cproj.
31246         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
31247         Use ATTR_CONST_NOTHROW_LIST.
31248
31249 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
31250
31251         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
31252         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
31253         ffsi2_no_cmove for !TARGET_CMOVE.
31254         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
31255         (ffssi2): Remove expander.
31256         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
31257         mode iterator.
31258         (ctz<mode>2): Ditto from ctz{si,di}2.
31259         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
31260         mode iterator.
31261         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
31262         mode iterator.
31263
31264 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
31265
31266         * dwarf2out.c (AT_linkage_name): Define.
31267         (clone_as_declaration): Handle DW_AT_linkage_name.
31268         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
31269         of DW_AT_MIPS_linkage_name.
31270         (move_linkage_attr): Likewise.
31271         (dwarf2out_finish): Likewise.
31272
31273 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
31274
31275         PR middle-end/41952
31276         * fold-const.c (fold_comparison): New folding rule.
31277
31278 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
31279
31280         * double-int.h (double_int_setbit): Declare.
31281         * double-int.c (double_int_setbit): New function.
31282         * rtl.h (immed_double_int_const): Declare.
31283         * emit-rtl.c (immed_double_int_const): New function.
31284         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
31285         and immed_double_int_const functions.
31286         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
31287         expand_copysign_bit): (Ditto.).
31288         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
31289         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
31290         * dojump.c (prefer_and_bit_test): (Ditto.).
31291         * expr.c (convert_modes, reduce_to_bit_field_precision,
31292         const_vector_from_tree): (Ditto.).
31293         * expmed.c (mask_rtx, lshift_value): (Ditto.).
31294
31295 2010-04-20  Jan Hubicka  <jh@suse.cz>
31296
31297         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
31298         (dump_cgraph_node): Dump new flags.
31299         * cgraph.h (struct cgraph_node): Add flags
31300         reachable_from_other_partition and in_other_partition.
31301         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
31302         other partition can not be removed.
31303         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
31304         the other partition must be output; silence sanity checking on
31305         leaking functions bodies from other paritition.
31306         * lto-cgraph.c (reachable_from_other_partition_p): New function.
31307         (lto_output_node): Output new flags; do not sanity check that inline
31308         clones are output; drop lto_forced_extern_inline_p code; do not mock
31309         visibility flags at partition boundaries.
31310         (add_node_to): New function.
31311         (output_cgraph): Use it to sort functions so masters appear before
31312         clones.
31313         (input_overwrite_node): Input new flags.
31314         * passes.c (ipa_write_summaries): Do not call
31315         lto_new_extern_inline_states.
31316         * lto-section-out.c (forced_extern_inline,
31317         lto_new_extern_inline_states lto_delete_extern_inline_states,
31318         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
31319         * lto-streamer.h (lto_new_extern_inline_states,
31320         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
31321         lto_forced_extern_inline_p): Kill.
31322
31323 2010-04-20  Richard Guenther  <rguenther@suse.de>
31324
31325         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
31326         from vars that can have pointers.
31327         (process_constraint): Dump useless constraints.
31328
31329 2010-04-20  Richard Guenther  <rguenther@suse.de>
31330
31331         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
31332         (dump_sa_points_to_info): Remove asserts.
31333         (init_base_vars): nothing_id isn't an escape point nor does it
31334         have pointers.
31335
31336 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
31337
31338         * tree.h (TYPE_REF_IS_RVALUE): Define.
31339         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
31340         should_move_die_to_comdat, prune_unused_types_walk): Handle
31341         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
31342         (modified_type_die, gen_reference_type_die): Emit
31343         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
31344         if TYPE_REF_IS_RVALUE and -gdwarf-4.
31345
31346 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31347
31348         PR target/43635
31349         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
31350         calls for -fpic -m31 if they have been sibcall optimized.
31351
31352 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
31353
31354         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
31355         ar.lc fixed and call-used.
31356
31357         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
31358
31359 2010-04-19  Jan Hubicka  <jh@suse.cz>
31360
31361         * opts.c (decode_options): Disable whpr incompatible passes.
31362         * lto/lto.c (lto_1_to_1_map): Skip clones.
31363         (read_cgraph_and_symbols): Do not mark everything as needed.
31364         (do_whole_program_analysis): Do map only after optimizing;
31365         set proper cgraph_state; use passmanager.
31366
31367 2010-04-19  DJ Delorie  <dj@redhat.com>
31368
31369         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
31370         POINTER_PLUS_EXPR and fix them.
31371
31372 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
31373
31374         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
31375         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
31376         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
31377         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
31378         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
31379         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
31380         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
31381         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
31382         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
31383         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
31384         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
31385
31386 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
31387
31388         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
31389         (check_cond_move_block): Likewise.
31390         (cond_move_process_if_block): Likewise.
31391         (noce_find_if_block): Improve formatting.
31392         (find_if_header): Pass 0 to memset and tweak conditions.
31393         (cond_exec_find_if_block): Fix long lines and tweak conditions.
31394
31395 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
31396
31397         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
31398         for -gdwarf-4.
31399
31400         PR middle-end/43337
31401         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
31402         with non-local decl doesn't need chain.
31403
31404 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
31405
31406         * ira-color.c (allocno_reload_assign): Avoid accumulating
31407         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
31408
31409 2010-04-19  Martin Jambor  <mjambor@suse.cz>
31410
31411         * gimple.h (create_tmp_reg): Declare.
31412         * gimplify.c (create_tmp_reg): New function.
31413         (gimplify_return_expr): Use create_tmp_reg.
31414         (gimplify_omp_atomic): Likewise.
31415         (gimple_regimplify_operands): Likewise.
31416         * tree-dfa.c (make_rename_temp): Likewise.
31417         * tree-predcom.c (predcom_tmp_var): Likewise.
31418         (reassociate_to_the_same_stmt): Likewise.
31419         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
31420         (get_replaced_param_substitute): Likewise.
31421         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
31422         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
31423         * tree-ssa-pre.c (get_representative_for): Likewise.
31424         (create_expression_by_pieces): Likewise.
31425         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
31426         (create_tailcall_accumulator): Likewise.
31427
31428 2010-04-19  Martin Jambor  <mjambor@suse.cz>
31429
31430         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
31431         new_stmt.
31432         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
31433
31434 2010-04-19  Richard Guenther  <rguenther@suse.de>
31435
31436         PR tree-optimization/43796
31437         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
31438         from SCEV in the lattice.
31439         (vrp_visit_phi_node): Dump change.
31440
31441 2010-04-19  Richard Guenther  <rguenther@suse.de>
31442
31443         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
31444         * configure: Re-generated.
31445
31446 2010-04-19  Richard Guenther  <rguenther@suse.de>
31447
31448         PR tree-optimization/43783
31449         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
31450         constant ARRAY_REF operands two and three if possible.
31451
31452 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
31453
31454         PR target/43766
31455         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
31456
31457 2010-04-19  Jie Zhang  <jie@codesourcery.com>
31458
31459         PR target/43662
31460         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
31461
31462 2010-04-19  Ira Rosen  <irar@il.ibm.com>
31463
31464         PR tree-optimization/37027
31465         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
31466         and macro to access it.
31467         (vectorizable_reduction): Add argument.
31468         (vect_get_slp_defs): Likewise.
31469         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
31470         statements for possible use in SLP.
31471         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
31472         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
31473         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
31474         add new argument.
31475         (vectorizable_reduction): Likewise.
31476         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
31477         vect_get_slp_defs.
31478         (vectorizable_type_demotion, vectorizable_type_promotion,
31479         vectorizable_store): Likewise.
31480         (vect_analyze_stmt): Update call to vectorizable_reduction.
31481         (vect_transform_stmt): Likewise.
31482         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
31483         (vect_build_slp_tree): Fix indentation. Check that there are no loads
31484         from different interleaving chains in same node.
31485         (vect_slp_rearrange_stmts): New function.
31486         (vect_supported_load_permutation_p): Allow load permutations for
31487         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
31488         inside SLP nodes if necessary.
31489         (vect_analyze_slp_instance): Handle reductions.
31490         (vect_analyze_slp): Try to build SLP instances originating from groups
31491         of reductions.
31492         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
31493         (vect_get_constant_vectors): Create initial vectors for reductions
31494         according to reduction code. Add new argument.
31495         (vect_get_slp_defs): Add new argument, pass it to
31496         vect_get_constant_vectors.
31497         (vect_schedule_slp_instance): Remove SLP tree root statements.
31498
31499 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
31500
31501         * tree.h (ENUM_IS_SCOPED): Define.
31502         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
31503         for ENUM_IS_SCOPED enums.
31504
31505 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
31506
31507         * fold-const.c (fold_comparison): Use ssizetype.
31508         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
31509         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
31510         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
31511         * tree-object-size.c (compute_object_sizes): Use size_type_node.
31512
31513         * tree.h (initialize_sizetypes): Remove parameter.
31514         (build_common_tree_nodes): Remove second parameter.
31515         * stor-layout.c (initialize_sizetypes): Remove parameter.
31516         Always create an unsigned type.
31517         (set_sizetype): Assert that the passed type is unsigned and simplify.
31518         * tree.c (build_common_tree_nodes): Remove second parameter.
31519         Adjust call to initialize_sizetypes.
31520         * c-decl.c (c_init_decl_processing): Remove second argument in call to
31521         build_common_tree_nodes.
31522
31523 2010-04-18  Matthias Klose  <doko@ubuntu.com>
31524
31525         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
31526
31527 2010-04-18  Ira Rosen  <irar@il.ibm.com>
31528
31529         PR tree-optimization/43771
31530         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
31531         load permutation doesn't have gaps.
31532
31533 2010-04-18  Jan Hubicka  <jh@suse.cz>
31534
31535         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
31536         (sse_prologue_save_insn expander): Use new pattern.
31537         (sse_prologue_save_insn1): New pattern and splitter.
31538         (sse_prologue_save_insn): Update to deal also with 64bit aligned
31539         blocks.
31540         * i386.c (setup_incoming_varargs_64): Do not compute jump
31541         destination here.
31542         (ix86_gimplify_va_arg): Update alignment needed.
31543         (ix86_local_alignment): Do not align all local arrays to 128bit.
31544
31545 2010-04-17  Jan Hubicka  <jh@suse.cz>
31546
31547         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
31548
31549 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
31550
31551         * arm.md (negdi2): Remove redundant code to force values into a
31552         register.
31553
31554 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
31555
31556         * arm/bpabi.S: Add EABI alignment attributes to objects.
31557         * arm/bpabi-v6m.S: Likewise.
31558         * arm/crti.asm: Likewise.
31559         * arm/crtn.asm: Likewise.
31560         * arm/lib1funcs.asm: Likewise.
31561         * arm/libunwind.S: Likewise.
31562
31563 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
31564
31565         * arm-protos.h (tune_params): New structure.
31566         * arm.c (current_tune): New variable.
31567         (arm_constant_limit): Delete.
31568         (struct processors): Add pointer to the tune parameters.
31569         (arm_slowmul_tune): New tuning option.
31570         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
31571         (all_cores): Adjust to pick up the tuning model.
31572         (arm_constant_limit): New function.
31573         (arm_override_options): Select the appropriate tuning model.  Delete
31574         initialization of arm_const_limit.
31575         (arm_split_constant): Use the new constant-limit model.
31576         (arm_rtx_costs): Pick up the current tuning model.
31577         * arm.md (is_strongarm, is_xscale): Delete.
31578         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
31579         for Xscale variant architectures.
31580         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
31581
31582 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31583
31584         * config/arm/arm.c (arm_gen_constant): Remove unused variable
31585         can_shift.
31586         (arm_rtx_costs_1): Remove unused variable extra_cost.
31587         (arm_unwind_emit_set): Use variable offset.
31588         (thumb1_output_casesi): Remove unused variable flags.
31589
31590 2010-04-16  Jeff Law  <law@redhat.com>
31591
31592         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
31593         needing assignment rather than doing a two-phase assignment.  Remove
31594         unused variable 'm'.
31595
31596 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
31597
31598         PR bootstrap/43767
31599         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
31600
31601 2010-04-16  Doug Kwan  <dougkwan@google.com>
31602
31603         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
31604         (next_operand_entry_id): New static variable.
31605         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
31606         (add_to_ops_vec): Assigned unique ID to operand entry.
31607         (struct oecount_s): New field ID.
31608         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
31609         (undistribute_ops_list): Assign unique IDs to oecounts.
31610         (init_reassoc): reset next_operand_entry_id.
31611
31612 2010-04-16  Doug Kwan  <dougkwan@google.com>
31613
31614         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
31615         missing left parenthesis.
31616
31617 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
31618
31619         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
31620         *btdi_rex64 using SWI48 mode iterator.
31621         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
31622         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
31623         *jcc_btdi_mask_rex64.
31624
31625 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
31626
31627         * double-int.h (tree_to_double_int): Convert to macro.
31628         * double-int.c (tree_to_double_int): Remove.
31629
31630 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
31631
31632         PR debug/43762
31633         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
31634         with want_address 2 and in case a single element list might be
31635         possible, call it again with want_address 0.
31636
31637 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
31638
31639         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
31640         case 'W' print operands for HI mode.
31641         * config/h8300/h8300.h (Y0, Y2) : New constraints.
31642         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
31643         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
31644         * config/h8300/predicate.md (bit_register_indirect_operand): New.
31645
31646         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
31647
31648         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
31649         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
31650         #xx:3 and #xx:4 mode.
31651
31652         * config/h8300/h8300.md (inverted load with HImode dest): Add
31653         support for H8300SX.
31654
31655         * config/h8300/predicate.md (bit_operand): Allow immediate values that
31656         satisfy 'U' constraint.
31657
31658 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31659
31660         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
31661         * configure: Regenerate.
31662         * config.in: Regenerate.
31663         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
31664         works.
31665
31666 2010-04-16  Richard Guenther  <rguenther@suse.de>
31667
31668         * tree.h (struct tree_decl_minimal): Move pt_uid ...
31669         (struct tree_decl_common): ... here.
31670         (DECL_PT_UID): Adjust.
31671         (SET_DECL_PT_UID): Likewise.
31672         (DECL_PT_UID_SET_P): Likewise.
31673
31674 2010-04-16  Richard Guenther  <rguenther@suse.de>
31675
31676         PR tree-optimization/43572
31677         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
31678         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
31679         * tree-flow.h (is_call_clobbered): Remove.
31680         * tree-flow-inline.h (is_call_clobbered): Likewise.
31681         * tree-dfa.c (dump_variable): Do not dump call clobber state.
31682         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
31683         (execute_return_slot_opt): Adjust.
31684         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
31685         check for call clobbered vars here.
31686         (find_tail_calls): Move tailcall verification to the
31687         proper place.
31688
31689 2010-04-16  Diego Novillo  <dnovillo@google.com>
31690
31691         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
31692
31693 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
31694
31695         PR target/40603
31696         * config/arm/arm.md (cbranchqi4): New pattern.
31697         * config/arm/predicates.md (const0_operand,
31698         cbranchqi4_comparison_operator): New predicates.
31699
31700 2010-04-16  Richard Guenther  <rguenther@suse.de>
31701
31702         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
31703         (dump_gimple_stmt): Likewise.
31704
31705 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
31706
31707         * recog.h (struct recog_data): New field is_operator.
31708         (struct insn_operand_data): New field is_operator.
31709         * recog.c (extract_insn): Set recog_data.is_operator.
31710         * genoutput.c (output_operand_data): Emit code to set the
31711         is_operator field.
31712         * reload.c (find_reloads): Use it rather than testing for an
31713         empty constraint string.
31714
31715         PR target/41514
31716         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
31717         If the previous insn is a cbranchsi4_insn with the same arguments,
31718         omit the compare instruction.
31719
31720         * config/arm/arm.md (addsi3_cbranch): If destination is a high
31721         register, inputs must be low registers and we need a low register
31722         scratch.  Handle alternative 2 like alternative 3.
31723
31724 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
31725
31726         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
31727         don't call get_addr on both.  If one expression is a VALUE and
31728         the other a REG, check VALUE's locs if the REG isn't among them.
31729
31730 2010-04-16  Christian Bruel  <christian.bruel@st.com>
31731
31732         * config/sh/sh.h (sh_frame_pointer_required): New function.
31733         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
31734         (flag_omit_frame_pointer) Set.
31735         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
31736         (rounded_frame_size): Adjust size with outgoing_args_size.
31737         (sh_set_return_address): Must return from stack pointer.
31738         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
31739         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
31740         (ACCUMULATE_OUTGOING_ARGS): Define.
31741         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
31742         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
31743
31744 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
31745
31746         PR target/43471
31747         * config/sh/sh.c (sh_legitimize_reload_address): Use
31748         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
31749         Remove a unneeded check for offset_base.
31750
31751 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
31752
31753         * configure: Regenerated.
31754
31755 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31756
31757         * config/s390/s390.c (s390_call_save_register_used): Switch back
31758         to HARD_REGNO_NREGS.
31759
31760 2010-04-15  Richard Guenther  <rguenther@suse.de>
31761
31762         * alias.c (alias_set_subset_of): Handle alias-set zero
31763         child properly.
31764
31765 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
31766             Julian Brown  <julian@codesourcery.com>
31767
31768         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
31769         alternatives according to use of high and low regs.
31770         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
31771         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
31772         optimizing for size on Thumb-2.
31773
31774 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
31775
31776         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
31777
31778 2010-04-15  Richard Guenther  <rguenther@suse.de>
31779
31780         * tree-ssa-structalias.c (struct variable_info): Add
31781         is_fn_info flag.
31782         (new_var_info): Initialize it.
31783         (dump_constraints): Support printing last added constraints.
31784         (debug_constraints): Adjust.
31785         (dump_constraint_graph): Likewise.
31786         (make_heapvar_for): Check for NULL cfun.
31787         (get_function_part_constraint): New function.
31788         (get_fi_for_callee): Likewise.
31789         (find_func_aliases): Properly implement IPA PTA constraints.
31790         (process_ipa_clobber): New function.
31791         (find_func_clobbers): Likewise.
31792         (insert_into_field_list_sorted): Remove.
31793         (create_function_info_for): Properly allocate vars for IPA mode.
31794         Do not use insert_into_field_list_sorted.
31795         (create_variable_info_for): Properly generate constraints for
31796         global vars in IPA mode.
31797         (dump_solution_for_var): Always dump the solution.
31798         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
31799         (find_what_var_points_to): Adjust.
31800         (pt_solution_set): Change.
31801         (pt_solution_ior_into): New function.
31802         (pt_solution_empty_p): Export.
31803         (pt_solution_includes_global): Adjust.
31804         (pt_solution_includes_1): Likewise.
31805         (pt_solutions_intersect_1): Likewise.
31806         (dump_sa_points_to_info): Check some invariants.
31807         (solve_constraints): Move constraint dumping ...
31808         (compute_points_to_sets): ... here.
31809         (ipa_pta_execute): ... and here.
31810         (compute_may_aliases): Do not re-compute points-to info
31811         locally if IPA info is available.
31812         (ipa_escaped_pt): New global var.
31813         (ipa_pta_execute): Properly implement IPA PTA.
31814         * tree-into-ssa.c (dump_decl_set): Support dumping
31815         decls not in referenced-vars.
31816         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
31817         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
31818         (dump_points_to_solution): Likewise.
31819         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
31820         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
31821         (remap_gimple_stmt): Reset call clobber/use information if necessary.
31822         (copy_decl_to_var): Copy DECL_PT_UID.
31823         (copy_result_decl_to_var): Likewise.
31824         * tree.c (make_node_stat): Initialize DECL_PT_UID.
31825         (copy_node_stat): Copy it.
31826         * tree.h (DECL_PT_UID): New macro.
31827         (SET_DECL_PT_UID): Likewise.
31828         (DECL_PT_UID_SET_P): Likewise.
31829         (struct tree_decl_minimal): Add pt_uid member.
31830         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
31831         (pt_solution_empty_p): Declare.
31832         (pt_solution_set): Adjust.
31833         (ipa_escaped_pt): Declare.
31834         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
31835         * gimple-pretty-print.c (pp_points_to_solution): New function.
31836         (dump_gimple_call): Dump call clobber/use information.
31837         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
31838         * tree-pass.h (TDF_ALIAS): New dump option.
31839         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
31840         * doc/invoke.texi (-fipa-pta): Update documentation.
31841
31842 2010-04-15  Richard Guenther  <rguenther@suse.de>
31843
31844         * Makefile.in (OBJS-common): Add gimple-fold.o.
31845         (gimple-fold.o): New rule.
31846         * tree.h (maybe_fold_offset_to_reference,
31847         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
31848         prototypes ...
31849         * gimple.h: ... here.
31850         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
31851         may_propagate_address_into_dereference): Move prototypes ...
31852         * gimple.h: ... here.
31853         * tree-ssa-ccp.c (get_symbol_constant_value,
31854         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
31855         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
31856         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
31857         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
31858         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
31859         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
31860         gimplify_and_update_call_from_tree): Move ...
31861         * gimple-fold.c: ... here.  New file.
31862         (ccp_fold_builtin): Rename to ...
31863         (gimple_fold_builtin): ... this.
31864         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
31865
31866 2010-04-15  Richard Guenther  <rguenther@suse.de>
31867
31868         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
31869         fit_double_type, force_fit_type_double, add_double_with_sign,
31870         neg_double, mul_double_with_sign, lshift_double, rshift_double,
31871         lrotate_double, rrotate_double, div_and_round_double): Move ...
31872         * double-int.c: ... here.
31873         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
31874         add_double, neg_double, mul_double_with_sign, mul_double,
31875         lshift_double, rshift_double, lrotate_double, rrotate_double,
31876         div_and_round_double): Move prototypes ...
31877         * double-int.h: ... here.
31878
31879 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
31880
31881         PR target/43742
31882         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
31883         matching constraints to ensure inputs match the output.
31884
31885 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
31886
31887         PR target/43742
31888         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
31889         in an input-only operand.
31890
31891 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
31892
31893         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
31894         (double_int_not, double_int_lshift, double_int_rshift): Declare.
31895         (double_int_negative_p): Convert to static inline function.
31896         * double-int.c (double_int_lshift, double_int_lshift): New functions.
31897         (double_int_negative_p): Remove.
31898         * tree.h (lshift_double, rshift_double):
31899         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
31900         * fold-const.c (fold_convert_const_int_from_real,
31901         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
31902         (lshift_double): Change type of arith argument to bool.
31903         (rshift_double): Change type of arith argument to bool. Correct
31904         comment.
31905         * expmed.c (mask_rtx, lshift_value): (Ditto.).
31906
31907 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
31908
31909         PR target/21803
31910         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
31911         at the start and end of the then/else blocks, and omit them from the
31912         conversion.
31913         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
31914         argument; all callers changed.  Pass zero to old_insns_match_p instead.
31915         (flow_find_head_matching_sequence): New function.
31916         (old_insns_match_p): Check REG_EH_REGION notes for calls.
31917         * basic-block.h (flow_find_cross_jump,
31918         flow_find_head_matching_sequence): Declare functions.
31919
31920 2010-04-14  Jason Merrill  <jason@redhat.com>
31921
31922         PR c++/36625
31923         * c-common.c (attribute_takes_identifier_p): New fn.
31924         * c-common.h: Declare it.
31925
31926 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31927
31928         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
31929         splitter condition.
31930         (*udivmod<mode>4): Ditto.
31931
31932 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31933
31934         * config/i386/i386.md (maxmin_int): Rename code attribute from
31935         maxminiprefix and update all users.
31936         (maxmin_float): Ditto from maxminfprefix.
31937         (logic): Ditto from logicprefix.
31938         (absneg_mnemonic): Ditto from absnegprefix.
31939         * config/i386/mmx.md: Update all users of maxminiprefix,
31940         maxminfprefix and logicprefix for rename.
31941         * config/i386/sse.md: Ditto.
31942         * config/i386/sync.md (sync_<code><mode>): Update for
31943         logicprefix rename.
31944
31945 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31946
31947         PR 42966
31948         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
31949         warnings converted to errors.
31950
31951 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31952
31953         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
31954         used insn_type variable.
31955         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
31956         to avoid set-but-not-used warning.
31957
31958 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31959
31960         * df-core.c (df_ref_debug): Change format string placeholder
31961         from 0x%x to %#x.
31962         * dwarf2asm.c (dw2_asm_output_data_raw,
31963         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
31964         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
31965         * dwarf2out.c (output_cfi, output_cfi_directive,
31966         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
31967         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
31968         Ditto.
31969         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
31970         * print-rtl.c (print_rtx): Ditto.
31971
31972 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
31973
31974         PR middle-end/42694
31975         * builtins.c (expand_builtin_pow_root): New function to expand pow
31976         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
31977         series of sqrt and cbrt calls under -ffast-math.
31978         (expand_builtin_pow): Call it.
31979
31980 2010-04-14  Michael Matz  <matz@suse.de>
31981
31982         PR tree-optimization/42963
31983         * tree-cfg.c (touched_switch_bbs): New static variable.
31984         (group_case_labels_stmt): New function broken out from ...
31985         (group_case_labels): ... here, use the above.
31986         (start_recording_case_labels): Allocate touched_switch_bbs.
31987         (end_recording_case_labels): Deallocate it, call
31988         group_case_labels_stmt.
31989         (gimple_redirect_edge_and_branch): Remember index of affected BB.
31990
31991 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31992
31993         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
31994         from insn template.
31995
31996 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
31997
31998         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
31999
32000 2010-04-13  Jan Hubicka  <jh@suse.cz>
32001
32002         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
32003         of optimized out static functions.
32004         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
32005         cost computation.  Also sanity check for overflows.
32006         (update_caller_keys): Update cgraph_edge_badness call; properly
32007         update fibheap and sanity check that it is up to date.
32008         (add_new_edges_to_heap): Update cgraph_edge_badness.
32009         (cgraph_decide_inlining_of_small_function): Likewise;
32010         add sanity checking that badness in heap is up to date;
32011         improve dumping of reason; Update badness of calls to the
32012         offline copy of function currently inlined; dump badness
32013         of functions not inlined because of unit growth limits.
32014
32015 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
32016
32017         PR middle-end/32628
32018         * c-common.c (pointer_int_sum): Disregard overflow that occured only
32019         because of sign-extension change when converting to sizetype here...
32020         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
32021
32022         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
32023         the folding to constants.  Remove redundant final conversion.
32024         (fold_binary) <associate>: Do not associate if the re-association of
32025         constants alone overflows.
32026         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
32027         to the end of the list.
32028         (multiple_of_p) <COND_EXPR>: New case.
32029
32030 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32031
32032         * opt-functions.awk (opt_sanitized_name): New.
32033         (opt_enum): New.
32034         * optc-gen.awk: Use it
32035         * opth-gen.awk: Use it.
32036
32037 2010-04-13  Martin Jambor  <mjambor@suse.cz>
32038
32039         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
32040         (sra_modify_assign): Delete stmts loading dead data even if racc has no
32041         children.  Call replace_uses_with_default_def_ssa_name to handle
32042         SSA_NAES on lhs.
32043
32044 2010-04-13  Michael Matz  <matz@suse.de>
32045
32046         PR middle-end/43730
32047         * builtins.c (expand_builtin_interclass_mathfn): Also create
32048         a register if the predicate doesn't match.
32049
32050 2010-04-13  Diego Novillo  <dnovillo@google.com>
32051
32052         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
32053         * c-pch.c: Include timevar.h.
32054         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
32055         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
32056         * ggc-common.c: Include timevar.h.
32057         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
32058         * timevar.def (TV_PCH_SAVE): Define.
32059         (TV_PCH_CPP_SAVE): Define.
32060         (TV_PCH_PTR_REALLOC): Define.
32061         (TV_PCH_PTR_SORT): Define.
32062         (TV_PCH_RESTORE): Define.
32063         (TV_PCH_CPP_RESTORE): Define.
32064
32065 2010-04-13  Michael Matz  <matz@suse.de>
32066
32067         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
32068         into MINUS_EXPRs.
32069         (can_reassociate_p): New function.
32070         (break_up_subtract_bb, reassociate_bb): Use it.
32071
32072 2010-04-13  Richard Guenther  <rguenther@suse.de>
32073
32074         PR bootstrap/43737
32075         * builtins.c (c_readstr): Fix assert.
32076
32077 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
32078
32079         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
32080         when generating cltd insn.
32081
32082         (*ashl<mode>3_1): Remove special handling for register operand 2.
32083         (*ashlsi3_1_zext): Ditto.
32084         (*ashlhi3_1): Ditto.
32085         (*ashlhi3_1_lea): Ditto.
32086         (*ashlqi3_1): Ditto.
32087         (*ashlqi3_1_lea): Ditto.
32088         (*<shiftrt_insn><mode>3_1): Ditto.
32089         (*<shiftrt_insn>si3_1_zext): Ditto.
32090         (*<shiftrt_insn>qi3_1_slp): Ditto.
32091         (*<rotate_insn><mode>3_1): Ditto.
32092         (*<rotate_insn>si3_1_zext): Ditto.
32093         (*<rotate_insn>qi3_1_slp): Ditto.
32094
32095 2010-04-13  Richard Guenther  <rguenther@suse.de>
32096
32097         * tree-ssa-structalias.c (callused_id): Remove.
32098         (call_stmt_vars): New.
32099         (get_call_vi): Likewise.
32100         (lookup_call_use_vi): Likewise.
32101         (lookup_call_clobber_vi): Likewise.
32102         (get_call_use_vi): Likewise.
32103         (get_call_clobber_vi): Likewise.
32104         (make_transitive_closure_constraints): Likewise.
32105         (handle_const_call): Adjust to do per-call call-used handling.
32106         (handle_pure_call): Likewise.
32107         (find_what_var_points_to): Remove general callused handling.
32108         (init_base_vars): Likewise.
32109         (init_alias_vars): Initialize call_stmt_vars.
32110         (compute_points_to_sets): Process call-used and call-clobbered
32111         vars for call statements.
32112         (delete_points_to_sets): Free call_stmt_vars.
32113
32114 2010-04-13  Richard Guenther  <rguenther@suse.de>
32115
32116         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
32117         Only add RW dependence for dependence distance zero.
32118         Adjust maximal vectorization factor according to dependences.
32119         Move alignment handling ...
32120         (vect_find_same_alignment_drs): ... here.  New function.
32121         (vect_analyze_data_ref_dependences): Adjust.
32122         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
32123         (vect_analyze_data_refs): Adjust minimal vectorization factor
32124         according to data references.
32125         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
32126         dependences before determining the vectorization factor.
32127         Analyze alignment after determining the vectorization factor.
32128         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
32129         dependences before alignment.
32130         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
32131         Adjust prototype.
32132         (vect_analyze_data_refs): Likewise.
32133         (MAX_VECTORIZATION_FACTOR): New define.
32134
32135 2010-04-13  Duncan Sands  <baldrick@free.fr>
32136
32137         * except.h (lang_eh_type_covers): Remove.
32138         * except.c (lang_eh_type_covers): Likewise.
32139
32140 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32141             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32142
32143         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
32144         * config/s390/s390.c: Replace UNTIS_PER_WORD with
32145         UNITS_PER_LONG where it is ABI relevant.
32146         (s390_return_addr_rtx): Likewise.
32147         (s390_back_chain_rtx): Likewise.
32148         (s390_frame_area): Likewise.
32149         (s390_frame_info): Likewise.
32150         (s390_initial_elimination_offset): Likewise.
32151         (save_gprs): Likewise.
32152         (s390_emit_prologue): Likewise.
32153         (s390_emit_epilogue): Likewise.
32154         (s390_function_arg_advance): Likewise.
32155         (s390_function_arg): Likewise.
32156         (s390_va_start): Likewise.
32157         (s390_gimplify_va_arg): Likewise.
32158         (s390_function_profiler): Likewise.
32159         (s390_optimize_prologue): Likewise.
32160         (s390_rtx_costs): Likewise.
32161         (s390_secondary_reload): Likewise.
32162         (s390_promote_function_mode): Likewise.
32163         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
32164         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
32165         registers available.
32166         (s390_unwind_word_mode): New function.
32167         (s390_function_value): Split 64 bit values into register pair if
32168         used as return value.
32169         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
32170         function call parameters.  Handle parallels.
32171         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
32172         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
32173         (DWARF_CIE_DATA_ALIGNMENT): New macro.
32174         (s390_expand_setmem): Remove unused variable src_addr.
32175         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
32176         deal with 64 bit registers.
32177         * config/s390/s390.h: Define __zarch__ predefined macro.
32178         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
32179         (UNITS_PER_LONG): New macro.
32180         * libjava/include/s390-signal.h: Define extended ucontext
32181         structure containing the upper halfs of the 64 bit registers.
32182
32183 2010-04-13  Simon Baldwin  <simonb@google.com>
32184
32185         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
32186
32187 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
32188
32189         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
32190         rvalue on the RHS if the LHS is of a non-renamable type.
32191         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
32192
32193 2010-04-13  Matthias Klose  <doko@ubuntu.com>
32194
32195         * gcc.c (cc1_options): Handle -iplugindir before processing
32196         the cc1 spec. Only add -iplugindir once.
32197         (cpp_unique_options): Add -iplugindir option if -fplugin* options
32198         found.
32199         * common.opt (iplugindir): Remove `Separate' property, initialize.
32200         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
32201         option.
32202         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
32203         (distclean): Remove plugin dir.
32204         * doc/invoke.texi: Document -iplugindir.
32205
32206 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
32207
32208         * doc/plugins.texi (Loading Plugins): Document short
32209         -fplugin=foo option.
32210         (Plugin API): Mention default_plugin_dir_name function.
32211
32212         * gcc.c (find_file_spec_function): Add new declaration.
32213         (static_spec_func): Use it for "find-file".
32214         (find_file_spec_function): Add new function.
32215         (cc1_options): Add -iplugindir option if -fplugin* options found.
32216
32217         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
32218
32219         * plugin.c (add_new_plugin): Updated comment, and handle short
32220         plugin name.
32221         (default_plugin_dir_name): Added new function.
32222
32223         * common.opt (iplugindir): New option to set the plugin directory.
32224
32225 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
32226
32227         * config/i386/i386.md (any_rotate): New code iterator.
32228         (rotate_insn): New code attribute.
32229         (rotate): Ditto.
32230         (SWIM124): New mode iterator.
32231         (<rotate_insn>ti3): New expander.
32232         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
32233         any_rotate code iterator.
32234         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
32235         using any_rotate code iterator and SWIM124 mode iterator.
32236         (ix86_rotlti3): New insn_and_split pattern.
32237         (ix86_rotrti3): Ditto.
32238         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
32239         ix86_rotl{di,ti}3 patterns.
32240         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
32241         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
32242         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
32243         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
32244         code iterator and SWI mode iterator.
32245         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
32246         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
32247         code iterator.
32248         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
32249         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
32250         (bswap rotatert splitter): Add splitter.
32251         (bswap splitter): Macroize splitter using any_rotate code iterator.
32252         Add insn predicate to split only for TARGET_USE_XCHGB or when
32253         optimizing function for size.
32254
32255 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32256
32257         * config/pa/pa.c (emit_move_sequence): Remove use of
32258         deleted variable flag_argument_noalias.
32259
32260 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32261
32262         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
32263         configurations.
32264         Add to unsupported targets list.
32265         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
32266         sparc*-sun-solaris2.[567]* from target lists.
32267         * configure: Regenerate.
32268         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
32269         removal.
32270         Remove Solaris 7 patch references.
32271         (Specific, sparc-sun-solaris2.7): Removed.
32272         (sparc-sun-solaris2*): Update Solaris 7 example.
32273         (sparc64-*-solaris2*): Likewise.
32274
32275 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32276
32277         * config.build (alpha*-dec-osf4*): Remove.
32278         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
32279         of obsolete configurations.
32280         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
32281         support.
32282         * config/alpha/t-osf4: Renamed to ...
32283         * config/alpha/t-osf5: ... this.
32284         * config/alpha/osf.h: Renamed to ...
32285         * config/alpha/osf5.h: ... this.
32286         Merged old osf5.h contents.
32287         Update comments.
32288         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
32289         (EXTRA_SPECS): Removed.
32290         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
32291         reflect removal of Tru64 UNIX V4.0/V5.0 support.
32292         Document that.
32293
32294 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32295
32296         * doc/contrib.texi (Contributors, Rainer Orth): Update.
32297
32298 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
32299
32300         PR/43702
32301         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
32302         __thiscall convention.
32303
32304 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32305
32306         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
32307         orig_base.
32308         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
32309
32310 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32311
32312         * function.c (assign_parms_initialize_all): Add unused attribute
32313         to fntype.
32314
32315 2010-04-12  Richard Guenther  <rguenther@suse.de>
32316
32317         * gsstruct.def (GSS_CALL): New.
32318         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
32319         * gimple.h: Include tree-ssa-alias.h.
32320         (struct gimple_statement_call): New.
32321         (union gimple_statement_struct_d): Add gimple_call member.
32322         (gimple_call_reset_alias_info): Declare.
32323         (gimple_call_use_set): New function.
32324         (gimple_call_clobber_set): Likewise.
32325         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
32326         * gimple.c (gimple_call_reset_alias_info): New function.
32327         (gimple_build_call_1): Call it.
32328         * lto-streamer-in.c (input_gimple_stmt): Likewise.
32329         * tree-inline.c (remap_gimple_stmt): Likewise.
32330         (expand_call_inline): Remove callused handling.
32331         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
32332         * tree-dfa.c (dump_variable): Likewise.
32333         * tree-parloops.c (parallelize_loops): Likewise.
32334         * tree-ssa.c (init_tree_ssa): Likewise.
32335         (delete_tree_ssa): Likewise.
32336         * tree-flow-inline.h (is_call_used): Remove.
32337         * tree-flow.h (struct gimple_df): Remove callused member.
32338         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
32339         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
32340         (ref_maybe_used_by_call_p_1): Simplify.
32341         (call_may_clobber_ref_p_1): Likewise.
32342         * tree-ssa-structalias.c (compute_points_to_sets): Set
32343         the call stmt used and clobbered sets.
32344         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
32345         (find_tail_calls): Verify the tail call.
32346
32347 2010-04-12  Richard Guenther  <rguenther@suse.de>
32348
32349         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
32350         single-iteration always-inline inlining.
32351         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
32352         (cgraph_decide_inlining): Do not handle always-inline specially.
32353         (try_inline): Remove always-inline cycle detection special case.
32354         Do not recurse on always-inlines.
32355         (cgraph_early_inlining): Do not iterate if not optimizing.
32356         (cgraph_gate_early_inlining): remove.
32357         (pass_early_inline): Run unconditionally.
32358         (gate_cgraph_decide_inlining): New function.
32359         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
32360         not inlining or optimizing.
32361         (cgraph_decide_inlining_of_small_functions): Also consider
32362         always-inline functions.
32363         (cgraph_default_inline_p): Return true for nodes which should
32364         disregard inline limits.
32365         (estimate_function_body_sizes): Assume zero size and time for
32366         nodes which are marked as disregarding inline limits.
32367         (cgraph_decide_recursive_inlining): Do not perform recursive
32368         inlining on always-inline nodes.
32369
32370 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
32371
32372         PR bootstrap/43699
32373         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
32374         for exprs satisfying handled_component_p.
32375
32376 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
32377
32378         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
32379         non-constant aggregate elements.
32380
32381         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
32382         is a real initialization.
32383
32384 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
32385
32386         PR c/36774
32387         * c-decl.c (start_function): Move forward check for nested function.
32388
32389 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
32390
32391         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
32392         * config/sh/sh.c: Include reload.h.
32393         (sh_legitimize_reload_address): New.
32394         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
32395         sh_legitimize_reload_address.
32396
32397 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32398
32399         * config/sh/sh.md (*movqi_pop): New insn pattern.
32400         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
32401
32402 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32403
32404         * config/i386/i386.md (any_shiftrt): New code iterator.
32405         (shiftrt_insn): New code attribute.
32406         (shiftrt): Ditto.
32407         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
32408         using any_shiftrt code iterator.
32409         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
32410         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
32411         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
32412         pattern from corresponding peephole2 patterns.
32413         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
32414         using any_shiftrt code iterator.
32415         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
32416         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
32417         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
32418         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
32419         *{ashr,lshr}<mode>3_cmp_zext.
32420         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
32421
32422 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32423
32424         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
32425         scratch register.
32426         (*lshr<mode>3_cconly): Ditto.
32427
32428 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32429
32430         * config/i386/i386.md (lshr<mode>3): Macroize expander from
32431         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
32432         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32433         pattern from *lshr{di,ti}3_1 and corresponding splitters using
32434         DWI mode iterator.
32435         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
32436         from corresponding peephole2 patterns.
32437         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
32438         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
32439         and *lshrdi3_1_rex64 using SWI mode iterator.
32440         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
32441         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
32442         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
32443         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
32444         and *lshrdi3_cmp_rex64 using SWI mode iterator.
32445         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
32446         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
32447         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
32448         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
32449         SWI mode iterator.
32450
32451 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
32452
32453         * config/i386/i386.md (ashr<mode>3): Macroize expander from
32454         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
32455         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32456         pattern from *ashr{di,ti}3_1 and corresponding splitters using
32457         DWI mode iterator.
32458         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
32459         from corresponding peephole2 patterns.
32460         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
32461         (ashrsi3_cvt): Rename from ashrsi3_31.
32462         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
32463         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
32464         and x86_64_shift_adj_3 using SWI48 mode iterator.
32465         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
32466         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
32467         and *ashrdi3_1_rex64 using SWI mode iterator.
32468         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
32469         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
32470         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
32471         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
32472         and *ashrdi3_cmp_rex64 using SWI mode iterator.
32473         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
32474         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
32475         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
32476         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
32477         SWI mode iterator.
32478         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
32479         * config/i386/i386.c (ix86_split_ashr): Update for renamed
32480         x86_shift<mode>_adj_3 expanders.
32481
32482 2010-04-10  Wei Guozhi  <carrot@google.com>
32483
32484         PR target/42601
32485         * config/arm/arm.c (arm_pic_static_addr): New function.
32486         (legitimize_pic_address): Call arm_pic_static_addr when it detects
32487         a static symbol.
32488         (arm_output_addr_const_extra): Output expression for new pattern.
32489         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
32490
32491 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
32492
32493         * ira-costs.c (record_reg_classes): Ignore alternatives that are
32494         not enabled.
32495
32496         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
32497         * web.c: Include "insn-config.h" and "recog.h".
32498         (union_match_dups): New function.
32499         (web_main): Call it.
32500         (union_defs): Don't try to recognize match_dups.
32501
32502         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
32503         if doing so would replace the entire pattern.
32504
32505 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
32506
32507         PR target/43707
32508         PR target/43709
32509         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
32510         and splitter pattern.  Change splitter operand 1 predicate to
32511         nonmemory_operand.
32512
32513 2010-04-09  Martin Jambor  <mjambor@suse.cz>
32514
32515         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
32516         lattices are addresses of CONST_DECLs with the same initial value.
32517         (ipcp_print_all_lattices): Print values of CONST_DECLs.
32518         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
32519
32520 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
32521             Bernd Schmidt  <bernds@codesourcery.com>
32522
32523         * loop-invariant.c (replace_uses): New static function.
32524         (move_invariant_reg): Use it to ensure we can replace the uses.
32525
32526 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
32527
32528         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
32529         function template.
32530         (picochip_override_options): Enable section anchors only above -O1.
32531         (picochip_reorg): Fixed a couple of build warnings.
32532
32533 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32534
32535         * configure.ac (plugin -rdynamic test): Log result.
32536         * configure: Regenerate.
32537         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
32538         (RDYNAMIC_SPEC): Define.
32539         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
32540
32541 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32542
32543         * configure.ac: Determine Sun ld version numbers.
32544         (comdat_group): Restrict GNU ld version checks to gld.
32545         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
32546         (enable_comdat): Support --enable-comdat.
32547         * configure: Regenerate.
32548         * doc/install.texi (Configuration): Document --enable-comdat.
32549
32550 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32551
32552         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
32553         * config/sol2-gld.h: ... here.
32554         * config.gcc (sparc*-*-solaris2*): Reflect this.
32555         (i[34567]86-*-solaris2*): Use it.
32556
32557 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
32558
32559         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
32560         setup_clocks_p.
32561         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
32562
32563 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32564
32565         PR 42965
32566         * diagnostic.c (diagnostic_initialize): Initialize
32567         some_warnings_are_errors.
32568         (diagnostic_finish): New.
32569         (diagnostic_action_after_output): Call it before exiting.
32570         (diagnostic_report_diagnostic): Do not print message here. Set
32571         some_warnings_are_errors.
32572         * diagnostic.h (diagnostic_context): Delete
32573         issue_warnings_are_errors_message. Add some_warnings_are_errors.
32574         (diagnostic_finish): Declare.
32575         * toplev.c (toplev_main): Call it before exit.
32576
32577 2010-04-09  Jason Merrill  <jason@redhat.com>
32578
32579         PR c++/42623
32580         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
32581         for incomplete type.
32582
32583         PR c++/41788
32584         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
32585         based on a warning flag.
32586
32587 2010-04-09  Richard Guenther  <rguenther@suse.de>
32588
32589         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
32590
32591 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
32592
32593         PR bootstrap/43684
32594         * varasm.c (default_assemble_visibility): Wrap vars that are
32595         set, but unused, by targets without GAS.
32596         * config/rs6000/rs6000.c (paired_emit_vector_compare):
32597         Remove set, but unused, vars.
32598         (rs6000_legitimize_tls_address): Likewise.
32599         (altivec_expand_dst_builtin): Likewise.
32600         * config/darwin.c (machopic_classify_symbol): Likewise.
32601         (machopic_indirection_name): Likewise.
32602
32603 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
32604
32605         * config/i386/i386.md (DWI): New mode iterator.
32606         (S): New mode attribute.
32607         (shift_operand): Ditto.
32608         (shift_immediate_operand): Ditto.
32609         (ashl_input_operand): Ditto.
32610         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
32611         using SDWIM mode iterator.
32612         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32613         pattern from *ashl{di,ti}3_1 and corresponding splitters using
32614         DWI mode iterator.
32615         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
32616         from corresponding peephole2 patterns.
32617         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
32618         and x86_64_shift_adj_1 using SWI48 mode iterator.
32619         (x86_shift<mode>_adj_2): Ditto.
32620         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
32621         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
32622         using SWI48 mode iterator.
32623         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
32624         *ashldi3_cmp_rex64 using SWI mode iterator.
32625         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
32626         *ashldi3_cconly_rex64 using SWI mode iterator.
32627         * config/i386/i386.c (ix86_split_ashl): Update for renamed
32628         x86_shift<mode>_adj_{1,2}.
32629         (ix86_split_ashr): Ditto.
32630         (ix86_split_lshr): Ditto.
32631
32632 2010-04-09  Richard Guenther  <rguenther@suse.de>
32633
32634         * target.h (builtin_conversion): Pass in input and output types.
32635         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
32636         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
32637         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
32638         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
32639
32640         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
32641         Handle AVX modes.
32642         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
32643
32644 2010-04-09  Richard Guenther  <rguenther@suse.de>
32645
32646         PR target/43152
32647         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
32648
32649 2010-04-09  Richard Guenther  <rguenther@suse.de>
32650
32651         * tree-vectorizer.h (struct _stmt_vec_info): Document
32652         that vectype is the type of the LHS.
32653         (supportable_widening_operation, supportable_narrowing_operation):
32654         Get both input and output vector types as arguments.
32655         (vect_is_simple_use_1): Declare.
32656         (get_same_sized_vectype): Likewise.
32657         * tree-vect-loop.c (vect_determine_vectorization_factor):
32658         Set STMT_VINFO_VECTYPE to the vector type of the def.
32659         (vectorizable_reduction): Adjust.
32660         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
32661         Adjust.  Specify the output vector type.
32662         (vect_pattern_recog_1): Adjust.
32663         * tree-vect-stmts.c (get_same_sized_vectype): New function.
32664         (vectorizable_call): Adjust.
32665         (vectorizable_conversion): Likewise.
32666         (vectorizable_operation): Likewise.
32667         (vectorizable_type_demotion): Likewise.
32668         (vectorizable_type_promotion): Likewise.
32669         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
32670         the def.
32671         (vect_is_simple_use_1): New function.
32672         (supportable_widening_operation): Get both input and output
32673         vector types.
32674         (supportable_narrowing_operation): Likewise.
32675         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
32676
32677 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
32678
32679         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
32680         __thiscall and _thiscall as predefined macros.
32681         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
32682         thiscall attribute handling.
32683         (ix86_comp_type_attributes): Likewise.
32684         (ix86_function_regparm): Likewise.
32685         (ix86_return_pops_args): Likewise.
32686         (init_cumulative_args): Likewise.
32687         (find_drap_reg): Likewise.
32688         (ix86_static_chain): Likewise.
32689         (x86_this_parameter): Likewise.
32690         (x86_output_mi_thunk): Likewise.
32691         (ix86_attribute_table): Add description for thiscall attribute.
32692         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
32693         * doc/extend.texi: Add documentation for thiscall.
32694
32695 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32696
32697         PR c++/28584
32698         * c.opt (Wint-to-pointer-cast): Available in C++.
32699         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
32700
32701 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
32702
32703         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
32704         * calls.c (expand_call): Pass the function type to aggregate_value_p.
32705         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
32706         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
32707         function type instead.  Reorder and simplify checks.
32708
32709         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
32710
32711 2010-04-08  Jing Yu  <jingyu@google.com>
32712             Zdenek Dvorak  <ook@ucw.cz>
32713
32714         PR tree-optimization/42720
32715         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
32716         loop unswitch conditions here from ...
32717         (tree_unswitch_single_loop): ... here.
32718
32719 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
32720
32721         * tree-if-conv.c: Fix comments and simplify logic.
32722
32723 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
32724
32725         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
32726         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
32727         (main_tree_if_conversion): Update call to tree_if_conversion.
32728
32729 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32730
32731         PR 42485
32732         * doc/invoke.texi (-b,-V): Delete.
32733         * doc/tm.texi: Do not mention -b.
32734         * gcc.c (display_help): Delete -b and -V.
32735         (process_command): Delete -b and -V.
32736         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
32737
32738 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
32739             Wolfgang Gellerich  <gellerich@de.ibm.com>
32740
32741         Implement target hook for loop unrolling
32742         * target.h (loop_unroll_adjust): Add a new target hook function.
32743         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
32744         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
32745         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
32746         (s390_loop_unroll_adjust): Implement the new target hook for s390.
32747         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
32748         target hook.
32749         (decide_unroll_stupid): Likewise.
32750
32751 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32752
32753         PR target/43643
32754         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
32755
32756 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32757
32758         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
32759         (Specific, *-*-solaris2*): Likewise.
32760         Don't prefer Sun as over GNU as.
32761
32762 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
32763
32764         * config/s390/s390.c (override_options): Adjust the z10 defaults
32765         for max-unroll-times, max-completely-peeled-insns
32766         and max-completely-peel-times.
32767
32768 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32769
32770         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
32771         instructions for z10.
32772         (s390_expand_setmem): Likewise.
32773         (s390_expand_cmpmem): Likewise.
32774
32775 2010-04-08  Richard Guenther  <rguenther@suse.de>
32776
32777         PR tree-optimization/43679
32778         * tree-ssa-pre.c (eliminate): Only propagate copies.
32779
32780 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
32781
32782         PR bootstrap/43681
32783         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
32784         set but not used variable warning.
32785
32786 2010-04-08  Wei Guozhi  <carrot@google.com>
32787
32788         PR target/41653
32789         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
32790         (arm_size_rtx_costs): Call the new function when optimized for size.
32791
32792 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
32793
32794         PR debug/43670
32795         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
32796         op0 is not a MEM, just return NULL instead of assertion
32797         failure.
32798         (discover_nonconstant_array_refs): Don't walk debug stmts.
32799
32800 2010-04-08  Doug Kwan  <dougkwan@google.com>
32801
32802         * configure.ac: Recognize gold and do not use its version number
32803         to test ld features.
32804         * configure: Regenerate.
32805
32806 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
32807
32808         PR middle-end/40815
32809         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
32810         (negate_value): Move code to push elements to broken_up_substracts ...
32811         (eliminate_plus_minus_pair): ... here.  Push operands that have no
32812         negative pair to plus_negates.
32813         (repropagate_negates, init_reassoc, fini_reassoc): Update.
32814
32815 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32816
32817         * doc/install.texi (Configuration): Move description of
32818         --enable-lto, --with-libelf*, --enable-gold from Java section to
32819         general section.
32820
32821         * doc/generic.texi (Working with declarations)
32822         (Function Properties, C and C++ Trees): Fix typos.
32823         * doc/sourcebuild.texi (Top Level): Likewise.
32824
32825 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
32826
32827         PR c/18624
32828         * tree.h (DECL_READ_P): Define.
32829         (struct tree_decl_common): Add decl_read_flag.
32830         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
32831         a set but not used warning.
32832         (merge_decls): Merge DECL_READ_P flag.
32833         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
32834         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
32835         * c-common.c (handle_used_attribute, handle_unused_attribute):
32836         Likewise.
32837         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
32838         New prototypes.
32839         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
32840         New functions.
32841         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
32842         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
32843         c_parser_binary_expression, c_parser_cast_expression,
32844         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
32845         Call default_function_array_read_conversion instead of
32846         default_function_array_conversion where needed.
32847         (c_parser_unary_expression, c_parser_conditional_expression,
32848         c_parser_postfix_expression_after_primary, c_parser_initelt):
32849         Likewise.  Call mark_exp_read where needed.
32850         (c_parser_statement_after_labels, c_parser_asm_operands,
32851         c_parser_typeof_specifier, c_parser_sizeof_expression,
32852         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
32853         where needed.
32854         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
32855         New.
32856         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
32857         (warn_unused_but_set_parameter): Default to warn_unused
32858         && extra_warnings.
32859         * doc/invoke.texi: Document -Wunused-but-set-variable and
32860         -Wunused-but-set-parameter.
32861
32862         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
32863         used count variable.
32864         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
32865         when operandN variables aren't used in the body of the expander
32866         or splitter.
32867         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
32868         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
32869         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
32870         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
32871         FOR_EACH_IMM_USE_ON_STMT): Likewise.
32872         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
32873         * tree.c (PROCESS_ARG): Likewise.
32874
32875 2010-04-07  Simon Baldwin  <simonb@google.com>
32876
32877         * diagnostic.h (diagnostic_override_option_index): New macro to
32878         set a diagnostic's option_index.
32879         * c-tree.h (c_cpp_error): Add warning reason argument.
32880         * opts.c (_warning_as_error_callback): New.
32881         (register_warning_as_error_callback): Store callback for
32882         warnings enabled via enable_warning_as_error.
32883         (enable_warning_as_error): Call callback, minor code tidy.
32884         * opts.h (register_warning_as_error_callback): Declare.
32885         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
32886         response to -Werror=.
32887         (c_common_init_options): Register warning_as_error_callback in opts.c.
32888         * common.opt: Add -Wno-cpp option.
32889         * c-common.c (struct reason_option_codes_t): Map cpp warning
32890         reason codes to gcc option indexes.
32891         * (c_option_controlling_cpp_error): New function, lookup the gcc
32892         option index for a cpp warning reason code.
32893         * (c_cpp_error): Add warning reason argument, call
32894         c_option_controlling_cpp_error for diagnostic_override_option_index.
32895         * doc/invoke.texi: Document -Wno-cpp.
32896
32897 2010-04-07  Richard Guenther  <rguenther@suse.de>
32898
32899         * ipa-reference.c (mark_load): Use get_base_address.
32900         (mark_store): Likewise.
32901
32902         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
32903         inserting GIMPLE_NOPs into the IL.
32904         * tree-ssa-structalias.c (get_constraint_for_component_ref):
32905         Explicitly strip handled components and indirect references.
32906
32907         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
32908         folding address expressions.
32909         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
32910         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
32911         operand_equal_p to compare decls.
32912         (ptr_deref_may_alias_decl_p): Likewise.
32913         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
32914         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
32915         Handle reversed comparison ops.
32916         * tree-sra.c (asm_visit_addr): Use get_base_address.
32917         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
32918         * ipa-reference.c (mark_address): Use get_base_address.
32919
32920 2010-04-07  Richard Guenther  <rguenther@suse.de>
32921
32922         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
32923         Propagate constants everywhere.
32924
32925 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
32926
32927         PR debug/43516
32928         * tree.c (MAX_INT_CACHED_PREC): Define.
32929         (nonstandard_integer_type_cache): New array.
32930         (build_nonstandard_integer_type): Cache results for precision
32931         <= MAX_INT_CACHED_PREC.
32932
32933 2010-04-07  Richard Guenther  <rguenther@suse.de>
32934
32935         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
32936         -fargument-noalias-global, -fargument-noalias-anything): Remove.
32937         * common.opt: Likewise.
32938         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
32939         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
32940         (nonoverlapping_memrefs_p): Likewise.
32941         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
32942         * opts.c (common_handle_option): Handle OPT_fargument_alias,
32943         OPT_fargument_noalias, OPT_fargument_noalias_anything and
32944         OPT_fargument_noalias_global for backward compatibility.
32945
32946 2010-04-07  Richard Guenther  <rguenther@suse.de>
32947
32948         PR tree-optimization/43270
32949         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
32950         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
32951         * tree-ssa-pre.c (phi_translate_1): Adjust.
32952         (fully_constant_expression): Split out vn_reference handling to ...
32953         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
32954         Fold reads from constant strings.
32955         (vn_reference_lookup): Handle fully constant references.
32956         (vn_reference_lookup_pieces): Likewise.
32957         * Makefile.in (expmed.o-warn): Add -Wno-error.
32958
32959 2010-04-07  Martin Jambor  <mjambor@suse.cz>
32960
32961         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
32962
32963 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
32964
32965         PR driver/41594
32966         * gcc.c: Add -static-libstdc++ to list of recognized options.
32967
32968 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32969
32970         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
32971
32972 2010-04-07  Richard Guenther  <rguenther@suse.de>
32973
32974         PR middle-end/42617
32975         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
32976         bases build simple mem attributes to retain points-to information.
32977
32978 2010-04-07  Richard Guenther  <rguenther@suse.de>
32979
32980         PR middle-end/42617
32981         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
32982         preserve points-to related information.
32983
32984 2010-04-07  Richard Guenther  <rguenther@suse.de>
32985
32986         PR middle-end/42617
32987         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
32988         discard plain indirect references.
32989         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
32990         * tree.c (tree_nop_conversion): Likewise.
32991
32992 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
32993
32994         PR debug/43628
32995         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
32996
32997 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
32998
32999         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
33000         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
33001
33002 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33003
33004         * tree-if-conv.c: Fix indentation and comments.
33005
33006 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33007
33008         * tree-if-conv.c: Sort static functions in topological order.
33009
33010 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33011
33012         * tree-if-conv.c: Fix indentation and comments.
33013
33014 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33015
33016         PR middle-end/43519
33017         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
33018         lang_hooks.types.type_for_size instead of
33019         build_nonstandard_integer_type.
33020         When converting an unsigned type to signed, double its precision.
33021         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
33022         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
33023         (graphite_create_new_loop_guard): When ub + 1 wraps around,
33024         use lb <= ub.
33025
33026 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33027
33028         PR middle-end/43519
33029         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
33030         POINTER_PLUS_EXPR for pointer types.
33031
33032 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33033
33034         PR middle-end/43519
33035         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
33036         * graphite-clast-to-gimple.c: Include langhooks.h.
33037         (max_signed_precision_type): New.
33038         (max_precision_type): Takes two types as arguments.
33039         (precision_for_value): New.
33040         (precision_for_interval): New.
33041         (gcc_type_for_interval): New.
33042         (gcc_type_for_value): New.
33043         (gcc_type_for_clast_term): New.
33044         (gcc_type_for_clast_red): New.
33045         (gcc_type_for_clast_bin): New.
33046         (gcc_type_for_clast_expr): Split up into several functions.
33047         (gcc_type_for_clast_eq): Rewritten.
33048         (compute_bounds_for_level): New.
33049         (compute_type_for_level_1): New.
33050         (compute_type_for_level): New.
33051         (gcc_type_for_cloog_iv): Removed.
33052         (gcc_type_for_iv_of_clast_loop): Rewritten.
33053         (graphite_create_new_loop): Compute the lower and upper bound types
33054         with gcc_type_for_clast_expr.
33055         (graphite_create_new_loop_guard): Same.
33056         (find_cloog_iv_in_expr): Removed.
33057         (compute_cloog_iv_types_1): Removed.
33058         (compute_cloog_iv_types): Removed.
33059         (gloog): Do not call compute_cloog_iv_types.
33060         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
33061         GBB_CLOOG_IV_TYPES.
33062         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
33063         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
33064         (GBB_CLOOG_IV_TYPES): Removed.
33065
33066 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33067
33068         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
33069         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
33070         (detect_commutative_reduction): Same.
33071
33072 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33073
33074         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
33075         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
33076         argument.
33077         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
33078         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
33079         (rewrite_commutative_reductions_out_of_ssa): Same.
33080         * passes.c (execute_function_todo): Call verify_ssa for every pass
33081         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
33082         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
33083         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
33084         with an extra argument.
33085         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
33086         verify_ssa only when the extra argument is true.
33087         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
33088         with an extra argument.
33089         (tree_transform_and_unroll_loop): Same.
33090
33091 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33092
33093         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
33094         for all the passes of the LNO having LOOP_CLOSED_SSA.
33095         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
33096         * tree-loop-distribution.c (pass_loop_distribution): Same.
33097         * tree-pass.h (TODO_verify_loops): Removed.
33098         * tree-ssa-loop.c (pass_tree_loop_init): Same.
33099         (pass_lim): Same.
33100         (pass_tree_unswitch): Same.
33101         (pass_predcom): Same.
33102         (pass_vectorize): Same.
33103         (pass_linear_transform): Same.
33104         (pass_graphite_transforms): Same.
33105         (pass_iv_canon): Same.
33106         (pass_complete_unroll): Same.
33107         (pass_complete_unrolli): Same.
33108         (pass_parallelize_loops): Same.
33109         (pass_loop_prefetch): Same.
33110         (pass_iv_optimize): Same.
33111
33112 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
33113
33114         PR middle-end/32824
33115         * passes.c (init_optimization_passes): Move pass_lim before
33116         pass_copy_prop and pass_dce_loop.
33117
33118 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33119
33120         PR target/43667
33121         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
33122         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
33123         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
33124         MULTI_* defines for 4 argument vpermil2p* builtins.
33125
33126 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33127
33128         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
33129         * config/i386/i386.c (x86_maybe_negate_const_int): New.
33130         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
33131         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
33132         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
33133         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
33134         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
33135         Use x86_maybe_negate_const_int to output insn mnemonic.
33136         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
33137         check from instruction predicate.  Update comments.
33138         * config/i386/sync.md (sync_add<mode>): Use
33139         x86_maybe_negate_const_int to output insn mnemonic.
33140
33141 2010-04-06  Jan Hubicka  <jh@suse.cz>
33142
33143         PR tree-optimization/42906
33144         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
33145         IGNORE_SELF argument.  Set visited_control_parents for fully
33146         processed BBs.
33147         (find_obviously_necessary_stmts): Update call of
33148         mark_control_dependent_edges_necessary.
33149         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
33150
33151 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33152
33153         * config/i386/i386.md: Remove comment about 'e' and 'E'
33154         operand modifier.
33155
33156 2010-04-06  Richard Guenther  <rguenther@suse.de>
33157
33158         PR tree-optimization/43627
33159         * tree-vrp.c (extract_range_from_unary_expr): Widenings
33160         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
33161         not varying.
33162
33163 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33164
33165         * BASE-VER: Change to 4.6.0.
33166
33167         PR target/43638
33168         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
33169         handling.
33170
33171 2010-04-06  Richard Guenther  <rguenther@suse.de>
33172
33173         PR middle-end/43661
33174         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
33175
33176 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33177
33178         * doc/invoke.texi (Optimize Options): Document that LTO
33179         won't remove object access purely due to incompatible
33180         declarations.
33181
33182 2010-04-04  Matthias Klose  <doko@ubuntu.com>
33183
33184         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
33185         Initialize variable.
33186
33187 2010-04-03  Richard Guenther  <rguenther@suse.de>
33188
33189         PR middle-end/42509
33190         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
33191         require a non-NULL MEM_OFFSET.
33192
33193 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
33194
33195         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
33196         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
33197         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
33198         config/alpha/predicates.md, config/arm/arm.md,
33199         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
33200         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
33201         config/darwin9.h, config/darwin.c, config/darwin.h,
33202         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
33203         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
33204         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
33205         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
33206         config/mips/mips.md, config/mn10300/mn10300.c,
33207         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
33208         config/rs6000/aix.h, config/rs6000/dfp.md,
33209         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
33210         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
33211         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
33212         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
33213         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
33214         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
33215         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
33216         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
33217         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
33218         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
33219         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
33220         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
33221         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
33222         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
33223         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
33224         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
33225         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
33226         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
33227         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
33228         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
33229         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
33230         opt-functions.awk, opth-gen.awk, params.def, passes.c,
33231         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
33232         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
33233         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
33234         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
33235         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
33236         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
33237         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
33238         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
33239         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
33240         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
33241         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
33242         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
33243         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
33244         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
33245
33246 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33247
33248         PR other/43620
33249         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
33250         * aclocal.m4: Regenerate.
33251
33252 2010-04-02  Richard Guenther  <rguenther@suse.de>
33253
33254         PR tree-optimization/43629
33255         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
33256         if we have seen a constant value.
33257
33258 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
33259
33260         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
33261
33262 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
33263
33264         PR target/43469
33265         * arm.c (legitimize_tls_address): Adjust call to
33266         gen_tls_load_dot_plus_four.
33267         (arm_note_pic_base): New function.
33268         (arm_cannot_copy_insn_p): Use it.
33269         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
33270         constraint.
33271
33272 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33273
33274         PR bootstrap/43531
33275
33276         Revert:
33277         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33278
33279         * Makefile.in ($(out_object_file)): Depend on
33280         gt-$(basename $(notdir $(out_file))).h.
33281
33282 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
33283
33284         * config.gcc (lm32-*-rtems*): Add t-lm32.
33285
33286 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
33287
33288         * config.gcc: Add lm32-*-rtems*.
33289         * config/lm32/rtems.h: New file.
33290
33291 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
33292
33293         PR target/42609
33294         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
33295
33296 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
33297
33298         * dwarf2out.c (output_compilation_unit_header): For
33299         -gdwarf-4 use version 4 instead of version 3.
33300         (output_line_info): For version 4 and above emit additional
33301         maximum ops per insn header field.
33302         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
33303
33304         * dwarf2out.c (is_c_family, is_java): Remove.
33305         (lower_bound_default): New function.
33306         (add_bound_info, gen_descr_array_type_die): Use it.
33307
33308 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
33309
33310         PR debug/43325
33311         * dwarf2out.c (gen_variable_die): Allow debug info for variable
33312         re-declaration when it happens in a function.
33313
33314 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
33315
33316         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
33317         (cgraph_remove_function_insertion_hook): Same.
33318         (cgraph_call_function_insertion_hooks): Same.
33319
33320 2010-04-01  Richard Guenther  <rguenther@suse.de>
33321
33322         PR middle-end/43614
33323         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
33324         and TREE_THIS_VOLATILE.
33325         (copy_ref_info): Likewise.
33326         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
33327         * tree.c (build6_stat): Ignore side-effects of all but arg5
33328         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
33329         TARGET_MEM_REF.
33330
33331 2010-04-01  Richard Guenther  <rguenther@suse.de>
33332
33333         PR tree-optimization/43607
33334         * ipa-type-escape.c (check_call): Do not access non-existing
33335         arguments.
33336
33337 2010-04-01  Richard Guenther  <rguenther@suse.de>
33338
33339         PR middle-end/43602
33340         Revert
33341         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
33342                     Jack Howarth  <howarth@bromo.med.uc.edu>
33343
33344         * tree-profile.c (tree_init_ic_make_global_vars): Make static
33345         variables TLS.
33346
33347 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33348
33349         * doc/install.texi (Prerequisites): Document libelf usability on
33350         IRIX 5/6 and Solaris 2.
33351         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
33352         Update GNU as, GNU ld requirements.
33353         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
33354         Document Sun Studio compiler download.
33355         Update and simplify as, ld recommendations.
33356         (Specific, *-*-solaris2.7): Note obsoletion, removal.
33357
33358 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33359
33360         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
33361         with_tune_32 to pentium4.
33362
33363 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
33364
33365         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
33366
33367 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33368
33369         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
33370         obsoletion, removal.
33371         Update IDO URL.
33372         Document GNU as requirement.
33373         Update configure requirements.
33374         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
33375         Recomment IRIX 6.5.18+.
33376         Document IDF/IDL requirement.
33377         Document GNU as requirement.
33378         Document GNU ld bootstrap failure.
33379         Remove freeware.sgi.com reference.
33380
33381 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33382
33383         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
33384         UNIX V4.0, V5.0 obsoletion, removal.
33385         Remove --with-gc=simple reference.
33386         Update VM requirements during bootstrap.
33387         Remove -oldas bootstrap description.
33388         Update binutils reference.
33389         Remove comparison failure note.
33390
33391 2010-03-31  Richard Guenther  <rguenther@suse.de>
33392             Zdenek Dvorak  <ook@ucw.cz>
33393             Sebastian Pop  <sebastian.pop@amd.com>
33394
33395         PR middle-end/43464
33396         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
33397         with multiple arguments.
33398         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
33399
33400 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33401
33402         * graphite-dependences.c (print_pddr): Call print_pdr with an
33403         extra argument.
33404         * graphite-poly.c (debug_pdr): Add an extra argument for the
33405         verbosity level.
33406         (print_pdr): Same.
33407         (print_pbb_domain): Same.
33408         (print_pbb): Same.
33409         (print_scop_context): Same.
33410         (print_scop): Same.
33411         (print_cloog): Same.
33412         (debug_pbb_domain): Same.
33413         (debug_pbb): Same.
33414         (print_pdrs): Same.
33415         (debug_pdrs): Same.
33416         (debug_scop_context): Same.
33417         (debug_scop): Same.
33418         (debug_cloog): Same.
33419         (print_scop_params): Same.
33420         (debug_scop_params): Same.
33421         (print_iteration_domain): Same.
33422         (print_iteration_domains): Same.
33423         (debug_iteration_domain): Same.
33424         (debug_iteration_domains): Same.
33425         (print_scattering_function): Same.
33426         (print_scattering_functions): Same.
33427         (debug_scattering_function): Same.
33428         (debug_scattering_functions): Same.
33429         * graphite-poly.h (debug_pdr): Update declaration.
33430         (print_pdr): Same.
33431         (print_pbb_domain): Same.
33432         (print_pbb): Same.
33433         (print_scop_context): Same.
33434         (print_scop): Same.
33435         (print_cloog): Same.
33436         (debug_pbb_domain): Same.
33437         (debug_pbb): Same.
33438         (print_pdrs): Same.
33439         (debug_pdrs): Same.
33440         (debug_scop_context): Same.
33441         (debug_scop): Same.
33442         (debug_cloog): Same.
33443         (print_scop_params): Same.
33444         (debug_scop_params): Same.
33445         (print_iteration_domain): Same.
33446         (print_iteration_domains): Same.
33447         (debug_iteration_domain): Same.
33448         (debug_iteration_domains): Same.
33449         (print_scattering_function): Same.
33450         (print_scattering_functions): Same.
33451         (debug_scattering_function): Same.
33452         (debug_scattering_functions): Same.
33453
33454 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33455
33456         * graphite-poly.c (print_scattering_function_1): New.
33457         (print_scattering_function): Call it.
33458         (print_scop_params): Remove spaces at the end of lines.
33459         (print_cloog): New.
33460         (debug_cloog): New.
33461         * graphite-poly.h (print_cloog): Declared.
33462         (debug_cloog): Declared.
33463
33464 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33465
33466         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
33467         in loop->header.
33468         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
33469         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
33470         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
33471         to switch between adding the IV bump in loop->latch or in loop->header.
33472
33473 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33474
33475         * graphite-poly.c (print_scattering_function): Pretty print following
33476         the scoplib format.
33477         (print_pdr): Same.
33478         (print_pbb_domain): Same.
33479         (dump_gbb_cases): Same.
33480         (dump_gbb_conditions): Same.
33481         (print_pdrs): Same.
33482         (print_pbb): Same.
33483         (print_scop_params): Same.
33484         (print_scop_context): Same.
33485         (print_scop): Same.
33486         (print_pbb_body): New.
33487         (lst_indent_to): New.
33488         (print_lst): Start new lines with a #.
33489         * graphite-poly.h (pbb_bb): New.
33490         (pbb_index): Use pbb_bb.
33491         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
33492         disjuncts.
33493         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
33494
33495 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
33496
33497         * dwarf2out.c (size_of_die): For -gdwarf-4 use
33498         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
33499         and 0 instead of 1 for dw_val_class_flag.
33500         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
33501         dw_val_class_range_list, dw_val_class_loc_list,
33502         dw_val_class_lineptr and dw_val_class_macptr, use
33503         DW_FORM_flag_present for dw_val_class_flag and
33504         DW_FORM_exprloc for dw_val_class_loc.
33505         (output_die): For -gdwarf-4 print dw_val_class_loc
33506         size as uleb128 instead of 1 or 2 bytes and don't print
33507         anything for dw_val_class_flag.
33508
33509         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
33510         instead of cselib_lookup following by tweaking locs->setting_insn.
33511
33512         PR bootstrap/43596
33513         * cselib.c (cselib_process_insn): Clear cselib_current_insn
33514         even before returning from label, setjmp call or volatile asm
33515         handling.
33516
33517 2010-03-31  Richard Guenther  <rguenther@suse.de>
33518
33519         PR middle-end/43600
33520         * cgraphunit.c (cgraph_output_in_order): Do not allocate
33521         temporary data on stack.
33522
33523 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33524
33525         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
33526         (PUSHSECTION_ASM_OP): Remove.
33527         (POPSECTION_ASM_OP): Remove.
33528         (PUSHSECTION_FORMAT): Remove.
33529         * config/sol2.h (PUSHSECTION_FORMAT): Define.
33530         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
33531         * config/sol2.c (solaris_output_init_fini): Use it.
33532
33533 2010-03-31  Jie Zhang  <jie@codesourcery.com>
33534
33535         PR 43574
33536         * opt-functions.awk (var_type_struct): Use signed char type
33537         for simple variables.
33538
33539 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33540
33541         * config/sol2.c: Include output.h.
33542         (solaris_assemble_visibility): New function.
33543         * config/t-sol2 (sol2.o): Add output.h dependency.
33544         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
33545         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
33546         Redefine.
33547
33548 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
33549
33550         PR target/43580
33551         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
33552         V2SImode or XFmode on PRE_DEC.
33553
33554         PR debug/43557
33555         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
33556         BLKmode.
33557
33558 2010-03-31  Jie Zhang  <jie@codesourcery.com>
33559
33560         PR 43562
33561         * reload.h (caller_save_initialized_p): Declare.
33562         * toplev.c (backend_init_target): Don't call
33563         init_caller_save but set caller_save_initialized_p to false.
33564         * caller-save.c (caller_save_initialized_p): Define.
33565         (init_caller_save): Check caller_save_initialized_p.
33566         * ira.c (ira): Call init_caller_save if flag_caller_saves.
33567
33568 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33569
33570         PR target/39048
33571         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
33572         and soft-fp/t-softfp to tmake_file.
33573         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
33574         (LIBGCC2_TF_CEXT): Define.
33575         (TF_SIZE): Define.
33576
33577 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
33578
33579         PR debug/42977
33580         * cselib.c (n_useless_values): Document handling of debug locs.
33581         (n_useless_debug_values, n_debug_values): New variables.
33582         (new_elt_loc_list): Don't add to debug values, keep count.
33583         (promote_debug_loc): New.
33584         (cselib_reset_table): Zero new variables.
33585         (entry_and_rtx_equal_p): Promote debug locs.
33586         (discard_useless_locs): Increment n_useless_debug_values for
33587         debug values.
33588         (remove_useless_values): Adjust n_useless_values and n_debug_values
33589         with n_useless_debug_values.
33590         (add_mem_for_addr): Promote debug locs.
33591         (cselib_lookup_mem): Likewise.
33592         (cselib_lookup_addr): Renamed to...
33593         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
33594         (cselib_log_lookup): ... this.  Turn into...
33595         (cselib_lookup_addr): ... new wrapper.
33596         (cselib_lookup_from_insn): New.
33597         (cselib_invalidate_regno): Increment n_useless_debug_values for
33598         debug values.
33599         (cselib_invalidate_mem): Likewise.
33600         (cselib_process_insn): Take n_deleted and n_debug_values into
33601         account to guard remove_useless_value call.
33602         (cselib_finish): Zero n_useless_debug_values.
33603         * cselib.h (cselib_lookup_from_insn): Declare.
33604         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
33605         (sched_analyze_2): Likewise.
33606
33607 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
33608
33609         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
33610         functions.
33611         (adjust_mems): Replace narrowing SUBREG of expression containing
33612         just PLUS, MINUS, MULT and ASHIFT of registers and constants
33613         with operations in the narrower mode.
33614
33615         PR debug/43593
33616         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
33617         regs_invalidated_by_call instead all call_used_reg_set registers.
33618
33619 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
33620
33621         PR middle-end/43430
33622         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
33623         pointer comparisons with types_compatible_p.
33624         * tree-vect-stmts.c (vectorizable_call): Same.
33625         (vectorizable_condition): Same.
33626
33627 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33628
33629         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
33630         stack check if the mask would be zero.
33631
33632 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
33633             Jack Howarth  <howarth@bromo.med.uc.edu>
33634
33635         * tree-profile.c (tree_init_ic_make_global_vars): Make static
33636         variables TLS.
33637
33638 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
33639
33640         PR other/25232
33641         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
33642         and __unordtf2.
33643         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
33644         Include ___unordxf2 and ___unordtf2.
33645         * config/i386/libgcc-glibc.ver: Do not define inheritance from
33646         GCC_4.4.0 here.
33647
33648 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
33649
33650         * config/lm32/t-lm32: New file.
33651         * config.gcc: Use the above file when targetting lm32.
33652
33653 2010-03-28  Duncan Sands  <baldrick@free.fr>
33654
33655         * Makefile.in (PLUGIN_HEADERS): Add except.h.
33656
33657 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
33658
33659         PR middle-end/43431
33660         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
33661         Improve vectorization cost model diagnostic.
33662
33663 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
33664
33665         PR middle-end/43436
33666         * tree-vect-data-refs.c (vect_analyze_data_refs): When
33667         compute_data_dependences_for_loop returns false, early exit
33668         and output an extra diagnostic for the failed data reference
33669         analysis.
33670
33671 2010-03-29  Richard Guenther  <rguenther@suse.de>
33672
33673         PR tree-optimization/43560
33674         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
33675         (can_sm_ref_p): Treat stores to readonly locations as trapping.
33676
33677 2010-03-29  Jie Zhang  <jie@codesourcery.com>
33678
33679         PR 43564
33680         * toplev.c (process_options): Set optimization_default_node
33681         and optimization_current_node.
33682         * opts.c (decode_options): Don't set optimization_default_node
33683         and optimization_current_node.
33684
33685 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
33686
33687         * config/rtems.h: Abandon -qrtems_debug.
33688
33689 2010-03-28  Jan Hubicka  <jh@suse.cz>
33690
33691         PR tree-optimization/43505
33692         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
33693         map should not be copied.
33694
33695 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
33696
33697         PR middle-end/41674
33698         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
33699         cdtors, set DECL_PRESERVE_P.
33700         * ipa.c (cgraph_externally_visible_p): Return true if declaration
33701         should be preseved.
33702
33703 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
33704
33705         PR tree-optimization/43528
33706         * stor-layout.c (place_field): Check that constant fits into
33707         unsigned HWI when skipping calculation of MS bitfield layout.
33708
33709 2010-03-27  Jan Hubicka  <jh@suse.cz>
33710
33711         PR middle-end/43391
33712         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
33713         notice_global_symbol work.
33714
33715 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
33716
33717         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
33718         instead of dwarf2out_decl.
33719         (struct var_loc_node): Remove section_label field.
33720         (dwarf2out_function_decl): New function.
33721         (dwarf2out_var_location): Don't set section_label field.
33722         (dwarf2out_begin_function): Don't empty decl_loc_table here.
33723
33724 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
33725
33726         PR tree-optimization/43544
33727         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
33728         First argument for builtin vectorized function hook is now a
33729         tree to be able to distinguish between machine specific and
33730         standard builtins.
33731         * targhooks.c (default_builtin_vectorized_function): Ditto.
33732         * targhooks.h (default_builtin_vectorized_function): Ditto.
33733         * target.h (struct gcc_target): Ditto.
33734         * tree-vect-stmts.c (vectorizable_function): Ditto.
33735         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
33736         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
33737         Ditto.
33738
33739 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
33740
33741         PR c/43381
33742         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
33743         nested binding iff it is a FUNCTION_DECL.
33744         (store_parm_decls_newstyle): Pass nested=true to bind for
33745         FUNCTION_DECLs amongst parameters.
33746
33747 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
33748
33749         * var-tracking.c (vt_expand_loc_callback): Don't run
33750         cselib_expand_value_rtx_cb in dummy mode if
33751         cselib_dummy_expand_value_rtx_cb returned false.
33752
33753         * var-tracking.c (emit_note_insn_var_location): For one part
33754         notes with offset 0, don't add EXPR_LIST around the location.
33755         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
33756         add_location_or_const_value_attribute): Adjust for that change.
33757
33758         PR debug/43540
33759         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
33760         into first operand and location into second.
33761         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
33762         dw_cfi_oprnd_loc for DW_CFA_expression.
33763         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
33764         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
33765         assume first argument is regnum and second argument is location.
33766
33767 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
33768
33769         PR target/42113
33770         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
33771         of scratch register to DImode.  Split to DImode comparison operator.
33772         Use SImode subreg of scratch register in the multiplication.
33773         (*cmp_sadd_sidi): Ditto.
33774         (*cmp_ssub_si): Ditto.
33775         (*cmp_ssub_sidi): Ditto.
33776
33777 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
33778
33779         PR target/43524
33780         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
33781         Remove invalid assert and wrong comment.
33782
33783 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
33784
33785         PR debug/43516
33786         * flags.h (final_insns_dump_p): New extern.
33787         * final.c (final_insns_dump_p): New variable.
33788         (rest_of_clean_state): Set it before -fdump-final-insns=
33789         dumping, clear afterwards.
33790         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
33791         MEM_ALIAS_SET on MEMs.
33792
33793 2010-03-26  David S. Miller  <davem@davemloft.net>
33794
33795         * configure.ac: Fix sparc GOTDATA_OP bug check.
33796         * configure: Rebuild.
33797
33798 2010-03-26  Alan Modra  <amodra@gmail.com>
33799
33800         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
33801
33802 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33803
33804         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
33805         TLS_SECTION_ASM_FLAG.
33806
33807 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
33808
33809         PR bootstrap/43511
33810         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
33811         Clear first_function_block_is_cold.
33812
33813         PR c/43385
33814         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
33815         argument if the argument is truth_value_p.
33816
33817 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
33818
33819         * config/rs6000/constraints.md: Update copyright year for my changes.
33820
33821         PR target/43484
33822         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
33823         used in reg+reg addressing, swap registers.
33824
33825 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
33826
33827         PR debug/43293
33828         * target.h (struct gcc_target): Add code_end hook.
33829         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
33830         if not yet defined.
33831         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
33832         * toplev.c (compile_file): Call targetm.asm_out.code_end
33833         hook before unwind info/debug info output.
33834         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
33835         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
33836         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
33837         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
33838         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
33839         * config/i386/i386.c (ix86_file_end): Renamed to...
33840         (ix86_code_end): ... this.  Make static.  Don't call
33841         file_end_indicate_exec_stack.  Emit unwind info using
33842         final_start_function/final_end_function.
33843         (darwin_x86_file_end): Remove.
33844         (TARGET_ASM_CODE_END): Define.
33845         * config/i386/i386.h (TARGET_ASM_FILE_END,
33846         NEED_INDICATE_EXEC_STACK): Don't define.
33847         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
33848         (TARGET_ASM_FILE_END): Define to darwin_file_end.
33849         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
33850         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
33851
33852         PR target/43498
33853         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
33854         at the beginning and final_end_function at the end.
33855         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
33856
33857 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33858
33859         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
33860         and Sun as TLS syntax.
33861         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
33862         * configure: Regenerate.
33863         * config.in: Regenerate.
33864         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
33865         (default_elf_asm_named_section): Use it.
33866         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
33867         (i386_output_dwarf_dtprel): Likewise.
33868         (output_addr_const_extra): Likewise.
33869         (output_pic_addr_const): Lowercase @GOTTPOFF.
33870         (output_addr_const_extra): Likewise.
33871         (output_pic_addr_const): Lowercase @GOTNTPOFF.
33872         (output_addr_const_extra): Likewise.
33873         (output_pic_addr_const): Lowercase @INDNTPOFF.
33874         (output_addr_const_extra): Likewise.
33875         (output_pic_addr_const): Lowercase @NTPOFF.
33876         (output_addr_const_extra): Likewise.
33877         (output_pic_addr_const): Lowercase @TPOFF.
33878         (output_addr_const_extra): Likewise.
33879         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
33880         (*tls_global_dynamic_64): Likewise.
33881         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
33882         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
33883
33884         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
33885         (ASM_OUTPUT_TLS_COMMON): Use it.
33886         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
33887
33888         PR target/38118
33889         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
33890         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
33891         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
33892         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
33893         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
33894         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
33895
33896 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33897
33898         * config/i386/i386.c (override_options): Don't accept
33899         -mtls-dialect=sun any longer.
33900         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
33901         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
33902         (*tls_local_dynamic_base_32_sun): Likewise.
33903         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
33904
33905 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
33906
33907         PR debug/43508
33908         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
33909         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
33910
33911         PR debug/43479
33912         * ira.c (adjust_cleared_regs): New function.
33913         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
33914
33915         PR debug/19192
33916         PR debug/43479
33917         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
33918         from gimple_block.
33919         * expr.c (expand_expr_real): Restore previous
33920         curr_insn_source_location and curr_insn_block after
33921         expand_expr_real_1 call.
33922         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
33923         instead of expand_expr_real_1.
33924
33925 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
33926
33927         PR rtl-optimization/43413
33928         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
33929         hard regs too.
33930
33931 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
33932
33933         PR target/43348
33934         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
33935         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
33936
33937 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
33938
33939         * config/i386/i386.c (ix86_target_string): Add -mfma.
33940         Fix a typo in comment.
33941
33942 2010-03-22  Mike Stump  <mikestump@comcast.net>
33943
33944         PR target/23071
33945         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
33946         Don't overly align based upon packed packed fields.
33947
33948 2010-03-22  Jason Merrill  <jason@redhat.com>
33949
33950         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
33951         Use () rather than [], and move before the element type.
33952
33953 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33954
33955         * doc/configfiles.texi (Configuration Files): Removed
33956         fixinc/Makefile*, intl/Makefile.*.
33957         * doc/makefile.texi: Fixed markup. Abstract from version
33958         control system used.
33959         (Makefile): Removed obsolete java/parse.y example.
33960         * doc/sourcebuild.texi: Likewise.
33961         (Top Level): Added config, gnattools, libdecnumber, libgcc,
33962         libgomp, libssp.  Removed fastjar.
33963         (Miscellaneous Docs): Clarify location.
33964         Added COPYING3, COPYING3.LIB.
33965         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
33966
33967 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33968
33969         PR target/38085
33970         * config/i386/i386.c (x86_function_profiler)
33971         [!NO_PROFILE_COUNTERS]: Fix typo.
33972         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
33973         instead of callq.
33974
33975 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
33976             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33977
33978         * doc/sourcebuild.texi (Test Directives): Split into six
33979         subsections, with most of the current text in new subsections
33980         Directives, Selectors, and Final Actions.
33981         (Directives): Split list of test directives into multiple
33982         subsubsections.
33983         (Selectors): Describe use and syntax of selectors.
33984         (Effective-Target Keywords): Describe all existing keywords.
33985         (Add Options): Describe features for dg-add-options.
33986         (Require Support): Describe variants of dg-require-support.
33987         (Final Actions): Describe commands to use in dg-final.
33988
33989 2010-03-22  Michael Matz  <matz@suse.de>
33990
33991         PR middle-end/43475
33992         * recog.c (validate_replace_rtx_group): Replace also in
33993         REG_EQUAL and REG_EQUIV notes.
33994
33995 2010-03-22  Richard Guenther  <rguenther@suse.de>
33996
33997         PR tree-optimization/43390
33998         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
33999         sure vector extracts are type correct.
34000
34001 2010-03-22  Richard Guenther  <rguenther@suse.de>
34002
34003         PR middle-end/40106
34004         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
34005         x * sqrt (x) even when optimizing for size if the target
34006         has native support for sqrt.
34007
34008 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
34009
34010         * varasm.c (make_decl_rtl_for_debug): Also clear
34011         flag_mudflap for the duration of make_decl_rtl call.
34012
34013         PR debug/43443
34014         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
34015         locs from preserved VALUEs.
34016
34017 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34018
34019         PR middle-end/42718
34020         * pa.md (movmemsi): Set align to one if zero.
34021         (movmemdi): Likewise.
34022
34023 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
34024
34025         PR target/42321
34026         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
34027         with their corresponding prologue pushes.
34028
34029 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
34030
34031         PR target/43156
34032         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
34033         at the begining or end.
34034         (spu_expand_epilogue): Likewise.
34035
34036 2010-03-20  Richard Guenther  <rguenther@suse.de>
34037
34038         PR rtl-optimization/43438
34039         * combine.c (make_extraction): Properly zero-/sign-extend an
34040         extraction of the low part of a CONST_INT.  Also handle
34041         CONST_DOUBLE.
34042
34043 2010-03-19  Mike Stump  <mikestump@comcast.net>
34044
34045         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
34046         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
34047         (override_options): Use SUBTARGET32_DEFAULT_CPU.
34048
34049 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
34050
34051         PR c/43211
34052         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
34053         an error.
34054
34055 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
34056
34057         PR rtl-optimization/42258
34058         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
34059         use that may match DEF.
34060
34061         PR target/40697
34062         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
34063         the cost of loading the constant rather than assuming
34064         COSTS_N_INSNS (1).
34065         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
34066         outer code is AND, do the same tests as the andsi3 expander and
34067         return COSTS_N_INSNS (1) if and is cheap.
34068
34069         * optabs.c (avoid_expensive_constant): Fix formatting.
34070
34071 2010-03-19  Michael Matz  <matz@suse.de>
34072
34073         PR c++/43116
34074         * attribs.c (decl_attributes): When rebuilding a function pointer
34075         type use the same qualifiers as the original pointer type.
34076
34077 2010-03-19  Martin Jambor  <mjambor@suse.cz>
34078
34079         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
34080         and is_gimple_ip_invariant_address.
34081
34082 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34083
34084         Revert
34085         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34086
34087         * config/arm/arm.c (arm_override_options): Turn off
34088         flag_dwarf2_cfi_asm for AAPCS variants.
34089
34090 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34091
34092         PR target/43399
34093         * config/arm/arm.c (emit_multi_reg_push): Update comments.
34094         Use PRE_MODIFY instead of PRE_DEC.
34095         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
34096         (vfp_emit_fstmd): Likewise.
34097
34098 2010-03-19  Michael Matz  <matz@suse.de>
34099
34100         PR target/43305
34101         * builtins.c (expand_builtin_interclass_mathfn,
34102         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
34103         if that fails.
34104
34105 2010-03-19  Richard Guenther  <rguenther@suse.de>
34106
34107         PR tree-optimization/43415
34108         * tree-ssa-pre.c (phi_translate): Split out worker to ...
34109         (phi_translate_1): ... this.
34110         (phi_translate): Move all caching here.  Cache all NARY
34111         and REFERENCE translations.
34112
34113 2010-03-19  David S. Miller  <davem@davemloft.net>
34114
34115         With help from Eric Botcazou.
34116         * config/sparc/sparc.c: Include dwarf2out.h.
34117         (emit_pic_helper): Delete.
34118         (pic_helper_symbol_name): Delete.
34119         (pic_helper_emitted_p): Delete.
34120         (pic_helper_needed): New.
34121         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
34122         (get_pc_thunk_name): New.
34123         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
34124         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
34125         Set pic_helper_needed to true.  Don't call emit_pic_helper.
34126         (sparc_expand_prologue): Update load_pic_register call.
34127         (sparc_output_mi_thunk): Likewise.
34128         (sparc_file_end): Emit a hidden comdat symbol for the PIC
34129         thunk if possible.  Output CFI information as needed.
34130
34131 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
34132             Jack Howarth  <howarth@bromo.med.uc.edu>
34133
34134         PR target/36399
34135         * config/i386/i386.h: Fix ABI on darwin x86-32.
34136
34137 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
34138
34139         * tree.h: Declare make_decl_rtl_for_debug.
34140         * varasm.c (make_decl_rtl_for_debug): New.
34141         * dwarf2out.c (rtl_for_decl_location): Call it.
34142         * cfgexpand.c (expand_debug_expr): Call it.
34143
34144 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34145
34146         PR bootstrap/43399
34147         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
34148         mem_mode.
34149
34150         PR bootstrap/43403
34151         * var-tracking.c (vt_init_cfa_base): Do nothing if
34152         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
34153
34154 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
34155
34156         PR debug/42873
34157         * var-tracking.c (canonicalize_vars_star): New.
34158         (dataflow_post_merge_adjust): Use it.
34159
34160 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34161
34162         PR debug/43058
34163         * var-tracking.c (non_suitable_const): New function.
34164         (add_uses): For DEBUG_INSNs with constants, don't record any
34165         value, instead just the constant value itself.
34166         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
34167         is not VAR_LOC_UNKNOWN_P, set var to the constant.
34168         (emit_notes_in_bb): Likewise.
34169         (emit_note_insn_var_location): For onepart variables if
34170         cur_loc is a VOIDmode constant, use DECL_MODE.
34171
34172 2010-03-18  Martin Jambor  <mjambor@suse.cz>
34173
34174         PR middle-end/42450
34175         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
34176         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
34177         all non-clones.  Moved call redirection...
34178         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
34179         (cgraph_materialize_all_clones): Dispose of all
34180         combined_args_to_skip bitmaps.
34181         (verify_cgraph_node): Do not check for edges pointing to wrong
34182         nodes in inline clones.
34183         * tree-inline.c (copy_bb): Call
34184         cgraph_redirect_edge_call_stmt_to_callee.
34185         * ipa.c (cgraph_remove_unreachable_nodes): Call
34186         cgraph_node_remove_callees even when there are used clones.
34187
34188 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
34189
34190         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
34191
34192 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
34193
34194         PR target/43383
34195         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
34196         for 32bit.
34197
34198 2010-03-18  Michael Matz  <matz@suse.de>
34199
34200         PR middle-end/43419
34201         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
34202         into sqrt(x) if we need to preserve signed zeros.
34203
34204 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
34205             Eric Botcazou  <ebotcazou@adacore.com>
34206
34207         PR rtl-optimization/43360
34208         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
34209         note if we don't know its invariant status.
34210
34211 2010-03-18  Michael Matz  <matz@suse.de>
34212
34213         PR tree-optimization/43402
34214         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
34215         PHI chains of ssa names registered for update.
34216
34217 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
34218
34219         PR target/42427
34220         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
34221         non-offsettable and pre_modify update addressing.
34222         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
34223         and "2" alternatives "#".
34224         (*movdd_softfloat32): Make all alternatives "#";
34225         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
34226         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
34227         (*movdf_softfloat32): Make all alternatives "#";
34228         (movdi): Use the new DIFD mode iterator to create a common splitter
34229         for movdi, movdf and movdd patterns.
34230
34231 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
34232
34233         * common.opt (dumpdir): Remove redundant tab.
34234
34235 2010-03-17  Martin Jambor  <mjambor@suse.cz>
34236
34237         PR tree-optimization/43347
34238         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
34239         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
34240
34241 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
34242
34243         PR rtl-optimization/42216
34244         * regrename.c (create_new_chain): New function, broken out from...
34245         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
34246         appending a use to an empty chain.
34247         (build_def_use): Remove previous changes that convert OP_INOUT to
34248         OP_OUT operands; instead detect the case where an OP_INOUT operand
34249         uses a previously untracked register and create an empty chain for it.
34250
34251 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34252
34253         * doc/extend.texi (Function Attributes): Rewrite unfinished
34254         sentence in ms_abi documentation.
34255
34256 2010-03-17  Alan Modra  <amodra@gmail.com>
34257
34258         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
34259         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
34260         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
34261         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
34262
34263 2010-03-16  Richard Henderson  <rth@redhat.com>
34264
34265         PR middle-end/43365
34266         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
34267         (lower_try_finally): Save and restore eh_seq around the expansion
34268         of the try-finally.
34269
34270 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
34271
34272         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
34273         statements before splitting block.
34274
34275 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34276
34277         * doc/sourcebuild.texi (Testsuites): Fix markup.
34278         Use pathnames relative to gcc/testsuite.
34279         (Test Directives): Move description of how timeout is determined.
34280         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
34281         (C Tests): Correct gcc.misc-tests directory.
34282         Framework tests now live in gcc.test-framework.
34283
34284 2010-03-16  Richard Guenther  <rguenther@suse.de>
34285
34286         PR middle-end/43379
34287         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
34288         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
34289
34290 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
34291             Alexandre Oliva  <aoliva@redhat.com>
34292
34293         PR tree-optimization/42917
34294         * lambda-code.c (remove_iv): Skip debug statements.
34295         (lambda_loopnest_to_gcc_loopnest): Likewise.
34296         (not_interesting_stmt): Debug statements are not interesting.
34297
34298 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
34299
34300         PR debug/43051
34301         PR debug/43092
34302         * cselib.c (cselib_preserve_constants,
34303         cfa_base_preserved_val): New static variables.
34304         (preserve_only_constants): New function.
34305         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
34306         clear its REG_VALUES.  If cselib_preserve_constants, don't
34307         empty the whole hash table, but preserve there VALUEs with constants,
34308         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
34309         (cselib_preserve_cfa_base_value): New function.
34310         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
34311         (cselib_init): Change argument to int bitfield.  Set
34312         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
34313         is in it.
34314         (cselib_finish): Clear cselib_preserve_constants and
34315         cfa_base_preserved_val.
34316         * cselib.h (enum cselib_record_what): New enum.
34317         (cselib_init): Change argument to int.
34318         (cselib_preserve_cfa_base_value): New prototype.
34319         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
34320         * dse.c (dse_step1): Likewise.
34321         * cfgcleanup.c (thread_jump): Likewise.
34322         * sched-deps.c (sched_analyze): Likewise.
34323         * gcse.c (local_cprop_pass): Likewise.
34324         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
34325         If FN is non-NULL, call the callback always and whenever it returns
34326         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
34327         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
34328         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
34329         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
34330         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
34331         * var-tracking.c: Include recog.h.
34332         (bb_stack_adjust_offset): Remove.
34333         (vt_stack_adjustments): Don't call it, instead just gather the
34334         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
34335         (adjust_stack_reference): Remove.
34336         (compute_cfa_pointer): New function.
34337         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
34338         (struct adjust_mem_data): New type.
34339         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
34340         functions.
34341         (get_address_mode): New function.
34342         (replace_expr_with_values): Use it.
34343         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
34344         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
34345         (adjust_sets): Remove.
34346         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
34347         Use get_address_mode.
34348         (get_adjusted_src): Remove.
34349         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
34350         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
34351         (add_with_sets): Don't call adjust_sets.
34352         (fp_setter, vt_init_cfa_base): New functions.
34353         (vt_initialize): Change return type to bool.  Move most of pool etc.
34354         initialization to the beginning of the function from end.  Pass
34355         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
34356         If !frame_pointer_needed, call vt_stack_adjustment before mos
34357         vector is filled, call vt_init_cfa_base if argp/framep has been
34358         eliminated to sp.  If frame_pointer_needed and argp/framep has
34359         been eliminated to hard frame pointer, set
34360         hard_frame_pointer_adjustment and call vt_init_cfa_base after
34361         encountering fp setter in the prologue.  For MO_ADJUST, call
34362         log_op_type before pusing the op into mos vector, not afterwards.
34363         Call adjust_insn before cselib_process_insn/add_with_sets,
34364         call cancel_changes (0) afterwards.
34365         (variable_tracking_main_1): Adjust for vt_initialize calling
34366         vt_stack_adjustments and returning whether it succeeded or not.
34367
34368 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
34369
34370         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
34371         debug statements.
34372
34373 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
34374
34375         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
34376         has been set.
34377         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
34378         drap_reg has not been set.
34379
34380 2010-03-15  Michael Matz  <matz@suse.de>
34381
34382         PR middle-end/43300
34383         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
34384         use it to expand block copies.
34385         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
34386         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
34387         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
34388
34389 2010-03-15  Richard Guenther  <rguenther@suse.de>
34390
34391         PR tree-optimization/43367
34392         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
34393         elimination check.
34394
34395 2010-03-15  Richard Guenther  <rguenther@suse.de>
34396
34397         PR tree-optimization/43317
34398         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
34399
34400 2010-03-15  Martin Jambor  <mjambor@suse.cz>
34401
34402         PR tree-optimization/43141
34403         * tree-sra.c (create_abstract_origin): New function.
34404         (modify_function): Call create_abstract_origin.
34405
34406 2010-03-15  Chris Demetriou  <cgd@google.com>
34407
34408         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
34409         wasn't copied.
34410
34411 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34412
34413         PR middle-end/43354
34414         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
34415         call insert_out_of_ssa_copy for default definitions.
34416
34417 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34418
34419         * graphite-clast-to-gimple.c (my_long_long): Defined.
34420         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
34421         * graphite-sese-to-poly.c (my_long_long): Defined.
34422         (scop_ivs_can_be_represented): Use it.
34423
34424 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34425
34426         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
34427         graphite-max-bbs-per-function, and loop-block-tile-size.
34428         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
34429         with "maximum".
34430         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
34431
34432 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34433
34434         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
34435         forward declaration.
34436         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
34437         (add_upper_bounds_from_estimated_nit): New.
34438         (build_loop_iteration_domains): Use it.
34439
34440 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34441
34442         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
34443
34444 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34445
34446         PR middle-end/43306
34447         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
34448         should be an INTEGER_CST.  Also handle CASE_CONVERT.
34449
34450 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34451
34452         * graphite.c (graphite_initialize): To bound the number of bbs per
34453         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
34454         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
34455         * doc/invoke.texi: Document it.
34456
34457 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34458
34459         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
34460         * graphite-sese-to-poly.h (build_poly_scop): Same.
34461
34462 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34463
34464         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
34465         the number of parameters in the scop.  Use as an upper bound
34466         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
34467         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
34468         * doc/invoke.texi: Document it.
34469
34470 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
34471
34472         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
34473         * doc/c-tree.texi: Remove.
34474         * doc/generic.texi: Merge c-tree.texi here.
34475         * doc/gccint.texi (Trees): Remove menu entry.
34476         (c-tree.texi): Remove @include.
34477         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
34478         * doc/languages.texi (Reading RTL): Ditto.
34479
34480 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
34481
34482         PR target/42869
34483         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
34484
34485 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
34486
34487         PR middle-end/42431
34488         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
34489         code added to work around reload clobbering CONST insns.
34490
34491 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
34492
34493         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
34494         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
34495         (cselib_preserve_only_values): Remove retain argument, don't
34496         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
34497         * cselib.h (cselib_preserve_only_values): Remove retain argument.
34498         * var-tracking.c (micro_operation): Move insn field before union.
34499         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
34500         (struct variable_tracking_info_def): Remove n_mos field, change
34501         mos into a vector of micro_operations.
34502         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
34503         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
34504         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
34505         changing into a vector.
34506         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
34507         come before all other uops generated by add_stores.
34508         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
34509         argument removal.
34510         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
34511         a vector.  Run just one pass over the bbs instead of separate counting
34512         and computation phase.
34513         (vt_finalize): Free VTI (bb)->mos vector instead of array.
34514
34515         PR debug/43329
34516         * tree-inline.c (remap_decls): Put old_var rather than origin_var
34517         into *nonlocalized_list vector.
34518         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
34519         even if origin is non-NULL.
34520         (gen_variable_die): Likewise.
34521         (process_scope_var): Don't change origin.
34522         (gen_decl_die): Likewise.
34523         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
34524         before adding new edges instead of after it, fix moving over
34525         debug stmts.
34526
34527 2010-03-11  David S. Miller  <davem@davemloft.net>
34528
34529         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
34530         of four.
34531         * configure: Rebuild.
34532
34533 2010-03-11  Martin Jambor  <mjambor@suse.cz>
34534
34535         PR tree-optimization/43257
34536         * tree.c (assign_assembler_name_if_neeeded): New function.
34537         (free_lang_data_in_cgraph): Assembler name assignment moved to the
34538         above new function.
34539         * tree.h (assign_assembler_name_if_neeeded): Declare.
34540         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
34541         the function if needed.
34542
34543 2010-03-11  Chris Demetriou  <cgd@google.com>
34544
34545         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
34546         include/stdint-gcc.h, and include/stdint.h world-readable.
34547
34548 2010-03-11  Richard Guenther  <rguenther@suse.de>
34549
34550         PR tree-optimization/43255
34551         * tree-vrp.c (process_assert_insertions_for): Do not insert
34552         asserts for trivial conditions.
34553
34554 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34555
34556         PR tree-optimization/43280
34557         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
34558         generation.  Move calculation of size out of the if branch.
34559         (find_bswap): Modify compare number generation.
34560
34561 2010-03-11  Richard Guenther  <rguenther@suse.de>
34562
34563         PR lto/43200
34564         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
34565         (input_gimple_stmt): Fixup handled component types during
34566         operand read.  Also fix up decls in ADDR_EXPRs.
34567
34568 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
34569
34570         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
34571         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
34572
34573 2010-03-10  Jan Hubicka  <jh@suse.cz>
34574
34575         PR c/43288
34576         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
34577         * varasm.c (get_variable_section): Don't do that here...
34578         (make_decl_rtl): ... and here.
34579         (do_assemble_alias): Produce decl RTL.
34580         (assemble_alias): Likewise.
34581
34582 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
34583
34584         PR debug/43290
34585         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
34586         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
34587         of fde->vdrap_reg.
34588         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
34589         (based_loc_descr): Only express drap or vdrap regno based expressions
34590         using DW_OP_fbreg when not optimizing.
34591         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
34592         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
34593         REG_CFA_SET_VDRAP note.
34594
34595 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
34596
34597         PR tree-optimization/43236
34598         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
34599         error in calculation of base address in reverse iteration case.
34600         (generate_builtin): Take number of latch executions if the statement
34601         is in the latch.
34602
34603 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
34604
34605         PR middle-end/42859
34606         * tree-eh.c: Include pointer-set.h.
34607         (lower_eh_dispatch): Filter out duplicate case labels and
34608         remove the unneeded edge when the label is unused.  Return
34609         true when some edges are removed.
34610         (execute_lower_eh_dispatch): When any lowering resulted in
34611         removing an edge, also delete unreachable blocks.
34612
34613 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
34614
34615         PR bootstrap/43287
34616         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
34617         UNSPEC_MACHOPIC_OFFSET.
34618
34619 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
34620
34621         PR target/43294
34622         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
34623         (m68k_delegitimize_address): New function.
34624
34625 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
34626
34627         PR debug/43299
34628         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
34629
34630         PR debug/43299
34631         * var-tracking.c (adjust_sets): New function.
34632         (count_with_sets, add_with_sets): Use it.
34633         (get_adjusted_src): New inline function.
34634         (add_stores): Use it.
34635
34636         PR debug/43304
34637         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
34638         call cselib_dummy_expand_value_rtx_cb instead of
34639         cselib_expand_value_rtx_cb.
34640
34641         PR debug/43293
34642         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
34643         * config/i386/i386.c: Include debug.h and dwarf2out.h.
34644         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
34645         and .cfi_endproc around the pic thunks.
34646         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
34647         all queued unwind info register saves are saved before the call.
34648         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
34649         considered as sp-=4 for unwind info and the pop as sp+=4 which
34650         also clobbers dest, but doesn't actually restore it.
34651
34652         PR debug/43290
34653         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
34654         RTX_FRAME_RELATED_P.
34655
34656 2010-03-09  Jie Zhang  <jie@codesourcery.com>
34657
34658         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
34659         whitespaces in output template.
34660
34661 2010-03-09  Jie Zhang  <jie@codesourcery.com>
34662
34663         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
34664         out array boundary.
34665
34666 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
34667
34668         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
34669         builtins.exp in a separate job.
34670
34671 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34672
34673         * graphite-sese-to-poly.c (add_param_constraints): Use
34674         lower_bound_in_type and upper_bound_in_type.
34675
34676 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34677
34678         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
34679         instead of unsigned_type_node.
34680
34681 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34682             Reza Yazdani  <reza.yazdani@amd.com>
34683
34684         PR middle-end/43065
34685         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
34686         on pointer type parameters.
34687
34688 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
34689
34690         PR middle-end/42644
34691         PR middle-end/42130
34692         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
34693         handle conversions from pointer to integers.
34694         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
34695         induction variable, to be able to work with code generated by CLooG.
34696         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
34697         (build_poly_scop): Bail out if we cannot codegen a loop.
34698
34699 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
34700
34701         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
34702         code generation with gloog_error.
34703
34704 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34705
34706         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
34707         Call fold_convert on all the returned values.
34708         (expand_scalar_variables_expr): Pass to
34709         expand_scalar_variables_ssa_name the type of the resulting expression.
34710
34711 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34712
34713         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
34714         ppl_min_for_le_pointset.
34715         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
34716         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
34717
34718 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34719
34720         * graphite-dependences.c (map_into_dep_poly): Removed.
34721         (dependence_polyhedron_1): Use combine_context_id_scat.
34722
34723 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34724
34725         * graphite-poly.h (struct poly_scattering): Add layout documentation.
34726         (struct poly_bb): Same.
34727         (combine_context_id_scat): New.
34728
34729 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34730
34731         PR middle-end/42326
34732         * sese.c (name_defined_in_loop_p): Return false for default
34733         definitions.
34734
34735 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34736
34737         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
34738         and clean up the logic.
34739
34740 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
34741
34742         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
34743         early return.
34744
34745 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
34746
34747         * var-tracking.c (remove_cselib_value_chains): Define only for
34748         ENABLE_CHECKING.
34749         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
34750         delete_slot_part, emit_notes_for_differences_1): Don't call
34751         remove_cselib_value_chains here.
34752         (set_slot_part, emit_notes_for_differences_2): Don't call
34753         add_cselib_value_chains here.
34754         (preserved_values): New vector.
34755         (preserve_value): New function.
34756         (add_uses, add_stores, vt_add_function_parameters): Use it
34757         instead of cselib_preserve_value.
34758         (changed_values_stack): New vector.
34759         (check_changed_vars_0): New function.
34760         (check_changed_vars_1, check_changed_vars_2): Use it.
34761         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
34762         changed_values_stack VALUEs.
34763         (vt_emit_notes): For all preserved_values call
34764         add_cselib_value_chains.  If ENABLE_CHECKING call
34765         remove_cselib_value_chains before verifying value_chains is empty.
34766         Initialize and free changed_values_stack.
34767         (vt_initialize): Initialize preserved_values.
34768         (vt_finalize): Free preserved_values.
34769
34770 2010-03-08  Richard Guenther  <rguenther@suse.de>
34771
34772         PR tree-optimization/43269
34773         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
34774         region detection.
34775
34776 2010-03-08  Martin Jambor  <mjambor@suse.cz>
34777
34778         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
34779         (ipa_is_param_called): Removed.
34780         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
34781         (ipa_print_node_params): Do not print the called flag.
34782         (ipa_write_node_info): Do not stream the called flag.
34783         (ipa_read_node_info): Likewise.
34784
34785 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
34786
34787         PR debug/43176
34788         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
34789         * cselib.c (struct expand_value_data): Add dummy field.
34790         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
34791         dummy to false.
34792         (cselib_dummy_expand_value_rtx_cb): New function.
34793         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
34794         any rtl.
34795         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
34796         * var-tracking.c: Include pointer-set.h.
34797         (variable): Change n_var_parts to char from int.  Add
34798         cur_loc_changed and in_changed_variables fields.
34799         (variable_canonicalize): Remove.
34800         (shared_var_p): New inline function.
34801         (unshare_variable): Maintain cur_loc_changed and
34802         in_changed_variables fields.  If var was in changed_variables,
34803         replace it there with new_var.  Just copy cur_loc instead of
34804         resetting it to something else.
34805         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
34806         (dataflow_set_union): Don't call variable_canonicalize.
34807         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
34808         of their DEBUG_EXPR_TREE_DECLs.
34809         (canonicalize_loc_order_check): Verify that cur_loc is NULL
34810         and in_changed_variables and cur_loc_changed is false.
34811         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
34812         and cur_loc_changed.  Don't update cur_loc here.
34813         (variable_merge_over_src): Don't call variable_canonicalize.
34814         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
34815         removing loc that is equal to cur_loc, clear cur_loc,
34816         set cur_loc_changed and ensure variable_was_changed is called.
34817         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
34818         compare pointers in cur_loc check, if it is equal to loc,
34819         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
34820         (variable_different_p): Remove compare_current_location argument,
34821         don't compare cur_loc.
34822         (dataflow_set_different_1): Adjust variable_different_p caller.
34823         (variable_was_changed): If dv had some var in changed_variables
34824         already, reset in_changed_variables flag for it and propagate
34825         cur_loc_changed over to the new variable.  On empty var
34826         always set cur_loc_changed.  Set in_changed_variables on whatever
34827         var is added to changed_variables.
34828         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
34829         Use shared_var_p.  When removing loc that is equal to cur_loc,
34830         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
34831         end, don't set it to something else, just call variable_was_changed.
34832         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
34833         loc being removed, clear cur_loc and set cur_loc_changed.
34834         Set cur_loc_changed if all locations have been removed.
34835         (struct expand_loc_callback_data): New type.
34836         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
34837         allocated.  Always create SUBREGs if simplify_subreg failed.
34838         Prefer to use cur_loc, when that fails and still in
34839         changed_variables (and seen first time) recompute it.  Set
34840         cur_loc_changed of variables which had to change cur_loc and
34841         compute elcd->cur_loc_changed if any of the subexpressions used
34842         had to change cur_loc.
34843         (vt_expand_loc): Adjust to pass arguments in
34844         expand_loc_callback_data structure.
34845         (vt_expand_loc_dummy): New function.
34846         (emitted_notes): New variable.
34847         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
34848         that weren't used for any other decl in current
34849         emit_notes_for_changes call call vt_expand_loc_dummy to update
34850         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
34851         first loc_chain location if NULL before.  Always use just
34852         cur_loc instead of first loc_chain location.  When cur_loc_changed
34853         is false, when not --enable-checking=rtl just don't emit any note.
34854         When rtl checking, compute the note and assert it is the same
34855         as previous note.  Clear cur_loc_changed and in_changed_variables
34856         at the end before removing from changed_variables.
34857         (check_changed_vars_3): New function.
34858         (emit_notes_for_changes): Traverse changed_vars to call
34859         check_changed_vars_3 on each changed var.
34860         (emit_notes_for_differences_1): Clear cur_loc_changed and
34861         in_changed_variables.  Recompute cur_loc of new_var.
34862         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
34863         (vt_emit_notes): Initialize and destroy emitted_notes.
34864
34865 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
34866
34867         PR rtl-optimization/42220
34868         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
34869         Use verify_reg_tracked to determine if we should use OP_OUT rather
34870         than OP_INOUT.
34871         (build_def_use): If we see an in-out operand for a register that we
34872         know nothing about, treat is an output if possible, fail the block if
34873         not.
34874
34875 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
34876
34877         PR debug/42897
34878         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
34879         permanently.
34880
34881 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
34882
34883         PR debug/42897
34884         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
34885         uses of relevant DEFs that are dead outside the loop too.
34886
34887 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
34888
34889         * var-tracking.c (dataflow_set_merge): Swap src and src2.
34890         Reverted:
34891         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
34892         PR debug/41371
34893         * var-tracking.c (values_to_unmark): New variable.
34894         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
34895         values_to_unmark vector.  Moved body to...
34896         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
34897         instead queue it into values_to_unmark vector.
34898         (vt_find_locations): Free values_to_unmark vector.
34899
34900 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
34901
34902         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
34903         (site.exp): Export them when plugins are enabled.
34904
34905 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
34906
34907         PR middle-end/42326
34908         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
34909         that contain scevs.
34910         (chrec_fold_multiply): Same.
34911
34912 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
34913
34914         PR c/43248
34915         * c-decl.c (build_compound_literal): Return early if init is
34916         an error_mark_node.
34917
34918 2010-03-04  Martin Jambor  <mjambor@suse.cz>
34919
34920         PR tree-optimization/43164
34921         PR tree-optimization/43191
34922         * tree-sra.c (type_consists_of_records_p): Reject records with
34923         zero-size bit-fields at the end.
34924
34925 2010-03-04  Mike Stump  <mikestump@comcast.net>
34926
34927         * Makefile.in (TAGS): Remove *.y.
34928
34929 2010-03-04  Richard Guenther  <rguenther@suse.de>
34930
34931         PR tree-optimization/40761
34932         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
34933         in reverse order.
34934         (my_rev_post_order_compute): New function.
34935         (init_pre): Call it.
34936
34937 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
34938
34939         PR middle-end/43209
34940         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
34941         decrease the cost of an IV candidate when the cost is infinite.
34942
34943 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34944
34945         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
34946         Use '3DNow!' for the extension of that name, ensure normal space
34947         after the string.
34948         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
34949
34950 2010-03-03  Jeff Law  <law@redhat.com>
34951
34952         * PR middle-end/32693
34953         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
34954         than gen_rtx_SUBREG.
34955         (extract_bit_field_1): Likewise.
34956
34957 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
34958
34959         * doc/sourcebuild.texi (Test directives): Document that arguments
34960         include-opts and exclude-opts are now optional for dg-skip-if,
34961         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
34962
34963 2010-03-03  Jason Merrill  <jason@redhat.com>
34964
34965         PR c++/12909
34966         * cgraph.h (varpool_node): Add extra_name field.
34967         * varpool.c (varpool_extra_name_alias): New.
34968         (varpool_assemble_decl): Emit extra name aliases.
34969         (varpool_mark_needed_node): Look past an extra name alias.
34970         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
34971         * lto-streamer-in.c (lto_input_tree): Read it.
34972         * lto-streamer-out.c (output_unreferenced_globals): Write it.
34973
34974 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
34975
34976         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
34977         (sparc*-*-solaris2*): ...this.
34978
34979 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
34980
34981         PR debug/43229
34982         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
34983         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
34984         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
34985         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
34986
34987         PR debug/43237
34988         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
34989         fallthrough to default handling, just with want_address 0 instead of 2.
34990         For single element lists, add_AT_loc directly, otherwise create an
34991         artificial variable DIE and stick location list to it.
34992
34993         PR debug/43177
34994         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
34995         (VAL_EXPR_HAS_REVERSE): Define.
34996         (reverse_op): New function.
34997         (add_stores): For reversible operations add an extra MO_VAL_USE.
34998
34999 2010-03-02  Jason Merrill  <jason@redhat.com>
35000
35001         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
35002
35003 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
35004
35005         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
35006         (sparc64-*-linux*): Likewise.
35007         (sparc64-*-solaris2*): Include assembler files before linker ones.
35008         (sparc-*-solaris2*): Simplify and reorder to match previous case.
35009         * config/sparc/gas.h: Delete.
35010         * config/sparc/sol2-64.h: Add copyright notice.
35011         * config/sparc/sol2-gas-bi.h: Likewise.
35012         * config/sparc/sol2-gld.h: Likewise.
35013         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
35014         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
35015         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
35016         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
35017         (sparc_elf_asm_named_section): Rename into...
35018         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
35019
35020 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
35021
35022         * config/alpha/alpha.c (override_options): Fix -mtune error message.
35023
35024 2010-03-02  Jeff Law  <law@redhat.com>
35025
35026         PR middle-end/42431
35027         * reload1.c (rtx_p, substitute_stack): Declare.
35028         (substitute): Record addresses of changed rtxs.
35029         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
35030         Restore the original rtx when complete.
35031         (reload): Free subsitute_stack when complete.
35032
35033 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
35034
35035         * doc/gccint.texi (menu): Add Testsuites as a chapter.
35036         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
35037         new chapter.
35038         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
35039         LTO Testing, gcov Testing, profopt Testing, compat Testing,
35040         Torture Tests): Change from subsection to section.
35041
35042 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
35043             Steven Bosscher  <steven@gcc.gnu.org>
35044
35045         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
35046         instead of bb.
35047
35048 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
35049
35050         PR middle-end/42640
35051         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
35052         the assignment from the new induction variable to the assignment
35053         of the value from the original loop PHI function.
35054
35055 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
35056             Daniel Jacobowitz  <dan@codesourcery.com>
35057
35058         * doc/sourcebuild.texi (Test directives): Clarify options to
35059         dg-skip-if.
35060
35061 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35062
35063         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
35064         Disable cfi directives unless GCC and gas agree on using read-only
35065         .eh_frame sections for 64-bit.
35066         * configure: Regenerate.
35067
35068 2010-03-01  Richard Guenther  <rguenther@suse.de>
35069
35070         PR tree-optimization/43220
35071         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
35072         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
35073
35074 2010-03-01  Richard Guenther  <rguenther@suse.de>
35075             Martin Jambor  <mjambor@suse.cz>
35076
35077         PR middle-end/41250
35078         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
35079         gimplified parameters.
35080
35081 2010-03-01  Christian Bruel  <christian.bruel@st.com>
35082
35083         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
35084
35085 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
35086
35087         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
35088
35089 2010-03-01  Richard Guenther  <rguenther@suse.de>
35090
35091         PR middle-end/43213
35092         * expr.c (expand_assignment): Use the alias-oracle to tell
35093         if the rhs aliases the result decl.
35094
35095 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35096
35097         PR pch/14940
35098         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
35099         to sol_gt_pch_get_address.
35100         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
35101         64-bit, SPARC and x86.
35102         (sol_gt_pch_get_address): New function.
35103
35104 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
35105
35106         * toplev.h (inform_n, error_n): Declare.
35107         * diagnostic.c (inform_n, error_n): New function.
35108
35109 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
35110
35111         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
35112         has no rtl yet when processing local_decls, queue it and recheck
35113         if deferred stack allocation hasn't assigned it rtl.
35114
35115 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
35116
35117         * config/sh/sh.c (unspec_bbr_uid): New.
35118         (gen_block_redirect): Use it instead of INSN_UID.
35119         (gen_far_branch): Likewise.
35120
35121 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
35122
35123         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
35124         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
35125
35126 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35127
35128         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
35129         (Warning Options): -Wno-conversion-null is valid for
35130         Objective-C++ as well.
35131         * doc/tm.texi (Named Address Spaces): Likewise.
35132         * doc/plugins.texi (Plugins): Replace TABs with spaces.
35133         * doc/tree-ssa.texi (Tree SSA): Likewise.
35134
35135 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35136
35137         PR bootstrap/43202
35138         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
35139         by default.  Don't set the default arch for
35140         i[34567]86-*-darwin*|x86_64-*-darwin*.
35141
35142 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35143
35144         PR bootstrap/43202
35145         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
35146         default.  Set the default 32bit/64bit archs with $with_arch
35147         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
35148
35149 2010-02-27  Richard Guenther  <rguenther@suse.de>
35150
35151         PR tree-optimization/43186
35152         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
35153         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
35154         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
35155         unroller iterations.
35156
35157 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35158
35159         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
35160         required and i[34567]86-*-* targets don't support 64bit ISA.
35161
35162 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
35163
35164         PR ada/43096
35165         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
35166         the same alias set.
35167
35168 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
35169
35170         * config.gcc: Set the default arch at least to Prescott for
35171         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
35172         if SSE math is enabled.
35173
35174 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35175
35176         * diagnostic.c (diagnostic_initialize): Update.
35177         (diagnostic_report_diagnostic): Test inhibit_notes_p for
35178         informative notes.
35179         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
35180         (diagnostic_inhibit_notes): New.
35181         * toplev.c (process_options): inhibit notes with -fcompare-debug.
35182
35183 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35184
35185         PR c/20631
35186         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
35187         * doc/standards.texi: Likewise.
35188         * doc/extend.texi: Likewise.
35189         * doc/trouble.texi: Likewise.
35190         * doc/cppopts.texi: Likewise.
35191         * doc/install.texi: Likewise.
35192         * c.opt (std=c90,std=gnu90): New options.
35193         * c-opts.c (c_common_handle_option): Handle them.
35194
35195 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35196
35197         PR c/24577
35198         * c-decl.c (undeclared_variable): Use an informative note.
35199
35200 2010-02-26  Richard Guenther  <rguenther@suse.de>
35201
35202         PR tree-optimization/43186
35203         * gimple.h (gimple_fold): Remove.
35204         * gimple.c (gimple_fold): Remove.  Inline into single user ...
35205         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
35206         Try harder for conditions.
35207
35208 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
35209
35210         PR debug/43190
35211         * function.c (used_types_insert): Don't skip through named pointer
35212         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
35213         and it is different from the main variant's type.
35214
35215 2010-02-26  Nick Clifton  <nickc@redhat.com>
35216
35217         * config/rx/rx.md (sminsi3): Remove bogus alternative.
35218
35219 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
35220
35221         * config.gcc: Support --with-fpmath=sse for x86.
35222
35223         * config/i386/ssemath.h: New.
35224
35225         * doc/install.texi (--with-fpmath=sse): Documented.
35226
35227 2010-02-26  Richard Guenther  <rguenther@suse.de>
35228
35229         PR tree-optimization/43188
35230         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
35231         vector types of over-aligned element type.
35232
35233 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
35234
35235         PR target/43175
35236         * config/i386/i386.c (expand_vec_perm_blend): Use correct
35237         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
35238
35239 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
35240
35241         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
35242
35243 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
35244
35245         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
35246         * var-tracking.c: Include diagnostic.h.
35247         (debug_dv): New function.
35248         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
35249
35250         PR debug/43160
35251         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
35252         (add_value_chain, add_value_chains, remove_value_chain,
35253         remove_value_chains): Handle DEBUG_EXPRs.
35254         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
35255
35256         PR debug/43161
35257         * regcprop.c (struct queued_debug_insn_change): New type.
35258         (struct value_data_entry): Add debug_insn_changes field.
35259         (struct value_data): Add n_debug_insn_changes field.
35260         (debug_insn_changes_pool): New variable.
35261         (free_debug_insn_changes, apply_debug_insn_changes,
35262         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
35263         (kill_value_one_regno): Call free_debug_insn_changes if needed.
35264         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
35265         fields.
35266         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
35267         changes for them.
35268         (copyprop_hardreg_forward_1): Don't call apply_change_group for
35269         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
35270         changes, call cprop_find_used_regs via note_stores.
35271         (copyprop_hardreg_forward): When copying vd from predecessor
35272         which has any queued DEBUG_INSN changes, make sure the pointers are
35273         cleared.  At the end call df_analyze and then if there are any
35274         DEBUG_INSN changes queued at the end of some basic block for still
35275         live registers, apply them.
35276         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
35277
35278 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
35279
35280         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
35281         (arm*-*-*): Ditto.
35282
35283 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
35284
35285         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
35286         targets.  Set the default with_cpu/with_arch from arch/cpu.
35287         Allow x86-64 and native for with_cpu/with_arch.
35288
35289 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
35290
35291         * ebitmap.c: Change calls to verify_popcount with calls to
35292         sbitmap_verify_popcount.
35293         (ebitmap_clear_bit): Fixed map->cacheindex test and
35294         map>cache update when bit clearing results in an empty
35295         element.
35296
35297 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
35298
35299         PR target/43154
35300         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
35301         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
35302         and support both V2DF and V2DI modes.
35303         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
35304         support both V2DF and V2DI modes.
35305         (general): Delete trailing whitespace from a few patterns.
35306
35307         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
35308         V2DF/V2DI interleave high/low builtins.
35309
35310         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
35311         new VSX builtins.
35312
35313         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
35314         interleave high/low functions.
35315
35316 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
35317
35318         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
35319         #pragma extern_prefix.
35320
35321 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
35322
35323         PR debug/43166
35324         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
35325         BLKmode, assert op0 is a MEM and just adjust its mode.
35326
35327         PR debug/43165
35328         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
35329         if bitpos isn't multiple of mode's bitsize.
35330
35331 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35332
35333         * c.opt (-ftemplate-depth=): New.
35334         (-ftemplate-depth-): Deprecate.
35335         * optc-gen.awk: Handle -ftemplate-depth=.
35336         * opth-gen.awk: Likewise.
35337         * c-opts.c (c_common_handle_option): Likewise.
35338         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
35339
35340 2010-02-24  Jason Merrill  <jason@redhat.com>
35341
35342         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
35343
35344 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35345
35346         * cfg.c (alloc_aux_for_block): Remove inline.
35347         (alloc_aux_for_edge): Likewise.
35348
35349 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35350
35351         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
35352
35353 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35354
35355         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
35356         * config/i386/sol2-gas.h: New file.
35357         * config.gcc (i[34567]86-*-solaris2*): Use it.
35358
35359 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35360
35361         PR c/43128
35362         * c-typeck.c (ep_convert_and_check): New.
35363         (build_conditional_expr): Use it.
35364         (build_binary_op): Likewise.
35365
35366 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
35367
35368         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
35369
35370         PR debug/43150
35371         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
35372         bounds even for -O+.
35373         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
35374         expr needs to have DECL_NAME set.
35375
35376 2010-02-24  Nick Clifton  <nickc@redhat.com>
35377
35378         * config/mep/mep.c: Include gimple.h.
35379         (mep_function_uses_sp): Delete unused function.
35380         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
35381         parameters.  Use unsigned integers to count args.  Return a
35382         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
35383
35384 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
35385
35386         PR target/43107
35387         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
35388         greater or equal to nelt instead of 2 * nelt.
35389         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
35390         with nelt - 1.
35391
35392 2010-02-23  Jason Merrill  <jason@redhat.com>
35393
35394         PR debug/42800
35395         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
35396         in cfun->local_decls even if they have register types.
35397
35398         PR c++/42837
35399         * stor-layout.c (place_field): Don't warn about unnecessary
35400         DECL_PACKED if the type is packed.
35401
35402 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
35403
35404         PR target/43139
35405         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
35406         GOTOFF relocs, even when the base reg isn't pic pointer.
35407
35408 2010-02-23  Michael Matz  <matz@suse.de>
35409
35410         PR debug/43077
35411         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
35412         (expand_gimple_basic_block): Generate and use debug temps if there
35413         are debug uses left after the last real use of TERed ssa names.
35414         Unlink debug immediate uses when they are expanded.
35415
35416 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35417
35418         PR 43123
35419         * config/i386/i386.c (override_options): Reorganise to provide
35420         better error messages.
35421
35422 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35423
35424         PR middle-end/43083
35425         * graphite-scop-detection.c (create_single_exit_edge): Move
35426         the call to find_single_exit_edge to....
35427         (create_sese_edges): ...here.  Don't handle multiple edges
35428         exiting the function.
35429         (build_graphite_scops): Don't handle multiple edges
35430         exiting the function.
35431
35432 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35433
35434         PR middle-end/43097
35435         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
35436         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
35437
35438 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35439
35440         PR middle-end/43026
35441         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
35442
35443 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35444
35445         PR c++/43126
35446         * c-typeck.c (convert_arguments): Print declaration location.
35447         * c-common.c (validate_nargs): Rename as
35448         builtin_function_validate_nargs.
35449         (check_builtin_function_arguments): Update.
35450
35451 2010-02-22  Richard Guenther  <rguenther@suse.de>
35452
35453         PR lto/43045
35454         * tree-inline.c (declare_return_variable): Use the type of
35455         the call stmt lhs if available.
35456
35457 2010-02-22  Duncan Sands  <baldrick@free.fr>
35458
35459         * passes.c (register_pass): Always consider all pass lists when
35460         ref_pass_instance_number is zero.
35461
35462 2010-02-22  Richard Guenther  <rguenther@suse.de>
35463
35464         PR tree-optimization/42749
35465         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
35466         parameter.  Do arithmetic in the original type.
35467         (update_accumulator_with_ops): Likewise.
35468         (adjust_accumulator_values): Adjust.
35469
35470 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35471
35472         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
35473         (QI to BLKmode splitter): New splitter.
35474
35475 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
35476
35477         * config/i386/i386.c (initial_ix86_tune_features): Turn on
35478         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
35479
35480 2010-02-22  Richard Guenther  <rguenther@suse.de>
35481
35482         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
35483
35484 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
35485
35486         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
35487         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
35488         ($(T)crti.o, $(T)crtn.o): Remove rules.
35489
35490 2010-02-21  Tobias Burnus  <burnus@net-b.de>
35491
35492         PR fortran/35259
35493         * doc/invoke.texi (-fassociative-math): Document that this
35494         option is automatically enabled for Fortran.
35495
35496 2010-02-20  David S. Miller  <davem@davemloft.net>
35497
35498         * configure.ac: Test if linker and assembler properly support
35499         GOTDATA_OP relocations.
35500         * configure: Rebuild.
35501         * config.in: Likewise.
35502         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
35503         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
35504         (movsi_high_pic): Likewise.
35505         (movdi_lo_sum_pic): Likewise.
35506         (movdi_high_pic): Likewise.
35507         (movsi_pic_gotdata_op): New pattern.
35508         (movdi_pic_gotdata_op): Likewise.
35509         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
35510         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
35511
35512 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
35513
35514         PR target/43067
35515         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
35516         attribute to ssemul.
35517         (xop_mulv2div2di3_high): Ditto.
35518
35519 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35520
35521         PR c++/35669
35522         * c.opt (Wconversion-null): New option.
35523         * doc/invoke.texi (Wconversion-null): Document.
35524
35525 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35526
35527         * common.opt (Wlarger-than-): Add Undocumented.
35528
35529 2010-02-19  Mike Stump  <mikestump@comcast.net>
35530
35531         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
35532
35533 2010-02-19  Jason Merrill  <jason@redhat.com>
35534
35535         PR target/40332
35536         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
35537         * configure: Likewise.
35538
35539 2010-02-20  Alan Modra  <amodra@gmail.com>
35540
35541         PR middle-end/42344
35542         * cgraph.h (cgraph_make_decl_local): Declare.
35543         * cgraph.c (cgraph_make_decl_local): New function.
35544         (cgraph_make_node_local): Use it.
35545         * cgraphunit.c (cgraph_function_versioning): Likewise.
35546         * ipa.c (function_and_variable_visibility): Likewise.
35547
35548 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
35549
35550         PR bootstrap/43121
35551         * except.c (sjlj_emit_function_enter): Don't call
35552         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
35553         directly.
35554         * rtl.h (add_reg_br_prob_note): Remove prototype.
35555
35556 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35557
35558         PR 41779
35559         * c-common.c (conversion_warning): Remove widening conversions
35560         before checking the conversion of integers to reals.
35561
35562 2010-02-19  Mike Stump  <mikestump@comcast.net>
35563
35564         PR middle-end/43125
35565         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
35566
35567         PR objc/43061
35568         * cgraphunit.c (process_function_and_variable_attributes): Check
35569         DECL_PRESERVE_P instead of looking up attribute "used".
35570         * ipa-pure-const.c (check_decl): Likewise.
35571         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
35572         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
35573         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
35574         instead of attribute "used".
35575         * config/sol2-c.c (solaris_pragma_init): Likewise.
35576         (solaris_pragma_fini): Likewise.
35577
35578 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
35579
35580         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
35581         Use XCNEW instead of xcalloc.
35582         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
35583         XNEW instead of xmalloc.
35584         (get_fields): Use XNEWVEC instead of xmalloc.
35585
35586         PR debug/43084
35587         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
35588         populate vars array.
35589         (create_new_general_access): For debug stmts just reset value.
35590         (get_stmt_accesses): For accesses within debug stmts just record them
35591         using add_access_to_acc_sites instead of preventing the peeling or
35592         counting them as accesses.
35593
35594         PR middle-end/42233
35595         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
35596
35597 2010-02-19  Richard Guenther  <rguenther@suse.de>
35598
35599         PR tree-optimization/42916
35600         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
35601         instructions.
35602
35603 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
35604
35605         * configure.ac: Replace all uses of changequote in macro arguments
35606         with proper quoting.
35607
35608 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
35609
35610         PR middle-end/42233
35611         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
35612
35613 2010-02-19  Richard Guenther  <rguenther@suse.de>
35614
35615         PR tree-optimization/42944
35616         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
35617         test for aliasing with errno.
35618
35619 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
35620
35621         PR middle-end/42233
35622         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
35623         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
35624         * dojump.c: Include output.h.
35625         (inv): New inline function.
35626         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
35627         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
35628         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
35629         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
35630         argument, pass it down to other calls.
35631         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
35632         add REG_BR_PROB note to the conditional jump.
35633         * cfgexpand.c (add_reg_br_prob_note): Removed.
35634         (expand_gimple_cond): Don't call it, add the probability
35635         as last argument to jumpif_1/jumpifnot_1.
35636         * Makefile.in (dojump.o): Depend on output.h.
35637         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
35638         callers.
35639         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
35640         * stmt.c (do_jump_if_equal): Likewise.
35641         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
35642         * loop-unswitch.c (compare_and_jump_seq): Likewise.
35643         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
35644         Likewise.
35645         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
35646         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
35647         jumpifnot_1 callers.
35648         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
35649         callers.
35650         (store_expr): Adjust jumpifnot caller.
35651         (store_constructor): Adjust jumpif caller.
35652
35653         PR middle-end/42233
35654         * gimplify.c (gimple_boolify): For __builtin_expect call
35655         gimple_boolify also on its first argument.
35656
35657 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
35658
35659         * configure.ac (gnu-unique-object): Wrap regexps using [] in
35660         changequote block.
35661         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
35662         * configure: Regenerated.
35663
35664 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
35665
35666         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
35667         lang_hooks.types_compatible_p instead of comptypes.
35668
35669 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
35670
35671         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
35672         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
35673         if __prefer_thumb__ is defined.
35674
35675 2010-02-18  Martin Jambor  <mjambor@suse.cz>
35676
35677         PR tree-optimization/43066
35678         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
35679         array with zero-sized element type.
35680
35681 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
35682
35683         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
35684         rtx, allocate struct var_loc_node here and return it to the
35685         caller, and only if it is actually needed.
35686         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
35687         move it earlier and return immediately if it returns NULL.
35688
35689 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
35690
35691         * config/sparc/gas.h: New file.  Restore
35692         TARGET_ASM_NAMED_SECTION to its ELF default.
35693         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
35694         check !HAVE_GNU_AS.
35695         * config/sparc/sparc.c (sparc_elf_asm_named_section):
35696         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
35697         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
35698         after sparc/sysv4.h.
35699
35700 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
35701
35702         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
35703
35704 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
35705
35706         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
35707         patterns from predicated pattern.
35708
35709 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
35710
35711         PR target/43103
35712         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
35713         for insn mnemonic suffix.
35714
35715 2010-02-17  Richard Guenther  <rguenther@suse.de>
35716
35717         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
35718         to loop PHI nodes.
35719
35720 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
35721
35722         PR debug/42918
35723         * caller-save.c (save_call_clobbered_regs): If BB ends with
35724         a DEBUG_INSN, move any notes in between last real insn and the last
35725         DEBUG_INSN after the last DEBUG_INSN.
35726
35727 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
35728
35729         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
35730         Fix return type.  Fix argument type.  Explain meaning of return value.
35731
35732 2010-02-16  Richard Guenther  <rguenther@suse.de>
35733
35734         PR tree-optimization/41043
35735         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
35736         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
35737         statements ...
35738         (vrp_visit_phi_node): ... but only for loop PHI nodes.
35739
35740 2010-02-16  Ira Rosen  <irar@il.ibm.com>
35741
35742         PR tree-optimization/43074
35743         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
35744         * tree-vect-loop.c (vect_analyze_loop_operations): Add
35745         vectorizable cycles in hybrid SLP check.
35746         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
35747
35748 2010-02-16  Richard Guenther  <rguenther@suse.de>
35749
35750         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
35751         (true_dependence): If memrefs_conflict_p computes must-alias
35752         trust it.  Move TBAA check after offset-based disambiguation.
35753         (canon_true_dependence): Likewise.
35754
35755 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
35756
35757         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
35758         * doc/invoke.texi: Document it.
35759         * var-tracking.c: Include toplev.h and params.h.
35760         (vt_find_locations): Return bool indicating success.  Compute
35761         hash sizes unconditionally.  Check new parameter, report.
35762         (variable_tracking_main_1): Check vt_find_locations results and
35763         retry.  Renamed from...
35764         (variable_tracking_main): ... this.  New wrapper to preserve
35765         flag_var_tracking_assignments.
35766         * Makefile.in (var-tracking.o): Adjust dependencies.
35767
35768 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
35769             Jakub Jelinek  <jakub@redhat.com>
35770
35771         PR target/42854
35772         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
35773         if weak_import attribute is present.
35774         * config/darwin.c (machopic_select_section): Likewise.
35775
35776 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
35777
35778         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
35779         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
35780         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
35781         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
35782
35783         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
35784         types.
35785
35786         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
35787         Fix argument types.
35788
35789         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
35790         Rewrite text to refer to the names.
35791
35792 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
35793
35794         * config/i386/i386-builtin-types.def
35795         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
35796         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
35797         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
35798         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
35799         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
35800         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
35801         IX86_BUILTIN_VPERMIL2PS256.
35802         (MULTI_ARG_4_DF2_DI_I): Defined.
35803         (MULTI_ARG_4_DF2_DI_I1): Defined.
35804         (MULTI_ARG_4_SF2_SI_I): Defined.
35805         (MULTI_ARG_4_SF2_SI_I1): Defined.
35806         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
35807         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
35808         __builtin_ia32_vpermil2ps256.
35809         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
35810         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
35811         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
35812         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
35813         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
35814         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
35815         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
35816         CODE_FOR_xop_vpermil2v8sf3.
35817         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
35818         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
35819         * config/i386/xopintrin.h (_mm_permute2_pd): New.
35820         (_mm256_permute2_pd): New.
35821         (_mm_permute2_ps): New.
35822         (_mm256_permute2_ps): New.
35823
35824 2010-02-15  Nick Clifton  <nickc@redhat.com>
35825
35826         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
35827         boolean parameters.  Use emit_jump_insn when emitting a pop
35828         instruction containing a return insn.
35829         (push): Use 'true' rather than '1' as second parameter to F.
35830         (h8300_expand_prologue): Likewise.
35831         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
35832         (h8300_expand_epilogue): Likewise.
35833
35834 2010-02-15  Richard Guenther  <rguenther@suse.de>
35835
35836         PR middle-end/43068
35837         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
35838         if that is zero.
35839
35840 2010-02-15  Nick Clifton  <nickc@redhat.com>
35841
35842         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
35843         delta.
35844
35845 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
35846
35847         * intl.c (fake_ngettext): New function.
35848         * intl.h (fake_ngettext): Declare.
35849         (ngettext): Define macro.
35850         * collect2.c (notice_translated): New function.
35851         (main): Use notice_translated and ngettext.
35852         * collect2.h (notice_translated): Declare.
35853
35854 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
35855
35856         * reorg.c (delete_computation): Comment fixes.
35857         * caller-save.c (setup_save_areas): Idem.
35858         * sel-sched-dump.c (dump_lv_set): Idem.
35859         * rtl.def: Idem.
35860
35861 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35862
35863         * config/s390/s390.c (s390_sched_init): New function.
35864         (TARGET_SCHED_INIT): Target hook defined.
35865
35866 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
35867             Jack Howarth  <howarth@bromo.med.uc.edu>
35868             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
35869
35870         PR target/42982
35871         Partial revert of unintended change in fix for PR41605.
35872         * config/darwin.h: Fix typo.
35873         * config/darwin9.h: Same.
35874
35875 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
35876
35877         * c-pch.c (pch_init): Clear v.
35878
35879 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
35880
35881         PR middle-end/42930
35882         * graphite-scop-detection.c (graphite_can_represent_scev): Call
35883         graphite_can_represent_init for MULT_EXPR.
35884
35885 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
35886
35887         PR middle-end/42914
35888         PR middle-end/42530
35889         * graphite-sese-to-poly.c (remove_phi): New.
35890         (translate_scalar_reduction_to_array): Call remove_phi.
35891
35892 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
35893
35894         PR middle-end/42771
35895         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
35896         * graphite-clast-to-gimple.h (gloog): Update declaration.
35897         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
35898         * graphite-poly.h (struct poly_bb): Add missing comments.
35899         (struct scop): Add poly_scop_p field.
35900         (POLY_SCOP_P): New.
35901         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
35902         * graphite.c (graphite_transform_loops): Build the polyhedral
35903         representation for each scop before code generation.
35904         * sese.c (rename_variables_in_operand): Removed.
35905         (rename_variables_in_expr): Return the renamed expression.
35906         (rename_sese_parameters): New.
35907         * sese.h (rename_sese_parameters): Declared.
35908
35909 2010-02-11  Richard Guenther  <rguenther@suse.de>
35910
35911         PR tree-optimization/42998
35912         * tree-ssa-pre.c (create_expression_by_pieces): Treat
35913         POINTER_PLUS_EXPR properly.
35914
35915 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
35916             Changpeng Fang  <changpeng.fang@amd.com>
35917
35918         PR middle-end/40886
35919         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
35920         the cost of an IV candidate when the IV is used in a test against zero.
35921
35922         * gcc.dg/tree-ssa/ivopts-3.c: New.
35923
35924 2010-02-11  Richard Guenther  <rguenther@suse.de>
35925
35926         PR lto/41664
35927         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
35928         pointer-vs-decl case by swapping refs.  Handle some cases
35929         of pointer-vs-decl disambiguations more conservatively.
35930         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
35931         to false after expanding.
35932
35933 2010-02-11  Richard Guenther  <rguenther@suse.de>
35934
35935         PR driver/43021
35936         * gcc.c (process_command): Handle LTO file@offset case more
35937         appropriately.
35938
35939 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
35940
35941         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
35942         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
35943         of DEBUG_INSNs.
35944         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
35945
35946         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
35947         if MEM's mode size isn't DWARF2_ADDR_SIZE.
35948         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
35949         Optimize eq/ne comparisons when both arguments are known to be
35950         zero-extended.
35951         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
35952         Don't mask operands unnecessarily if they are known to be already
35953         zero-extended.
35954
35955 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
35956
35957         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
35958         instead of loop.
35959
35960 2010-02-10  Richard Guenther  <rguenther@suse.de>
35961
35962         PR tree-optimization/43017
35963         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
35964         for wrapping signed arithmetic.
35965
35966 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
35967
35968         PR debug/43010
35969         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
35970         if no debug info should be emitted for it.
35971
35972 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
35973
35974         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
35975         note when flag_exceptions is set.
35976
35977 2010-02-10  Duncan Sands  <baldrick@free.fr>
35978
35979         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
35980
35981 2010-02-10  Richard Guenther  <rguenther@suse.de>
35982
35983         PR c/43007
35984         * tree.c (get_unwidened): Handle constants.
35985         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
35986
35987 2010-02-10  Martin Jambor  <mjambor@suse.cz>
35988
35989         PR lto/42985
35990         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
35991         check for variable argument counts independently.
35992
35993 2010-02-10  Christian Bruel  <christian.bruel@st.com>
35994
35995         PR target/42841
35996         * config/sh/sh.c (find_barrier): Increase length for non delayed
35997         conditional branches.
35998
35999 2010-02-10  Christian Bruel  <christian.bruel@st.com>
36000
36001         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
36002
36003 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
36004
36005         * builtins.c (set_builtin_user_assembler_name): Also handle
36006         ffs if int is smaller than word.
36007
36008 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
36009
36010         PR middle-end/42973
36011         * ira-conflicts.c (get_dup): Remove.
36012         (process_reg_shuffles): Add new parameter.  Use it as an
36013         additional guard for copy generation.
36014         (add_insn_allocno_copies): Rewrite.
36015
36016 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
36017
36018         * common.opt (fsched2-use-traces): Preserved for backward
36019         compatibility.
36020         * doc/invoke.texi: Remove the documentation about option
36021         -fsched2-use-traces.
36022         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
36023         flag_sched2_use_traces.
36024         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
36025         the backward compatibility flag section.
36026
36027 2010-02-09  Richard Guenther  <rguenther@suse.de>
36028
36029         PR tree-optimization/43008
36030         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
36031         make HEAP variables initialized from global memory if they
36032         are not known builtin functions.
36033         (find_func_aliases): Adjust.
36034
36035 2010-02-09  Richard Guenther  <rguenther@suse.de>
36036
36037         PR tree-optimization/43000
36038         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
36039         arithmetic manually.
36040
36041 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
36042
36043         PR tree-optimization/42931
36044         * tree-loop-linear.c (try_interchange_loops): Don't call
36045         double_int_mul if estimated_loop_iterations failed.
36046
36047 2010-02-08  Martin Jambor  <mjambor@suse.cz>
36048
36049         PR middle-end/42898
36050         * tree-sra.c (build_accesses_from_assign): Do not mark in
36051         should_scalarize_away_bitmap if stmt has volatile ops.
36052         (sra_modify_assign): Do not process assigns piecemeal if if stmt
36053         has volatile ops.
36054
36055 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
36056
36057         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
36058
36059 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
36060
36061         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
36062         before the pattern.
36063
36064 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
36065
36066         PR middle-end/42946
36067         * df-core.c (df_finish_pass): Change type of saved_flags to int.
36068
36069 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36070
36071         PR middle-end/42988
36072         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
36073         to unknown_dependence.
36074         (graphite_legal_transform_dr): Handle the unknown_dependence.
36075         (graphite_carried_dependence_level_k): Same.
36076
36077 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36078
36079         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
36080
36081 2010-02-07  Richard Guenther  <rguenther@suse.de>
36082
36083         PR middle-end/42991
36084         * expr.c (get_inner_reference): Always initialize *pbitsize.
36085
36086 2010-02-07  Richard Guenther  <rguenther@suse.de>
36087
36088         PR middle-end/42956
36089         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
36090         new ARRAY_REFs on variable size element or minimal index arrays.
36091         Complete.
36092         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
36093         gimple_fold_indirect_ref.
36094
36095 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
36096
36097         PR target/42957
36098         * arm.c (arm_override_options): Just return if the user has specified
36099         an invalid fpu name.
36100
36101 2010-02-03  Jason Merrill  <jason@redhat.com>
36102
36103         PR c++/42870
36104         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
36105         i386_pe_maybe_record_exported_symbol.
36106
36107 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
36108
36109         PR target/42924
36110         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
36111         (pa_delegitimize_address): New function.
36112
36113 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
36114
36115         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
36116         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
36117
36118 2010-02-05  Richard Guenther  <rguenther@suse.de>
36119
36120         PR lto/42762
36121         * lto-streamer-in.c (get_resolution): Deal with references
36122         to undefined functions.
36123
36124 2010-02-05  Richard Guenther  <rguenther@suse.de>
36125
36126         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
36127         (fold_const_aggregate_ref): Likewise.
36128         (ccp_fold_stmt): Substitute loads.
36129         (maybe_fold_reference): Verify types before substituting.
36130         Unshare properly.
36131         (fold_gimple_assign): Unshare properly.
36132         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
36133
36134 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
36135
36136         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
36137         for rs6000_gen_cell_microcode.
36138
36139 2010-02-04  Richard Guenther  <rguenther@suse.de>
36140
36141         PR rtl-optimization/42952
36142         * dse.c (const_or_frame_p): Remove MEM handling.
36143
36144 2010-02-04  Nick Clifton  <nickc@redhat.com>
36145
36146         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
36147         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
36148         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
36149         (mn10300_asm_output_mi_thunk): New function.
36150         (mn10300_can_output_mu_thunk): New function.
36151         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
36152         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
36153         (FUNCTION_ARG): Delete incorrect comment.
36154
36155 2010-02-03  Jason Merrill  <jason@redhat.com>
36156
36157         PR c++/40138
36158         * fold-const.c (operand_equal_p): Handle erroneous types.
36159
36160 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
36161
36162         * config/h8300/h8300.md (can_delay): Fix attibute condition.
36163
36164 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
36165
36166         PR rtl-optimization/42941
36167         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
36168         of xmalloc.
36169
36170 2010-02-03  Jason Merrill  <jason@redhat.com>
36171
36172         PR c++/35652
36173         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
36174
36175 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
36176
36177         PR debug/42896
36178         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
36179         (cselib_reset_table): Renamed from...
36180         (cselib_reset_table_with_next_value): ... this.
36181         (cselib_get_next_uid): Renamed from...
36182         (cselib_get_next_unknown_value): ... this.
36183         * cselib.c (next_uid): Renamed from...
36184         (next_unknown_value): ... this.
36185         (cselib_clear_table): Adjust.
36186         (cselib_reset_table): Adjust.  Renamed from...
36187         (cselib_reset_table_with_next_value): ... this.
36188         (cselib_get_next_uid): Adjust.  Renamed from...
36189         (cselib_get_next_unknown_value): ... this.
36190         (get_value_hash): Use hash.
36191         (cselib_hash_rtx): Likewise.
36192         (new_cselib_val): Adjust.  Set and dump uid.
36193         (cselib_lookup_mem): Pass next_uid as hash.
36194         (cselib_subst_to_values): Likewise.
36195         (cselib_log_lookup): Dump uid.
36196         (cselib_lookup): Pass next_uid as hash.  Adjust.
36197         (cselib_process_insn): Adjust.
36198         (cselib_init): Initialize next_uid.
36199         (cselib_finish): Adjust.
36200         (dump_cselib_table): Likewise.
36201         * dse.c (canon_address): Dump value uid.
36202         * print-rtl.c (print_rtx): Print value uid.
36203         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
36204         (dvuid): New type.
36205         (dv_uid): New function, sort of renamed from...
36206         (dv_htab_hash): ... this, reimplemented in terms of it and...
36207         (dv_uid2hash): ... this.  New.
36208         (variable_htab_eq): Drop excess assertions.
36209         (tie_break_pointers): Removed.
36210         (canon_value_cmp): Compare uids.
36211         (variable_post_merge_New_vals): Print uids.
36212         (vt_add_function_parameters): Adjust.
36213         (vt_initialize): Reset table.  Adjust.
36214
36215 2010-02-03  Richard Guenther  <rguenther@suse.de>
36216
36217         PR tree-optimization/42944
36218         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
36219         (call_may_clobber_ref_p_1): Likewise.  Properly handle
36220         malloc and calloc clobbering errno.
36221
36222 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
36223
36224         * doc/invoke.texi: Fix name of sched1 dump.
36225
36226         * opts.c (decode_options): Set flag_tree_switch_conversion
36227         only conditionally on optimize >= 2.
36228
36229         * gcse.c: Assorted comment fixes in pass description.
36230
36231 2010-02-03  Anthony Green  <green@moxielogic.com>
36232
36233         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
36234         nop padding in order to maintain alignment of storage location of
36235         target function address.
36236         (moxie_trampoline_init): Store target function address at newly
36237         aligned location.
36238         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
36239         to 32.
36240         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
36241
36242 2010-02-03  Richard Guenther  <rguenther@suse.de>
36243
36244         PR middle-end/42927
36245         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
36246
36247 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36248
36249         * config.gcc: Reenable check for obsolete targets.
36250         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
36251         mips-sgi-irix6.[0-4]*.
36252
36253 2010-02-02  Nick Clifton  <nickc@redhat.com>
36254
36255         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
36256         constant size of 4 as being the same as 0.
36257         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
36258         can take values in the range 0..4.
36259
36260 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
36261
36262         PR java/41991
36263         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
36264         as _darwin10_Unwind_FindEnclosingFunction().
36265         * libgcc-libsystem.ver: New.
36266
36267 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
36268
36269         PR target/41399
36270         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
36271         implicitly set registers.
36272
36273 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
36274
36275         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
36276         (arm_override_options): Allow automatic selection of the thread
36277         pointer register if thumb2.
36278         (legitimize_pic_address): Improve code sequences for Thumb2.
36279         (arm_call_tls_get_addr): Likewise.
36280         (legitimize_tls_address): Likewise.
36281         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
36282         (pic_load_addr_32bit): ... this.  New named pattern.
36283         * thumb2.md (pic_load_addr_thumb2): Delete.
36284         (pic_load_dot_plus_four): Delete.
36285         (tls_load_dot_plus_four): New named pattern.
36286
36287 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36288
36289         PR libgomp/29986
36290         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
36291         Document fix for TLS bug.
36292
36293 2010-01-31  Richard Guenther  <rguenther@suse.de>
36294
36295         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
36296         conservatively correct.
36297
36298 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36299
36300         PR target/42850
36301         Revert:
36302         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36303
36304         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
36305
36306 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
36307
36308         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
36309
36310 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
36311
36312         * config.gcc: Adjust order of makefile fragments for mingw targets.
36313
36314 2010-01-31  Richard Guenther  <rguenther@suse.de>
36315
36316         PR middle-end/42898
36317         * gimplify.c (gimplify_init_constructor): For volatile LHS
36318         initialize a temporary.
36319
36320 2010-01-31  Matthias Klose  <doko@ubuntu.com>
36321
36322         * configure.ac: Fix __stack_chk_fail check for cross builds configured
36323         --with-headers
36324         * configure: Regenerate.
36325
36326 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
36327
36328         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
36329         the same alias set and their sizes different constantness.
36330         (aliasing_component_refs_p): Revert 2009-10-24 change.
36331
36332 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36333
36334         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
36335         unused.
36336
36337 2010-01-29  Richard Guenther  <rguenther@suse.de>
36338
36339         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
36340         Assert we successfully updated the call.
36341
36342 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
36343
36344         PR rtl-optimization/42889
36345         * df.h (df_set_bb_dirty_nonlr): New prototype.
36346         * df-core.c (df_set_bb_dirty_nonlr): New function.
36347         * df-scan.c (df_insn_rescan): Call it instead of
36348         df_set_bb_dirty for DEBUG_INSNs.
36349
36350 2010-01-29  Richard Guenther  <rguenther@suse.de>
36351
36352         PR middle-end/37448
36353         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
36354         quadratic behavior in most cases.
36355
36356 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
36357
36358         PR target/42891
36359         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
36360         in the call to gen_x86_movsicc_0_m1.
36361
36362 2010-01-28  Richard Guenther  <rguenther@suse.de>
36363
36364         PR tree-optimization/42871
36365         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
36366
36367 2010-01-28  Richard Guenther  <rguenther@suse.de>
36368
36369         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
36370         into call arguments.
36371
36372 2010-01-28  Richard Guenther  <rguenther@suse.de>
36373
36374         PR middle-end/42883
36375         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
36376         the forwarder if the destination is an EH landing pad.
36377
36378 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
36379
36380         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
36381         block list passed to gimple_duplicate_sese_tail.
36382         (parallelize_loops): Avoid parallelization when the function
36383         has_nonlocal_label.
36384         Avoid parallelization when the preheader is IRREDUCIBLE.
36385         Try to optimize when estimated_loop_iterations_int is unresolved.
36386         Add the loop's location to the dump file.
36387         * tree-cfg.c (add_phi_args_after_redirect): Remove.
36388         (gimple_duplicate_sese_tail): Remove the check for the latch.
36389         Redirect nexits to the exit block.
36390         Remove handling of the incoming edges to the latch.
36391         Redirect the backedge from the copied latch to the exit bb.
36392
36393 2010-01-28  Michael Matz  <matz@suse.de>
36394
36395         PR target/42881
36396         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
36397         Wrap force_reg into a sequence, emit it before user.
36398
36399 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
36400
36401         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
36402         (arm_rev): New.
36403         (arm_legacy_rev): Likewise.
36404         (thumb_legacy_rev): Likewise.
36405
36406 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
36407
36408         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
36409         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
36410         on MEM's address failed, try avoid_constant_pool_reference and
36411         recurse if it returned something different.
36412         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
36413         address, try avoid_constant_pool_reference and recurse if it
36414         returned something different.
36415         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
36416         address and avoid_constant_pool_reference returned something
36417         different, don't set have_address.
36418
36419 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
36420
36421         PR debug/42861
36422         * var-tracking.c (val_store): Add modified argument, obey it.
36423         Adjust callers.
36424         (count_uses): Move down logging of main.
36425         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
36426         don't need resolution.
36427         (emit_notes_in_bb): Likewise.
36428
36429 2010-01-27  Richard Guenther  <rguenther@suse.de>
36430
36431         PR middle-end/42878
36432         * tree-inline.c (remap_decl): Delay remapping of SSA name
36433         default definitions until we need them.
36434
36435 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
36436
36437         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
36438         (rs6000_delegitimize_address): New function.
36439
36440         * config/s390/s390.c (s390_delegitimize_address): Call
36441         delegitimize_mem_from_attrs.
36442
36443         PR middle-end/42874
36444         * tree-inline.c (cannot_copy_type_1): Removed.
36445         (copy_forbidden): Don't forbid copying of functions containing
36446         records/unions with variable length fields.
36447
36448 2010-01-27  Christian Bruel  <christian.bruel@st.com>
36449
36450         Revert:
36451         PR target/42841
36452         * config/sh/sh.c (find_barrier): Increase length for non delayed
36453         conditional branches.
36454
36455 2010-01-27  Matthias Klose  <doko@ubuntu.com>
36456
36457         * configure.ac (gnu-unique-object): Fix ldd version check.
36458         * configure: Regenerate.
36459
36460 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36461
36462         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
36463         HAVE_GNU_AS value.
36464         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
36465         Test for HAVE_GNU_AS value.
36466
36467 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36468
36469         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
36470         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
36471         INT64_TYPE): Define.
36472         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
36473         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
36474         INT_LEAST64_TYPE): Define.
36475         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
36476         UINT_LEAST64_TYPE): Define.
36477         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
36478         INT_FAST64_TYPE): Define.
36479         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
36480         UINT_FAST64_TYPE): Define.
36481         (INTMAX_TYPE, UINTMAX_TYPE): Define.
36482         (INTPTR_TYPE, UINTPTR_TYPE): Define.
36483         (SIG_ATOMIC_TYPE): Define.
36484
36485 2010-01-26  Richard Guenther  <rguenther@suse.de>
36486
36487         * df-scan.c (df_scan_set_bb_info): Remove assert.
36488         (df_insn_rescan_debug_internal): Merge asserts.
36489         (df_install_ref): Likewise.
36490         (df_mark_reg): Use bitmap_set_range.
36491         (df_hard_reg_used_p): Remove assert.
36492         (df_hard_reg_used_count): Likewise.
36493
36494 2010-01-26  Richard Guenther  <rguenther@suse.de>
36495
36496         PR rtl-optimization/42685
36497         * web.c (web_main): Ignore DEBUG_INSNs.
36498
36499 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
36500
36501         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
36502
36503         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
36504         Fix types of fndecl and arglist parameters.
36505
36506 2010-01-26  Richard Guenther  <rguenther@suse.de>
36507
36508         PR middle-end/42806
36509         * tree-eh.c (unsplit_eh): Skip debug insns.
36510
36511 2010-01-26  Richard Guenther  <rguenther@suse.de>
36512
36513         PR tree-optimization/42250
36514         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
36515
36516 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
36517
36518         PR fortran/42866
36519         * omp-low.c (expand_omp_sections): Only use single_pred if
36520         l2_bb is single_pred_p.
36521
36522 2010-01-25  Christian Bruel  <christian.bruel@st.com>
36523
36524         PR target/42841
36525         * config/sh/sh.c (find_barrier): Increase length for non delayed
36526         conditional branches.
36527         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
36528
36529 2010-01-24  David S. Miller  <davem@davemloft.net>
36530
36531         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
36532         define if not using GAS.
36533         * config/sparc/sparc.c (sparc_elf_asm_named_section):
36534         Likewise.  Delete SECTION_MERGE code, which is only applicable
36535         when using GAS.
36536
36537 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
36538
36539         PR c++/42748
36540         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
36541         mangling of va_list in system headers.
36542
36543 2010-01-23  Toon Moene  <toon@moene.org>
36544
36545         * tree-predcom.c (combine_chains): Return NULL, not false.
36546
36547 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
36548
36549         * tree-loop-distribution.c (distribute_loop): Fix declaration and
36550         initialization of variable res to agree with return type.
36551
36552 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
36553
36554         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
36555         * tree-sra.c: Add include of expr.h.
36556
36557 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
36558
36559         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
36560         insert the debug stmt on the single non-EH edge from the stmt.
36561
36562 2010-01-22  Richard Henderson  <rth@redhat.com>
36563
36564         PR tree-opt/42833
36565         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
36566         the RHS until after generate_subtree_copies has insertted its
36567         code before the current statement.
36568
36569 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
36570
36571         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
36572
36573         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
36574
36575 2010-01-21  Martin Jambor  <mjambor@suse.cz>
36576
36577         PR tree-optimization/42585
36578         * tree-sra.c (struct access): New field grp_total_scalarization.
36579         (dump_access): Dump the new field.
36580         (should_scalarize_away_bitmap): New variable.
36581         (cannot_scalarize_away_bitmap): Likewise.
36582         (sra_initialize): Allocate new bitmaps.
36583         (sra_deinitialize): Free new bitmaps.
36584         (create_access_1): New function.
36585         (create_access): Parts moved to create_access_1.
36586         (type_consists_of_records_p): New function.
36587         (completely_scalarize_record): Likewise.
36588         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
36589         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
36590         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
36591         access.
36592         (analyze_all_variable_accesses): Completely scalarize small eligible
36593         records.
36594
36595 2010-01-21  Martin Jambor  <mjambor@suse.cz>
36596
36597         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
36598
36599 2010-01-21  Andrew Haley  <aph@redhat.com>
36600
36601         * gcc.c (process_command): Move lang_specific_driver before
36602         setting cc_libexec_prefix.
36603
36604 2010-01-21  Richard Guenther  <rguenther@suse.de>
36605
36606         PR middle-end/19988
36607         * fold-const.c (negate_expr_p): Pretend only negative
36608         real constants are easily negatable.
36609
36610 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
36611             Jason Merrill  <jason@redhat.com>
36612
36613         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
36614         (TYPE_TRANSPARENT_AGGR): this, for union and record.
36615         * calls.c (initialize argument_information): Handle it.
36616         * c-common.c (handle_transparent_union_attribute): Use new name.
36617         * c-decl.c (finish_struct): Ditto.
36618         * c-typeck.c (type_lists_compatible_p): Ditto.
36619         (convert_for_assignment): Use new name and also handle record.
36620         * function.c (aggregate_value_p): Handle it.
36621         (pass_by_reference): Ditto.
36622         (assign_parm_data_types): Ditto.
36623         * print-tree.c (print_node): Ditto.
36624         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
36625         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
36626         * tree.c (first_field): New fn.
36627
36628 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
36629
36630         PR target/42818
36631         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
36632         even when linking statically, for now.
36633
36634 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
36635
36636         PR debug/42715
36637         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
36638         without a cselib val.
36639         (count_uses): Accept MO_VAL_SET with no val on stores.
36640         (add_stores): Likewise.
36641
36642 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
36643
36644         * var-tracking.c (check_value_val): Add a compile time assertion.
36645         (dv_is_decl_p): Simplify.
36646         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
36647         gcc_assert if ENABLE_CHECKING.
36648
36649 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
36650
36651         PR debug/42782
36652         * var-tracking.c: Include tree-flow.h.
36653         (mem_dies_at_call): New.
36654         (dataflow_set_preserve_mem_locs): Use it.
36655         (dataflow_set_remove_mem_locs): Likewise.
36656         (dump_var): Renamed from dump_variable.  Adjust all callers.
36657         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
36658         * Makefile.in (var-tracking.o): Adjust deps.
36659
36660 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
36661
36662         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
36663
36664 2010-01-20  Richard Guenther  <rguenther@suse.de>
36665
36666         PR tree-optimization/42717
36667         * tree-ssa-dce.c (get_live_post_dom): Remove.
36668         (forward_edge_to_pdom): Take an arbitrary edge to copy
36669         degenerate PHI args from.
36670         (remove_dead_stmt): Use the first post-dominator even if it
36671         does not contain live statements as redirection destination.
36672
36673 2010-01-20  Richard Guenther  <rguenther@suse.de>
36674
36675         * tree-inline.c (estimate_num_insns): Handle EH builtins.
36676
36677 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
36678
36679         * sel-sched.c (create_speculation_check): Remove set but not used
36680         variable twin.
36681         (try_transformation_cache): Remove set but not used variable ds.
36682         (calculate_privileged_insns): Remove set but not used variables
36683         cur_insn and min_spec_insn.
36684         (find_best_expr): Remove set but not used variable avail_n.
36685         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
36686         variable e.
36687         * cgraphunit.c (assemble_thunk): Remove set but not used variable
36688         false_label.
36689         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
36690         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
36691         new_scop_exit_edge.
36692
36693 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
36694
36695         PR bootstrap/42786
36696         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
36697         cpu types.  Add support for *-sse3 cpu types.
36698         (x86_64-*-*): Ditto.
36699
36700 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
36701
36702         PR middle-end/42803
36703         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
36704         argument, call initializer_constant_valid_p_1 instead of
36705         initializer_constant_valid_p, pass CACHE to it, return NULL
36706         immediately if first call returns NULL.
36707         (initializer_constant_valid_p_1): New function.
36708         (initializer_constant_valid_p): Use it.
36709
36710 2010-01-20  Thomas Quinot  <quinot@adacore.com>
36711
36712         * tree.def (PLACEHOLDER_EXPR): Fix comment.
36713
36714 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
36715
36716         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
36717         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
36718         (loc_list_from_tree): Don't handle unsigned division.  Handle
36719         signed modulo using DW_OP_{over,over,div,mul,minus}.
36720         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
36721         modulo instead of signed.
36722
36723 2010-01-20  DJ Delorie  <dj@redhat.com>
36724
36725         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
36726         (Fpa): Pass it
36727         (h8300_emit_stack_adjustment): Propogate it.
36728         (push): Pass it.
36729         (h8300_expand_prologue): Likewise.
36730         (h8300_expand_epilogue): Likewise.
36731
36732 2010-01-19  Michael Matz  <matz@suse.de>
36733
36734         PR tree-optimization/41783
36735         * tree-data-ref.c (toplevel): Include flags.h.
36736         (dump_data_dependence_relation):  Also dump the inputs if the
36737         result will be unknown.
36738         (split_constant_offset_1): Look through some conversions.
36739         * tree-predcom.c (determine_roots_comp): Restart a new chain if
36740         the offset from last element is too large.
36741         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
36742         (reassociate_to_the_same_stmt): Handle vector registers.
36743         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
36744         (e.g. conversions).
36745         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
36746         wide_prolog_niters argument, emit widening instructions.
36747         (vect_do_peeling_for_alignment): Adjust caller, use widened
36748         variant of the iteration cound.
36749         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
36750
36751 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36752
36753         PR target/38697
36754         * config/arm/neon-testgen.m (emit_automatics): New parameter
36755         features. Adjust for Fixed_return_reg feature.
36756         (test_intrinsic): Call emit_automatics with new feature.
36757         * config/arm/neon.ml: Update copyright years.
36758         (features): New Fixed_return_reg feature.
36759         (ops): Update feature for Vget_low.
36760
36761 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
36762
36763         PR tree-optimization/42719
36764         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
36765         stmt uses.
36766
36767         PR debug/42728
36768         * fwprop.c (all_uses_available_at): Return false if def_set dest
36769         is a REG that is used in def_insn.
36770
36771 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
36772
36773         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
36774
36775         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
36776         Add argument names.
36777
36778         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
36779
36780         * target.h (struct gcc_target) <secondary_reload>: Change type
36781         of last argument to secondary_reload_info *.
36782
36783 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
36784
36785         PR target/42774
36786         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
36787         memory references with unaligned offsets.  Remove CQImode handling.
36788         (unaligned_memory_operand): Return 1 for memory references with
36789         unaligned offsets.  Remove CQImode handling.
36790
36791 2010-01-18  Richard Guenther  <rguenther@suse.de>
36792
36793         PR middle-end/39954
36794         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
36795         builtin calls.
36796
36797 2010-01-18  Richard Guenther  <rguenther@suse.de>
36798
36799         PR tree-optimization/42781
36800         * tree-ssa-structalias.c (find_what_var_points_to): Skip
36801         restrict processing only if the original variable was artificial.
36802
36803 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
36804
36805         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
36806         find number of popped argument bytes.
36807
36808         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
36809         Fix the text that describes the return value for invalid insns.
36810
36811         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
36812
36813         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
36814         Clarify what 'cost of the -dependence' is.  Fix quoting.
36815
36816         * toplev.c (default_get_pch_validity): Rename argument to "sz".
36817         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
36818
36819 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
36820
36821         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
36822         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
36823
36824 2010-01-17  Richard Guenther  <rguenther@suse.de>
36825
36826         PR middle-end/42248
36827         * function.c (split_complex_args): Take a VEC to modify.
36828         (assign_parms_augmented_arg_list): Build a VEC instead of
36829         a chain of PARM_DECLs.
36830         (assign_parms_unsplit_complex): Take a VEC of arguments.
36831         Do not fixup unmodified parms.
36832         (assign_parms): Deal with the VEC.
36833         (gimplify_parameters): Likewise.
36834
36835 2010-01-17  Richard Guenther  <rguenther@suse.de>
36836
36837         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
36838         node existence check.
36839         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
36840         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
36841         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
36842         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
36843         (gimple_execute_on_growing_pred): Likewise.
36844
36845 2010-01-17  Richard Guenther  <rguenther@suse.de>
36846
36847         PR tree-optimization/42773
36848         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
36849         (compute_antic_aux): Likewise.
36850         (compute_partial_antic_aux): Likewise.
36851
36852 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
36853
36854         PR debug/42767
36855         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
36856         and US_TRUNCATE.
36857
36858 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
36859
36860         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
36861         appearance.
36862
36863         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
36864         Fix markup for strict argument.
36865
36866         (TARGET_SCHED_REORDER2): Fix argument types.
36867
36868         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
36869         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
36870
36871         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
36872         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
36873
36874         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
36875         Add argument name.
36876
36877         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
36878         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
36879         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
36880         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
36881         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
36882
36883         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
36884
36885         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
36886
36887         (TARGET_ASM_RELOC_RW_MASK): Add return type.
36888         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
36889
36890         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
36891
36892         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
36893         Use prototype.
36894
36895         (TARGET_ASM_NAMED_SECTION): Fix argument list.
36896
36897         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
36898         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
36899
36900         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
36901
36902         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
36903
36904         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
36905         referring to it.  Fix language.
36906
36907         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
36908
36909         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
36910
36911         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
36912
36913         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
36914
36915         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
36916         '@var{stream}.  Remove stray 'and'.
36917
36918         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
36919
36920         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
36921
36922         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
36923
36924         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
36925         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
36926
36927         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
36928         Fix description of return value.
36929         Rename argument "sz" to "len."
36930
36931         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
36932         Clarify meaning of 'true' return value.
36933
36934         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
36935
36936         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
36937         rep_mode versus mode_rep.
36938
36939         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
36940
36941         (TARGET_BUILTIN_DECL): Fix name.
36942
36943         (TARGET_COMMUTATIVE_P): Fix type of first argument.
36944
36945         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
36946
36947         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
36948
36949         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
36950
36951         (TARGET_RELAXED_ORDERING): Use @deftypevr.
36952
36953         (TARGET_GET_DRAP_RTX): Note that this is a hook.
36954         Clarify language.
36955
36956         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
36957         Rename argument tm_fn to md_fn.
36958
36959         (TARGET_OPTION_PRINT): Fix argument list.
36960
36961 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
36962
36963         PR target/42664
36964         * config/i386/i386.c (ix86_fixup_binary_operands):
36965         Revert FMA4 fixup of operands.
36966
36967 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36968
36969         PR other/42525
36970         * Makefile.in (write_entries_to_file, install-plugin):
36971         Use \012 instead of \n with tr.
36972
36973 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
36974
36975         * configure.ac (HAVE_AS_REF): New C macro.
36976         * configure: Regenerate.
36977         * config.in: Likewise.
36978         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
36979         if HAVE_AS_REF.
36980         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
36981         if HAVE_AS_REF.
36982
36983 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
36984
36985         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
36986
36987         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
36988
36989         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
36990
36991         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
36992
36993         (TARGET_IN_SMALL_DATA_P): Fix argument type.
36994
36995         (TARGET_BINDS_LOCAL_P): Fix argument type.
36996
36997         (TARGET_ASM_FILE_END): Use prototype.
36998
36999         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
37000
37001         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
37002
37003         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
37004
37005         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
37006
37007         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
37008         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
37009
37010         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
37011         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
37012
37013         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
37014         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
37015         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
37016         (TARGET_ADDR_SPACE_CONVERT): Likewise.
37017
37018         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
37019
37020         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
37021
37022         (TARGET_INIT_BUILTINS): Use prototype.
37023
37024         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
37025         Put 'const char *' in braces.  Fix parameter types.
37026         (TARGET_INVALID_CONVERSION): Fix parameter types.
37027         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
37028         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
37029
37030         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
37031         Fix argument type.
37032
37033         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
37034
37035         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
37036
37037 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
37038
37039         * doc/tm.texi (TARGET_HELP): Fix return type.
37040
37041         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
37042         in braces.  Fix argument types.
37043
37044         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
37045
37046         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
37047
37048         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
37049
37050         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
37051         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
37052
37053         (TARGET_MANGLE_TYPE): Fix argument types.
37054
37055         (TARGET_IRA_COVER_CLASSES): Use prototype.
37056
37057         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
37058
37059         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
37060
37061         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
37062
37063         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
37064
37065         (TARGET_CALLEE_COPIES): Fix argument types.
37066
37067         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
37068
37069         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
37070
37071         (TARGET_FUNCTION_VALUE): Fix argument types.
37072
37073         (TARGET_RETURN_IN_MSB): Fix argument type.
37074
37075         (TARGET_RETURN_IN_MEMORY): Fix argument types.
37076
37077         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
37078
37079         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
37080
37081         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
37082         agree with return type.
37083
37084         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
37085
37086 2010-01-15  Jing Yu  <jingyu@google.com>
37087
37088         PR rtl-optimization/42691
37089         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
37090         a pseudo to a constant and are merged, and adjust comments.
37091
37092 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
37093
37094         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
37095
37096 2010-01-15  Richard Guenther  <rguenther@suse.de>
37097
37098         PR middle-end/42739
37099         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
37100         labels of computed or non-local gotos to the destination.
37101         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
37102         landing pad label is the first label.
37103
37104 2010-01-15  Richard Guenther  <rguenther@suse.de>
37105
37106         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
37107
37108 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
37109
37110         PR target/42747
37111         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
37112         to allow generation of the xssqrtdp instruction on power7.
37113         (sqrtdf2_fpr): Ditto.
37114
37115 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37116
37117         PR middle-end/42674
37118         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
37119         functions with noreturn attribute.
37120
37121         PR c++/42608
37122         * varasm.c (declare_weak): Add weak attribute to decl if it
37123         doesn't have one already.
37124         (assemble_external): Only add decls to weak_decls if they also
37125         have weak attribute.
37126
37127 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
37128
37129         * var-tracking.c (var_reg_delete): Don't delete the association
37130         between REGs and values or one-part variables if the register
37131         isn't clobbered.
37132
37133 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37134
37135         PR debug/42657
37136         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
37137         because its first operand is a non-localized variable.
37138
37139 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37140
37141         PR tree-optimization/42706
37142         * tree-sra.c (encountered_recursive_call): New variable.
37143         (encountered_unchangable_recursive_call): Likewise.
37144         (sra_initialize): Initialize both new variables.
37145         (callsite_has_enough_arguments_p): New function.
37146         (scan_function): Call decl and flags check only for IPA-SRA, check
37147         whether there is a recursive call and whether it has enough arguments.
37148         (all_callers_have_enough_arguments_p): New function.
37149         (convert_callers): Look for recursive calls only when
37150         encountered_recursive_call is set.
37151         (ipa_early_sra): Bail out either if
37152         !all_callers_have_enough_arguments_p or
37153         encountered_unchangable_recursive_call.
37154
37155 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37156
37157         * sel-sched.c: Add 2010 to copyright years.
37158         * sel-sched-ir.c: Likewise.
37159         * sel-sched-ir.h: Likewise.
37160
37161 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37162
37163         PR tree-optimization/42714
37164         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
37165         constructors specially.
37166
37167 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37168
37169         * config/i386/drivers-i386.c (detect_caches_intel):
37170         Add l2sizekb parameter and fill in.
37171         (host_detect_local_cpu): Add l2sizekb, fill in.
37172         Add Atom small cache heuristic.
37173
37174 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37175
37176         * config/i386/drivers-i386.c (detect_caches_cpuid4):
37177         Add level3 parameter and fill in.
37178         (detect_caches_intel): Handle level3 cache.
37179
37180 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37181
37182         * config/i386/drivers-i386.c (host_detect_local_cpu):
37183         Fix core duo detection.
37184
37185 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37186
37187         * config/i386/drivers-i386.c (host_detect_local_cpu):
37188         Fix Atom detection.
37189
37190 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37191
37192         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
37193         (rs6000_variable_issue_1): this.  Use...
37194         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
37195
37196 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37197
37198         * sel-sched-ir.c (sel_restore_other_notes): Rename to
37199         sel_restore_notes.  Update all callers.  Call reemit_notes
37200         for all insns.
37201
37202 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37203
37204         PR rtl-optimization/42246
37205         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
37206         loops.
37207
37208 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37209
37210         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
37211         all successors is the same as number of successors in current region.
37212
37213 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37214
37215         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
37216         to rename is not separable.  Otherwise check that its LHS is not NULL.
37217
37218 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37219
37220         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
37221
37222 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37223
37224         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
37225         available registers when failed to discover LHS register class.
37226         Fix indentation.  Update comment.
37227
37228 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37229             Alexander Monakov  <amonakov@ispras.ru>
37230
37231         PR rtl-optimization/42389
37232         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
37233         to can_issue_more.
37234         (advance_state_on_fence): Likewise.
37235         (sel_target_adjust_priority): Print debug output only when
37236         sched_verbose >= 4, not 2.
37237         (get_expr_cost): Do not issue all unique insns on the next cycle.
37238         (fill_insns): Initialize can_issue_more from the value saved
37239         with the fence.
37240         * sel-sched-ir.c (flist_add): New parameter issue_more.
37241         Init FENCE_ISSUE_MORE with it.
37242         (merge_fences): Likewise.
37243         (init_fences): Update call to flist_add.
37244         (add_to_fences, add_clean_fence_to_fences)
37245         (add_dirty_fence_to_fences): Likewise.
37246         (move_fence_to_fences): Update call to merge_fences.
37247         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
37248         sched groups.
37249         * sel-sched-ir.h (struct _fence): New field issue_more.
37250         (FENCE_ISSUE_MORE): New accessor macro.
37251
37252 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37253
37254         PR rtl-optimization/42388
37255         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
37256         that have no predecessors nor successors.  Do not call move_bb_info
37257         for empty blocks outside of current region.
37258
37259 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37260
37261         PR rtl-optimization/42294
37262         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
37263         * sel-sched.c (move_exprs_to_boundary): Transitively add all
37264         originators' originators.
37265
37266 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37267
37268         PR rtl-optimization/39453
37269         PR rtl-optimization/42246
37270         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
37271         for pipelining_p.
37272         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
37273
37274 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37275             Alexander Monakov  <amonakov@ispras.ru>
37276
37277         PR middle-end/42245
37278         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
37279         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
37280         argument.  Update all callers.
37281         (tidy_control_flow): ... and here.  Recompute topological order
37282         of basic blocks in region if necessary.
37283         (sel_redirect_edge_and_branch): Change return type.  Return true
37284         if topological order might have been invalidated.
37285         (purge_empty_blocks): Export and move from...
37286         * sel-sched.c (purge_empty_blocks): ... here.
37287         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
37288         (maybe_tidy_empty_bb): Delete prototype.
37289         (purge_empty_blocks): Declare.
37290
37291 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37292
37293         PR rtl-optimization/42249
37294         * sel-sched.c (try_replace_dest_reg): When chosen register
37295         and original register is the same, do not bail out early, but
37296         still check all original insns for validity of replacing destination
37297         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
37298         in this case.
37299
37300 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37301
37302         PR c/42721
37303         Port from no-undefined-overflow branch:
37304         2009-03-09  Richard Guenther  <rguenther@suse.de>
37305
37306         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
37307
37308 2010-01-14  Richard Guenther  <rguenther@suse.de>
37309
37310         PR lto/42665
37311         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
37312
37313 2010-01-14  Ira Rosen  <irar@il.ibm.com>
37314
37315         PR tree-optimization/42709
37316         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
37317         as scalar type in creation of constant vector operand.
37318
37319 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37320
37321         PR testsuite/42414
37322         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
37323         (check-parallel-%): Match `testsuite' directory component only
37324         at the end.
37325
37326 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
37327
37328         PR translation/39521
37329         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
37330         strings with _().
37331
37332 2010-01-13  Richard Guenther  <rguenther@suse.de>
37333
37334         PR tree-optimization/42730
37335         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
37336         offset zero.
37337
37338 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
37339
37340         PR target/pr42542
37341         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
37342         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
37343         them signed.
37344
37345 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
37346
37347         * config/bfin/libgcc-bfin.ver: Regenerate based on current
37348         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
37349         ___umulsi3_highpart.
37350
37351         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
37352         rather than schedule_insns if the pass is enabled.
37353
37354 2010-01-13  Martin Jambor  <mjambor@suse.cz>
37355
37356         PR tree-optimization/42704
37357         * tree-sra.c (sra_modify_assign): Do not delete assignments to
37358         SSA_NAMEs.
37359
37360 2010-01-13  Martin Jambor  <mjambor@suse.cz>
37361
37362         PR tree-optimization/42703
37363         * tree-sra.c (analyze_access_subtree): Check that we can build a
37364         reference to the original data within the aggregate.
37365
37366 2010-01-13  Richard Guenther  <rguenther@suse.de>
37367
37368         PR tree-optimization/42705
37369         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
37370
37371 2010-01-13  Richard Guenther  <rguenther@suse.de>
37372
37373         PR middle-end/42716
37374         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
37375
37376 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
37377
37378         PR debug/41371
37379         * var-tracking.c (values_to_unmark): New variable.
37380         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
37381         values_to_unmark vector.  Moved body to...
37382         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
37383         instead queue it into values_to_unmark vector.
37384         (vt_find_locations): Free values_to_unmark vector.
37385
37386 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
37387
37388         * config/s390/s390.c (override_options): Set
37389         default of max-pending-list-length to 256
37390
37391 2010-01-13  Richard Guenther  <rguenther@suse.de>
37392
37393         PR lto/42678
37394         * tree-pass.h (PROP_gimple_lcx): New.
37395         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
37396         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
37397         before the final cleanup_eh.
37398         (dump_properties): Dump PROP_gimple_lcx.
37399         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
37400         (tree_lower_complex_O0): Remove.
37401         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
37402         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
37403         tree_lower_complex, schedule TODO_update_ssa.
37404         * lto-streamer-out.c (output_function): Stream the functions
37405         properties.
37406         * lto-streamer-in.c (input_function): Likewise.
37407         (lto_read_body): Do not override them here.
37408
37409 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
37410
37411         PR c/42708
37412         * c-typeck.c (build_c_cast): Fold value cast to union type before
37413         wrapping it in a CONSTRUCTOR.
37414
37415 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
37416
37417         PR rtl-optimization/42699
37418         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
37419         involved.
37420
37421 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37422
37423         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
37424         SUBTARGET_WARN_UNUSED_SPEC): Move ...
37425         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
37426         SUBTARGET_WARN_UNUSED_SPEC): ... here
37427         * config/mips/iris5.h (LIBGCC_SPEC): Define.
37428
37429 2010-01-12  Julian Brown  <julian@codesourcery.com>
37430
37431         * config/arm/neon-schedgen.ml (Utils): Don't try to
37432         open missing module.
37433         (find_with_result): New.
37434
37435 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
37436
37437         PR debug/42662
37438         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
37439         sharing when canonicalizing ({lt,ge}u (plus a b) b).
37440
37441         PR tree-optimization/42645
37442         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
37443         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
37444         decl_map, set processing_debug_stmt to -1 and return name without
37445         any remapping.
37446
37447 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
37448
37449         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
37450         binutils version, and reword target configuration description.
37451
37452 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
37453
37454         * config/avr/avr.h (LINKER_NAME): Remove.
37455
37456 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
37457
37458         PR target/42416
37459         * config/rs6000/rs6000.c (rs6000_override_options): On targets
37460         that support VSX, warn for -mno-altivec if vsx is not disabled,
37461         and disable vsx.
37462
37463 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
37464             Shujing Zhao  <pearly.zhao@oracle.com>
37465
37466         PR translation/42469
37467         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
37468         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
37469         character between option name and help text.
37470         * c.opt (imultilib): Likewise.
37471
37472 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
37473
37474         * lto-streamer-out.c (output_unreferenced_globals): Output static
37475         variables.
37476
37477 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
37478
37479         PR rtl-optimization/42621
37480         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
37481         optimizing for size.
37482         (duplicate_computed_gotos): Remove now-redundant check.
37483
37484 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
37485
37486         PR target/37454
37487         * configure.ac: Save and restore LDFLAGS and LIBS
37488         * configure: Regenerate.
37489
37490 2010-01-10  Richard Guenther  <rguenther@suse.de>
37491
37492         PR middle-end/42667
37493         * builtins.c (fold_builtin_strlen): Add type argument and
37494         convert the resulting length to it.
37495         (fold_builtin_1): Adjust.
37496
37497 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
37498
37499         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
37500         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
37501         1 insn.
37502         (num_insns_constant_wide): Adjust for that change.
37503
37504 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37505
37506         PR debug/42631
37507         * web.c (union_defs): Add used argument, to combine uses of
37508         uninitialized regs.
37509         (entry_register): Adjust type and tests of used argument.
37510         (web_main): Widen used for new use.  Pass it to union_defs.
37511         * df.h (union_defs): Adjust prototype.
37512
37513 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37514
37515         PR debug/42630
37516         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
37517         uses in new incoming argument.  Free body.
37518         (reset_debug_uses_in_loop): New.
37519         (analyze_insn_to_expand_var): Call the latter if the former found
37520         anything.  Fix whitespace.  Reject invalid dest overlaps before
37521         going through all insns in the loop.
37522
37523 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37524
37525         PR debug/42629
37526         * haifa-sched.c (dying_use_p): Debug insns don't count.
37527
37528 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37529
37530         PR middle-end/42363
37531         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
37532         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
37533         (verify_gimple_call): Reject LHS in noreturn calls.
37534
37535 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37536
37537         PR debug/42604
37538         PR debug/42395
37539         * tree-vect-loop-manip.c (adjust_info): New type.
37540         (adjust_vec): New pointer to vector.
37541         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
37542         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
37543         (slpeel_update_phis_for_duplicate_loop): Use them.
37544         (slpeel_update_phi_nodes_for_guard1): Likewise.
37545         (slpeel_update_phi_nodes_for_guard2): Likewise.
37546         (slpeel_tree_peel_loop_to_edge): Likewise.
37547         (vect_update_ivs_after_vectorizer): Likewise.
37548
37549 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37550
37551         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
37552         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
37553
37554 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37555
37556         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
37557         bogus uninitialized warning.
37558
37559 2010-01-09  Richard Guenther  <rguenther@suse.de>
37560
37561         PR middle-end/42512
37562         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
37563         the evolution is compatible with the initial condition.
37564
37565 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
37566
37567         * gcc.c (process_command): Update copyright notice dates.
37568         * gcov.c (print_version): Likewise.
37569         * gcov-dump.c (print_version): Likewise.
37570         * mips-tfile.c (main): Likewise.
37571         * mips-tdump.c (main): Likewise.
37572
37573 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
37574
37575         PR target/41885
37576         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
37577         (rotlhi3): Delete.
37578         (rotlhi3_8): Delete.
37579         (rotlsi3): Delete.
37580         (rotlsi3_8): Delete.
37581         (rotlsi3_16): Delete.
37582         (rotlsi3_24): Delete.
37583         (rotl<mode>3): New.
37584         (*rotw<mode>3): New.
37585         (*rotb<mode>3): New.
37586         * config/avr/avr.c (avr_rotate_bytes): New function.
37587         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
37588
37589 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
37590
37591         PR target/37454
37592         * configure.ac: Modify -rdynamic check.
37593         * configure: Regenerate.
37594
37595 2010-01-08  DJ Delorie  <dj@redhat.com>
37596
37597         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
37598         register popping order.
37599
37600 2010-01-08  Richard Guenther  <rguenther@suse.de>
37601
37602         PR lto/42528
37603         * c.opt (fsigned-char): Also let LTO handle this option.
37604         (funsigned-char): Likewise.
37605
37606 2010-01-07  Richard Guenther  <rguenther@suse.de>
37607
37608         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
37609         (gimple_op): Likewise.
37610         (gimple_op_ptr): Likewise.
37611         (gimple_assign_set_lhs): Remove gcc_assert.
37612         (gimple_assign_set_rhs1): Likewise.
37613         (gimple_assign_set_rhs2): Likewise.
37614         (gimple_call_set_lhs): Likewise.
37615         (gimple_call_set_fn): Likewise.
37616         (gimple_call_set_fndecl): Likewise.
37617         (gimple_call_fndecl): Likewise.
37618         (gimple_call_return_type): Likewise.
37619         (gimple_call_set_chain): Likewise.
37620         (gimple_call_num_args): Likewise.
37621         (gimple_call_set_arg): Likewise.
37622         (gimple_cond_set_code): Likewise.
37623         (gimple_cond_set_lhs): Likewise.
37624         (gimple_cond_set_rhs): Likewise.
37625         (gimple_cond_set_true_label): Likewise.
37626         (gimple_cond_set_false_label): Likewise.
37627         (gimple_label_set_label): Likewise.
37628         (gimple_goto_set_dest): Likewise.
37629         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
37630         (gimple_debug_bind_get_value): Likewise.
37631         (gimple_debug_bind_get_value_ptr): Likewise.
37632         (gimple_debug_bind_set_var): Likewise.
37633         (gimple_debug_bind_set_value): Likewise.
37634         (gimple_debug_bind_reset_value): Likewise.
37635         (gimple_debug_bind_has_value_p): Likewise.
37636         (gimple_return_retval_ptr): Remove gcc_assert.
37637         (gimple_return_retval): Likewise.
37638         (gimple_return_set_retval): Likewise.
37639         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
37640         (safe_referenced_var_iterator): Remove.
37641         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
37642         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
37643         (fill_referenced_var_vec): Remove.
37644         (first_readonly_imm_use): Remove redundant gcc_assert.
37645         (phi_arg_index_from_use): Combine gcc_asserts.
37646         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
37647         (first_imm_use_stmt): Remove redundant gcc_assert.
37648         * tree-cfg.c (verify_gimple_call): Verify function and chain
37649         operands.  Verify arguments.
37650         (verify_types_in_gimple_stmt): Verify condition code and labels.
37651
37652 2010-01-07  Richard Guenther  <rguenther@suse.de>
37653
37654         PR tree-optimization/42641
37655         * sese.c (rename_map_elt_info): Use the SSA name version, do
37656         not hash pointers.
37657
37658 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
37659
37660         PR tree-optimization/42625
37661         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
37662         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
37663
37664 2010-01-07  Duncan Sands  <baldrick@free.fr>
37665
37666         * Makefile.in (PLUGIN_HEADERS): Add version.h.
37667
37668 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
37669
37670         PR target/42511
37671         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
37672         note itself is not function_invariant_p.
37673
37674 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
37675
37676         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
37677         Do not add the DF_NOTE problem.
37678         * store-motion.c (execute_rtl_store_motion): Likewise.
37679
37680 2010-01-07  Martin Jambor  <mjambor@suse.cz>
37681
37682         PR tree-optimization/42157
37683         * tree-sra.c (compare_access_positions): Stabilize sort if both
37684         accesses have integer types, return zero immediately if they are the
37685         same.
37686
37687 2010-01-06  Richard Henderson  <rth@redhat.com>
37688
37689         PR middle-end/41883
37690         * haifa-sched.c (add_to_note_list): Merge into ...
37691         (concat_note_lists): ... here, and ...
37692         (unlink_other_notes, rm_other_notes): Merge into...
37693         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
37694         NOTE_INSN_EPILOGUE_BEG.
37695
37696 2010-01-06  Richard Guenther  <rguenther@suse.de>
37697
37698         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
37699         not inline regular functions into always-inline functions.
37700
37701 2010-01-06  Nick Clifton  <nickc@redhat.com>
37702
37703         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
37704         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
37705         used together.
37706         (OVERRIDE_OPTIONS): Delete.
37707         (OPTIMIZATION_OPTIONS): Define.
37708         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
37709         * config/rx/rx.c (rx_handle_option): Issue an error message if
37710         -mcpu=rx200 and -fpu are used together.
37711         (rx_set_optimization_options): New function.  Issue an error
37712         message if an optimization attribute attempts to reset the FPU/
37713         math optimization pairing.
37714         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
37715         * config/rx/rx.opt: Set the default to 32-bit doubles.
37716         * config/rx/t-rx: Add multilibs for -nofpu option.
37717         * doc/invoke.texi: Update documentation of RX options.
37718
37719 2010-01-06  Richard Guenther  <rguenther@suse.de>
37720
37721         * tree-ssa-pre.c (name_to_id): New global.
37722         (alloc_expression_id): Simplify SSA name handling.
37723         (lookup_expression_id): Likewise.
37724         (init_pre): Zero name_to_id.
37725         (fini_pre): Free it.
37726
37727 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
37728
37729         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
37730
37731 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
37732
37733         PR target/42542
37734         * config/i386/sse.md (smaxv2di3): New.
37735         (umaxv2di3): Likewise.
37736         (sminv2di3): Likewise.
37737         (uminv2di3): Likewise.
37738
37739 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
37740
37741         PR target/42564
37742         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
37743         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
37744         (legitimize_tls_address): Likewise.
37745         (sparc_tls_referenced_p): Likewise.
37746         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
37747         and adjust calls to legitimize_pic_address.
37748         (legitimate_constant_p) Use sparc_tls_referenced_p.
37749         (legitimate_pic_operand_p): Likewise.
37750         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
37751         (sparc_tls_symbol_ref_1): Delete.
37752         (sparc_tls_referenced_p): Make static, recognize specific patterns.
37753         (legitimize_tls_address): Make static, handle CONST patterns.
37754         (legitimize_pic_address): Make static, remove unused parameter and
37755         adjust recursive calls.
37756         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
37757         and adjust call to legitimize_pic_address.
37758         (sparc_output_mi_thunk): Likewise.
37759
37760 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
37761             H.J. Lu  <hongjiu.lu@intel.com>
37762
37763         PR target/42542
37764         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
37765         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
37766         operands to make them signed.
37767
37768         Revert:
37769         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
37770
37771         PR target/42542
37772         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
37773         GTU to GT for V4SI and V2DI.
37774
37775         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
37776         (umin<mode>3): Removed.
37777         (uminv8hi3): New.
37778         (uminv4si3): Likewise.
37779
37780 2010-01-05  Martin Jambor  <mjambor@suse.cz>
37781
37782         PR tree-optimization/42462
37783         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
37784         current_function_decl to helper functions and macros.
37785
37786 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37787
37788         PR bootstrap/41771
37789         * flags.h: Don't include real.h.
37790         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
37791         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
37792         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
37793         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
37794         * dominance.c: Update copyright.
37795         * gimple.c (walk_gimple_op): Remove inline.
37796         * tree-ssa-reassoc.c: Include real.h.
37797         * Makefile.in (FLAGS_H): Remove $(REAL_H).
37798         (tree-ssa-reassoc.o): Depend on $(REAL_H).
37799
37800 2010-01-05  Nick Clifton  <nickc@redhat.com>
37801
37802         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
37803         register to push into the stack frame when the accumulator has to
37804         be saved during interrupts.
37805
37806 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
37807
37808         * doc/invoke.texi: Remove the documentation about option
37809         -Wunreachable-code.
37810         * common.opt (Wunreachable-code):  Preserved for backward
37811         compatibility.
37812         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
37813         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
37814         the backward compatibility flag section.
37815
37816 2010-01-05  Richard Guenther  <rguenther@suse.de>
37817
37818         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
37819
37820 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
37821
37822         PR other/42611
37823         * cfgexpand.c (expand_one_var): Diagnose too large variables.
37824
37825         PR tree-optimization/42508
37826         * tree-sra.c (convert_callers): Check for recursive call
37827         by comparing cgraph nodes instead of decls.
37828         (modify_function): Call ipa_modify_formal_parameters also
37829         on all same_body aliases.
37830
37831         * cgraphunit.c (cgraph_materialize_all_clones): Compare
37832         cgraph nodes when checking for same_body aliases.
37833
37834 2010-01-05  Richard Guenther  <rguenther@suse.de>
37835
37836         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
37837         allocation and lookup.
37838         (get_or_alloc_expr_for_constant): Likewise.
37839         (phi_translate): Sink allocation.
37840
37841 2010-01-04  Richard Guenther  <rguenther@suse.de>
37842
37843         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
37844         a new entry only if needed.
37845         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
37846         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
37847         hashtable lookup.
37848         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
37849         the result array.
37850         (phi_translate): Handle CONSTANTs early.
37851
37852 2010-01-04  Martin Jambor  <mjambor@suse.cz>
37853
37854         PR tree-optimization/42398
37855         * tree-sra.c (struct access): Removed flag grp_different_types.
37856         (dump_access): Do not dump the removed flag.
37857         (sort_and_splice_var_accesses): Do not set the removed flag.
37858         (sra_modify_expr): Check for type compatibility directly.
37859
37860 2010-01-04  Martin Jambor  <mjambor@suse.cz>
37861
37862         PR tree-optimization/42366
37863         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
37864         edges with variable number of parameters.
37865         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
37866         flag instead of asserting it.
37867         (ipa_read_node_info): Read uses_analysis_done flag.
37868
37869 2010-01-04  Richard Guenther  <rguenther@suse.de>
37870
37871         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
37872         iterative_hash_* as intended.
37873         (vn_reference_compute_hash): Likewise.  Simplify hashing
37874         SSA names.
37875         (vn_reference_lookup_2): Likewise.
37876         (vn_nary_op_compute_hash): Likewise.
37877         (vn_phi_compute_hash): Likewise.
37878         (expressions_equal_p): Remove strange code.
37879         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
37880         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
37881         (bitmap_insert_into_set_1): Take value-id as parameter.
37882         (add_to_value): Pass it.
37883         (bitmap_insert_into_set): Likewise.
37884         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
37885
37886 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
37887
37888         PR driver/42442
37889         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
37890         (do_self_spec): For switches with SWITCH_IGNORE set set also
37891         SWITCH_IGNORE_PERMANENTLY.
37892         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
37893         of SWITCH_IGNORE.
37894
37895 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
37896
37897         * lto-streamer-out.c (output_unreferenced_globals): Output the full
37898         tree of an unreferenced global var.
37899
37900 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
37901
37902         PR target/42542
37903         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
37904         GTU to GT for V4SI and V2DI.
37905
37906         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
37907         (umin<mode>3): Removed.
37908         (uminv8hi3): New.
37909         (uminv4si3): Likewise.
37910
37911 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
37912
37913         PR lto/42581
37914         * collect2.c (main): Turn on trace in collect2 if -v is passed
37915         to gcc with LTO.
37916
37917 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
37918
37919         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
37920         description of expression operand.
37921
37922 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
37923
37924         * configure.ac: Add install-html to target_list for Make-hooks.
37925         * configure: Regenerate.
37926         * fortran/Make-lang.in (F95_HTMLFILES): New.
37927         (fortran.html): Use it.
37928         (fortran.install-html): New.
37929         * Makefile.in (install-html): Add lang.install-html.
37930         * java/Make-lang.in (JAVA_HTMLFILES): New.
37931         (java.html): Use it.
37932         (java.install-html): New.
37933         * objc/Make-lang.in (objc.install-html): New.
37934         * objcp/Make-lang.in (obj-c++.install-html): New.
37935         * cp/Make-lang.in (c++.install-html): New.
37936         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
37937         * lto/Make-lang.in (lto.install-html): New.
37938
37939 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
37940
37941         PR lto/42520
37942         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
37943
37944 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
37945
37946         PR rtl-optimization/41862
37947         * store-motion.c (store_killed_in_insn, compute_store_table,
37948         remove_reachable_equiv_notes, replace_store_insn,
37949         build_store_vectors): Ignore all DEBUG_INSNs.
37950
37951 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
37952
37953         PR lto/41564
37954         * common.opt: Add dumpdir.
37955
37956         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
37957         isn't specified.
37958         (option_map): Add --dumpdir.
37959
37960         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
37961
37962         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
37963
37964         * opts.c (decode_options): Try dump_dir_name first if
37965         dump_base_name isn't an absolute path.
37966         (common_handle_option): Handle OPT_dumpdir.
37967
37968         * toplev.c (dump_dir_name): New.
37969         (print_switch_values): Also ignore -dumpdir.
37970
37971         * toplev.h (dump_dir_name): New.
37972
37973 2010-01-03  Richard Guenther  <rguenther@suse.de>
37974
37975         PR tree-optimization/42589
37976         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
37977         double-word expansion of bswap32.
37978
37979 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
37980
37981         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
37982         with BLOCK_FOR_INSN.
37983         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
37984         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
37985         noce_process_if_block): Likewise.
37986         * gcse.c (compute_local_properties, insert_expr_in_table,
37987         insert_set_in_table, canon_list_insert, find_avail_set,
37988         pre_insert_copy_insn): Likewise.
37989
37990         * basic-block.h (BLOCK_NUM): Move from here...
37991         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
37992
37993 2010-01-03  Richard Guenther  <rguenther@suse.de>
37994
37995         PR tree-optimization/42438
37996         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
37997         contains_may_not_return_call flag.
37998         (BB_MAY_NOTRETURN): New.
37999         (valid_in_sets): Trapping nary operations are not valid
38000         in blocks that may not return.
38001         (insert_into_preds_of_block): Remove check for trapping expressions.
38002         (compute_avail): Compute also BB_MAY_NOTRETURN.
38003
38004 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
38005
38006         * doc/invoke.texi: Add 2010 to copyright years.
38007
38008 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
38009
38010         * config/sparc/sparc.c: Fix formatting nits.
38011
38012 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
38013             Alexander Monakov  <amonakov@ispras.ru>
38014
38015         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
38016
38017 2010-01-02  Richard Guenther  <rguenther@suse.de>
38018
38019         PR middle-end/42577
38020         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
38021         (simplify_switch_using_ranges): Mark to be removed edges
38022         as non-executable.
38023
38024 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
38025
38026         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
38027
38028         * collect2.c (scan_libraries): Add missing argument in call to
38029         scan_prog_file.
38030
38031 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
38032
38033         PR target/42448
38034         * config/alpha/predicates.md (aligned_memory_operand): Return false
38035         for CQImode.
38036         (unaligned_memory_operand): Return true for CQImode.
38037         * config/alpha/alpha.c (get_aligned_mem): Assert that location
38038         doesn not cross aligned SImode word boundary.
38039
38040 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
38041
38042         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
38043         Remove.
38044         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
38045         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
38046
38047 2010-01-02  Richard Guenther  <rguenther@suse.de>
38048
38049         PR lto/41597
38050         * toplev.c (compile_file): Emit LTO marker properly.  Change
38051         it to __gnu_lto_v1.
38052         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
38053
38054 2010-01-01  Richard Guenther  <rguenther@suse.de>
38055
38056         PR debug/42455
38057         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
38058
38059 2010-01-01  Richard Guenther  <rguenther@suse.de>
38060
38061         PR c/42570
38062         * c-decl.c (grokdeclarator): For zero-size arrays force
38063         structural equality checks as layout_type does.
38064
38065 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38066
38067         * builtins.c: Update copyright to 2010.
38068
38069 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38070
38071         PR lto/42531
38072         * lto-streamer-out.c (produce_asm): Revert the last change.
38073         (copy_function): Likewise.
38074
38075         * lto-streamer.c (lto_get_section_name): Skip any leading
38076         asterisk in name.
38077
38078 2010-01-01  Richard Guenther  <rguenther@suse.de>
38079
38080         PR middle-end/42559
38081         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
38082         for LABEL_DECLs.
38083
38084 \f
38085 Copyright (C) 2010 Free Software Foundation, Inc.
38086
38087 Copying and distribution of this file, with or without modification,
38088 are permitted in any medium without royalty provided the copyright
38089 notice and this notice are preserved.