OSDN Git Service

Generate in priority signed types for integer constants.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2
3         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
4         priority signed types.
5
6 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7
8         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove the call
9         to lang_hooks.types.type_for_size.  Call build_nonstandard_integer_type.
10
11 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
12
13         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
14         (openscop_print_polyhedron_matrix): New.
15         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
16         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
17         (openscop_print_pdr_powerset): New.
18         (openscop_print_powerset_matrix): New.
19         (openscop_print_scattering_function_1): New.
20         (print_scattering_function): Add support for scattering names and
21         OpenScop format.
22         (graphite_write_transforms): Remove.
23         (print_pdr_access_layout): Updated to support OpenScop format.
24         (print_pdr): Same.
25         (openscop_print_pbb_domain): New.
26         (print_pbb_body): Added a parameter to allow indicating that pbb_body is
27         not provided.
28         (print_pbb): Updated to call the new print_pbb_body.
29         (openscop_print_scop_context): New.
30         (print_scop_header): New.
31         (print_scop): Updated to call print_scop_header.
32         * graphite-poly.h: Document OpenScop format.
33
34 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
35
36         * config/cris/m32c.c (cris_memory_move_cost): New.
37         (cris_register_move_cost): Make static. Change arguments type from
38         enum reg_class to reg_class_t.
39         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
40         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
41         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
42
43 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
44
45         PR target/45843
46         * config/i386/i386.c (ix86_gimplify_va_arg): Use
47         INTVAL (XEXP (slot, 1)) as prev_size.
48
49 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
50
51         PR target/45837
52         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
53         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
54         defined.
55         * config/rs6000/option-defaults.h (toplevel): Change #if
56         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
57         global option changes.
58
59 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
60
61         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
62
63         PR tree-optimization/31261
64         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
65         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
66
67 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
68
69         PR bootstrap/45796
70         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
71         special-casing for generators and turn into ...
72         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
73         rule, for better error messages in case of toplevel dependency
74         errors.
75         (genprog): Add hooks, rename to ...
76         (genprogerr): ... this, and let genprog also contain check,
77         checksum, condmd.
78         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
79         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
80         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
81
82 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
83             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
84
85         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
86         for GMP, MPFR and MPC.
87
88 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
89
90         * config/sparc/sparc.opt (mimpure-text): Move ...
91         * config/sol2.opt: ... here.
92         Correct description.
93         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
94         * doc/invoke.texi (Option Summary, SPARC Options): Move
95         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
96         (Option Summary, Solaris 2 Options): ... here.
97         (Submodel Options, Solaris 2 Options): New menu entry.
98         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
99         (Solaris 2 Options): ... here.
100
101 2010-09-30  Michael Eager  <eager@eagercon.com>
102
103         * extend.texi (interrupt_handler): Add MicroBlaze to list.
104         (save_volatiles): Describe option for MicroBlaze.
105         * invoke.texi: Add MicroBlaze Options.
106         * contrib.texi: Add acknowledgment. 
107         * md.texi: Add MicroBlaze d and z constraints.
108         * install.texi: Add microblaze-*-elf.
109         * configure.ac: Add microblaze-*-* to target list.
110         * configure: Regenerate.
111         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
112         * config/microblaze/microblaze-protos.h: New.
113         * config/microblaze/crti.s: New.
114         * config/microblaze/predicates.md: New.
115         * config/microblaze/linux.h: New.
116         * config/microblaze/microblaze.md: New.
117         * config/microblaze/constraints.md: New.
118         * config/microblaze/crtn.s: New.
119         * config/microblaze/microblaze.opt: New.
120         * config/microblaze/microblaze-c.c: New.
121         * config/microblaze/t-microblaze: New.
122         * config/microblaze/microblaze.c: New.
123         * config/microblaze/microblaze.h: New.
124
125 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
126
127         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
128         parse @optional/@required and set the flags as appropriate.
129
130 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
131
132         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
133
134 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
135
136         * opt-functions.awk (static_var): Update comment.
137         (var_ref): Return offsetof expression or -1, not variable address.
138         * optc-gen.awk: Generate structure field initializers instead of
139         static variables.  Expect -1 for missing variables instead of null
140         pointer.  Add gcc_options parameters to generated functions.
141         * opth-gen.awk: Generate structure fields for static variables.
142         Add gcc_options parameters to generated functions.
143         * common.opt (optimize, optimize_size): Add variables.
144         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
145         &global_options to cl_target_option_restore.
146         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
147         &global_options to cl_optimization_restore, cl_target_option_save
148         and cl_target_option_restore.
149         (ix86_set_current_function): Pass &global_options to
150         cl_target_option_restore.
151         * config/pdp11/pdp11.h (optimize): Remove.
152         * config/rs6000/rs6000.h (optimize): Remove.
153         * config/sh/sh.h (optimize): Remove.
154         * config/xtensa/xtensa.h (optimize): Remove.
155         * coretypes.h (struct gcc_options): Declare.
156         * diagnostic.c (diagnostic_initialize): Initialize
157         context->option_state.
158         (diagnostic_report_diagnostic): Pass option_state to
159         option_enabled hook.
160         * diagnostic.h (diagnostic_context.option_enabled): Add void *
161         parameter.
162         (diagnostic_context.option_state): New field.
163         * final.c (final_start_function, final, final_scan_insn): Rename
164         optimize parameter to optimize_p.
165         * flags.h (optimize, optimize_size): Remove.
166         * function.c (invoke_set_current_function_hook): Pass
167         &global_options to cl_optimization_restore.
168         * gcc.c (driver_handle_option): Take gcc_options parameter.
169         Assert that it is &global_options.
170         (process_command): Pass &global_options to read_cmdline_option.
171         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
172         option_enabled.
173         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
174         &global_options to set_option.
175         * opts-common.c (handle_option, handle_generated_option,
176         read_cmdline_option, set_option): Take explicit gcc_options
177         parameters.  Use option_flag_var.
178         (option_flag_var): New.
179         * opts.c (common_handle_option, lang_handle_option,
180         target_handle_option): Take gcc_options parameter.  Assert that it
181         is &global_options.
182         (read_cmdline_options): Pass &global_options to
183         read_cmdline_option.
184         (print_filtered_help): Use option_flag_var.  Pass &global_options
185         to option_enabled.
186         (common_handle_option): Use option_flag_var.
187         (option_enabled): Take opts parameter.  Use option_flag_var.
188         (get_option_state): Take gcc_options parameter.  Use
189         option_flag_var.  Pass gcc_options parameter to option_enabled.
190         (enable_warning_as_error): Pass &global_options to
191         handle_generated_option.
192         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
193         (cl_option_handler_func.handler): Take gcc_options parameter.
194         (option_enabled, get_option_state, set_option, handle_option,
195         handle_generated_option, read_cmdline_option): Take gcc_options
196         parameters.
197         * toplev.c (optimize, optimize_size): Remove.
198         (print_switch_values): Pass &global_options to option_enabled.
199         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
200         to get_option_state.
201         (general_init): Initialize global_dc->option_state.
202         * tree.c (build_optimization_node): Pass &global_options to
203         cl_optimization_save.
204         (build_target_option_node): Pass &global_options to
205         cl_target_option_save.
206
207 2010-09-30  Martin Jambor  <mjambor@suse.cz>
208
209         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
210         zero sized bit-fields.
211
212 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
213
214         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
215         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
216         (c_parser_external_declaration): Use RID_AT_CLASS
217         instead of RID_CLASS.
218         (c_parser_objc_class_declaration): Same change.
219         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
220         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
221         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
222         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
223         and RID_AT_PUBLIC instead of RID_PUBLIC.
224         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
225         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
226         
227 2010-09-30  Tom G. Christensen <tgc@jupiterrise.com>
228
229         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
230         Add links to current providers of packages for Solaris and IRIX.
231
232 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
233
234         Merge from 'apple/trunk' branch on FSF servers.
235         * c-parser.c: Applied change originally in c-parse.in.
236         
237         2005-10-04  Fariborz Jahanian <fjahanian@apple.com>
238
239         Radar 4281748
240         * c-decl.c (start_decl): Check for redeclaration of class name.
241         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
242
243 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
244
245         * config/ia64/ia64.c (ia64_builtin_decl): New.
246         (TARGET_BUILTIN_DECL): Define.
247         (ia64_builtins): New.
248         (ia64_init_builtins): Save decls in ia64_builtins.
249
250 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
251
252         PR target/40457
253         * postreload.c (move2add_use_add2_insn): Use full_costs for
254         comparison.
255         (move2add_use_add3_insn): Likewise.
256         (reload_cse_move2add): Likewise.
257         * rtlanal.c (get_full_rtx_cost): New function.
258         * rtl.h (struct full_rtx_costs): New.
259         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
260         costs_add_n_insns): New inline functions.
261         (get_full_rtx_cost): Declare.
262
263         PR c/45054
264         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
265         invariants.  Check for reg_equiv_invariant.
266         (reload): Assert that spilled_pseudos is empty when returning.
267
268 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
269
270         * config/i386/mingw32.h (TARGET_64BIT): replaced by
271         TARGET_64BIT_DEFAULT in #if check.
272
273 2010-09-29  Jack Howarth <howarth@bromo.med.uc.edu>
274
275         * varasm.c (assemble_alias): Add error message for
276         unsupported ifunc.
277
278 2010-09-29  Mike Stump  <mikestump@comcast.net>
279
280         * config/darwin.h (flag_mkernel): Remove.
281         (flag_apple_kext): Likewise.
282
283 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
284             Jack Howarth <howarth@bromo.med.uc.edu>
285
286         * config/darwin.opt (undefined): Add.
287
288 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
289
290         * configure.ac: Add --enable-indirect-function option.
291         * config.gcc: Add default_gnu_indirect_function.
292         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
293         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
294         * varasm.c (do_assemble_alias): Adjust for macto name change.
295         * configure: Rebuilt.
296         * doc/install.texi: Document --enable-indirect-function.
297
298 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
299
300         * doc/options.texi (Variable, Var, Init): Update documentation
301         without reference to VarExists.
302         (VarExists): Remove.
303         * common.opt, config/i386/i386.opt, config/linux.opt,
304         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
305         Don't use VarExists.
306
307 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
308
309         * optc-gen.awk: Generate global_options initializer instead of
310         individual variables.  Add x_ prefix to names of structure
311         members.
312         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
313         names of structure members.
314         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
315         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
316         * doc/tm.texi: Regenerate.
317         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
318         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
319         * c-parser.c (disable_extension_diagnostics,
320         restore_extension_diagnostics): Update names of cpp_options
321         members.
322         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
323         * common.opt (fcompare-debug-second): Don't use Var.
324         * config/alpha/alpha.h (target_flags): Remove.
325         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
326         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
327         * config/bfin/bfin.h (target_flags): Remove.
328         * config/cris/cris.h (target_flags): Remove.
329         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
330         cl_target_option members.
331         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
332         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
333         ix86_can_inline_p): Update names of cl_target_option members.
334         * config/i386/i386.h (ix86_isa_flags): Remove.
335         * config/lm32/lm32.h (target_flags): Remove.
336         * config/mcore/mcore.h (mcore_stack_increment): Remove.
337         * config/mcore/mcore.md (addsi3): Remove extern declaration of
338         flag_omit_frame_pointer.
339         * config/mep/mep.h (target_flags): Remove.
340         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
341         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
342         * config/mmix/mmix.h (target_flags): Remove.
343         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
344         flag_expensive_optimizations): Remove.
345         * config/s390/s390.h (flag_pic): Remove.
346         * config/score/score-conv.h (target_flags): Remove.
347         * config/sh/sh.h (sh_fixed_range_str): Remove.
348         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
349         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
350         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
351         * diagnostic.c (diagnostic_initialize): Update names of
352         diagnostic_context members.
353         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
354         warn_system_headers.
355         (diagnostic_report_warnings_p): Update for new names.
356         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
357         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
358         HARD_FRAME_POINTER_IS_ARG_POINTER.
359         * flags.h (flag_compare_debug): Declare.
360         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
361         * opts.c (flag_compare_debug): Define.
362         (common_handle_option): Update names of diagnostic_context
363         members.  Handle -fcompare-debug-second.
364         (fast_math_flags_struct_set_p): Update names of cl_optimization
365         members.
366         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
367         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
368         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
369         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
370         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
371         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
372         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
373         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
374         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
375
376 2010-09-29  Hariharan Sandanagobalane <hariharan@picochip.com>
377
378         * config/picochip/picochip.c (picochip_output_internal_label):
379           This function can now be called for debug CFI labels, which can come in
380           the middle of a vliw instruction. Postpone until end of vliw.
381
382 2010-09-29  Richard Guenther  <rguenther@suse.de>
383
384         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
385         (DECL_FILE_SCOPE_P): Use it.
386         (TYPE_FILE_SCOPE_P): New macro.
387
388 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
389
390         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
391         a CPP_NAME which is a reserved word, clearly separate cases for
392         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
393
394 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
395
396         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
397         token->value with the canonical spelling.  Do exactly like C and
398         C++ and leave it as it is.
399
400 2010-09-28  Richard Henderson  <rth@redhat.com>
401
402         * config/alpha/alpha.c (alpha_builtins): New.
403         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
404         (alpha_builtin_function): New.
405         (alpha_add_builtins, alpha_init_builtins): Use it.
406
407 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
408
409         * doc/standards.texi (Standards): Expanded the section on
410         Objective-C and Objective-C++.
411
412 2010-09-28  DJ Delorie  <dj@redhat.com>
413
414         PR target/45800
415         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
416         volatile MEMs.
417
418 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
419
420         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
421         attributes on methods.
422          (c_parser_objc_method_definition): Handle attributes.
423         (c_parser_objc_methodproto): Likewise.
424         (c_parser_objc_maybe_method_attributes): New.
425         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
426         missing definition, similar to that in ObjC++.
427
428 2010-09-28  Richard Henderson  <rth@redhat.com>
429
430         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
431         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
432         (CONFIG_SJLJ_EXCEPTIONS): Remove.
433         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
434         (STACK_CHECK_PROTECT): Likewise.
435         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
436         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
437         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
438         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
439         (dwarf2out_assembly_start): Likewise.
440         * except.c (init_eh): Use targetm.except_unwind_info.
441         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
442         (output_one_function_exception_table): Likewise.
443         * final.c: Unconditionally include dwarf2out.h.
444         (final_start_function): Unconditionally call dwarf2out routines.
445         (final_end_function, final_scan_insn): Likewise.
446         * function.c (expand_function_end): Use targetm.except_unwind_info.
447         * opts.c (decode_options): Use targetm.except_unwind_info.
448         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
449         * target.def (debug_unwind_info, except_unwind_info): New.
450         * target.h (enum unwind_info_type): New.
451         * targhooks.c (default_debug_unwind_info): New.
452         (default_except_unwind_info): New.
453         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
454         * targhooks.h: Declare them.
455         * tree-tailcall.c: Include "target.h"
456         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
457         * Makefile.in (tree-tailcall.o): Update.
458         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
459         (lhd_gcc_personality): Likewise.
460
461         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
462         (TARGET_EXCEPT_UNWIND_INFO): New.
463         (DWARF2_UNWIND_INFO): Update.
464         (TARGET_DEBUG_UNWIND_INFO): New.
465         * doc/tm.texi: Rebuild.
466
467         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
468         targetm.except_unwind_info.
469
470         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
471         (arm_except_unwind_info): New.
472         (arm_compute_func_type): Use it.
473         (arm_expand_prologue, thumb_pushpop): Likewise.
474         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
475         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
476         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
477         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
478         (DWARF2_UNWIND_INFO): Remove.
479         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
480         (ARM_EABI_UNWIND_TABLES): Remove.
481
482         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
483         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
484         (ia64_except_unwind_info): New.
485         (ia64_output_function_prologue): Use it.
486         (ia64_add_bundle_selector_before): Likewise.
487         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
488         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
489         (TARGET_UNWIND_INFO): Remove.
490
491         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
492         
493 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
494
495         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
496         (c_parser_objc_protocol_definition): Likewise.
497         (c_parser_external_declaration): Provide dummy attribute arguments.
498         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
499         (c_parser_objc_class_definition): Handle attributes.
500         (c_parser_objc_protocol_definition): Likewise.
501
502 2010-09-28  Tobias Burnus  <burnus@net-b.de>
503
504         PR fortran/40569
505         PR fortran/40568
506         * toplev.h (save_decoded_options, save_decoded_options_count):
507         New global variables.
508         * toplev.c (save_decoded_options, save_decoded_options_count):
509         export variables.
510
511 2010-09-28  Ian Lance Taylor  <iant@google.com>
512
513         * config/i386/i386.c (ix86_supports_split_stack): Test
514         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than
515         dwarf2out_do_cfi_asm.
516
517 2010-09-28  Ian Lance Taylor  <iant@google.com>
518
519         PR target/45815
520         * opts.c (decode_options): Don't test whether the target supports
521         split stack if flag_split_stack == 0.
522
523 2010-09-28  Jan Hubicka  <jh@suse.cz>
524
525         * builtin-attrs.def (ATTR_LEAF): New attribute.
526         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
527         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
528         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
529         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
530         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
531         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
532         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
533         * sync-builtins.def: Annotate all builtins by leaf.
534         * omp-builtins.def: Annotate all builtins by leaf.
535         * builtins.def: Annotate relevant builtins with leaf attribute.
536         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
537         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
538         leaf.
539
540 2010-09-28  Jan Hubicka  <jh@suse.cz>
541
542         * tree-ssa-ccp.c (fold_ctor_reference): New function.
543         (fold_const_aggregate_ref): Use it.
544         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
545         into external static.
546
547 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
548
549         PR target/44452
550         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
551         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
552         (ix86_solaris_return_in_memory): Remove.
553         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
554         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
555         (TARGET_SUBTARGET_DEFAULT): Redefine.
556         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
557         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
558         (TARGET_SUBTARGET_DEFAULT): Redefine.
559         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
560         -mvect8-ret-in-mem.
561         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
562
563 2010-09-29  Alan Modra  <amodra@gmail.com>
564
565         PR target/45807
566         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
567         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
568         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
569         Delete.
570         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
571         (rs6000_emit_prologue): Don't just create frame save info for r2,
572         actually save r2.
573
574 2010-09-28  Richard Henderson  <rth@redhat.com>
575
576         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
577         when 8 bytes are requested.
578
579 2010-09-28  Tristan Gingold  <gingold@adacore.com>
580
581         * config/avr/avr.c (expand_prologue): Set
582         current_function_static_stack_size.
583
584 2010-09-28  Tristan Gingold  <gingold@adacore.com>
585
586         * config/alpha/alpha.md: Change the initial condition of the
587         probing loop.
588
589 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
590
591         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
592         Split from *avx_<maxmin:code><mode>3.
593         (*avx_<smaxmin:code><mode>3): Ditto.
594         * config/i386/i386.md (maxmin): Remove code iterator.
595
596 2010-09-27  Ian Lance Taylor  <iant@google.com>
597
598         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
599         requires assembler support for CFI directives.
600
601 2010-09-27  Richard Henderson  <rth@redhat.com>
602
603         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
604
605 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
606
607         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
608         that AFTER is not in the range FROM..TO, inclusive.
609
610 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
611             Bernd Schmidt  <bernds@codesourcery.com>
612
613         PR rtl-optimization/45792
614         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
615         If not all insns are to be merged, for each edge, stash the
616         next candidate after the to-be-merged insns before doing the
617         merge, and use them for the retry at the new insertion point.
618         Handle CC0 targets when retrying.
619
620 2010-09-27  Ian Lance Taylor  <iant@google.com>
621
622         * common.opt (fsplit-stack): New option.
623         * opts.c (decode_options): Set flag_split_stack to final value.
624         * target.def (supports_split_stack): New hook.
625         * gcc.c (STACK_SPLIT_SPEC): Define.
626         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
627         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
628         (Code Gen Options): Document -fsplit-stack.
629         * doc/extend.texi (Function Attributes): Mention no_split_stack.
630         (Function Attributes): Document no_split_stack.
631         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
632         TARGET_SUPPORTS_SPLIT_STACK.
633         * doc/tm.texi: Rebuild.
634         * function.c (thread_prologue_and_epilogue_insns): If
635         flag_split_stack, add split stack prologue.
636         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
637         * varasm.c (saw_no_split_stack): New static variable.
638         (assemble_start_function): Set saw_no_split_stack if the function
639         has the no_split_stack attribute.
640         (file_end_indicate_split_stack): New function.
641         * output.h (file_end_indicate_split_stack): Declare.
642         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
643         and function.
644         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
645         routines.
646         * config/i386/i386.c (ix86_option_override_internal): Don't set
647         expand_builtin_va_start to NULL if -fsplit-stack.
648         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
649         -fsplit-stack.
650         (ix86_va_start): If -fsplit-stack, get overflow pointer from
651         scratch register set by prologue.
652         (ix86_code_end): If -fsplit-stack, call
653         file_end_indicate_split_stack.
654         (ix86_supports_split_stack): New static function.
655         (SPLIT_STACK_AVAILABLE): Define.
656         (split_stack_prologue_scratch_regno): New static function.
657         (split_stack_fn): New static variable.
658         (ix86_expand_split_stack_prologue): New function.
659         (ix86_live_on_entry): New static function.
660         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
661         (output_pic_addr_const): Likewise.
662         (i386_asm_output_addr_const_extra): Likewise.
663         (ix86_expand_call): Change return type to rtx.  Return the new
664         call instruction.
665         (TARGET_SUPPORTS_SPLIT_STACK): Define.
666         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
667         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
668         (split_stack_prologue, split_stack_return): New insns.
669         (split_stack_space_check): New insn.
670         * config/i386/i386.h (struct machine_function): Add
671         split_stack_varargs_pointer field.
672         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
673         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
674         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
675         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
676         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
677         Declare.
678         (ix86_expand_call): Update declaration.
679
680 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
681
682         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
683         code.  Added byref, which was missing in the list of codes.
684         Explain that enumeration values are encoded as the integer type
685         that the compiler uses to store them.  Explain and make examples
686         of how 'const' interacts with pointers, and the complication of
687         the encoding of 'const char *'.
688         (Legacy type encoding): New subsection, explaining that GCC emits
689         incorrect type encodings for the NeXT runtime for compatibility
690         reasons.
691         (@@encode): New subsection, explaining @encode and particularly
692         that protocol qualifiers are not recognized inside an @encode()
693         expression.
694         (Method signatures): New subsection, explaining how method
695         signatures are encoded.
696
697 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
698
699         Merge from 'apple/trunk' branch on FSF servers.  Removed small
700         change in build_conditional_expr that had been added when fixing
701         PR objc/27377 and which did the same check in a less complete way.
702
703         2005-12-15  Fariborz Jahanian <fjahanian@apple.com>
704
705         Radar 4229905
706         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
707         looking for objective-c common pointer types.
708         
709         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
710
711         Radar 4154928
712         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
713         use their ObjC common type.
714
715 2010-09-27  Richard Guenther  <rguenther@suse.de>
716
717         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
718
719 2010-09-27  Jie Zhang  <jie@codesourcery.com>
720
721         * print-tree.c (print_node): Print in-constant-pool.
722
723 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
724
725         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
726         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
727         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
728         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
729
730 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
731
732         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
733         from pro_epilogue_adjust_stack_<mode>_{1,2}.
734         (pro_epilogue_adjust_stack_<mode>_add): Rename from
735         pro_epilogue_adjust_stack_<mode>_3.
736         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
737         renamed pro_epilogue_adjust_stack_{si,di}_add.
738         (ix86_expand_prologue): Use indirect functions.  Update for renamed
739         pro_epilogue_adjust_stack_{si,di}_sub.
740
741 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
742
743         * config/i386/i386.md (movmsk_df): New insn.
744         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
745         sequence for TARGET_SSE_MATH.
746
747 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
748
749         * config/mips/mips.c (mips_builtin_decls): Declare.
750         (mips_init_builtins): Store function declarations in
751         mips_builtin_decls.
752         (mips_builtin_decl): New function.
753         (TARGET_BUILTIN_DECL): Define.
754
755 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
756             Richard Henderson  <rth@redhat.com>
757
758         * config/i386/cygwin.asm: Include auto-host.h.
759         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
760         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
761         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
762         alignment code from the 64-bit path.  Use gas local labels.
763         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
764         from _di_2.  Remove the useless constant integer argument.
765         (pro_epilogue_adjust_stack_<mode>_3): New.
766         (allocate_stack_worker_probe_<mode>): Macroize from
767         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
768         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
769         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
770         (__chkstk_ms): New function.
771         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
772         * gcc/config/i386/t-interix: Likewise.
773         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
774         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
775         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
776         * configure, config.in: Rebuild.
777
778 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
779
780         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
781         statements because of the return slot optimization.
782
783 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
784
785         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
786         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
787         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
788         (class_likely_spilled_p): Rename to...
789         (avr_class_likely_spilled_p): ...this. Make static. Change argument
790         type to reg_class_t.
791
792 2010-09-24  Jan Hubicka  <jh@suse.cz>
793
794         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
795         (lto_symtab_resolve_symbols): Set it.
796         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
797         store resolution field in cgraph/varpool.
798         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
799         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
800         (cgraph_dump_node): Drop used_from_object_file.
801         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
802         (cgraph_function_body_availability): Use decl_replaceable_p.
803         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
804         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
805         cgraph_used_from_object_file_p.
806         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
807         cgraph_used_from_object_file_p.
808         (resolution_used_from_other_file_p): New functoin.
809         (cgraph_used_from_object_file_p): New predicate.
810         * cgraph.h: Include plugin-api.h
811         (struct cgraph_local_info): Remove used_from_object_file.
812         (struct cgraph_node): Add resolution field.
813         (struct varpool_node): Likewise; remove used_from_object_file;
814         reove const_value_known.
815         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
816         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
817         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
818         varpool_used_from_object_file_p): Declare.
819         (varpool_get_node, varpool_extra_name_alias): Update prototype.
820         * tree.h (DECL_REPLACEABLE_P): Remove.
821         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
822         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
823         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
824         input_overwrite_node, input_node, input_varpool_node): Stream
825         resolution.
826         * expr.c (expand_expr_real_1): Use const_value_known_p
827         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
828         const_value_known.
829         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
830         (function_and_variable_visibility): Set resolution for local vars
831         and functions; use varpool_used_from_object_file_p.
832         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
833         static functions.
834         (default_binds_local_p_1): Use resolutoin info.
835         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
836         * varpool.c (varpool_get_node): Constify.
837         (const_value_known_p): Do not use vnode->const_value_known;
838         use decl_replaceable_p.
839         (varpool_finalize_decl): Do not set const_value_known.
840         (cgraph_variable_initializer_availability): Use decl_replaceable_p
841         (varpool_extra_name_alias): Return new node.
842         (varpool_used_from_object_file_p): New function.
843
844 2010-09-24  Richard Henderson  <rth@redhat.com>
845
846         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
847         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
848         (do_spill): Use REG_CFA_OFFSET.
849         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
850         as appropriate.
851         (ia64_expand_epilogue): Likewise.
852         (process_set): Split into ...
853         (process_cfa_adjust_cfa): this,
854         (process_cfa_register): this,
855         (process_cfa_offset): and this new function.
856         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
857         instead of REG_FRAME_RELATED_EXPR.
858
859 2010-09-24  Olivier Hainque  <hainque@adacore.com>
860
861         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
862
863 2010-09-24  Jan Hubicka  <jh@suse.cz>
864
865         * doc/extend.texi: (attribute leaf): Document.
866         * tree.c (local_define_builtin): Handle ECF_LEAF.
867         (build_common_builtin_nodes): Set ECF_LEAF where needed.
868         * tree.h (ECF_LEAF): New.
869         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
870         overwrittable and unavailable functions.
871         (ipa_init): Put all_module_statics into optimization_summary_obstack.
872         (copy_global_bitmap): Do not copy all_module_statics.
873         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
874         (propagate): Handle overwritable and unavailable leaf functions;
875         initialize global info for overwritable and unavailable leaf functions;
876         do not free all module statics.
877         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
878         local statics.
879         * calls.c (flags_from_decl_or_type): Handle leaf.
880         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
881         abnormal gotos.
882
883 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
884
885         * gengtype.c: Reindented.
886         * gengtype.h: Reindented.
887         * gengtype-parse.c: Reindented.
888
889 2010-09-24  Jan Hubicka  <jh@suse.cz>
890
891         PR tree-optimization/45738
892         PR tree-optimization/45741
893         * expr.c (string_constant): Allow CONST_DECL too;
894         check that DECL_INITIAL is set.
895         * varpool.c (const_value_known_p): Only look into VAR_DECL
896         and CONST_DECL.
897
898 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
899
900         * common.opt (undef): New.
901
902 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
903
904         PR middle-end/45234
905         * rtl.h (enum global_rtl_index): Add
906         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
907         (LAST_VIRTUAL_POINTER_REGISTER): Define.
908         (virtual_preferred_stack_boundary_rtx,
909         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
910         (LAST_VIRTUAL_REGISTER): Increase by one.
911         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
912         instead of LAST_VIRTUAL_REGISTER.
913         * function.c (instantiate_new_reg): Handle
914         virtual_preferred_stack_boundary_rtx.
915         * emit-rtl.c (init_virtual_regs): Handle
916         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
917         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
918         * explow.c (round_push): If crtl->preferred_stack_boundary
919         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
920         virtual_preferred_stack_boundary_rtx alignment instead of
921         crtl->preferred_stack_boundary alignment.
922         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
923         macros.  Never decrease crtl->preferred_stack_boundary,
924         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
925         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
926         stack_pointer_delta in dynamic allocation, even when size
927         is constant.
928         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
929         macro.
930         * print-rtl.c (print_rtx): Handle
931         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
932         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
933         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
934         * config/frv/frv.c (frv_emit_movsi): Likewise.
935         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
936         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
937         Likewise.
938
939         Revert:
940         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
941
942         PR middle-end/45234
943         * calls.c (expand_call): Make sure that all variable sized
944         adjustments are multiple of preferred stack boundary after
945         stack alignment.
946
947 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
948             Dominique Dhumieres  <dominiq@lps.ens.fr>
949
950         PR bootstrap/45751
951         * gcc/config/darwin-driver.c (darwin_default_min_version):
952         Adjust size passed to memcpy in two places.
953
954 2010-09-24  Richard Guenther  <rguenther@suse.de>
955
956         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
957         Make sure to not call set_type_context with error_mark_node.
958         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
959
960 2010-09-24  Richard Guenther  <rguenther@suse.de>
961
962         * Makefile.in (OBJS-onestep): Remove.
963         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
964         (libbackend.a): Remove onestep support.
965         (libbackend.o): Remove.
966         * configure.ac (--enable-intermodule): Remove.
967         * configure: Regenerate.
968
969 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
970
971         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
972         reaching the end of a block if it occurs at a DEBUG_INSN.
973
974 2010-09-09  Tristan Gingold  <gingold@adacore.com>
975
976         PR target/44242
977         * config/vms/vms-crt0-64.c: Removed.
978         * config/vms/vms-crt0.c: Removed.
979         * config/vms/vms-psxcrt0-64.c: Removed.
980         * config/vms/vms-psxcrt0.c: Removed.
981         * config/vms/vms-ucrt0.c: New file.
982         * config/vms/t-vms64: Removed.
983         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
984         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
985         * config.gcc (alpha-dec-vms): Use t-vms.
986
987 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
988
989         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
990         underfull hbox in DVI output.
991         (-fobjc-class-cxx-cdtors): Same change.
992         (-fobjc-exceptions): Tidied up documentation.  Explain what the
993         option does, but moved the (lenghty) description of the exception
994         syntax into objc.texi.
995         (-fobjc-gc): Explain that the option is not useful with the GNU
996         runtime.
997         (-fzero-link): Explain that the GNU runtime always works in
998         "zero-link" mode.
999         * doc/objc.texi: All sections: simplified @node declarations
1000         removing specification of next, previous, up node.
1001         (Objective-C): Updated introduction.
1002         (Garbage Collection): Updated.  The bohem-gc library is now
1003         included in gcc itself.  Mention that this section only applies to
1004         the GNU Objective-C runtime.
1005         (compatibility_alias): Small tidy up.
1006         (Exceptions): New section mostly containing text previously in the
1007         description of the -fobjc-exception command-line option.
1008         (Synchronization): Same.
1009
1010 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
1011
1012         * config/i386/i386.md (ix86_code_end): Move the initialization of
1013         xops array near the consumer.  Use AX_REG and SP_REG instead of
1014         numerical constants.
1015
1016 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
1017
1018         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
1019         method [methodname]' for an Objective-C method instead of the less
1020         satisfactory 'too many arguments to function' (with no method name).
1021
1022 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1023
1024         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
1025         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
1026         (execute_update_addresses_taken): Remove parameter.  Execute the
1027         optimization unconditionally.
1028         * passes.c (execute_function_todo): Call execute_update_addresses_taken
1029         unconditionally if TODO_rebuild_alias is set, else only when optimizing
1030         if TODO_update_address_taken is set.
1031
1032 >>>>>>> .r164755
1033 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
1034
1035         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1036         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
1037         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1038         (arm_output_addr_const_extra): Make static.
1039
1040 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
1041
1042         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
1043         define as unspec_volatile.
1044         ("nops"): Define as unspec_volatile. Use fputs to write to
1045         asm_out_file directly.  Output NOPs on separate lines using while loop.
1046         * config/i386/i386.c (ix86_code_end): Use fputs to write to
1047         asm_out_file directly.  Output NOPs on separate lines using while loop.
1048
1049 2010-09-23  Richard Guenther  <rguenther@suse.de>
1050
1051         PR tree-optimization/45565
1052         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
1053         Make sure to adjust the fndecl before replacing the stmt.
1054
1055 2010-09-23  Richard Guenther  <rguenther@suse.de>
1056
1057         PR middle-end/45750
1058         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
1059         gimplifying MEM_REF.
1060
1061 2010-09-23  Alan Modra  <amodra@gmail.com>
1062
1063         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
1064         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
1065
1066 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
1067
1068         PR rtl-optimization/44374
1069         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
1070         * df-core.c (df_set_bb_dirty): Set it.
1071         * ifcvt.c (find_memory): Remove function.
1072         (dead_or_predicable): Use can_move_insns_across.
1073         * df.h (can_move_insns_across): Declare function.
1074         * cfgcleanup.c (block_was_dirty): New static variable.
1075         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
1076         than df_get_bb_dirty.
1077         (try_head_merge_bb): New static function.
1078         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
1079         is set.
1080         * df-problems.c: Include "target.h"
1081         (df_simulate_find_uses): New static function.
1082         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
1083         (find_memory, find_memory_store): New static functions.
1084         (can_move_insns_across): New function.
1085         * Makefile.in (df-problems.o): Update dependencies.
1086
1087 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
1088
1089         PR java/44095
1090         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
1091         is specified and the suffix of the file isn't ".c".
1092         * config/sparc/linux64.h (ASM_SPEC): Likewise.
1093
1094 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1095
1096         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
1097         * doc/cppopts.texi: Fix markup of index entry.
1098         * doc/extend.texi (Constructing Calls): Fix markup of
1099         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
1100         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
1101         (Vague Linkage, C++ Attributes): Fix markup of index entries and
1102         keywords.
1103         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
1104         avoid long lines.
1105         (C Dialect Options, C++ Dialect Options, Warning Options)
1106         (Debugging Options, Spec Files, Darwin Options)
1107         (i386 and x86-64 Options, MIPS Options)
1108         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
1109         index entries, avoid abbreviations, allow URLs to wrap, avoid
1110         long lines, avoid overlong pages from long @itemx lists.
1111         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
1112         * doc/standards.texi (Standards): Likewise.
1113         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
1114
1115 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
1116
1117         * opts-common.c (prune_options): Make static.  Work with decoded
1118         options.
1119         (decode_cmdline_options_to_array): Call prune_options.  Don't
1120         resize option array here.
1121         * opts.h (prune_options): Remove prototype.
1122         * gcc.c (process_command): Take decoded options; don't call
1123         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
1124         (main): Call decode_cmdline_options_to_array here instead of
1125         prune_options.  Update call to process_command.
1126         * config/darwin-driver.c: Include opts.h.
1127         (darwin_default_min_version): Work with decoded options.  Don't
1128         handle -b or -V here.
1129         * config/darwin.h (darwin_default_min_version): Update prototype.
1130         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
1131         darwin_default_min_version.
1132         * config/i386/cygwin.h (mingw_scan): Update prototype.
1133         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
1134         * config/i386/cygwin1.c: Include opts.h.
1135         (mingw_scan): Work with decoded options.
1136         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
1137         * config/t-darwin (darwin-driver.o): Update dependencies.
1138
1139 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
1140
1141         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
1142         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
1143         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
1144         -force-link, -force-link=, -language, -language=,
1145         -library-directory, -library-directory=, -no-canonical-prefixes,
1146         -no-standard-libraries, -no-warnings, -optimize, -output,
1147         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
1148         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
1149         -print-file-name=, -print-libgcc-file-name,
1150         -print-multi-directory, -print-multi-lib,
1151         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
1152         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
1153         -profile, -save-temps, -shared, -specs, -specs=, -static,
1154         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
1155         symbolic): New.
1156         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
1157         * gcc.c (A Short Introduction to Adding a Command-Line Option):
1158         Remove comment.
1159         (cc1_options): Correct specs for passing down --help,
1160         --target-help and --help=*.  Add spec for passing down --version.
1161         (struct option_map, option_map, target_option_translations,
1162         translate_options): Remove.
1163         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
1164         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
1165         OPT_fhelp_ and OPT_ftarget_help.
1166         (process_command): Don't call translate_options.  Call
1167         decode_cmdline_options_to_array before checking for
1168         -no-canonical-prefixes using decoded options.
1169         * opts-common.c (tm.h): Update comment on #include.
1170         (find_opt): Allow abbreviations of long options.
1171         (struct option_map, option_map): New.
1172         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
1173         and -mno handling.
1174         (target_option_translations): New.
1175         (decode_cmdline_options_to_array): Handle
1176         TARGET_OPTION_TRANSLATE_TABLE in driver.
1177         * opts.c (common_handle_option): Don't handle OPT_fhelp,
1178         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
1179
1180 2010-09-22  Richard Guenther  <rguenther@suse.de>
1181
1182         * tree-inline.c (optimize_inline_calls): Schedule cleanups
1183         only if we inlined something.  Block compaction and conditional
1184         folding are done by cfg cleanup.  Schedule update-address-taken.
1185         (tree_function_versioning): Remove redundant call to number_blocks.
1186         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
1187         folding is done by cfg cleanup.
1188         * passes.c (init_optimization_passes): Remove update-address-taken
1189         pass after IPA inlining.
1190
1191 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
1192
1193         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
1194         to update conditions. Fix reg_mode[] check.
1195
1196 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
1197
1198         * config/picochip/picochip.md (movhicc): Use expand to check whether
1199         movhicc is available and split it after reload.
1200
1201 2010-09-22  Richard Guenther  <rguenther@suse.de>
1202
1203         * tree-ssanames.c (release_dead_ssa_names): Do not remove
1204         callee edges here.
1205         * passes.c (init_optimization_passes): Remove early CFG cleanup.
1206         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
1207         (pass_cleanup_cfg): Likewise.
1208         (execute_fixup_cfg): Cleanup.
1209         * tree-pass.h (pass_cleanup_cfg): Remove.
1210
1211 2010-09-22  Martin Jambor  <mjambor@suse.cz>
1212
1213         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
1214         builtins if it is true.
1215         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
1216         parameter.
1217
1218 2010-09-22  Martin Jambor  <mjambor@suse.cz>
1219
1220         * tree-sra.c (struct access): New field grp_no_warning.
1221         (create_access_replacement): Set TREE_NO_WARNING according to
1222          grp_no_warning.
1223         (create_artificial_child_access): Use build_ref_for_model and set
1224         grp_no_warning if build_user_friendly_ref_for_offset fails.
1225         (propagate_subaccesses_across_link): Likewise.
1226
1227 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
1228
1229         PR target/35664
1230         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
1231         ('f'): Likewise.
1232
1233 2010-09-22  Tristan Gingold  <gingold@adacore.com>
1234
1235         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
1236
1237 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
1238
1239         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
1240         * config/i386/i386.c (decide_alg): Update for rename.
1241
1242 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
1243
1244         PR rtl-optimization/45739
1245         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
1246         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
1247
1248 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
1249
1250         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
1251         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
1252         Remove.
1253         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
1254         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1255
1256 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1257
1258         PR objc/23710
1259         * c-parser.c (c_parser_objc_method_definition): Check the return
1260         value of objc_start_method_definition and if false is returned,
1261         parse the method definition but emit no code.
1262
1263 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1264
1265         PR objc/25965
1266         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
1267         call objc_get_interface_ivars ().
1268
1269 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
1270
1271         PR target/45694
1272         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
1273         static chain-register is used for 64-bit.
1274
1275 2010-09-21  Richard Guenther  <rguenther@suse.de>
1276
1277         * dwarf2out.c (is_cu_die): New function.
1278         (add_pubtype): Use it.
1279         (gen_subprogram_die): Likewise.
1280         (gen_struct_or_union_type_die): Likewise.
1281         (dwarf2out_finish): Likewise.
1282         (comp_unit_die): Rename to ...
1283         (single_comp_unit_die): ... this.
1284         (comp_unit_die): New function lazily constructing and
1285         returning single_comp_unit_die.
1286         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
1287         base_type_die, subrange_type_die, modified_type_die,
1288         lower_bound_default, add_bound_info, add_prototyped_attribute,
1289         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
1290         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
1291         force_decl_die, gen_namespace_die, dwarf2out_decl,
1292         dwarf2out_start_source_file, dwarf2out_end_source_file,
1293         prune_unused_types, dwarf2out_finish): Use it.
1294         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
1295         the global list of translation-unit decls.
1296         (dwarf2out_init): Do not create single_comp_unit_die here.
1297         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
1298
1299 2010-09-21  Richard Guenther  <rguenther@suse.de>
1300
1301         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
1302         for bool for C++.
1303
1304 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
1305
1306         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
1307         (qhs_extenddi_cstr): Likewise.
1308         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
1309         them for the source operand.
1310
1311 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
1312
1313         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
1314         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
1315         (ix86_split_ashr): Ditto.
1316         (ix86_split_lshr): Ditto.
1317
1318 2010-09-21  Richard Guenther  <rguenther@suse.de>
1319
1320         PR tree-optimization/45580
1321         * tree-ssa-propagate.c (substitute_and_fold): Always replace
1322         regular uses.
1323         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
1324         virtuals fold the call into a regular indirect one.
1325
1326 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
1327
1328         PR rtl-optimization/42775
1329         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
1330         scheduling is enabled.
1331
1332 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
1333
1334         PR rtl-optimization/45728
1335         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
1336         gen_lowpart_common first and if that fails, force_reg first
1337         before calling gen_lowpart.
1338
1339         PR middle-end/45678
1340         * cfgexpand.c (expand_one_stack_var_at): Use
1341         crtl->max_used_stack_slot_alignment as max_align, instead
1342         of maximum of that and PREFERRED_STACK_BOUNDARY.
1343         Don't call update_stack_alignment.
1344
1345 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
1346
1347         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
1348         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
1349         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
1350         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
1351         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
1352         (build_nonstandard_integer_type): Likewise.
1353         (build_range_type_1): New function, built from...
1354         (build_range_type): ...this.  Call build_range_type_1.
1355         (build_nonshared_range_type): New function.
1356         (build_array_type_1): New function, built from...
1357         (build_array_type: ...this.  Call build_array_type_1.
1358         (build_nonshared_array_type): New function.
1359         * tree.h (build_nonshared_range_type): Declare.
1360         (build_nonshared_array_type): Likewise.
1361
1362 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
1363
1364         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
1365         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1366         (arm_class_likely_spilled_p): New function.
1367
1368 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
1369
1370         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
1371         indirect functions.
1372         (ix86_split_ashl): Ditto.
1373         (ix86_split_ashr): Ditto.
1374         (ix86_split_lshr): Ditto.
1375         (ix86_adjust_counter): Ditto.
1376
1377 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1378
1379         * c-family/c-common.h (constant_string_class): Documented with
1380         comment identical to the one already in c-common.c.
1381
1382 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
1383
1384         * dwarf2out.c (any_cfis_emitted): New static variable.
1385         (add_fde_cfi): Set it.
1386         (dwarf2out_frame_debug): Clear it before processing,
1387         if it is set afterwards, flush any queued reg saves.
1388
1389         PR debug/45124
1390         * dwarf2out.c (add_accessibility_attribute): Assume
1391         DW_ACCESS_private as the default for dwarf_version > 2
1392         and DW_TAG_class_type parent.
1393         (gen_inheritance_die): Assume DW_ACCESS_public as the default
1394         for dwarf_version > 2 and parent other than DW_TAG_class_type.
1395
1396 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
1397
1398         PR target/45726
1399         * arm.md (arm_movt): Only enable on machines with MOVT.
1400
1401 2010-09-20  Jie Zhang  <jie@codesourcery.com>
1402
1403         * config/arm/arm.c (arm_address_offset_is_imm): New.
1404         (arm_early_store_addr_dep): New.
1405         (arm_early_load_addr_dep): New.
1406         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
1407         (arm_early_load_addr_dep): Declare.
1408         (arm_address_offset_is_imm): Declare.
1409         * config/arm/cortex-m4.md: New file.
1410         * config/arm/cortex-m4-fpu.md: New file.
1411         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
1412         (attr generic_sched): Exclude cortexm4.
1413         (attr generic_vfp): Exclude cortexm4.
1414
1415 2010-09-20  Richard Guenther  <rguenther@suse.de>
1416
1417         PR middle-end/45704
1418         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
1419
1420 2010-09-20  Jan Hubicka  <jh@suse.cz>
1421
1422         PR tree-optimize/45605
1423         * cgraph.h (const_value_known_p): Declare.
1424         (varpool_decide_const_value_known): Remove.
1425         * tree-ssa-ccp.c (get_base_constructor): Use it.
1426         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
1427         * expr.c (string_constant): Likewise.
1428         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
1429         * ipa.c (ipa_discover_readonly_nonaddressable_var,
1430         function_and_variable_visibility): Likewise.
1431         * gimplify.c (gimplify_call_expr): Likewise.
1432         * gimple-fold.c (get_symbol_constant_value): Likewise.
1433         * varpool.c (varpool_decide_const_value_known): Replace by...
1434         (const_value_known_p): ... this one; handle other kinds of DECLs
1435         too and work for automatic vars.
1436         (varpool_finalize_decl): Use const_value_known_p.
1437
1438 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
1439
1440         PR target/45726
1441         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
1442
1443 2010-09-20  Richard Guenther  <rguenther@suse.de>
1444
1445         PR tree-optimization/45705
1446         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
1447
1448 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
1449
1450         PR rtl-optimization/45695
1451         * combine.c (try_combine): When splitting a two set pattern,
1452         make sure the pattern which will be put into i2 doesn't use REGs
1453         or MEMs set by insns in between i2 and i3.
1454
1455 2010-09-19  Jan Hubicka  <jh@suse.cz>
1456
1457         PR lto/44246
1458         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
1459         processing same node twice.
1460
1461 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
1462
1463         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
1464         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1465         (bfin_class_likely_spilled_p): New function
1466
1467 2010-09-19  Ira Rosen  <irar@il.ibm.com>
1468
1469         PR tree-optimization/45714
1470         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
1471         created in vectorizable_call instead of the original statement in
1472         def stmt updates.
1473
1474 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
1475
1476         * config/i386/i386-protos.h (split_double_mode): New prototype.
1477         (split_di, split_ti): Remove prototypes.
1478         * config/i386/i386.c (split_double_mode): New function.
1479         (split_di, split_ti): Remove.
1480         (ix86_expand_branch): Use split_double_mode.
1481         (ix86_split_to_parts): Ditto.
1482         (ix86_split_ashl): Ditto.
1483         (ix86_split_ashr): Ditto.
1484         (ix86_split_lshr): Ditto.
1485         (ix86_force_to_memory): Ditto.
1486         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
1487
1488 2010-09-18  Jan Hubicka  <jh@suse.cz>
1489
1490         PR tree-optimization/45453
1491         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
1492         virtual functions are reachable.
1493         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
1494         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
1495         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
1496         when modifying function.
1497
1498 2010-09-18  Jan Hubicka  <jh@suse.cz>
1499
1500         PR tree-optimization/45605
1501         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
1502         * gimple-fold.c (static_object_in_other_unit_p): New function.
1503         (canonicalize_constructor_val): Use it.
1504         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
1505         returning NULL.
1506         (gimple_fold_obj_type_ref_known_binfo): Use
1507         static_object_in_other_unit_p.
1508
1509 2010-09-18  Richard Guenther  <rguenther@suse.de>
1510
1511         PR tree-optimization/45709
1512         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
1513         insertions until after all PHI nodes of the block are processed.
1514
1515 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
1516
1517         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
1518
1519 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
1520
1521         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
1522
1523 2010-09-18  Richard Guenther  <rguenther@suse.de>
1524
1525         PR tree-optimization/45709
1526         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
1527
1528 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
1529
1530         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
1531         (dot_deps_stmt): Same.
1532         * graphite-poly.c (dot_lst): Same.
1533         * graphite-scop-detection.c (dot_all_scops): Same.
1534         (dot_scop): Same.
1535
1536 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
1537
1538         Revert:
1539         2009-12-16  Ben Elliston  <bje@au.ibm.com>
1540
1541         * tree-data-ref.c (dot_rdg_1): Added back.
1542         (dot_rdg): Same.  Added "#if 0" around system call.
1543
1544 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
1545             Richard Henderson  <rth@redhat.com>
1546
1547         * config/i386/i386.c (initial_ix86_tune_features): Add
1548         X86_TUNE_PAD_SHORT_FUNCTION.
1549         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
1550         (ix86_count_insn): New.
1551         (ix86_pad_short_function): Likewise.
1552         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
1553
1554         * config/i386/i386.h (ix86_tune_indices): Add
1555         X86_TUNE_PAD_SHORT_FUNCTION.
1556         (TARGET_PAD_SHORT_FUNCTION): New.
1557
1558         * config/i386/i386.md (UNSPEC_NOPS): New.
1559         (nops): Likewise.
1560
1561 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
1562
1563         PR middle-end/45234
1564         * calls.c (expand_call): Make sure that all variable sized
1565         adjustments are multiple of preferred stack boundary after
1566         stack alignment.
1567
1568 2010-09-17  DJ Delorie  <dj@redhat.com>
1569
1570         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
1571         passed an invalid value, print an error instead of ICEing.
1572         (valid_psw_flag): New.
1573         (rx_expand_builtin): Call it for setpsw/clrpsw.
1574         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
1575
1576         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
1577         (bitclr_in_memory): Likewise.
1578         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
1579
1580 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
1581
1582         PR middle-end/45678
1583         * cfgexpand.c (update_stack_alignment): New.
1584         (get_decl_align_unit): Use it.
1585         (expand_one_stack_var_at): Call update_stack_alignment.
1586
1587 2010-09-17  Richard Guenther  <rguenther@suse.de>
1588
1589         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
1590         Properly copy the read string.
1591
1592 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
1593
1594         * doc/options.texi (Variable): Document.
1595         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
1596         generate target_flags declarations explicitly.  Don't define
1597         VarExists variables for the driver.
1598         * common.opt (target_flags): New Variable record.
1599         (flag_dump_unnumbered, flag_dump_unnumbered_links,
1600         flag_var_tracking, flag_var_tracking_assignments,
1601         flag_var_tracking_assignments_toggle): Don't mark variables with
1602         VarExists.
1603         * config/i386/i386.c (ix86_isa_flags): Don't define here.
1604         * config/i386/i386.opt (ix86_isa_flags): Define here.
1605         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
1606         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
1607         VarExists.
1608         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
1609         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
1610         Only define for generator programs.
1611         * rtlanal.c (target_flags): Remove.
1612         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
1613         flag_var_tracking_assignments_toggle): Remove.
1614
1615 2010-09-17  Michael Matz  <matz@suse.de>
1616
1617         PR tree-optimization/43432
1618         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
1619         Accept backwards consecutive accesses.
1620         (vect_create_data_ref_ptr): If step is negative generate
1621         decreasing IVs.
1622         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
1623         (perm_mask_for_reverse, reverse_vec_elements): New functions.
1624         (vectorizable_load): Handle loads with negative steps when easily
1625         possible.
1626
1627 2010-09-03  Jan Hubicka  <jh@suse.cz>
1628
1629         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
1630
1631 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
1632
1633         * config/v850/v850.c (v850_function_value_regno_p): Make static.
1634         Adjust comments. Declare.
1635         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
1636         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
1637
1638 2010-09-17  Richard Guenther  <rguenther@suse.de>
1639
1640         * common.opt (combine): Remove.
1641         * gcc.c (default_compilers): Remove specs testing combine.
1642         The C compilers no longer can combine.
1643         (option_map): Remove -combine.
1644         (display_help): Remove -combine.
1645         (driver_handle_option): Remove OPT_combine handling.
1646         (compile_input_file_p): Remove.
1647         (do_spec): Remove code concerning combine.
1648         (main): Likewise.
1649         * doc/invoke.texi: Remove traces of -combine.
1650         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
1651
1652 2010-09-17  Richard Guenther  <rguenther@suse.de>
1653
1654         PR middle-end/45678
1655         * builtins.c (fold_builtin_memory_op): Always properly adjust
1656         alignment of memory accesses.
1657
1658 2010-09-16  Jan Hubicka  <jh@suse.cz>
1659
1660         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
1661         processing clone.
1662
1663 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
1664
1665         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
1666
1667         * config/i386/i386.c (predict_jump): Add prototype.
1668         (flag_opts): Add -m8bit-idiv.
1669         (ix86_split_idivmod): New.
1670
1671         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
1672         Add 2 splitters for SI/DI mode divide.
1673         (divmod<mode>4_1): New pattern.
1674         (udivmod<mode>4_1): Likewise.
1675         (testdi_ccno_1): Likewise.
1676
1677         * config/i386/i386.opt (m8bit-idiv): New.
1678
1679         * doc/invoke.texi: Document -m8bit-idiv.
1680
1681 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
1682
1683         PR bootstrap/45680
1684         * config/i386/i386.c (min_insn_size): Moved out of the
1685         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
1686
1687 2010-09-16  Jan Hubicka  <jh@suse.cz>
1688
1689         * lto-cgraph.c (lto_output_node): Fix handling of clones.
1690         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
1691         unreachable clones with reachable clones.
1692         * tree-inline.c (copy_bb): Fix sanity checking when producing
1693         unreachable clone.
1694
1695 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
1696
1697         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
1698         (TARGET_MEMORY_MOVE_COST): Define.
1699         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
1700
1701 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
1702
1703         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
1704         maybe_tidy_empty_bb.
1705
1706         Revert:
1707         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
1708         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
1709
1710 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
1711
1712         * target.def (target_option.optimization): New hook.
1713         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
1714         TARGET_OPTION_OPTIMIZATION hook.
1715         * doc/tm.texi: Regenerate.
1716         * hooks.c (hook_void_int_int): New.
1717         * hooks.h (hook_void_int_int): Declare.
1718         * opts.c: Don't include tm_p.h.
1719         (decode_options): Use targetm.target_option.optimization instead
1720         of OPTIMIZATION_OPTIONS.
1721         * system.h (OPTIMIZATION_OPTIONS): Poison.
1722         * config/arm/arm-protos.h (arm_optimization_options): Remove.
1723         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
1724         (arm_optimization_options): Rename to arm_option_optimization.
1725         Make static.
1726         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
1727         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
1728         (cris_option_optimization): New.
1729         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
1730         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
1731         (crx_option_optimization): New.
1732         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
1733         * config/frv/frv-protos.h (frv_optimization_options): Remove.
1734         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
1735         (frv_optimization_options): Rename to frv_option_optimization.
1736         Make static.
1737         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
1738         * config/h8300/h8300.c (h8300_option_optimization): New.
1739         (TARGET_OPTION_OPTIMIZATION): Define.
1740         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
1741         * config/i386/i386-protos.h (optimization_options): Remove.
1742         * config/i386/i386.c (optimization_options): Rename to
1743         ix86_option_optimization.  Make static.
1744         (TARGET_OPTION_OPTIMIZATION): Define.
1745         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
1746         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
1747         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
1748         (ia64_optimization_options): Rename to ia64_option_optimization.
1749         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
1750         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
1751         commented-out definition.
1752         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
1753         instead of OPTIMIZATION_OPTIONS.
1754         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
1755         (m32r_option_optimization): New.
1756         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
1757         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
1758         Remove.
1759         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
1760         (mcore_option_optimization): New.
1761         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
1762         * config/mep/mep-protos.h (mep_optimization_options): Remove.
1763         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
1764         (mep_optimization_options): Rename to mep_option_optimization.
1765         Make static.  Take unused level and size parameters.
1766         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
1767         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
1768         (mmix_option_optimization): New.
1769         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
1770         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
1771         (pdp11_option_optimization): New.
1772         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
1773         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
1774         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
1775         (optimization_options): Rename to rs6000_option_optimization.
1776         Make static.
1777         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
1778         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
1779         * config/rx/rx.c (rx_set_optimization_options): Rename to
1780         rx_option_optimization.  Make static.  Take unused level and size
1781         parameters.
1782         (TARGET_OPTION_OPTIMIZATION): Define.
1783         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
1784         * config/s390/s390-protos.h (optimization_options): Remove.
1785         * config/s390/s390.c (optimization_options): Rename to
1786         s390_option_optimization.  Make static.  Don't mark size parameter
1787         unused.
1788         (TARGET_OPTION_OPTIMIZATION): Define.
1789         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
1790         * config/sh/sh-protos.h (sh_optimization_options): Remove.
1791         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
1792         (sh_optimization_options): Rename to sh_option_optimization.  Make
1793         static.  Don't mark parameters unused.
1794         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
1795         * config/spu/spu-protos.h (spu_optimization_options): Remove.
1796         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
1797         (spu_optimization_options): Rename to spu_option_optimization.
1798         Make static.
1799         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
1800         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
1801         (v850_option_optimization): New.
1802         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
1803         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
1804         (xtensa_option_optimization): New.
1805         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
1806
1807 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
1808
1809         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
1810         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
1811         * doc/tm.texi: Regenerate.
1812         * system.h (OVERRIDE_OPTIONS): Poison.
1813         * target.def (override): Default to hook_void_void.
1814         * targhooks.c (default_target_option_override): Remove.
1815         * genmodes.c, machmode.def: Update comments mentioning
1816         OVERRIDE_OPTIONS.
1817         * config/alpha/alpha-modes.def: Update comment mentioning
1818         alpha_override_options.
1819         * config/alpha/alpha-protos.h (override_options): Remove.
1820         * config/alpha/alpha.c (override_options): Rename to
1821         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
1822         (TARGET_OPTION_OVERRIDE): Define.
1823         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
1824         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
1825         of OVERRIDE_OPTIONS.
1826         * config/arc/arc-protos.h (arc_init): Remove.
1827         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
1828         (arc_init): Rename to arc_option_override.  Make static.
1829         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
1830         (OVERRIDE_OPTIONS): Remove.
1831         * config/arm/arm-protos.h (arm_override_options): Remove.
1832         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
1833         (arm_override_options): Rename to arm_option_override.  Make
1834         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
1835         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
1836         * config/arm/arm.md: Update comment referring to arm_override_options.
1837         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
1838         instead of OVERRIDE_OPTIONS.
1839         * config/avr/avr-protos.h (avr_override_options): Remove.
1840         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
1841         (avr_override_options): Rename to avr_option_override.  Make static.
1842         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
1843         * config/bfin/bfin-protos.h (override_options): Remove (twice).
1844         * config/bfin/bfin.c (override_options): Rename to
1845         bfin_option_override.  Make static.
1846         (TARGET_OPTION_OVERRIDE): Define.
1847         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
1848         * config/cris/cris-protos.h (cris_override_options): Remove.
1849         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
1850         (cris_override_options): Rename to cris_option_override.  Make static.
1851         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
1852         * config/frv/frv-protos.h (frv_override_options): Remove.
1853         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
1854         (frv_override_options): Rename to frv_option_override.  Make static.
1855         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
1856         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
1857         * config/h8300/h8300.c (h8300_init_once): Rename to
1858         h8300_option_override.  Make static.
1859         (TARGET_OPTION_OVERRIDE): Define.
1860         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
1861         * config/i386/i386-protos.h (override_options): Remove.
1862         * config/i386/i386.c (override_options): Rename to
1863         ix86_option_override_internal.  Make static.  Comments referring
1864         to this function and callers changed.
1865         (ix86_option_override): New.
1866         (TARGET_OPTION_OVERRIDE): Define.
1867         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
1868         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
1869         * config/ia64/ia64.c (ia64_file_start): Update comment referring
1870         to ia64_override_options.
1871         * config/iq2000/iq2000-protos.h (override_options): Remove.
1872         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
1873         (override_options): Rename to iq2000_option_override.  Make static.
1874         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
1875         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
1876         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
1877         (lm32_override_options): Rename to lm32_option_override.  Make static.
1878         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
1879         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
1880         (m32r_option_override): New.
1881         (m32r_init): Update comment.
1882         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
1883         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
1884         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
1885         (m68hc11_override_options): Rename to m68hc11_option_override.
1886         Make static.  Return void.
1887         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
1888         * config/m68k/m68k-protos.h (override_options): Remove.
1889         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
1890         (override_options): Rename to m68k_option_override.  Make static.
1891         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
1892         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
1893         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
1894         (mcore_override_options): Rename to mcore_option_override.  Make
1895         static.
1896         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
1897         * config/mep/mep-protos.h (mep_override_options): Remove.
1898         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
1899         (mep_override_options): Rename to mep_option_override.  Make static.
1900         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
1901         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
1902         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
1903         (mmix_override_options): Rename to mmix_option_override.  Make static.
1904         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
1905         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
1906         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
1907         (mn10300_override_options): Rename to mn10300_option_override.
1908         Make static.
1909         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
1910         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
1911         * config/moxie/moxie.c (moxie_override_options): Rename to
1912         moxie_option_override.  Make static.
1913         (TARGET_OPTION_OVERRIDE): Define.
1914         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
1915         * config/picochip/picochip-protos.h (picochip_override_options):
1916         Remove.  Update comment referring to picochip_override_options.
1917         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
1918         (picochip_override_options): Rename to picochip_option_override.
1919         Make static.  Update comment and definition of
1920         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
1921         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
1922         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
1923         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
1924         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
1925         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
1926         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
1927         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
1928         instead of OVERRIDE_OPTIONS.
1929         * config/rs6000/rs6000-modes.def: Update comment referring to
1930         rs6000_override_options.
1931         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
1932         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
1933         (rs6000_override_options): Rename to
1934         rs6000_option_override_internal.  Make static.  Commented
1935         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
1936         (rs6000_option_override): New.
1937         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
1938         instead of OVERRIDE_OPTIONS.
1939         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
1940         * config/s390/s390-protos.h (override_options): Remove.
1941         * config/s390/s390.c (override_options): Rename to
1942         s390_option_override.  Make static.
1943         (TARGET_OPTION_OVERRIDE): Define.
1944         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
1945         * config/score/score-protos.h (score_override_options): Remove.
1946         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
1947         (score_override_options): Rename to score_option_override.  Make
1948         static.
1949         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
1950         Update comment referring to override_options.
1951         * config/score/score3.c (score3_override_options): Rename to
1952         score3_option_override.
1953         * config/score/score3.h (score3_override_options): Rename to
1954         score3_option_override.
1955         * config/score/score7.c (score7_override_options): Rename to
1956         score7_option_override.
1957         * config/score/score7.h (score7_override_options): Rename to
1958         score7_option_override.
1959         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
1960         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
1961         (sparc_override_options): Rename to sparc_option_override.  Make
1962         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
1963         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
1964         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
1965         instead of OVERRIDE_OPTIONS.
1966         * config/spu/spu-protos.h (spu_override_options): Remove.
1967         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
1968         (spu_override_options): Rename to spu_option_override.  Make
1969         static.
1970         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
1971         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
1972         OVERRIDE_OPTIONS.
1973         * config/vax/vax-protos.h (override_options): Remove.
1974         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
1975         (override_options): Rename to vax_option_override.  Make static.
1976         Call SUBTARGET_OVERRIDE_OPTIONS.
1977         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
1978         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
1979         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
1980         * config/xtensa/xtensa-protos.h (override_options): Remove.
1981         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
1982         (override_options): Rename to xtensa_option_override.  Make static.
1983         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
1984
1985 2010-09-16  Richard Guenther  <rguenther@suse.de>
1986
1987         PR tree-optimization/45623
1988         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
1989         (get_constraint_for_component_ref): If computing a constraint
1990         for the rhs handle type punning through unions.
1991         (get_constraint_for_address_of): Adjust.
1992         (get_constraint_for_1): Likewise.
1993         (get_constraint_for): Likewise.
1994         (get_constraint_for_rhs): New function.
1995         (do_structure_copy): Adjust.
1996         (make_constraint_to): Likewise.
1997         (handle_const_call): Likewise.
1998         (find_func_aliases): Likewise.
1999         (process_ipa_clobber): Likewise.
2000         (create_variable_info_for): Likewise.
2001
2002 2010-09-16  Ira Rosen  <irar@il.ibm.com>
2003
2004         * tree-vectorizer.c: Fix documentation.
2005         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
2006         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
2007         is_pattern_stmt_p, is_loop_header_bb_p,
2008         stmt_vinfo_set_inside_of_loop_cost,
2009         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
2010         known_alignment_for_access_p): Likewise.
2011         * tree-vect-loop.c: Fix documentation.
2012         (vect_get_cost): Start function name from new line.
2013         * tree-vect-data-refs.c: Fix documentation.
2014         * tree-vect_stmts.c: Likewise.
2015         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
2016         (vectorizable_store): Free vec_oprnds if allocated.
2017         (vectorizable_condition): Initialize several variables to avoid
2018         warnings.
2019         * tree-vect-slp.c: Fix documentation.
2020
2021 2010-09-16  Richard Guenther  <rguenther@suse.de>
2022
2023         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
2024         is TS_TRANSLATION_UNIT_DECL.
2025         (initialize_tree_contains_struct): Adjust.
2026         (all_translation_units): New global vector.
2027         (build_translation_unit_decl): New function.
2028         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
2029         (struct tree_translation_unit_decl): New.
2030         (all_translation_units): Declare.
2031         (union tree_node): Add translation_unit_decl member.
2032         (build_translation_unit_decl): Declare.
2033         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
2034         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
2035         New function.
2036         (pack_value_fields): Call it.
2037         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
2038         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
2039         (lto_output_tree_pointers): Call it.
2040         * lto-streamer-in.c (lto_input_tree_ref): Handle references
2041         to TRANSLATION_UNIT_DECL.
2042         (unpack_ts_translation_unit_decl_value_fields): New function.
2043         (unpack_value_fields): Call it.
2044         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
2045         (lto_input_tree_pointers): Call it.
2046         * lto-streamer.c (check_handled_ts_structures): Adjust.
2047         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
2048         * c-decl.c (all_translation_units): Remove.
2049         (pop_scope): Use build_translation_unit_decl.
2050         (collect_all_refs): Adjust.
2051         (for_each_global_decl): Likewise.
2052         (c_write_global_declarations): Likewise.
2053
2054 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
2055
2056         PR bootstrap/45686
2057         * fold-const.c (fold_checksum_tree): Change slot from const void **
2058         to void **, use CONST_CAST_TREE to store into *slot.
2059
2060 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
2061
2062         * config/i386/i386.md: Remove unneeded empty conditions and
2063         preparation statements from expanders.
2064         * config/i386/mmx.md: Ditto.
2065         * config/i386/sse.md: Ditto.
2066
2067 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
2068
2069         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
2070
2071 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
2072
2073         PR rtl-optimization/45593
2074         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
2075         insns that were in delay slots as stand-alone insns.
2076
2077 2010-09-15  Ian Lance Taylor  <iant@google.com>
2078
2079         * incpath.c (remove_duplicates): If name is not a directory, issue
2080         a warning rather than an error.
2081
2082 2010-09-15  Martin Jambor  <mjambor@suse.cz>
2083
2084         PR middle-end/45644
2085         * tree-sra.c (create_access): Check for bit-fields directly.
2086
2087 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
2088
2089         PR tree-optimization/45633
2090         * tree-cfg.c (verify_gimple_assign_binary): Allow
2091         MINUS_EXPR with lhs and rhs1 pointer vector and
2092         rhs2 sizetype vector.
2093         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
2094         or vector pointer use TER to optimize pointer subtraction.
2095
2096 2010-09-15  Jie Zhang  <jie@codesourcery.com>
2097
2098         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
2099         fcmpd to fcmps.
2100
2101 2010-09-15  Ian Lance Taylor  <iant@google.com>
2102
2103         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
2104
2105 2010-09-15  Ian Lance Taylor  <iant@google.com>
2106
2107         * function.c (get_arg_pointer_save_area): Set
2108         arg_pointer_save_area_init to true.
2109
2110 2010-09-15  Martin Jambor  <mjambor@suse.cz>
2111
2112         * tree-sra.c (generate_subtree_copies): Updated comment.
2113         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
2114         obtained from the statement iterator instead.
2115         (load_assign_lhs_subreplacements): Removed parameters lhs and
2116         right_offset, which is obtained from top_racc instead.  Parameter lacc
2117         is now expected to be the root of the processed tree rather than root's
2118         first child.  Updated all callers.
2119
2120 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
2121
2122         * config/pdp11/pdp11.c (register_move_cost): Rename to
2123         pdp11_register_move_cost.
2124         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
2125         pdp11_register_move_cost.
2126         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
2127         pdp11_register_move_cost instead of register_move_cost.
2128
2129 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
2130
2131         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
2132         pattern for vmovn. Expansion in case of non
2133         -mvectorize-with-neon-quad.
2134         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
2135         non- -mvectorize-with-neon-quad case.
2136         (move_lo_quad_<mode>): New expansion to vmov into low part.
2137         (move_hi_quad_<mode>): New expansion to vmov into high part.
2138         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
2139         (move_lo_quad_v4sf): Likewise.
2140         (move_lo_quad_v8hi): Likewise.
2141         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
2142         low part.
2143         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
2144         high part.
2145         * config/arm/iterators.md (ANY128): New mode iterator.
2146         (V_narrow_pack): New mode attribute.
2147         (V_HALF): Add attribute.
2148         (V_DOUBLE): Add attribute.
2149         (V_mode_nunits): Add attribute.
2150
2151 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
2152
2153         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
2154         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
2155
2156 2010-09-15  Olivier Hainque  <hainque@adacore.com>
2157             Jose Ruiz  <ruiz@adacore.com>
2158
2159         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
2160         * config/alpha/osf5-unwind.h: New file.
2161
2162 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
2163
2164         PR bootstrap/45672
2165         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
2166         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
2167         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
2168
2169 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2170
2171         * c-lang.h (struct lang_type): Add variable_size GTY option.
2172
2173 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
2174
2175         PR bootstrap/45672
2176         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
2177
2178 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
2179
2180         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
2181         result isn't used in memory address.
2182
2183 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
2184
2185         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
2186         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
2187         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
2188         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2189         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2190         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2191
2192         * target.def: Add units_per_simd_word to vectorize.
2193
2194         * targhooks.c (default_units_per_simd_word): New.
2195         * targhooks.h (default_units_per_simd_word): Likewise.
2196         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
2197         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2198         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
2199         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2200         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
2201         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2202         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
2203         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2204
2205         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
2206         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
2207
2208         * tree-vect-stmts.c: Don't include "tm_p.h".
2209         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
2210         with targetm.vectorize.units_per_simd_word.
2211
2212         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
2213
2214         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
2215
2216         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
2217         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
2218
2219         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
2220         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
2221
2222         * doc/tm.texi: Regenerated.
2223
2224 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
2225
2226         * tree-vect-stmts.c: Include "tm_p.h".
2227
2228         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
2229         out of RTX_CODE.
2230
2231 2010-09-14  Martin Jambor  <mjambor@suse.cz>
2232
2233         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
2234         location of generated statement.  Changed all callers.
2235         (build_ref_for_model): New parameter loc which used to set location of
2236         all generated expressions.  Changed all callers.
2237         (generate_subtree_copies): Likewise.
2238         (init_subtree_with_zero): Likewise.
2239         (sra_modify_expr): Set locations of all generated statements and
2240         expressions to the location the original statement.
2241         (handle_unscalarized_data_in_subtree): Likewise.
2242         (load_assign_lhs_subreplacements): Likewise.
2243         (sra_modify_constructor_assign): Likewise.
2244         (sra_modify_assign): Likewise.
2245
2246 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2247
2248         PR target/45277
2249         PR target/45363
2250         PR target/45407
2251         * doc/install.texi (sparc*-*-*): New section.
2252         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
2253
2254 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
2255
2256         PR middle-end/45567
2257         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
2258         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
2259         (expand_builtin): Adjust caller.
2260         (expand_builtin_unop): Only use subtarget if it has the right mode.
2261
2262 2010-09-14  Tristan Gingold  <gingold@adacore.com>
2263
2264         * configure.ac (plugins): Fix typos.
2265         * configure: Regenerate.
2266
2267 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
2268
2269         PR debug/45660
2270         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
2271         gen_type_die for function/method return type.
2272
2273 2010-09-14  Ira Rosen  <irar@il.ibm.com>
2274
2275         PR tree-optimization/45470
2276         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
2277         can throw an exception.
2278         * tree-vect-stmts.c (vectorizable_call): Likewise.
2279
2280 2010-09-14  DJ Delorie  <dj@redhat.com>
2281
2282         PR target/44749
2283         * config/mep/mep-protos.h (mep_save_register_info,
2284         mep_reinit_regs, mep_init_regs): Declare.
2285
2286         * config/mep/mep.c: Move all target definitions to the end of the
2287         file to avoid the need for duplicate declarations.
2288         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
2289         (mep_reorg_erepeat): Remove unused variables.
2290         (mep_expand_builtin): Likewise.
2291
2292         * config/mep/mep-pragma.c: Don't include rtl.h.
2293         (INVALID_REGNUM): New.
2294         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
2295         functions.
2296         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
2297         Avoid enum/integer math.
2298
2299 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
2300
2301         PR target/44749
2302         * config/mep/t-mep (GTM_H): Add insn-constants.h.
2303         * config/mep/mep.c (mep_conditional_register_usage): Take no
2304         parameters.
2305         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
2306         prototype.
2307         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
2308         call to mep_conditional_register_usage.
2309
2310 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
2311
2312         PR debug/43937
2313         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
2314         the DECL as well.
2315
2316 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
2317
2318         PR rtl-optimization/45617
2319         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
2320         even if low N bits of X aren't known to be zero.
2321
2322 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
2323
2324         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
2325
2326         * config/i386/i386.c (initial_ix86_tune_features): Add
2327         X86_TUNE_VECTORIZE_DOUBLE.
2328         (ix86_units_per_simd_word): New.
2329
2330         * config/i386/i386.h (ix86_tune_indices): Add
2331         X86_TUNE_VECTORIZE_DOUBLE.
2332         (TARGET_VECTORIZE_DOUBLE): New.
2333         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
2334
2335 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
2336
2337         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
2338         (new_temp_expr_table): Allocate call_cnt vector.
2339         (free_temp_expr_table): Free it.
2340         (process_replaceable): Add call_cnt parm and set in vector.
2341         (find_replaceable_in_bb): Skip replacement if def/use span a call.
2342         (debug_ter): Dump call_cnt value, remove stderr uses.
2343
2344 2010-09-13  Jan Hubicka  <jh@suse.cz>
2345
2346         * tree.c (build_zero_cst): New.
2347         * tree.h (build_zero_cst): Declare.
2348         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
2349         (get_base_constructor): Break out from ...
2350         (fold_const_aggregate_ref): Here; handle empty constructors.
2351
2352 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2353
2354         * config/arm/arm.md: (define_attr "conds"): Update comment.
2355         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
2356         conds attribute to clob.
2357         (arm_sync_compare_and_swapsi): Likewise.
2358         (arm_sync_compare_and_swap<mode>): Likewise.
2359         (arm_sync_lock_test_and_setsi): Likewise.
2360         (arm_sync_lock_test_and_set<mode>): Likewise.
2361         (arm_sync_new_<sync_optab>si): Likewise.
2362         (arm_sync_new_nandsi): Likewise.
2363         (arm_sync_new_<sync_optab><mode>): Likewise.
2364         (arm_sync_new_nand<mode>): Likewise.
2365         (arm_sync_old_<sync_optab>si): Likewise.
2366         (arm_sync_old_nandsi): Likewise.
2367         (arm_sync_old_<sync_optab><mode>): Likewise.
2368         (arm_sync_old_nand<mode>): Likewise.
2369
2370 2010-09-13  Olivier Hainque  <hainque@adacore.com>
2371
2372         * fwprop.c (forward_propagate_and_simplify): Only attach a
2373         REG_EQUAL note to an insn if the destination is a register.
2374         * gcse.c (try_replace_reg): Likewise.
2375
2376 2010-09-13  Richard Guenther  <rguenther@suse.de>
2377
2378         PR tree-optimization/45611
2379         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
2380         (copy_ref_info): Likewise.
2381
2382 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
2383
2384         PR debug/45604
2385         PR debug/45419
2386         PR debug/45408
2387         * tree-pretty-print.c (dump_generic_node): Disregard top-level
2388         types of MEM_REF pointer types to the same type.
2389
2390 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
2391
2392         PR rtl-optimization/41087
2393         * ifcvt.c (noce_get_condition): Don't allow conditions with
2394         side-effects.
2395
2396 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
2397
2398         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
2399         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
2400         * config/frv/frv.c (frv_register_move_cost): Make static. Change
2401         arguments type to reg_class_t. Add mode argument.
2402         (frv_memory_move_cost): New.
2403         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
2404
2405 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
2406
2407         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
2408         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
2409
2410 2010-09-10  Jan Hubicka  <jh@suse.cz>
2411
2412         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
2413
2414 2010-09-10  Richard Guenther  <rguenther@suse.de>
2415
2416         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
2417         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
2418         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
2419         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
2420         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
2421
2422 2010-09-10  Richard Guenther  <rguenther@suse.de>
2423
2424         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
2425         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
2426         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
2427         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
2428
2429 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
2430
2431         PR middle-end/45634
2432         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
2433         of string folding is of integral type.
2434
2435 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
2436
2437         * doc/invoke.texi (-x): Fix typo.
2438
2439 2010-09-10  Richard Guenther  <rguenther@suse.de>
2440
2441         PR debug/44115
2442         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
2443         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
2444         Output DECL_DEBUG_EXPR.
2445         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
2446         Input DECL_DEBUG_EXPR.
2447
2448 2010-09-10  Richard Guenther  <rguenther@suse.de>
2449
2450         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
2451         (build_index_type): Implement in terms of build_range_type.
2452         (build_range_type): Do not allow NULL_TREE type, improve
2453         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
2454         if we didn't hash.
2455         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
2456         create a distinct copy of the type.
2457
2458 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
2459
2460         * configure: Regenerated.
2461         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
2462
2463 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2464
2465         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
2466         * config/arm/cortex-a9-neon.md: New and partially generated.
2467         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
2468
2469 2010-09-10  Richard Guenther  <rguenther@suse.de>
2470
2471         * tree.h (build_index_2_type): Remove.
2472         * tree.c (build_index_2_type): Remove.
2473
2474 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
2475
2476         PR bootstrap/45630
2477         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
2478         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
2479         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
2480
2481 2010-09-10  Martin Jambor  <mjambor@suse.cz>
2482
2483         PR tree-optimization/44972
2484         * tree-sra.c: Include toplev.h.
2485         (build_ref_for_offset): Entirely reimplemented.
2486         (build_ref_for_model): New function.
2487         (build_user_friendly_ref_for_offset): New function.
2488         (analyze_access_subtree): Removed build_ref_for_offset check.
2489         (propagate_subaccesses_across_link): Likewise.
2490         (create_artificial_child_access): Use
2491         build_user_friendly_ref_for_offset.
2492         (propagate_subaccesses_across_link): Likewise.
2493         (ref_expr_for_all_replacements_p): Removed.
2494         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
2495         (sra_modify_expr): Use build_ref_for_model.
2496         (load_assign_lhs_subreplacements): Likewise.
2497         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
2498         checks for return values of build_ref_for_offset.
2499         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
2500         build_ref_for_offset.
2501         * ipa-prop.h: Include gimple.h
2502         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
2503         (ipa_analyze_indirect_call_uses): Update comment.
2504         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
2505         (IPA_PROP_H): Likewise.
2506
2507 2010-09-10  Martin Jambor  <mjambor@suse.cz>
2508
2509         PR tree-optimization/44972
2510         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
2511         calling build_ref_for_offset.
2512
2513 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2514
2515         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
2516         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
2517         * config/arm/arm-tune.md: Regenerate.
2518         * doc/invoke.texi (ARM Options): Document it.
2519
2520 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
2521
2522         * config/i386/i386.c: Include sched-int.h.
2523         (TARGET_SCHED_DISPATCH): Defined.
2524         (TARGET_SCHED_DISPATCH_DO): Defined.
2525         (DISPATCH_WINDOW_SIZE): Defined.
2526         (MAX_DISPATCH_WINDOWS): Defined.
2527         (MAX_INSN): Defined.
2528         (MAX_IMM): Defined.
2529         (MAX_IMM_SIZE): Defined.
2530         (MAX_IMM_32): Defined.
2531         (MAX_IMM_64): Defined.
2532         (MAX_LOAD): Defined.
2533         (MAX_STORE): Defined.
2534         (BIG): Defined.
2535         (dispatch_group): New.
2536         (num_allowable_groups): New.
2537         (group_name): New.
2538         (sched_insn_info_s): New.
2539         (dispatch_windows_s): New.
2540         (imm_info_s): New.
2541         (dispatch_window_list): New.
2542         (dispatch_window_list1): New.
2543         (get_mem_group): New.
2544         (is_cmp): New.
2545         (dispatch_violation): New.
2546         (is_branch): New.
2547         (is_prefetch): New.
2548         (init_window): New.
2549         (allocate_window): New.
2550         (init_dispatch_sched): New.
2551         (is_end_basic_block): New.
2552         (process_end_window): New.
2553         (allocate_next_window): New.
2554         (find_constant_1): New.
2555         (find_constant): New.
2556         (get_num_immediates): New.
2557         (has_immediate): New.
2558         (get_insn_path): New.
2559         (get_insn_group): New.
2560         (count_num_restricted): New.
2561         (fits_dispatch_window): New.
2562         (add_insn_window): New.
2563         (add_to_dispatch_window): New.
2564         (debug_dispatch_window_file): New.
2565         (debug_dispatch_window): New.
2566         (debug_insn_dispatch_info_file): New.
2567         (debug_ready_dispatch): New.
2568         (do_dispatch): New.
2569         (has_dispatch): New.
2570         * config/i386/i386.h (debug_ready_dispatch): Declared.
2571         (debug_dispatch_window): Declared.
2572         * config/i386/i386.opt (mdispatch-scheduler): New flag.
2573         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
2574         (TARGET_SCHED_DISPATCH_DO): New.
2575         * doc/tm.texi: Regererated.
2576         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
2577         ready_remove_first_dispatch
2578         (schedule_block): Call targetm.sched.dispatch and
2579         targetm.sched.dispatch_do.
2580         (sched_init): Call targetm.sched.dispatch and
2581         targetm.sched.dispatch_do.
2582         (ready_remove_first_dispatch): New.
2583         (number_in_ready): New.
2584         (get_ready_element): New.
2585         * hooks.c (hook_bool_rtx_int_false): New.
2586         (hook_void_rtx_int): New.
2587         * hooks.h (hook_bool_rtx_int_false): Declared.
2588         (hook_void_rtx_int): Declared.
2589         * sched-int.h (IS_DISPATCH_ON): Defined.
2590         (IS_CMP): Defined.
2591         (DISPATCH_VIOLATION): Defined.
2592         (FITS_DISPATCH_WINDOW): Defined.
2593         (DISPATCH_INIT): Defined.
2594         (ADD_TO_DISPATCH_WINDOW): Defined.
2595         (get_ready_element): Declared.
2596         (number_in_ready): Declared.
2597         * target.def (dispatch): Defined.
2598         (dispatch_do): Defined.
2599
2600 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
2601
2602         PR middle-end/45312
2603         * reload1.c (merge_assigned_reloads): Remove.
2604         (reload_as_needed): Don't call it.
2605
2606 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
2607
2608         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
2609         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
2610         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
2611
2612 2010-09-09  Matthias Klose  <doko@ubuntu.com>
2613
2614         PR bootstrap/43847
2615         * configure.ac (--enable-plugin): Enhance for cross builds.
2616         * configure: Regenerate.
2617
2618 2010-09-09  Jan Hubicka  <jh@suse.cz>
2619
2620         PR tree-optimization/45598
2621         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
2622         string folding is of integral type.
2623
2624 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
2625
2626         * configure.ac (gnu_indirect_function): New test.
2627         * configure: Rebuilt.
2628         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
2629         * defaults.h (IFUNC_ASM_TYPE): Provide default.
2630
2631         * doc/extend.texi (Function Attributes): Document ifunc.
2632         * varasm.c (do_assemble_alias): Deal with ifuncs too.
2633
2634 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
2635
2636         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
2637         epilogue instruction move.
2638
2639 2010-09-09  Jan Hubicka  <jh@suse.cz>
2640
2641         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
2642         command line to allow more partitions than input files.
2643
2644 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
2645
2646         PR middle-end/44554
2647         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
2648
2649 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
2650
2651         PR middle-end/40386
2652         * ira.c (pseudo_for_reload_consideration_p): Don't use
2653         flag_ira_share_spill_slots.
2654
2655 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2656
2657         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
2658         point zero operands that fit into a single GPR.
2659         (s390_preferred_reload_class): Ensure we only return general-purpose
2660         register classes.
2661         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
2662         floating-point zero operands into GPRs.
2663         ("*mov<mode>_64"): Likewise.
2664         ("mov<mode>"): Likewise using lhi.
2665
2666 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2667
2668         * config/s390/s390.c (s390_symref_operand_p): Return false for
2669         literal pool references.
2670         (s390_check_qrst_address): Update caller.
2671
2672 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
2673
2674         * config/i386/predicates.md (ext_register_operand): Check that
2675         SUBREG_REG is really a register before looking for REGNO.
2676         (reg_not_xmm0_operand): Handle SUBREGs correctly.
2677         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
2678
2679 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
2680
2681         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
2682         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
2683         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
2684         * print-rtl.c (print_rtx): Likewise.
2685         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
2686         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
2687         for ADDR_EXPR with non-addressable object.
2688         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
2689         (struct dw_val_struct): Add v.val_decl_ref.
2690         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
2691         Handle DW_OP_GNU_implicit_pointer.
2692         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
2693         (get_ref_die_offset_label): New function.
2694         (implicit_ptr_descriptor): New function.
2695         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
2696         (loc_descriptor): Likewise.
2697         (gen_variable_die): Put even definitions into decl_die_table.
2698         (resolve_addr_in_expr): Resolve still unresolved
2699         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
2700         return false.
2701         (dwarf2out_finish): Call output_location_lists after outputting
2702         .debug_info and .debug_abbrev instead of before.
2703
2704 2010-09-09  Roland McGrath  <roland@redhat.com>
2705
2706         * dwarf2out.c (DWARF_REF_SIZE): Define.
2707         (size_of_loc_descr): Use it for DW_OP_call_ref.
2708
2709 2010-09-09  Alan Modra  <amodra@gmail.com>
2710
2711         * doc/invoke.text: Reinstate mcmodel=medium.
2712         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
2713         CMODEL_MEDIUM as default.
2714         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
2715         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
2716         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
2717         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
2718
2719 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2720
2721         PR target/45250
2722         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
2723         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
2724         (builtin_longjmp): Likewise.
2725         (allocate_stack): Use hard_frame_pointer_rtx instead of
2726         frame_pointer_rtx.
2727         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
2728         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
2729         (pa_can_eliminate): Likewise.
2730         (TARGET_INTERNAL_ARG_POINTER): Define.
2731         (TARGET_CAN_ELIMINATE): Define.
2732         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
2733         pointer.
2734         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
2735         (pa_internal_arg_pointer, pa_can_eliminate,
2736         pa_initial_elimination_offset): New.
2737         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
2738         (HARD_FRAME_POINTER_REGNUM): Set to register three.
2739         (INITIAL_FRAME_POINTER_OFFSET): Delete.
2740         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
2741         Define.
2742         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
2743         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
2744         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
2745         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
2746         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
2747         new soft frame pointer.
2748         * config/pa/pa64-regs.h: Likewise.
2749
2750 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
2751
2752         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
2753         numerical constant.
2754         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
2755
2756 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
2757
2758         PR debug/45531
2759         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
2760
2761 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
2762
2763         PR debug/45419
2764         PR debug/45408
2765         * tree-pretty-print.c (dump_generic_node): Disregard top-level
2766         qualifiers in otherwise equal MEM_REF pointer types.
2767         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
2768         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
2769
2770 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2771
2772         PR target/44392
2773         * config/arm/arm.md (bswapsi2): Handle condition correctly
2774         for armv6 and optimize_size.
2775
2776 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2777
2778         PR other/18555
2779         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
2780
2781 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
2782
2783         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
2784         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
2785         ix86_expand_strlen, legitimate_pic_address_disp_p,
2786         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
2787         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
2788         ix86_check_movabs, ix86_secondary_memory_needed): Change function
2789         prototype to bool.
2790         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
2791         return_in_memory_ms_64, ix86_check_movabs,
2792         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
2793         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
2794         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
2795         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
2796         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
2797         ix86_secondary_memory_needed): Change to bool.  Return
2798         "true" and "false" values.
2799         * config/i386/i386.md: Return "true" and "false" values.
2800
2801 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2802
2803         * doc/sourcebuild.texi (Effective-Target Keywords): Document
2804         run_expensive_tests.
2805
2806 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2807
2808         * toplev.c (output_stack_usage): Use lbasename instead of basename.
2809
2810 2010-09-08  Martin Jambor  <mjambor@suse.cz>
2811
2812         PR other/45443
2813         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
2814         at -O3.
2815
2816 2010-09-08  Richard Guenther  <rguenther@suse.de>
2817
2818         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
2819         (visit): Adjust.
2820         (iterative_hash_gimple_type): Likewise.
2821         (gimple_type_hash): Likewise.
2822         (gimple_register_type): Likewise.
2823         (print_gimple_types_stats): Likewise.
2824         (free_gimple_type_tables): Likewise.
2825
2826 2010-09-08  Michael Matz  <matz@suse.de>
2827
2828         PR tree-optimization/43430
2829         * tree-vect-stmts.c (vectorizable_condition): Support multiple
2830         copies for conditional statements if it's not part of a reduction.
2831
2832 2010-09-08  Michael Matz  <matz@suse.de>
2833
2834         PR tree-optimization/33244
2835         * tree-ssa-sink.c (statement_sink_location): Don't sink into
2836         empty loop latches.
2837
2838 2010-09-08  Richard Guenther  <rguenther@suse.de>
2839
2840         PR tree-optimization/45578
2841         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
2842         Be more careful when transfering alignment information to
2843         the new induction variable.
2844         (copy_ref_info): Likewise.
2845
2846 2010-09-08  Richard Guenther  <rguenther@suse.de>
2847
2848         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
2849         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
2850
2851 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
2852
2853         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
2854         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
2855
2856 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
2857
2858         PR doc/45587
2859         * doc/md.texi: Fixed modes on several standard pattern names.
2860
2861 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
2862
2863         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
2864         (ashl<mode>3): ...this.
2865         (loongson_psra<V_suffix>): Rename to...
2866         (ashr<mode>3): ...this.
2867         (loongson_psrl<V_suffix>): Rename to...
2868         (lshr<mode>3): ...this.
2869         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
2870         (CODE_FOR_loongson_psllw): Define.
2871         (CODE_FOR_loongson_psrlh): Define.
2872         (CODE_FOR_loongson_psrlw): Define.
2873         (CODE_FOR_loongson_psrah): Define.
2874         (CODE_FOR_loongson_psraw): Define.
2875
2876 2010-09-07  Richard Henderson  <rth@redhat.com>
2877
2878         * tree-vect-data-refs.c: Include tm_p.h.
2879         * Makefile.in (tree-vect-data-refs.o): Update deps.
2880         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
2881         Move delarations outside #ifdef RTX_CODE.
2882
2883 2010-09-07  Richard Henderson  <rth@redhat.com>
2884
2885         * final.c (rest_of_handle_final): Unconditionally do
2886         output_function_exception_table before assemble_end_function.
2887
2888 2010-09-07  Jan Hubicka  <jh@suse.cz>
2889
2890         * tree-inline.c (tree_inlinable_function_p): Do not test
2891         DECL_REPLACEABLE_P.
2892         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
2893         update_callee_keys, cgraph_decide_inlining): Test function availability.
2894         * cif-code.def (OVERWRITABLE): New code.
2895
2896 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
2897             Jack Howarth  <howarth@bromo.med.uc.edu>
2898
2899         PR target/36502
2900         PR target/42313
2901         PR target/44651
2902         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
2903         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
2904         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
2905         MAX macro.
2906
2907 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
2908
2909         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
2910         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
2911
2912 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
2913
2914         * config.gcc: Don't append t-android for Android targets.
2915
2916         * config/t-android: Removed.
2917
2918 2010-09-07  Richard Henderson  <rth@redhat.com>
2919
2920         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
2921         * doc/tm.texi.in: Add doc marker.
2922         * doc/tm.texi: Rebuild.
2923         * except.c (switch_to_exception_section): Always build.
2924         (output_one_function_exception_table): Move section switch,
2925         personality output, and label output ...
2926         (output_function_exception_table): ... here.  Use the new
2927         personality hook.
2928
2929         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
2930         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
2931         TARGET_ASM_INIT_SECTIONS): New.
2932         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
2933         make static.
2934         (TARGET_ASM_UNWIND_EMIT): Update to match.
2935         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
2936
2937         * config/arm/arm.c (arm_asm_emit_except_personality): New.
2938         (arm_asm_init_sections): New.
2939         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
2940
2941 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2942
2943         * config/arm/arm.md: Remove unused variable.
2944
2945 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
2946
2947         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
2948         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
2949         (m32r_memory_move_cost): New function.
2950
2951 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
2952
2953         * config.gcc: Append t-android for Android targets.
2954
2955         * config/t-android: New.
2956
2957 2010-09-07  Richard Henderson  <rth@redhat.com>
2958
2959         * target.def (unwind_emit_before_insn): New hook.
2960         * doc/tm.texi.in: Add @hook marker for it.
2961         * doc/tm.texi: Rebuild.
2962         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
2963
2964 2010-09-07  Martin Jambor  <mjambor@suse.cz>
2965
2966         PR fortran/43665
2967         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
2968         are any type attributes.
2969
2970 2010-09-07  Jan Hubicka  <jh@suse.cz>
2971
2972         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
2973         array_ref_low_bound in string access folding.
2974
2975 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
2976
2977         PR target/45206
2978         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
2979         eh_return fixup sequence.
2980
2981 2010-09-07  Jan Hubicka  <jh@suse.cz>
2982
2983         * gimple-fold.c (maybe_fold_reference): Verify that operand is
2984         gimple_min_invariant.
2985
2986 2010-09-07  Richard Guenther  <rguenther@suse.de>
2987
2988         PR middle-end/45569
2989         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
2990         nor CONSTRUCTOR can trap.
2991         * tree-complex.c (update_complex_assignment): Update EH info.
2992
2993 2010-09-07  Richard Guenther  <rguenther@suse.de>
2994
2995         PR middle-end/45569
2996         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
2997         * passes.c (execute_function_todo): Do not verify anything if
2998         we saw errors.
2999
3000 2010-09-07  Richard Guenther  <rguenther@suse.de>
3001
3002         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
3003
3004 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
3005
3006         PR target/43137
3007         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
3008         New define_mode_attrs.
3009         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
3010         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
3011         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
3012         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
3013         Remove pool_range attribute.
3014         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
3015         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
3016         pool_range and neg_pool_range attributes.
3017         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
3018         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
3019         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
3020
3021 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
3022
3023         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
3024         check glibc.
3025
3026 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
3027
3028         PR target/22152
3029         * config/i386/mmx.md (*mov<mode>_internal_rex64,
3030         *mov<mode>_internal_avx, *mov<mode>_internal,
3031         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
3032         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
3033
3034 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
3035
3036         * c-typeck.c (do_warn_double_promotion): Remove.
3037         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
3038         Objective-C++ too.
3039
3040 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
3041
3042         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
3043         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
3044         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
3045         argument type to reg_class_t. Change result type to bool.
3046         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3047
3048 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
3049
3050         PR libobjc/19850
3051         * gthr-posix.h (__gthread_objc_thread_detach): Use
3052         _objc_thread_attribs when detaching a thread.
3053         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
3054
3055 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
3056
3057         PR target/45524
3058         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
3059         * configure: Regenerated.
3060
3061 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3062
3063         * combine.c (try_combine): Set subst_low_luid to i0.
3064
3065 2010-09-06  Richard Guenther  <rguenther@suse.de>
3066
3067         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
3068         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
3069         (build_aligned_type): Declare.
3070         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
3071         (check_aligned_type): New function.
3072         (build_aligned_type): Likewise.
3073         * expr.c (expand_assignment): Handle misaligned stores via
3074         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
3075         (expand_expr_real_1): Likewise.
3076         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
3077         * tree-vect-stmts.c (vectorizable_store): Do not build
3078         MISALIGNED_INDIRECT_REF but initialize alignment information.
3079         (vectorizable_load): Likewise.
3080         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
3081         handling.
3082         * cfgexpand.c (expand_debug_expr): Likewise.
3083         * dwarf2out.c (loc_list_from_tree): Likewise.
3084         * fold-const.c (maybe_lvalue_p): Likewise.
3085         (operand_equal_p): Likewise.
3086         (build_fold_addr_expr_with_type_loc): Likewise.
3087         * gimplify.c (gimplify_addr_expr): Likewise.
3088         (gimplify_expr): Likewise.
3089         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
3090         (verify_gimple_assign_single): Likewise.
3091         * tree-dump.c (dequeue_and_dump): Likewise.
3092         (tree_could_trap_p): Likewise.
3093         * tree-predcom.c (ref_at_iteration): Likewise.
3094         * tree-pretty-print.c (dump_generic_node): Likewise.
3095         (op_code_prio): Likewise.
3096         (op_symbol_code): Likewise.
3097         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
3098         * tree-ssa-loop-im.c (for_each_index): Likewise.
3099         (gen_lsm_tmp_name): Likewise.
3100         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
3101         (find_interesting_uses_address): Likewise.
3102         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
3103         * tree-ssa-operands.c (get_expr_operands): Likewise.
3104         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
3105         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
3106         (ao_ref_init_from_vn_reference): Likewise.
3107         * tree.c (staticp): Likewise.
3108         (build1_stat): Likewise.
3109         (reference_alias_ptr_type): Likewise.
3110         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
3111         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
3112         MISALIGNED_INDIRECT_REF handling.
3113
3114 2010-09-06  Richard Guenther  <rguenther@suse.de>
3115
3116         PR tree-optimization/45534
3117         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
3118         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
3119         on the target.
3120         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
3121         valid on the target.
3122
3123 2010-09-06  Andreas Schwab  <schwab@redhat.com>
3124
3125         * configure.ac: Quote argument of AC_MSG_WARN.
3126         * configure: Regenerate.
3127
3128 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
3129
3130         * sel-sched.c (move_cond_jump): Correct arguments to
3131         maybe_tidy_empty_bb.
3132         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
3133
3134 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
3135
3136         PR rtl-optimization/44919
3137         * sel-sched.c (move_cond_jump): Remove assert, check that
3138         the several blocks case can only happen with mutually exclusive
3139         insns instead.  Rewrite the movement code to support moving through
3140         several basic blocks.
3141
3142 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
3143
3144         * config/i386/i386.md (iptrsize): New mode attribute.
3145         (tp_seg): Ditto.
3146         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
3147         mode iterator.
3148         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
3149         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
3150         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
3151         (stack_tls_protect_set_<mode>): Ditto from
3152         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
3153         of thread base pointer load.
3154         (stack_tls_protect_test_<mode>): Ditto from
3155         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
3156         of thread base pointer load.
3157         (stack_protect_set): Rewrite using indirect functions.
3158         (stack_protect_test): Ditto.
3159         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
3160         (ix86_print_operand): Handle '@'.
3161
3162 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
3163
3164         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
3165         MINUS_EXPR.
3166
3167 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
3168
3169         * doc/invoke.texi: Document -Wdouble-promotion.
3170         * c-typeck.c (convert_arguments): Check for implicit conversions
3171         from float to double.
3172         (do_warn_double_promotion): New function.
3173         (build_conditional_expr): Use it.
3174         (build_binary_op): Likewise.
3175
3176 2010-09-05  Richard Guenther  <rguenther@suse.de>
3177
3178         PR tree-optimization/45535
3179         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
3180         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
3181         dereferencing it.
3182         (indirect_refs_may_alias_p): Likewise.
3183
3184 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
3185
3186         * config/sh/sh.c (sh_option_override): Make static.
3187         Adjust comments.  Declare.
3188         (sh_function_value_regno_p): Likewise.
3189         (sh_register_move_cost): Modify the arguments, make static.
3190         Adjust comments.  Declare.
3191         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
3192         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3193         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
3194         REGISTER_MOVE_COST): Delete.
3195         * config/sh/sh-protos.h (sh_override_options): Delete.
3196         (sh_register_move_cost): Delete.
3197         (sh_function_value_regno_p): Delete.
3198
3199 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
3200
3201         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
3202         m32r_function_value_regno_p): New functions.
3203         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3204         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
3205         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
3206         FUNCTION_VALUE_REGNO_P): Remove.
3207
3208 2010-09-04  Jan Hubicka  <jh@suse.cz>
3209
3210         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
3211         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
3212         fold_read_from_constant_string.
3213
3214         * gimple.h (canonicalize_constructor_val): Declare.
3215         * gimple-fold.c (canonicalize_constructor_val): New function.
3216         (get_symbol_constant_value):Use it.
3217         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
3218
3219 2010-09-04  Jan Hubicka  <jh@suse.cz>
3220
3221         * tree-switch-conversion.c (build_one_array): Set constructor to be
3222         static.
3223         * varpool.c (varpool_finalize_decl): Compute const_value_known.
3224
3225 2010-09-04  Richard Guenther  <rguenther@suse.de>
3226
3227         PR bootstrap/45519
3228         * tree-flow.h (force_gimple_operand_1): Declare.
3229         (force_gimple_operand_gsi_1): Likewise.
3230         * gimplify.c (force_gimple_operand_1): New worker taking a
3231         gimple predicate for ...
3232         (force_gimple_operand): ... which now wraps it.
3233         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
3234         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
3235         last change.
3236         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
3237         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
3238         (create_mem_ref): Likewise.
3239
3240 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
3241
3242         * config/i386/predicates.md (sse_reg_operand): New predicate.
3243         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
3244         predicate for operand 1.
3245         (XFmode push splitter): Use fp_register_operand predicate
3246         for operand 1.
3247         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
3248         (SF-DF float_extend push splitter): Add reload_completed insn
3249         predicate.
3250         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
3251         MODEF mode macro.  Add reload_completed insn predicate.
3252
3253 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
3254
3255         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
3256         (struct df_extract_ref): Remove.
3257         (union df_ref_d): Remove extract_ref member.
3258         (df_ref_create): Remove last three arguments.
3259         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
3260         * df-scan.c (df_ref_record): Remove last three arguments, do not
3261         pass them to df_ref_create_structure.
3262         (df_uses_record): Remove first and last three arguments.  Replace
3263         first argument with DF_REF_REGULAR, adjust calls to remove the
3264         width, offset and mode.  Always call recursively on the second
3265         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
3266         (df_ref_create_structure): Remove first argument.
3267         (struct df_scan_problem_data): Remove ref_extract_pool.
3268         (df_scan_free_internal): Do not free it.
3269         (df_scan_alloc): Do not allocate it.
3270         (df_ref_create): Remove last three arguments, do not pass them to
3271         df_ref_create_structure.
3272         (df_free_ref): Remove DF_REF_EXTRACT case.
3273         (df_notes_rescan): Adjust call to df_uses_record.
3274         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
3275         Remove DF_REF_EXTRACT case.
3276         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
3277         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
3278         and SUBREG definitions.
3279         (df_get_conditional_uses): Remove references to width/offset/mode,
3280         adjust call to df_ref_create_structure.
3281         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
3282         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
3283         calls to df_uses_record and df_ref_record.
3284         * fwprop.c (update_df): Remove references to width/offset/mode,
3285         adjust call to df_ref_create.
3286
3287 2010-09-03  Jan Hubicka  <jh@suse.cz>
3288
3289         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
3290         (build_cdtor_fns): Update use of build_cdtor.
3291
3292 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
3293
3294         * doc/options.texi (SeparateAlias): Document.
3295         * opt-functions.awk (switch_flags): Handle SeparateAlias.
3296         * opth-gen.awk: Generate enumeration names for options marked
3297         SeparateAlias, but not for those marked Ignore.
3298         * opts-common.c (generate_canonical_option): Don't output separate
3299         argument for options marked CL_SEPARATE_ALIAS.
3300         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
3301         * opts.h (CL_SEPARATE_ALIAS): New.
3302         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
3303         CL_COMMON): Adjust definitions.
3304         * config/i386/darwin.opt, config/mips/sde.opt: New.
3305         * common.opt (fdump-final-insns): New.
3306         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
3307         i386/darwin.opt.
3308         (mips*-sde-elf*): Add mips/sde.opt.
3309         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
3310         -mno-data-in-code and -mcode-xonly here.
3311         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
3312         * gcc.c (option_map): Add "j" to --dump entry.
3313         (translate_options): Don't translate -d to -foutput-class-dir= here.
3314
3315 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
3316
3317         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
3318         DR_IS_WRITE.
3319         (compute_all_dependences): Same.
3320         (create_rdg_edge_for_ddr): Same.
3321         * tree-data-ref.h (DR_IS_WRITE): New.
3322         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
3323         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
3324         (write_memrefs_written_at_least_once): Same.
3325         * tree-predcom.c (suitable_component_p): Same.
3326         (determine_roots_comp): Same.
3327         (execute_load_motion): Same.
3328         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
3329         (vect_enhance_data_refs_alignment): Same.
3330         (vect_analyze_group_access): Same.
3331
3332 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
3333
3334         PR testsuite/42843
3335         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
3336         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
3337
3338 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
3339
3340         * dwarf2out.c (file scope): Remove #if0'd code.
3341         (gen_subprogram_die): Same.
3342
3343 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
3344
3345         PR middle-end/45484
3346         * dwarf2out.c (flush_queued_reg_saves): Rename to...
3347         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
3348         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
3349         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
3350         * config/i386/i386.c (output_set_got): Call it.
3351
3352 2010-09-03  Michael Matz  <matz@suse.de>
3353
3354         PR middle-end/45415
3355         * tree-sra.c (sra_modify_assign): If we modify the statement,
3356         say so.
3357
3358         * tree-ssa.c (verify_ssa): Check number of operands and links
3359         per statement to agree.
3360
3361 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
3362             Iain Sandoe  <iains@gcc.gnu.org>
3363
3364         PR target/45476
3365         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
3366         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
3367         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
3368
3369 2010-09-03  Richard Guenther  <rguenther@suse.de>
3370
3371         * lto-streamer-out.c (output_function): Output function
3372         start and end loci.
3373         * lto-streamer-in.c (input_function): Input function start
3374         and end loci.
3375
3376 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3377
3378         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
3379         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
3380         * configure: Regenerate.
3381         * aclocal.m4: Regenerate.
3382
3383 2010-09-03  Jan Hubicka  <jh@suse.cz>
3384
3385         PR lto/44812
3386         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
3387         on functions/variables in other partition.
3388
3389 2010-09-03  Jan Hubicka  <jh@suse.cz>
3390
3391         * cgraph.h (struct varpool_node): Add const_value_known.
3392         (varpool_decide_const_value_known): Declare.
3393         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
3394         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
3395         (input_varpool_node): Restore const_value_known.
3396         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
3397         initializer folding.
3398         * ipa.c (ipa_discover_readonly_nonaddressable_var,
3399         function_and_variable_visibility): Compute const_value_known.
3400         * gimple-fold.c (get_symbol_constant_value): Use varpool for
3401         initializer folding.
3402         * varpool.c (varpool_decide_const_value_known): New function.
3403
3404 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
3405
3406         * config/i386/i386.md: Remove empty preparation statements
3407         from splitters.
3408
3409 2010-09-03  Jan Hubicka  <jh@suse.cz>
3410
3411         * passes.c (rest_of_decl_compilation): Do not add local vars into
3412         varpool.
3413         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
3414         static or extern vars are in varpool.
3415         (varpool_finalize_decl): Sanity check that only static vars are
3416         finalized.
3417
3418 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
3419
3420         PR debug/45500
3421         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
3422         not just generic vectors with BLKmode.
3423
3424 2010-09-03  Richard Guenther  <rguenther@suse.de>
3425
3426         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
3427         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
3428         * tree.h (TMR_SYMBOL): Remove.
3429         (TMR_BASE, TMR_OFFSET): Adjust.
3430         (TMR_INDEX2): New.
3431         * alias.c (ao_ref_from_mem): Use TMR_BASE.
3432         * builtins.c (get_object_alignment): Merge TMR_BASE and
3433         TMR_SYMBOL handling.
3434         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
3435         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
3436         handling.  Also allow TARGET_MEM_REF as base address.
3437         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
3438         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
3439         base.  Gimplify TMR_INDEX2.
3440         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
3441         * tree-dfa.c (get_ref_base_and_extent): Likewise.
3442         (get_addr_base_and_unit_offset): Likewise.
3443         * tree-eh.c (tree_could_trap_p): Likewise.
3444         * tree-pretty-print.c (dump_generic_node): Likewise.
3445         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
3446         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
3447         base to index2.
3448         (get_address_description): Reconstruct addres description
3449         from merged TMR_BASE and TMR_INDEX2.
3450         (maybe_fold_tmr): Fold propagated addresses.
3451         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
3452         MEM_REF and TARGET_MEM_REF paths.
3453         (indirect_refs_may_alias_p): Likewise.
3454         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
3455         instead of TMR_SYMBOL.
3456         * tree-ssa-operands.c (get_tmr_operands): Simplify.
3457         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
3458         according to changes ...
3459         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
3460         Split TARGET_MEM_REF into two fields plus the base.
3461         * tree.c (mem_ref_offset): Simplify.
3462         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
3463         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
3464         Strip NOPs when folding MEM_REF addresses.
3465         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
3466         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
3467         (fold_gimple_assign): ... not here.
3468
3469 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
3470
3471         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
3472         * config/mips/mips.c (mips_shift_truncation_mask): New function.
3473         (TARGET_SHIFT_TRUNCATION_MASK): Define.
3474
3475 2010-09-02  Richard Henderson  <rth@redhat.com>
3476
3477         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
3478         instead of readelf in the test.
3479         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
3480         in the .debug_frame section for coff targets.
3481         * configure: Rebuild.
3482
3483 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
3484
3485         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
3486         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
3487         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3488         (m32c_class_likely_spilled_p): Make static. Change argument type to
3489         reg_class_t. Change result type to bool.
3490
3491 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
3492
3493         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
3494         to convert (double)(long) into a single FRIZ instruction or not
3495         when -ffast-math is used.
3496
3497         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
3498         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
3499         or FRIZ instruction if -ffast-math.
3500         * config/rs6000/rs6000.md (friz): Ditto.
3501
3502         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
3503
3504 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
3505
3506         * opth-gen.awk (quote, comma): Remove unused variables.
3507
3508 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
3509
3510         * arm.c (arm_override_options): Correct fall-back code to use
3511         SUBTARGET_CPU_DEFAULT.
3512
3513 2010-09-02  Julian Brown  <julian@codesourcery.com>
3514
3515         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
3516         unspecs.
3517         (vcond<mode>, vcondu<mode>): New expanders.
3518         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
3519         comparisons with zero.
3520         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
3521         * config/arm/constraints.md (Dz): New constraint.
3522
3523 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
3524
3525         * target.def (class_likely_spilled_p): New hook.
3526         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
3527         * doc/tm.texi: Regenerate.
3528         * targhooks.c (default_class_likely_spilled_p): New function.
3529         * targhooks.h (default_class_likely_spilled_p): Declare.
3530         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
3531         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
3532         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
3533         Use fixed_reg_set instead of fixed_regs.
3534         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
3535         * calls.c (avoid_likely_spilled_reg): Ditto.
3536         * ira-conflicts.c (ira_build_conflicts): Ditto.
3537         * ira.c (update_equiv_regs): Ditto.
3538         * mode-switching.c (create_pre_exit): Ditto.
3539         * regmove.c (find_matches): Ditto.
3540         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
3541         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
3542         (small_register_class_p): New inline function.
3543         (push_secondary_reload, find_reusable_reload, find_reloads): Use
3544         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
3545
3546         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
3547         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
3548         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3549
3550 2010-09-02  Richard Guenther  <rguenther@suse.de>
3551
3552         PR tree-optimization/44937
3553         PR tree-optimization/45412
3554         * ipa-split.c (split_function): Properly remove PHI nodes.
3555
3556 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
3557
3558         * opts.h (struct cl_option): Add warn_message field.
3559         (struct cl_decoded_option): Add warn_message field.
3560         * doc/options.texi (Ignore, Warn): Document.
3561         * opt-functions.awk (needs_state_p): Don't consider aliases or
3562         ignored options to need state saved.
3563         * optc-gen.awk: Handle Warn and Ignore.
3564         * opth-gen.awk: Output OPT_SPECIAL_ignore.
3565         * opts-common.c (decode_cmdline_option): Set warn_message field.
3566         Handle ignored options.
3567         (decode_cmdline_options_to_array, generate_option,
3568         generate_option_input_file): Set warn_message field.
3569         (read_cmdline_option): Generate warnings from warn_message field.
3570         Handle ignored options.
3571         * common.opt (Wunreachable-code, fargument-alias,
3572         fargument-noalias, fargument-noalias-global,
3573         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
3574         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
3575         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
3576         ftree-salias): Mark Ignore.
3577         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
3578         -mintel-syntax and -mno-intel-syntax here.
3579         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
3580         using Warn.
3581         * opts.c (common_handle_option): Don't handle options marked as
3582         ignored.
3583         (enable_warning_as_error): Handle ignored options.
3584
3585 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
3586
3587         PR driver/44076
3588         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
3589         alias_target fields.
3590         * opt-functions.awk (opt_sanitized_name): Don't handle
3591         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
3592         * optc-gen.awk: Generate alias fields.
3593         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
3594         Don't generate such constants for aliases.
3595         * opts-common.c (generate_canonical_option): New.
3596         (decode_cmdline_option): Handle aliases.  Use
3597         generate_canonical_option for known options instead of copying the
3598         input option text.
3599         * doc/options.texi (Alias): Document.
3600         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
3601         fstack-check, specs): Mark as aliases.
3602         * gcc.c (driver_handle_option): Canonicalize -L options to joined
3603         arguments.
3604         (driver_handle_option): Don't handle OPT_specs.
3605         * opts.c (common_handle_option): Don't handle options marked as
3606         aliases.
3607         (enable_warning_as_error): Handle aliases.
3608         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
3609         OPT_Wlarger_than_eq.
3610         * tree-optimize.c (tree_rest_of_compilation): Use
3611         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
3612
3613 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
3614
3615         * config/i386/i386.md (nonmemory_operand): New mode attribute.
3616         (push memory peephole2): Macroize peepholes using SWI mode iterator.
3617         (move immediate to memory peephole2): Macroize peepholes using
3618         SWI124 mode iterator.
3619         (non-pairable NOT peephole2): Macroize peepholes using SWI124
3620         mode iterator.
3621         (simple lea add peephole2): Macroize peepholes using SWI48
3622         mode iterator.
3623         (simple lea mult peephole2): Ditto.
3624         (imul by 3,5,9 to lea peephole2): Ditto.
3625         (mov $-1, reg peephole2): Macroize peepholes using SWI248
3626         mode iterator.
3627         (imul $32bit_imm,mem,reg peephole2): Ditto.
3628         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
3629
3630 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
3631
3632         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
3633
3634 2010-09-02  Olivier Hainque  <hainque@adacore.com>
3635
3636         PR middle-end/44763
3637         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
3638         (allocno_priority_compare_func): Use it instead of a straight
3639         difference computation over priorities.
3640
3641 2010-09-02  Andi Kleen  <ak@linux.intel.com>
3642
3643         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
3644
3645 2010-09-02  Ira Rosen  <irar@il.ibm.com>
3646
3647         * tree-vectorizer.h (get_later_stmt): New function.
3648         (vect_analyze_data_ref_dependences): Add argument.
3649         * tree-vect-loop.c (vect_analyze_loop): Update call to
3650         vect_analyze_data_ref_dependences.
3651         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
3652         New function.
3653         (vect_analyze_data_ref_dependence): Add argument for basic block
3654         dependencies. Check dependencies in basic block vectorization.
3655         (vect_analyze_data_ref_dependences): Add argument and update call to
3656         vect_analyze_data_ref_dependences.
3657         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
3658         (vect_bb_vectorizable_with_dependencies): New.
3659         (vect_slp_analyze_bb): Check dependencies in basic block.
3660         (vect_schedule_slp_instance): Insert stores before the last store in
3661         SLP instance.
3662
3663 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
3664
3665         PR target/45476
3666         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
3667         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
3668
3669 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
3670
3671         PR middle-end/45458
3672         * bb-reorder.c (add_labels_and_missing_jumps): Treat
3673         bbs ending with throwing insns like blocks ending with a call.
3674         (fix_up_fall_thru_edges): Likewise.
3675
3676 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
3677
3678         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
3679         (m32c_function_arg_advance): Delete.
3680         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3681         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
3682         comments.  Take a const_tree and a bool.  Declare.
3683         (m32c_function_arg_advance): Likewise.
3684         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3685
3686 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
3687
3688         PR target/45476
3689         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
3690         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
3691         * config/i386/mingw32.h: ... here.
3692
3693 2010-09-01  Andi Kleen  <ak@linux.intel.com>
3694
3695         PR lto/45475
3696         * lto-streamer-in.c (lto_input_ts_target_option): Add.
3697         (lto_input_tree_pointers): Call lto_input_ts_target_option.
3698         * lto-streamer-out (lto_output_ts_target_option): Add.
3699         (lto_output_tree_pointers): Call lto_output_ts_target_option.
3700
3701 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
3702
3703         PR/target 45452
3704         * config/i386/cygwin.h: Change order of specified import libraries.
3705         * config/i386/mingw32.h: Likewise.
3706         * config/i386/t-cygwin: Likewise.
3707         * config/i386/t-mingw32: Likewise.
3708         * config/i386/t-mingw-w32: Likewise.
3709         * config/i386/t-mingw-w64: Likewise.
3710
3711 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3712
3713         * config/arm/neon-schedgen.ml (core): New type.
3714         (allCores): List of supported cores.
3715         (availability_table): Add supported cores.
3716         (collate_bypasses): Accept core as a parameter.
3717         (worst_case_latencies_and_bypasses): Accept core as a parameter.
3718         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
3719         and coreStr to get tune attribute and prefix for functional units.
3720         (emit_bypasses): Accept core name and use it.
3721         (calculate_per_core_availability_table): New.
3722         (filter_core): New.
3723         (calculate_core_availability_table): New.
3724         (main): Use calculate_core_availablity_table.
3725         * config/arm/cortex-a8-neon.md: Update copyright year.
3726         Regenerated from ml file and merged in.
3727         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
3728         cortex_a8_neon_mrc.
3729
3730 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
3731
3732         * Makefile.in (tree-switch-conversion.o): Update dependencies.
3733
3734 2010-09-01  Richard Guenther  <rguenther@suse.de>
3735
3736         * alias.c (ao_ref_from_mem): Adjust.
3737         * builtins.c (get_object_alignment): Likewise.
3738         * cfgexpand.c (expand_debug_expr): Likewise.
3739         * gimple.c (get_base_address): Likewise.
3740         * tree-dfa.c (get_ref_base_and_extent): Likewise.
3741         (get_addr_base_and_unit_offset): Likewise.  Fix for
3742         both TMR_SYMBOL and TMR_BASE being set.
3743         * tree-eh.c (tree_could_trap_p): Likewise.
3744         * gimplify.c (gimplify_expr): Do not attempt to gimplify
3745         TMR_SYMBOL.  Always gimplify TMR_BASE.
3746         * tree-cfg.c (verify_types_in_gimple_reference): Verify
3747         TMR_BASE if there is a TMR_SYMBOL.
3748         * tree-pretty-print.c (dump_generic_node): Adjust.
3749         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
3750         (tree_mem_ref_addr): Likewise.
3751         (create_mem_ref_raw): Likewise.
3752         (move_fixed_address_to_symbol): Likewise.
3753         (create_mem_ref): Likewise.
3754         (dump_mem_address): Likewise.
3755         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
3756         Fix for both TMR_SYMBOL and TMR_BASE being set.
3757         (indirect_refs_may_alias_p): Likewise.
3758         * tree-ssa-operands.c (get_tmr_operands): Adjust.
3759         * tree.def (TARGET_MEM_REF): Adjust documentation.
3760
3761 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
3762
3763         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
3764         Rename from X86_TUNE_ADD_ESP_4.
3765         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
3766         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
3767         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
3768         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
3769         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
3770         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
3771         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
3772         * config/i386/i386.c (initial_ix86_tune_features)
3773         <X86_TUNE_SINGLE_POP>: Invert members.
3774         <X86_TUNE_DOUBLE_POP>: Ditto.
3775         <X86_TUNE_SINGLE_PUSH>: Ditto.
3776         <X86_TUNE_DOUBLE_PUSH>: Ditto.
3777         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
3778         No longer exported.
3779         (push peephole2 patterns): Macroize peepholes using P mode iterator.
3780         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
3781         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
3782         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
3783
3784 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
3785
3786         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
3787         a volatile LHS if the constructor has only one element.
3788
3789 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
3790
3791         PR bootstrap/45321
3792         * tree.c (stdarg_p): Make fntype parameter const.
3793         * tree.h (stdarg_p): Likewise.
3794         (function_args_iterator): Remove unused fntype field.
3795         (function_args_iter_init): Do not initialize fntype
3796         field.  Make fntype parameter const.
3797
3798 2010-09-01  Richard Guenther  <rguenther@suse.de>
3799
3800         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
3801         estimate.
3802         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
3803         (execute_vrp): Compute number of iteration estimates.
3804         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
3805         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
3806         * tree-data-ref.c (estimated_loop_iterations): Adjust.
3807         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
3808         Infer loop bounds from undefined behavior based on a new parameter.
3809         (estimate_numbers_of_iterations): Likewise.
3810         (scev_probably_wraps_p): Adjust.
3811         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
3812
3813 2010-09-01  Nick Clifton  <nickc@redhat.com>
3814
3815         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
3816         where appropriate.
3817         (xstormy16_legitimate_address_p): Use true and false instead of 1
3818         and 0.
3819         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
3820         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
3821         magic constant 2.
3822         (xstormy16_expand_call): Fix comment at start of function.
3823
3824 2010-09-01  Nick Clifton  <nickc@redhat.com>
3825
3826         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
3827         when pushing accumulator register.
3828         (rx_get_stack_layout): Always save call clobbered registers inside
3829         interrupt handlers.
3830         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
3831
3832 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
3833
3834         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
3835         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
3836
3837         * libgcc-std.ver (GCC_4.6.0): Define version.
3838
3839 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
3840
3841         * tree-nested.c (convert_all_function_calls): Iterate until after the
3842         sum of static chains in the nest doesn't change.
3843
3844 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
3845
3846         * config/m32c/m32c.c (classes_intersect): Remove.
3847         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
3848         reg_classes_intersect_p instead of classes_intersect.
3849         (class_can_hold_mode): Change arguments type from enum reg_class to
3850         reg_class_t.  Use reg_class_contents instead of class_contents.
3851         (m32c_register_move_cost): Make static. Change arguments type from
3852         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
3853         classes_intersect. Use reg_class_contents instead of class_contents.
3854         (m32c_memory_move_cost): Make static. Change arguments type from
3855         enum reg_class to reg_class_t.
3856         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
3857         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
3858         * config/m32c/m32c-protos.h (m32c_register_move_cost,
3859         m32c_memory_move_cost): Remove.
3860
3861 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
3862
3863         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
3864         (arm_function_arg): Delete.
3865         (arm_needs_doubleword_align): Take a const_tree.
3866         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3867         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
3868         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
3869         (arm_function_arg): Make static.  Take a const_tree and a bool.
3870         (arm_function_arg_advance): Likewise.
3871         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3872
3873 2010-08-31  Andi Kleen  <ak@linux.intel.com>
3874
3875         * common.opt (fwhopr=): Update for -fwhopr=jobserver
3876         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
3877         * lto-wrapper.c (run_gcc): Add jobserver mode.
3878         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
3879         argument.
3880
3881 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
3882
3883         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
3884         (popsi1): Ditto.
3885         (*popdi1_epilogue): Ditto.
3886         (*popsi1_epilogue): Ditto.
3887         (popsi, popdi peephole2 patterns): Update peepholes for changed
3888         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
3889
3890         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
3891         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
3892
3893         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
3894         (override_options): Do not initialize removed ix86_gen_pop1.
3895         (gen_pop): New static function.
3896         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
3897         (release_scratch_register_on_entry): Ditto.
3898         (ix86_restore_reg_using_pop): Ditto.
3899         (ix86_expand_epilogue): Ditto.
3900
3901 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
3902
3903         PR middle-end/45461
3904         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
3905
3906 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
3907
3908         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
3909         semicolons.
3910
3911 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3912
3913         * doc/extend.texi: Fix documentation of the return value of
3914         __builtin_choose_expr.
3915
3916 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
3917
3918         * config/v850/v850-protos.h (function_arg): Delete.
3919         * config/v850/v850.h (FUNCTION_ARG): Delete.
3920         (FUNCTION_ARG_ADVANCE): Move code to...
3921         * config/v850/v850.c (v850_function_arg_advance): ...here.
3922         (v850_function_arg): Make static.  Take a const_tree and a bool.
3923         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3924
3925 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
3926
3927         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
3928         these...
3929         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
3930         ...and these...
3931         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
3932         ..to here..
3933         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
3934         ...and here.
3935         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3936
3937 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
3938
3939         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
3940         Delete.
3941         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3942         * config/rx/rx.c (rx_function_arg_size): Make static.
3943         (rx_function_arg): Likewise.
3944         (rx_function_arg_advance): New function.
3945         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3946
3947 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
3948
3949         * config/arm/arm.c (arm_override_options): Remove superfluous test.
3950         Fix indentation.
3951
3952 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
3953
3954         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
3955         (dwarf2out_decl) <CONST_DECL>: Likewise.
3956
3957 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
3958
3959         Stack usage support
3960         * common.opt (-fstack-usage): New option.
3961         * doc/invoke.texi (Debugging options): Document it.
3962         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
3963         allocate_dynamic_stack_space.
3964         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
3965         and propagate it to allocate_dynamic_stack_space.
3966         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
3967         * calls.c (initialize_argument_information): Pass TRUE as 4th
3968         argument to allocate_dynamic_stack_space.
3969         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
3970         to 1 when pushing a variable-sized argument onto the stack.  Pass
3971         TRUE as 4th argument to allocate_dynamic_stack_space.
3972         Update current_function_pushed_stack_size.
3973         (emit_library_call_value_1): Likewise.
3974         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
3975         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
3976         attempt to find an upper bound.  Remove redundant code for the
3977         SETJMP_VIA_SAVE_AREA case.
3978         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
3979         * function.h (struct stack_usage): New structure.
3980         (current_function_static_stack_size): New macro.
3981         (current_function_dynamic_stack_size): Likewise.
3982         (current_function_pushed_stack_size): Likewise.
3983         (current_function_dynamic_alloc_count): Likewise.
3984         (current_function_has_unbounded_dynamic_stack_size): Likewise.
3985         (current_function_allocates_dynamic_stack_space): Likewise.
3986         (struct function): Add new field 'su'.
3987         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
3988         add the value of the dynamic offset to the dynamic stack usage.
3989         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
3990         for variable-sized objects.
3991         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
3992         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
3993         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
3994         BUILT_IN_ALLOCA for variable-sized objects.
3995         * output.h (output_stack_usage): Declare.
3996         * toplev.c (stack_usage_file): New file pointer.
3997         (output_stack_usage): New function.
3998         (open_auxiliary_file): Likewise.
3999         (lang_dependent_init): Open file if flag_stack_usage is set.
4000         (finalize): Close file if stack_usage_file is not null.
4001         * tree.h (ALLOCA_FOR_VAR_P): New macro.
4002         * config/alpha/alpha.c (compute_frame_size): New function.
4003         (alpha_expand_prologue): Use it.
4004         (alpha_start_function): Likewise.
4005         (alpha_expand_epilogue): Likewise.  Set stack usage info.
4006         * config/i386/i386.c (ix86_expand_prologue): Likewise.
4007         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
4008         * config/mips/mips.c (mips_expand_prologue): Likewise.
4009         * config/pa/pa.c (hppa_expand_prologue): Likewise.
4010         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
4011         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
4012
4013 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
4014
4015         PR tree-optimization/45427
4016         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
4017         Handle the case that the exit is never taken correctly.
4018         (number_of_iterations_ne): Pass exit_must_be_taken to
4019         number_of_iterations_ne_max.
4020
4021 2010-08-30  Catherine Moore  <clm@codesourcery.com>
4022
4023         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
4024         Infer -mdspr2 for the the 74K.
4025
4026 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
4027
4028         PR debug/45419
4029         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
4030
4031         PR middle-end/45423
4032         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
4033         and TRUTH_{AND,OR,XOR}_EXPR.
4034         * c-parser.c (c_parser_omp_atomic): Handle boolean
4035         {PRE,POST}_{INC,DEC}REMENT.
4036
4037 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
4038
4039         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
4040         (function_arg): Delete.
4041         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4042         (FUNCTION_INCOMING_ARG): Delete.
4043         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
4044         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
4045         and a bool.
4046         (function_arg): Rename to...
4047         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
4048         a bool.
4049         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
4050         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4051         (TARGET_FUNCTION_INCOMING_ARG): Define.
4052
4053 2010-08-30  Richard Guenther  <rguenther@suse.de>
4054
4055         PR tree-optimization/21602
4056         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
4057         using points-to information.
4058
4059 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
4060
4061         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
4062
4063 2010-08-30  Richard Guenther  <rguenther@suse.de>
4064
4065         PR tree-optimization/45449
4066         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
4067         variables.
4068
4069 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
4070
4071         * opts.h (CL_ERR_NEGATIVE): Define.
4072         * opts.c (unknown_option_callback): Don't postpone warnings for
4073         options marked with CL_ERR_NEGATIVE.
4074         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
4075         for negative versions of CL_REJECT_NEGATIVE options.
4076
4077 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
4078
4079         * config/i386/i386.md (zero_extendsidi2_1): Rename from
4080         zero_extendsidi2_32.
4081         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
4082         using SWI12 mode iterator.
4083         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
4084         to define_insn_and_split pattern.
4085         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
4086         using SWI24 mode iterator.
4087         (*zero_extendqi<mode>2_and): Macroize insn from
4088         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
4089         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
4090         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
4091         SWI24 mode iterator.
4092         (*zero_extendqi<mode>2_movzbl): Ditto from
4093         *zero_extendqi{hi,si}2_movzbl.
4094         (extendsidi2_1): Rename from extendsidi2_32.
4095         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
4096         SWI12 mode iterator.
4097
4098 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
4099
4100         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
4101         general purpose registers.
4102         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
4103         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
4104         with general purpose registers and memory operands.  Add associated
4105         CCImode post-reload splitter.
4106         * config/ia64/div.md: Change BImode to CCImode throughout.
4107
4108 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
4109
4110         * config/ia64/ia64.md (cstorebi4): Fix thinko.
4111
4112 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
4113
4114         * config/picochip/picochip.c (reorder_var_tracking_notes): This
4115         function was dropping debug insns which caused PR45299.
4116
4117 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
4118
4119         * config/i386/sse.md (extsuffix): New code attribute.
4120         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
4121         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
4122         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
4123         and sse4_1_zero_extendv4qiv4si2.
4124         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
4125         and sse4_1_zero_extendv2qiv2di2.
4126         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
4127         and sse4_1_zero_extendv4hiv4si2.
4128         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
4129         and sse4_1_zero_extendv2hiv2di2.
4130         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
4131         and sse4_1_zero_extendv2siv2di2
4132
4133         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
4134         using any_extend code iterator.
4135         (*avx_<s>mulv8hi3_highpart): Macroize insn from
4136         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
4137         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
4138
4139         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
4140         gen_sse4_1_sign_extend* functions.
4141         (struct builtin_description bdesc_args): Ditto.
4142
4143 2010-08-27  Xinliang David Li  <davidxl@google.com>
4144
4145         PR/45422
4146         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
4147         (iv_ca_set_no_cp): Update used inv expr count.
4148         (iv_ca_set_cp): Ditto.
4149         (iv_ca_new): Initialize new member.
4150         (iv_ca_free): Free memory.
4151
4152 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
4153
4154         * config/sh/sh-protos.h (sh_function_arg): Delete.
4155         (sh_function_arg_advance): Delete.
4156         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4157         (PASS_IN_REG_P): Eliminate cast.
4158         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
4159         const_tree and a bool.
4160         (sh_function_arg): Likewise.
4161         (sh_output_mi_thunk): Call sh_function_arg_advance) and
4162         sh_function_arg.
4163         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4164
4165 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
4166             Kaz Kojima  <kkojima@gcc.gnu.org>
4167
4168         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
4169         when possible.
4170         (sh_expand_epilogue): Likewise.
4171         * config/sh/sh.md (movml_push_banked): New insn.
4172         (movml_pop_banked): Likewise.
4173
4174 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
4175
4176         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
4177         gen_regexp_oneof, gen_regexp_sequence): Use the string found
4178         in vector element 0 rather than the original string when there's
4179         only one element.
4180         (gen_regexp): Remove extra semicolon.
4181
4182         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
4183         thumb2_movsf_vfp): Set attribute "insn".
4184         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
4185         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
4186         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
4187         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
4188         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
4189         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
4190         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
4191         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
4192         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
4193         if_not_arith, if_arith_not, cond_move_not): Likewise.
4194
4195 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
4196
4197         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
4198         New declaration.
4199         (rs6000_allocate_stack_temp): Ditto.
4200         (rs6000_expand_convert_si_to_sfdf): Ditto.
4201
4202         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
4203         line.  Update the options set if power6 or power7 server/embedded
4204         type options are used.  If we give a warning for no vsx under
4205         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
4206         (rs6000_allocate_stack_temp): New function to allocate a stack
4207         tempoary and adjust the address so it meets either REG+OFFSET or
4208         REG+REG addressing requirements.
4209         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
4210         that they can be used with the LFIWAX/LFIWZX instrucitons.
4211         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
4212         converting signed/unsigned SImode to either SFmode/DFmode.
4213
4214         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
4215         whether certain instructions can be generated.
4216         (TARGET_FCTIDZ): Ditto.
4217         (TARGET_STFIWX): Ditto.
4218         (TARGET_LFIWAX): Ditto.
4219         (TARGET_LFIWZX): Ditto.
4220         (TARGET_FCFIDS): Ditto.
4221         (TARGET_FCFIDU): Ditto.
4222         (TARGET_FCFIDUS): Ditto.
4223         (TARGET_FCTIDUZ): Ditto.
4224         (TARGET_FCTIWUZ): Ditto.
4225
4226         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
4227         (UNSPEC_FCTID): Ditto.
4228         (UNSPEC_LFIWAX): Ditto.
4229         (UNSPEC_LFIWZX): Ditto.
4230         (UNSPEC_FCTIWUZ): Ditto.
4231         (rreg): Use correct constraints.
4232         (SI_CONVERT_FP): New mode attribute for floating point conversion
4233         tests.
4234         (E500_CONVERT): Ditto.
4235         (lfiwax): New insns for converting from integer to floating point
4236         utilizing newer instructions.  Attempt to optimize conversions
4237         that come from memory so that we don't load the value into a GPR,
4238         spill it to the stack and reload it into a FPR.
4239         (floatsi<mode>2_lfiwax): Ditto.
4240         (floatsi<mode>2_lfiwax_mem): Ditto.
4241         (floatsi<mode>2_lfiwax_mem2): Ditto.
4242         (lfiwzx): Ditto.
4243         (floatunssi<mode>2_lfiwzx): Ditto.
4244         (floatunssi<mode>2_lfiwzx_mem): Ditto.
4245         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
4246         (floatdidf2_mem): Ditto.
4247         (floatunsdidf2_fcfidu): Ditto.
4248         (floatunsdidf2_mem): Ditto.
4249         (floatunsdisf2): Ditto.
4250         (floatunsdisf2_fcfidus): Ditto.
4251         (floatunsdisf2_mem): Ditto.
4252         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
4253         Use FCFID on 32-bit hosts that support it.
4254         (floatsidf2_internal): Ditto.
4255         (floatunssisf2): Ditto.
4256         (floatunssidf2): Ditto.
4257         (floatunssidf2_internal): Ditto.
4258         (floatsisf2): Ditto.
4259         (floatdidf2): Ditto.
4260         (floatdidf2_fpr): Ditto.
4261         (floatunsdidf2): Ditto.
4262         (floatdisf2): Ditto.
4263         (floatdisf2_fcfids): Ditto.
4264         (floatdisf2_internal1): Ditto.
4265         (fixuns_truncsfsi2): Delete, merge into common pattern for both
4266         SF/DF.  Add power7 support.
4267         (fix_truncsfsi2): Ditto.
4268         (fixuns_truncdfsi2): Ditto.
4269         (fixuns_truncdfdi2): Ditto.
4270         (fix_truncdfsi2): Ditto.
4271         (fix_truncdfsi2_internal): Ditto.
4272         (fix_truncdfsi2_internal_gfxopt): Ditto.
4273         (fix_truncdfsi2_mfpgpr): Ditto.
4274         (fctiwz): Ditto.
4275         (btruncdf2): Ditto.
4276         (btruncdf2_fpr): Ditto.
4277         (btructsf2): Ditto.
4278         (ceildf2): Ditto.
4279         (ceildf2_fpr): Ditto.
4280         (ceilsf2): Ditto.
4281         (floordf2): Ditto.
4282         (floordf2_fpr): Ditto.
4283         (floorsf2): Ditto.
4284         (rounddf2): Ditto.
4285         (rounddf2_fpr): Ditto.
4286         (roundsf2): Ditto.
4287         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
4288         (fix_trunc<mode>di2): Ditto.
4289         (fixuns_trunc<mode>si2): Ditto.
4290         (fixuns_trunc<mode>di2): Ditto.
4291         (fctiwz_<mode>): Ditto.
4292         (btrunc<mode>2): Ditto.
4293         (btrunc<mode>2_fpr): Ditto.
4294         (ceil<mode>2): Ditto.
4295         (ceil<mode>2_fpr): Ditto.
4296         (floor<mode>2): Ditto.
4297         (float<mode>2_fpr): Ditto.
4298         (round<mode>2): Ditto.
4299         (round<mode>2_fpr): Ditto.
4300         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
4301         (fixuns_trunc<mode>si2_stfiwx): Ditto.
4302         (fix_truncdfsi2_internal): Ditto.
4303         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
4304         converted value on stack, loaded into GPR, and then stored into
4305         the final destination.
4306         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
4307         FCTIDZ.
4308         (lrint<mode>di2): New insn, provide the lrint builtin functions.
4309         (ftruncdf2): Delete, unused.
4310         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
4311
4312         * config/rs6000/vsx.md (toplevel): Update copyright year.
4313         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
4314         (VSr3): Ditto.
4315
4316 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
4317             Jeremie Salvucci  <jeremie.salvucci@free.fr>
4318
4319         * gengtype.c (output_type_enum): Test the right union member.
4320
4321 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
4322
4323         PR target/41484
4324         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
4325         operands for operand 1.
4326         (sse4_1_extendv4qiv4si2): Ditto.
4327         (sse4_1_extendv2qiv2di2): Ditto.
4328         (sse4_1_extendv4hiv4si2): Ditto.
4329         (sse4_1_extendv2hiv2di2): Ditto.
4330         (sse4_1_extendv2siv2di2): Ditto.
4331         (sse4_1_zero_extendv8qiv8hi2): Ditto.
4332         (sse4_1_zero_extendv4qiv4si2): Ditto.
4333         (sse4_1_zero_extendv2qiv2di2): Ditto.
4334         (sse4_1_zero_extendv4hiv4si2): Ditto.
4335         (sse4_1_zero_extendv2hiv2di2): Ditto.
4336         (sse4_1_zero_extendv2siv2di2): Ditto.
4337         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
4338         (*sse4_1_extendv4qiv4si2): Ditto.
4339         (*sse4_1_extendv2qiv2di2): Ditto.
4340         (*sse4_1_extendv4hiv4si2): Ditto.
4341         (*sse4_1_extendv2hiv2di2): Ditto.
4342         (*sse4_1_extendv2siv2di2): Ditto.
4343         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
4344         (*sse4_1_zero_extendv4qiv4si2): Ditto.
4345         (*sse4_1_zero_extendv2qiv2di2): Ditto.
4346         (*sse4_1_zero_extendv4hiv4si2): Ditto.
4347         (*sse4_1_zero_extendv2hiv2di2): Ditto.
4348         (*sse4_1_zero_extendv2siv2di2): Ditto.
4349
4350 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
4351
4352         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
4353         (mips_function_arg): Delete.
4354         (mips_function_arg_boundary): Take a const_tree.
4355         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
4356         (mips_arg_info): Likewise.
4357         (mips_setup_incoming_varargs): Call mips_function_arg_advance
4358         instead of FUNCTION_ARG_ADVANCE.
4359         (mips_function_arg_advance): Adjust prototype.  Make static.
4360         (mips_function_arg): Likewise.
4361         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4362         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
4363
4364 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
4365
4366         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
4367         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
4368         (function_arg): Delete.
4369         (function_arg_boundary): Take a const_tree.
4370         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
4371         (rs6000_spe_function_arg): Likewise.
4372         (rs6000_parm_start): Likewise.
4373         (rs6000_arg_size): Likewise.
4374         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
4375         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
4376         (rs6000_mixed_function_arg): Likewise.
4377         (function_arg): Rename to...
4378         (rs6000_function_arg): ...this.
4379         (function_arg_advance): Rename to...
4380         (rs6000_function_arg_advance_1): ...this
4381         (rs6000_function_arg_advance): New function.  Call it.
4382         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
4383         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
4384         (rs6000_function_value): Likewise.
4385         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
4386
4387 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4388
4389         * config/arm/arm.md (enabled): Test the value of arch_enabled
4390         rather than just using it.
4391
4392 2010-08-27  Olivier Hainque  <hainque@adacore.com>
4393             Eric Botcazou  <ebotcazou@adacore.com>
4394
4395         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
4396         cover all the possible offsets from this base.
4397         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
4398
4399 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
4400
4401         PR tree-optimization/44485
4402         * calls.c (flags_from_decl_or_type): For const or pure
4403         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
4404         together with ECF_CONST resp. ECF_PURE.
4405         * builtins.c (expand_builtin): Use flags_from_decl_or_type
4406         instead of querying flags directly.
4407         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
4408         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
4409
4410 2010-08-26  Richard Guenther  <rguenther@suse.de>
4411
4412         PR tree-optimization/45255
4413         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
4414         and externals are also invariant.
4415
4416 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
4417
4418         PR rtl-optimization/44858
4419         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
4420         newi2pat, make sure they don't affect newpat.
4421
4422         PR rtl-optimization/45400
4423         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
4424         SUBREG_REG if both modes are of MODE_INT class.
4425
4426 2010-08-25  Julian Brown  <julian@codesourcery.com>
4427
4428         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
4429         * config/arm/arm.md (generic_sched): No for Cortex-A5.
4430         (generic_vfp): Likewise.
4431         (cortex-a5.md): Include.
4432         * config/arm/cortex-a5.md: New.
4433
4434 2010-08-25  Richard Guenther  <rguenther@suse.de>
4435
4436         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
4437         * gimple.c (gimple_get_alias_set): Remove special handling
4438         for pointers.
4439
4440 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
4441
4442         PR middle-end/45355
4443         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
4444         dead_or_set_p when computing i0_feeds_i2_n.
4445
4446         * combine.c (find_split_point): Undo canonicalization of multiply-add
4447         to (minus x (mult)) when it seems likely that this will increase the
4448         chances of a split.
4449
4450 2010-08-25  Richard Guenther  <rguenther@suse.de>
4451
4452         PR lto/44562
4453         * lto-streamer.c (lto_record_common_node): Do not mess with
4454         TYPE_CANONICAL when not in lto.
4455         * gimple.c (gimple_register_type): Likewise.
4456
4457 2010-08-25  Richard Guenther  <rguenther@suse.de>
4458
4459         PR tree-optimization/45316
4460         * tree-ssa-pre.c (eliminate): Properly clean EH info.
4461
4462 2010-08-25  Richard Guenther  <rguenther@suse.de>
4463
4464         PR tree-optimization/45393
4465         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
4466         and clean EH info.  Avoid SSA update.
4467         (execute_cse_sincos): Cleanup the CFG if it has changed.
4468
4469 2010-08-25  Richard Guenther  <rguenther@suse.de>
4470
4471         PR middle-end/45379
4472         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
4473         TARGET_MEM_REF in alignment computation.
4474
4475 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
4476
4477         PR tree-optimization/45059
4478         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
4479         type conversions from newop{1,2}.  Assert t is a comparison and
4480         newop{1,2} after the stripping are gimple vals.
4481
4482 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
4483
4484         * config/arm/iterators.md (VU, SE, V_widen_l): New.
4485         (V_unpack, US): New.
4486         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
4487         (vec_unpack<US>_lo_<mode>): Likewise.
4488         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
4489         (neon_vec_unpack<US>_lo_<mode>): Likewise.
4490         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
4491         (vec_widen_<US>mult_hi_<mode>): Likewise.
4492         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
4493         (neon_vec_<US>mult_hi_<mode>"): Likewise.
4494         (neon_unpack<US>_<mode>): Widening move intermediate step for
4495         vectorizing without -mvectorize-with-neon-quad.
4496         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
4497         for vectorizing without -mvectorize-with-neon-quad.
4498         * config/arm/predicates.md (vect_par_constant_high): Check for
4499         high-half lanes of a vector.
4500         (vect_par_constant_low): Check for low-half lanes of a vector.
4501
4502 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
4503
4504         * tree-if-conv.c (struct ifc_dr): New.
4505         (IFC_DR): New.
4506         (DR_WRITTEN_AT_LEAST_ONCE): New.
4507         (DR_RW_UNCONDITIONALLY): New.
4508         (memref_read_or_written_unconditionally): Use the cached values
4509         when possible.
4510         (write_memref_written_at_least_once): Same.
4511         (if_convertible_loop_p): Initialize and free DR->aux fields.
4512
4513 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
4514
4515         * gimple.c (gimple_could_trap_p_1): Not static anymore.
4516         Pass an extra bool parameter include_mem.
4517         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
4518         (gimple_assign_rhs_could_trap_p): Same.
4519         * gimple.h (gimple_could_trap_p_1): Declared.
4520         * tree-data-ref.h (same_data_refs_base_objects): New.
4521         (same_data_refs): New.
4522         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
4523         (write_memrefs_written_at_least_once): New.
4524         (ifcvt_memrefs_wont_trap): New.
4525         (operations_could_trap): New.
4526         (ifcvt_could_trap_p): New.
4527         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
4528         Gets a vector of data refs.
4529         (if_convertible_stmt_p): Same.
4530         (if_convertible_loop_p_1): New.
4531         (if_convertible_loop_p): Call if_convertible_loop_p_1.
4532
4533 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
4534
4535         * common.opt (ftree-loop-if-convert-stores): New flag.
4536         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
4537         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
4538         the created statement before GSI.
4539         (if_convertible_phi_p): Allow virtual phi nodes when
4540         flag_loop_if_convert_stores is set.
4541         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
4542         Do not handle types that do not match is_gimple_reg_type.
4543         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
4544         when flag_loop_if_convert_stores is set, as LHS can contain
4545         memory refs.
4546         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
4547         to if_convertible_gimple_assign_stmt_p.
4548         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
4549         (replace_phi_with_cond_gimple_assign_stmt): Renamed
4550         predicate_scalar_phi.  Do not handle virtual phi nodes.
4551         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
4552         Call predicate_scalar_phi.
4553         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
4554         just after the labels for flag_loop_if_convert_stores, otherwise
4555         insert the predicate in the end of the BB.
4556         (predicate_mem_writes): New.
4557         (combine_blocks): Call predicate_all_scalar_phis.  When
4558         flag_loop_if_convert_stores is set, call predicate_mem_writes.
4559         (tree_if_conversion): Call mark_sym_for_renaming when
4560         flag_loop_if_convert_stores is set.
4561         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
4562         flag_loop_if_convert_stores is set.
4563
4564 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
4565
4566         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
4567         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
4568         (pa_function_value): Make static.
4569         (override_options): Rename to...
4570         (pa_option_override): ...this. Make static.
4571         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
4572         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
4573         TARGET_OPTION_OVERRIDE): Define.
4574         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
4575         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
4576         Remove.
4577         * config/pa/pa-protos.h (override_options): Remove.
4578
4579 2010-08-24  Richard Guenther  <rguenther@suse.de>
4580
4581         PR middle-end/45379
4582         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
4583         if addr->index is NULL or zero.
4584         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
4585         TARGET_MEM_REF more properly.
4586         (indirect_ref_may_alias_decl_p): Likewise.
4587         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
4588         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
4589
4590 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
4591
4592         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
4593         (m32c_override_options): Rename to...
4594         (m32c_option_override): ...this. Make static.
4595         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
4596         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
4597         Remove.
4598         * config/m32c/m32c-protos.h (m32c_override_options,
4599         m32c_function_value_regno_p): Remove.
4600
4601 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
4602
4603         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
4604         Fix a typo in a previous commit.
4605
4606 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
4607
4608         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
4609         Pre-initialize innerloop_iters to one.
4610
4611 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
4612
4613         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
4614         existing static function global.
4615
4616         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
4617         is changed to global.
4618
4619         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
4620         may_be_nonaddressable_p on base, and don't collect this reference
4621         if the address of the base could not be taken.
4622
4623 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
4624
4625         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
4626         enable the compiler to autovectorize mathmetical functions for
4627         power7 using the Mathematical Acceleration Subsystem library.
4628
4629         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
4630         handle which vector math library we have.
4631         (rs6000_override_options): Add -mveclibabi=mass support.
4632         (rs6000_builtin_vectorized_libmass): New function to handle auto
4633         vectorizing math functions that are in the MASS library.
4634         (rs6000_builtin_vectorized_function): Call it.
4635
4636         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
4637         -mveclibabi=mass.
4638
4639 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4640
4641         PR boehm-gc/34544
4642         * gthr-posix.h (__gthread_active_init): Delete.
4643         (__gthread_active_p): Do activity check here.
4644         Don't include errno.h on hppa-hpux.  Update comment.
4645         * gthr-posix95.h (__gthread_active_init): Delete.
4646         (__gthread_active_p): Do activity check here.
4647         Don't include errno.h on hppa-hpux.  Update comment.
4648         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
4649         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
4650         add -lpthread when -mt or -pthread is specified.
4651         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
4652         (LINK_GCC_C_SEQUENCE_SPEC): Define.
4653         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
4654         (stublib.c, pthread_default_stacksize_np-stub.o,
4655         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
4656         $(T)libgcc_stub.a): Add methods.
4657         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
4658         (stublib.c, pthread_default_stacksize_np-stub.o,
4659         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
4660         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
4661         pthread_mutex_unlock): New stubs.
4662
4663 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
4664
4665         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
4666         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
4667         options.
4668         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
4669         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
4670         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
4671         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
4672         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
4673         "-l".
4674         * cppspec.c: Include opts.h.
4675         (lang_specific_driver): Use cl_decoded_option structures.
4676         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
4677         * doc/tm.texi: Regenerate.
4678         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
4679         (driver_handle_option): Allow driver options needing no special
4680         processing.
4681         (process_command): Decode options before call to
4682         lang_specific_driver.  Pass decoded options to
4683         lang_specific_driver.
4684         * gcc.h (lang_specific_driver): Update prototype.
4685         * gccspec.c: Include opts.h.
4686         (lang_specific_driver): Use cl_decoded_option structures.
4687         * opts-common.c (option_ok_for_language, generate_option,
4688         generate_option_input_file): New.
4689         (decode_cmdline_option): Use option_ok_for_language.
4690         (decode_cmdline_options_to_array): Use generate_option_input_file.
4691         (handle_generated_option): Use generate_option.
4692         * opts.h (generate_option, generate_option_input_file): Declare.
4693
4694 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
4695
4696         * config/mips/mips.c (mips_override_options): Rename to...
4697         (mips_option_override): ...this. Make static.
4698         (TARGET_OPTION_OVERRIDE): Define.
4699         (mips_in_small_data_p): Update comment.
4700         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
4701         (FIXED_REGISTERS): Update comment.
4702         * config/mips/mips-protos.h (mips_override_options): Remove.
4703
4704 2010-08-21  Olivier Hainque  <hainque@adacore.com>
4705
4706         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
4707
4708 2010-08-21  Olivier Hainque  <hainque@adacore.com>
4709
4710         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
4711         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
4712
4713 2010-08-20  Jan Hubicka  <jh@suse.cz>
4714
4715         * tree-pass.h (pass_ipa_cdtor_merge): New function.
4716         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
4717         heap allocated.
4718         (record_cdtor_fn): Move to ipa.c; do not test for
4719         have_ctors_dtors.
4720         (build_cdtor): Move to ipa.c; add code avoiding construction
4721         when target have ctors/dtors and there is only one ctor/dtor at given
4722         priority.
4723         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
4724         sort; reverse order of constructors.
4725         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
4726         (cgraph_finalize_function): Do not call record_cdtor_fn.
4727         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
4728         (cgraph_build_static_cdtor): Move to ipa.c.
4729         * ipa.c: Include target.h and tree-iterator.h.
4730         (cgraph_build_static_cdtor, static_ctors, static_dtors,
4731         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
4732         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
4733         pass_ipa_cdtor_merge): New.
4734         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
4735         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
4736         bounds access.
4737
4738 2010-08-20  Jan Hubicka  <jh@suse.cz>
4739
4740         PR c++/45307
4741         PR c++/17736
4742         * cgraph.h (cgraph_only_called_directly_p,
4743         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
4744         static cdtors.
4745         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
4746         are not needed.
4747         (cgraph_finalize_function): Static cdtors are reachable.
4748         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
4749
4750 2010-08-20  Jan Hubicka  <jh@suse.cz>
4751
4752         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
4753         flag_wpa.
4754         * lto-streamer-out.c (lto_output): Likewise.
4755         * passes.c (ipa_write_optimization_summaries): Initialize statement
4756         uids.
4757
4758 2010-08-20  Olivier Hainque  <hainque@adacore.com>
4759
4760         * tree.h (alias_diag_flags): New enum.
4761         (alias_pair): Add an 'emitted_diags' field.
4762         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
4763         (assemble_alias): Initialize emitted_diags of new pairs.
4764
4765 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
4766
4767         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
4768         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
4769         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
4770         (STACK_CHECK_PROTECT): Define.
4771         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
4772         (output_probe_stack_range): Likewise.
4773         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
4774         builtin stack checking is enabled.
4775         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
4776         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
4777         (probe_stack_range): New insn.
4778
4779 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
4780
4781         PR target/45336
4782         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
4783         short first.
4784
4785         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
4786         char first.
4787
4788 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
4789
4790         PR target/45336
4791         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
4792         to cover zero extension into 64-bit register.
4793         (*sse2_pextrw): Likewise.
4794         (*sse4_1_pextrd_zext): New insn.
4795
4796 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
4797
4798         revert r163410, partially revert r163267.
4799         * config/rs6000/darwin.h (LIB_SPEC): Remove.
4800         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
4801         Darwin versions.
4802
4803 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
4804
4805         PR middle-end/44974
4806         * builtins.c (expand_builtin): Don't optimize away
4807         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
4808
4809 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
4810
4811         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
4812         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
4813         alternative 1 of operand 2.
4814
4815 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
4816             Paolo Bonzini  <bonzini@gnu.org>
4817
4818         * simplify-rtx.c (simplify_unary_operation_1): Optimize
4819         (sign_extend (zero_extend (...)) and
4820         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
4821
4822 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
4823
4824         PR rtl-optimization/45353
4825         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
4826         after bb_note is a BARRIER.
4827
4828 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
4829
4830         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
4831         linking libgcc.a.
4832
4833 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
4834             Michael Matz  <matz@suse.de>
4835
4836         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
4837
4838 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
4839
4840         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
4841         (ggc_mark_roots): ...here.
4842
4843 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
4844
4845         * vec.h (FOR_EACH_VEC_ELT): Define.
4846         * c-decl.c: Use it.
4847         * cfgloop.c: Likewise.
4848         * cfgloopmanip.c: Likewise.
4849         * cgraph.c: Likewise.
4850         * cgraphunit.c: Likewise.
4851         * combine.c: Likewise.
4852         * config/bfin/bfin.c: Likewise.
4853         * config/mips/mips.c: Likewise.
4854         * config/rs6000/rs6000.c: Likewise.
4855         * dbxout.c: Likewise.
4856         * df-scan.c: Likewise.
4857         * dominance.c: Likewise.
4858         * dse.c: Likewise.
4859         * dwarf2out.c: Likewise.
4860         * except.c: Likewise.
4861         * expr.c: Likewise.
4862         * function.c: Likewise.
4863         * gcse.c: Likewise.
4864         * genattr.c: Likewise.
4865         * ggc-common.c: Likewise.
4866         * gimplify.c: Likewise.
4867         * graphite-blocking.c: Likewise.
4868         * graphite-clast-to-gimple.c: Likewise.
4869         * graphite-dependences.c: Likewise.
4870         * graphite-interchange.c: Likewise.
4871         * graphite-poly.c: Likewise.
4872         * graphite-scop-detection.c: Likewise.
4873         * graphite-sese-to-poly.c: Likewise.
4874         * graphite.c: Likewise.
4875         * haifa-sched.c: Likewise.
4876         * ifcvt.c: Likewise.
4877         * implicit-zee.c: Likewise.
4878         * ipa-prop.c: Likewise.
4879         * ipa-struct-reorg.c: Likewise.
4880         * ipa.c: Likewise.
4881         * ira-build.c: Likewise.
4882         * ira-color.c: Likewise.
4883         * ira-emit.c: Likewise.
4884         * lambda-code.c: Likewise.
4885         * loop-invariant.c: Likewise.
4886         * loop-unroll.c: Likewise.
4887         * lower-subreg.c: Likewise.
4888         * lto-cgraph.c: Likewise.
4889         * lto-opts.c: Likewise.
4890         * lto-streamer-in.c: Likewise.
4891         * lto-streamer-out.c: Likewise.
4892         * lto-streamer.c: Likewise.
4893         * lto-symtab.c: Likewise.
4894         * matrix-reorg.c: Likewise.
4895         * opts.c: Likewise.
4896         * predict.c: Likewise.
4897         * print-tree.c: Likewise.
4898         * sdbout.c: Likewise.
4899         * sel-sched-dump.c: Likewise.
4900         * sel-sched-ir.c: Likewise.
4901         * sel-sched.c: Likewise.
4902         * sese.c: Likewise.
4903         * stor-layout.c: Likewise.
4904         * tree-cfg.c: Likewise.
4905         * tree-cfgcleanup.c: Likewise.
4906         * tree-chrec.c: Likewise.
4907         * tree-data-ref.c: Likewise.
4908         * tree-emutls.c: Likewise.
4909         * tree-inline.c: Likewise.
4910         * tree-into-ssa.c: Likewise.
4911         * tree-loop-distribution.c: Likewise.
4912         * tree-loop-linear.c: Likewise.
4913         * tree-mudflap.c: Likewise.
4914         * tree-outof-ssa.c: Likewise.
4915         * tree-parloops.c: Likewise.
4916         * tree-predcom.c: Likewise.
4917         * tree-pretty-print.c: Likewise.
4918         * tree-scalar-evolution.c: Likewise.
4919         * tree-ssa-live.c: Likewise.
4920         * tree-ssa-loop-im.c: Likewise.
4921         * tree-ssa-loop-ivcanon.c: Likewise.
4922         * tree-ssa-loop-ivopts.c: Likewise.
4923         * tree-ssa-loop-manip.c: Likewise.
4924         * tree-ssa-loop-niter.c: Likewise.
4925         * tree-ssa-loop-prefetch.c: Likewise.
4926         * tree-ssa-phiprop.c: Likewise.
4927         * tree-ssa-pre.c: Likewise.
4928         * tree-ssa-reassoc.c: Likewise.
4929         * tree-ssa-sccvn.c: Likewise.
4930         * tree-ssa-structalias.c: Likewise.
4931         * tree-ssa.c: Likewise.
4932         * tree-vect-data-refs.c: Likewise.
4933         * tree-vect-loop-manip.c: Likewise.
4934         * tree-vect-loop.c: Likewise.
4935         * tree-vect-patterns.c: Likewise.
4936         * tree-vect-slp.c: Likewise.
4937         * tree-vect-stmts.c: Likewise.
4938         * tree-vrp.c: Likewise.
4939         * tree.c: Likewise.
4940         * value-prof.c: Likewise.
4941         * var-tracking.c: Likewise.
4942         * varasm.c: Likewise.
4943         * vmsdbgout.c: Likewise.
4944
4945 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
4946             Richard Guenther  <richard.guenther@gmail.com>
4947
4948         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
4949         copy the src value and return a copy.
4950         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
4951         (C++ Volatiles): Adjust to describe C++ semantics only.
4952
4953 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
4954
4955         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
4956         be zero or nonzero.
4957         * doc/tm.texi: Regenerate.
4958         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
4959         * df-scan.c (df_get_exit_block_use_set), reginfo.c
4960         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
4961         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
4962         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
4963         to 1.
4964
4965 2010-08-20  Olivier Hainque  <hainque@adacore.com>
4966
4967         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
4968         an extra nop past a sibling call at the very end.
4969
4970 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
4971
4972         PR bootstrap/45350
4973         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
4974         a comment.
4975
4976 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
4977
4978         * target.def (function_arg, function_incoming_arg): Remove const
4979         qualifier on CUMULATIVE_ARGS parameter.
4980         * targhooks.h (default_function_arg, default_function_incoming_arg):
4981         Likewise.
4982         * targhooks.c (default_function_arg, default_function_incoming_arg):
4983         Likewise.
4984         * config/i386/i386.c (ix86_function_arg): Likewise.
4985
4986 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
4987
4988         PR target/45336
4989         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
4990         SIGN_EXTENDs or ZERO_EXTENDs.
4991
4992 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
4993
4994         PR target/42172
4995         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
4996         Take its cost into account if nonnull.
4997         (insn_a_feeds_b): New static function.
4998         (combine_instructions): Look for four-insn combinations.
4999         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
5000         them into account when computing all_adjacent and looking for other
5001         uses.
5002         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
5003         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
5004         (try_combine): New arg I0.  Handle four-insn combinations.
5005         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
5006         like ELIM_I1.
5007
5008 2010-08-19  Jason Merrill  <jason@redhat.com>
5009
5010         PR c++/45307
5011         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
5012         if ctor is empty.
5013         (gimplify_modify_expr_rhs): Adjust.
5014
5015 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
5016
5017         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
5018         bitmap_bit_p.
5019         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
5020         * dominance.c (iterate_fix_dominators): Likewise.
5021         * dse.c (set_usage_bits): Likewise.
5022         (set_position_unneeded, record_store): Likewise.
5023         * gimple-fold.c (get_maxval_strlen): Likewise.
5024         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
5025         * ipa-inline.c (update_caller_keys): Likewise.
5026         * ipa-split.c (verify_non_ssa_vars): Likewise.
5027         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
5028         (close_type_exposed_parameter, close_type_full_escape): Likewise.
5029         (close_addressof_down): Likewise.
5030         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
5031         (setup_allocno_left_conflicts_size): Likewise.
5032         (ira_reassign_conflict_allocnos): Likewise.
5033         (ira_reassign_pseudos): Likewise.
5034         * ira-emit.c (change_loop): Likewise.
5035         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
5036         * lto-streamer-out.c (write_symbol): Likewise.
5037         * predict.c (expr_expected_value_1): Likewise.
5038         * regstat.c (regstat_bb_compute_ri): Likewise.
5039         * sel-sched.c (create_block_for_bookkeeping): Likewise.
5040         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
5041         * stmt.c (expand_case): Likewise.
5042         * tree-eh.c (emit_eh_dispatch): Likewise.
5043         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
5044         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
5045         Likewise.
5046         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
5047         (rdg_build_components): Likewise.
5048         * tree-object-size.c (collect_object_sizes_for): Likewise.
5049         * tree-sra.c (convert_callers): Likewise.
5050         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
5051         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
5052         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
5053
5054 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
5055
5056         * config/i386/i386.md (*lea_1): Use P mode iterator.
5057         (lea add splitter): Also handle DImode operands.
5058         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
5059         predicate.  Do not use ix86_lea_for_add_ok.
5060         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
5061         (lea ashift splitter): Also handle DImode operands.
5062         (DImode lea ashift splitter): Remove splitter.
5063
5064 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
5065
5066         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
5067         ix86_binary_operator_ok.
5068
5069 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
5070
5071         PR rtl-optimization/44691
5072         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
5073         is not a register.
5074
5075 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
5076
5077         PR target/45070
5078         * config/arm/arm.c (arm_output_epilogue): Ensure that return
5079          value of size 1-3 is handled correctly.
5080
5081 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
5082
5083         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
5084         type for the conditional has wide enough range.
5085
5086 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
5087
5088         PR target/45327
5089         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
5090         ix86_binary_operator_ok.
5091
5092 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
5093
5094         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
5095         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
5096         code to output insn mnemonic.  Fix comment.
5097         (*addsi_1_zext): Add r-r-0 alternative 1.
5098         <TYPE_LEA>: Split insn to lea.
5099         <default>: Handle alternative 1.
5100         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
5101         multi-level if_then_else RTX to set "type" attribute.
5102         <default>: Handle alternative 2.
5103         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
5104         Use cond RTX instead of multi-level if_then_else RTX to set
5105         "type" attribute.
5106         <default>: Handle alternatives 2 and 4.
5107         (lea splitters): Update calls to ix86_lea_for_add_ok.
5108
5109         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
5110         argument.
5111         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
5112
5113 2010-08-18  Richard Guenther  <rguenther@suse.de>
5114
5115         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
5116         use operand helpers.
5117
5118 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
5119
5120         PR middle-end/45292
5121         * optabs.c (expand_bool_compare_and_swap): Expand pending
5122         pops before trying the optab.
5123
5124 2010-08-18  Yao Qi  <yao@codesourcery.com>
5125
5126         PR target/45094
5127         * config/arm/arm.c (output_move_double): Fix typo generating
5128         instructions ('ldr'->'str').
5129
5130 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
5131
5132         PR rtl-optimization/42575
5133         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
5134         live ranges.
5135
5136 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
5137
5138         * config/arm/arm-protos.h (arm_expand_sync): New.
5139         (arm_output_memory_barrier, arm_output_sync_insn): New.
5140         (arm_sync_loop_insns): New.
5141         * config/arm/arm.c (FL_ARCH7): New.
5142         (FL_FOR_ARCH7): Include FL_ARCH7.
5143         (arm_arch7): New.
5144         (arm_print_operand): Support %C markup.
5145         (arm_legitimize_sync_memory): New.
5146         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
5147         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
5148         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
5149         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
5150         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
5151         (arm_process_output_sync_insn, arm_output_sync_insn): New.
5152         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
5153         * config/arm/arm.h (struct arm_sync_generator): New.
5154         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
5155         (TARGET_HAVE_MEMORY_BARRIER): New.
5156         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
5157         * config/arm/arm.md: Include sync.md.
5158         (UNSPEC_MEMORY_BARRIER): New.
5159         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
5160         (VUNSPEC_SYNC_OP):New.
5161         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
5162         (sync_result, sync_memory, sync_required_value): New attributes.
5163         (sync_new_value, sync_t1, sync_t2): Likewise.
5164         (sync_release_barrier, sync_op): Likewise.
5165         (length): Add logic to length attribute defintion to call
5166         arm_sync_loop_insns when appropriate.
5167         * config/arm/sync.md: New file.
5168
5169 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
5170
5171         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
5172         ENABLE_TREE_CHECKING.
5173         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
5174         and GCC >= 4.3.
5175
5176 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
5177
5178         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
5179         or optimizing for size, always avoid lea if possible.
5180
5181         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
5182
5183 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
5184
5185         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
5186         Dunmmy function with NULL return unless the target is
5187         OSX >= 10.6 (Darwin10).
5188
5189 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
5190
5191         * gcc.c (spec_function): Add remove-outfile.
5192         (remove_outfile_spec_function): New function.
5193         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
5194         * invoke.texi (replace-outfile): Document.
5195
5196 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
5197
5198         PR target/45296
5199         * reginfo.c (globalize_reg): Reject stack registers.
5200
5201 2010-08-17  Richard Guenther  <rguenther@suse.de>
5202
5203         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
5204         list of conditional equivalences.
5205         (free_all_edge_infos): Adjust.
5206         (record_equivalences_from_incoming_edge): Likewise.
5207         (record_cond): Likewise.
5208         (build_and_record_new_cond): Likewise.
5209         (record_conditions): Likewise.
5210         (dom_opt_leave_block): Likewise.
5211
5212 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
5213
5214         * doc/invoke.texi (ms-extension): Add documentation.
5215
5216 2010-08-17  Richard Guenther  <rguenther@suse.de>
5217
5218         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
5219
5220 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
5221
5222         PR c/40563
5223         * c-decl.c (diagnose_uninitialized_cst_member): New function.
5224         (finish_decl): Use it to issue a -Wc++-compat warning about
5225         uninitialized const field in struct or union.
5226
5227         (finish_struct): Use strip_array_types.
5228
5229 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
5230
5231         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
5232         functions.
5233         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
5234         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
5235         call block_nreverse here.
5236         (blocks_nreverse): Rename decl temporary to block.
5237
5238 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
5239
5240         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
5241         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
5242         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
5243         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
5244         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
5245         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
5246         thumb2_iorsi3): Delete.
5247         (orsi_notsi_si): No longer a named pattern.
5248         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
5249         * config/arm/predicates.md (shift_amount_operand): New.
5250         (mult_operator): New.
5251         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
5252         attr enabled): New.
5253         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
5254         arch matches t2.
5255         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
5256         (not_shiftsi_compare0): Likewise, renamed from
5257         arm_notsi_shiftsi_compare0.
5258         (not_shiftsi_compare0_scratch): Likweise, renamed from
5259         arm_notsi_shiftsi_compare0_scratch.
5260         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
5261         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
5262         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
5263         so that the register alternative is disabled when the shift_operator
5264         is MULT.  Use "M" as the constraint for constants.
5265         (arith_shiftsi splitter): Enable for TARGET_32BIT.
5266         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
5267         constraint for constants.
5268         (arith_shiftsi_compare0_scratch): Likewise.
5269         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
5270         Handle Thumb2 alternative.
5271
5272 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
5273
5274         * doc/options.texi (NoDriverArg): Document.
5275         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
5276         -MDX and -MMDX.
5277         * opt-functions.awk (switch_flags): Handle NoDriverArg.
5278         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
5279         marking for CL_NO_DRIVER_ARG options when in the driver.
5280         * opts.h (CL_NO_DRIVER_ARG): Define.
5281         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
5282         CL_COMMON): Update values.
5283
5284 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
5285
5286         * common.opt: Add driver options.
5287         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
5288         * doc/options.texi (Driver, RejectDriver): Document.
5289         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
5290         print_prog_name, print_multi_directory, print_sysroot,
5291         print_multi_os_directory, print_multi_lib,
5292         print_sysroot_headers_suffix, report_times, combine_flag,
5293         use_pipes, wrapper_string): Remove.
5294         (save_switch, driver_unknown_option_callback,
5295         driver_wrong_lang_callback, driver_post_handling_callback,
5296         driver_handle_option): New.
5297         (spec_lang, last_language_n_infiles): Make file-scope static
5298         instead of local to process_command.
5299         (process_command): Use decode_cmdline_options_to_array and
5300         read_cmdline_option for option processing.  Compute have_c in
5301         prescan of decoded options.
5302         * opt-functions.awk (switch_flags): Handle Driver and
5303         RejectDriver.
5304         (var_type, var_type_struct): Handle Separate options as generating
5305         const char * variables.
5306         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
5307         CL_TARGET to be passed by caller if required.
5308         (decode_cmdline_options_to_array): Update comment.
5309         * opts.c (complain_wrong_lang): Handle options only valid for the
5310         driver.
5311         (decode_options): Update call to decode_cmdline_options_to_array.
5312         (print_filtered_help): Ignore driver-only options.
5313         (print_specific_help): Ignore CL_DRIVER.
5314         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
5315         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
5316         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
5317         Update values.
5318
5319 2010-08-16  Richard Guenther  <rguenther@suse.de>
5320
5321         * tree-cfg.c (verify_types_in_gimple_reference): Verify
5322         TARGET_MEM_REF a bit.
5323         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
5324         (create_mem_ref_raw): Always create TMR_OFFSET, store the
5325         alias pointer type via it.
5326         (copy_mem_ref_info): Adjust.
5327         (maybe_fold_tmr): Likewise.
5328         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
5329         (reference_alias_ptr_type): Likewise.
5330         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
5331         adjust documentation of TMR_OFFSET operand.
5332         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
5333         use the alias pointer type.
5334         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
5335         initialize mem attrs but the TMR itself.
5336         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
5337         similar to MEM_REF.
5338         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
5339         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
5340         (unshare_and_remove_ssa_names): Likewise.
5341         (copy_ref_info): Adjust.
5342         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
5343         TARGET_MEM_REF case.
5344         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
5345         at TMR_ORIGINAL.
5346         * tree.h (TMR_ORIGINAL): Remove.
5347         * gimple.c (get_base_address): For TARGET_MEM_REF with a
5348         symbol return that.
5349         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
5350         with a symbol.
5351         (get_addr_base_and_unit_offset): Likewise.
5352         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
5353         TARGET_MEM_REFs.
5354         (indirect_ref_may_alias_decl_p): Likewise.
5355         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
5356
5357 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
5358
5359         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
5360         with GCC version 4.6, the default setting (when not optimizing
5361         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
5362         been changed to -fomit-frame-pointer.
5363
5364 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
5365
5366         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
5367         Darwin10.  Do not link libgcc.a for Darwin >= 9.
5368
5369 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
5370
5371         * doc/invoke.texi (Warning Options): Fix terminology and markup
5372         in the description of how unknown warning options are handled.
5373
5374 2010-08-15  Ira Rosen  <irar@il.ibm.com>
5375
5376         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
5377         in basic blocks.
5378         (vect_supportable_dr_alignment): Check alignment for basic blocks.
5379         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
5380         data references.
5381         (vect_bb_vectorization_profitable_p): New function.
5382         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
5383         check if it's worthwhile to vectorize the basic block.
5384
5385 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
5386
5387         * reload.h (register_move_cost, memory_move_secondary_cost,
5388         secondary_reload_class): Adjust prototype.
5389         * rtl.h (reg_class_subset_p): Adjust prototype.
5390         * reload.c (secondary_reload_class): Change arguments type from
5391         enum reg_class to reg_class_t. Change result type to reg_class_t.
5392         * reginfo.c (register_move_cost, reg_class_subset_p): Change
5393         arguments type from enum reg_class to reg_class_t.
5394         (memory_move_secondary_cost): Change arguments type from
5395         enum reg_class to reg_class_t. Change type of saved_flags to
5396         reg_class_t.
5397
5398         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
5399         Remove macros.
5400         (mips_cost): Remove.
5401         (struct mips_rtx_cost_data): Moved to mips.c.
5402         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
5403         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
5404         (mips_cost): Make static.
5405         (mips_canonicalize_move_class): Change argument type to reg_class_t.
5406         Change result type to reg_class_t.
5407         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
5408         type from enum reg_class to reg_class_t.
5409         (mips_register_move_cost): Make static. Change arguments
5410         type from enum reg_class to reg_class_t.
5411         (mips_memory_move_cost): New function.
5412         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
5413
5414 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
5415
5416         PR rtl-optimization/43358
5417         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
5418         of a single hard register, using simplify_subreg_regno to decide
5419         what that register should be.
5420
5421 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
5422
5423         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
5424         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
5425         (loongson_pmull<V_suffix>): Rename to...
5426         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
5427
5428 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
5429
5430         * configure.ac: Enable -fomit-frame-pointer on darwin
5431         which support dwarf2.
5432         * config/i386/i386.c (override_options): Same.
5433
5434 2010-08-13  Jie Zhang  <jie@codesourcery.com>
5435
5436         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
5437
5438 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
5439
5440         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
5441         -MMD.
5442
5443 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
5444
5445         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
5446         up dot_prod pattern searching if a stmt is outside the loop.
5447
5448 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
5449             Uros Bizjak  <ubizjak@gmail.com>
5450
5451         * config.gcc: Handle --enable-frame-pointer.
5452
5453         * configure.ac: Add --enable-frame-pointer.
5454         * configure: Regenerated.
5455
5456         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
5457         (override_options): If not configured with --enable-frame-pointer,
5458         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
5459         optimizing for size), -fasynchronous-unwind-tables and
5460         -maccumulate-outgoing-args by default.
5461
5462 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
5463
5464         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
5465
5466         PR middle-end/45262
5467         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
5468         -a overflows.  Normalize the range.
5469
5470 2010-08-12  Richard Guenther  <rguenther@suse.de>
5471
5472         PR tree-optimization/45232
5473         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
5474         for types with undefined overflow.
5475         (reassociate_bb): Allow re-associating of bit and min/max
5476         operations for types with undefined overflow.
5477         * tree-ssa-forwprop.c (associate_plusminus): New function.
5478         (tree_ssa_forward_propagate_single_use_vars): Call it.
5479
5480 2010-08-12  Richard Guenther  <rguenther@suse.de>
5481
5482         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
5483         * tree-ssa-alias.c (get_ptr_info): Move ...
5484         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
5485         align and misalign fields conservatively.
5486         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
5487         derive alignment information.
5488         (evaluate_stmt): Derive alignment information from memory
5489         allocation functions.
5490         * tree.h (get_pointer_alignment): Make unsigned.
5491         * builtins.c (get_object_alignment): Use alignment information we
5492         have computed for pointers.
5493         (get_pointer_alignment): Likewise.  Make conservative, return
5494         and unsigned value.
5495         (expand_builtin_strlen): Adjust.
5496         (expand_builtin_memcmp): Likewise.
5497         (expand_builtin_strcmp): Likewise.
5498         (expand_builtin_strncmp): Likewise.
5499         (get_builtin_sync_mem): Use at least mode alignment.
5500         (fold_builtin_memset): Adjust.
5501         (fold_builtin_memory_op): Likewise.
5502         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
5503         information also dump pointer alignment knowledge.
5504         (dump_gimple_stmt): Likewise.
5505
5506 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
5507
5508         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
5509         (EMPTY_FIELD_BOUNDARY): Remove.
5510         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
5511
5512 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
5513
5514         PR debug/45259
5515         * caller-save.c (save_call_clobbered_regs): Only swap notes with
5516         DEBUG_INSNs if n_regs_saved.
5517
5518 2010-08-12  Wei Guozhi  <carrot@google.com>
5519
5520         PR target/44999
5521         * config/arm/arm.md (andsi3): Change to zero extension if possible.
5522         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
5523
5524 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
5525
5526         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
5527
5528         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
5529
5530 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5531
5532         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
5533         the case removed in the previous patch, when the only phi argument
5534         is defined in the same loop as the phi node itself.  Handle it
5535         separately from the invariant case by both propagating it outside
5536         the region and replacing the phi node with an assign.
5537
5538 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5539
5540         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
5541         constant phi nodes with one argument are is_gimple_min_invariant
5542         and SSA_NAME_IS_DEFAULT_DEF.
5543
5544 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5545
5546         * graphite-cloog-util.c (oppose_constraint):
5547         Extend loop counter's value range (CLOOG_ORG).
5548         (cloog_matrix_to_ppl_constraint): Same.
5549         (new_Constraint_System_from_Cloog_matrix): Same.
5550         * graphite-cloog-compat.h (matrix_num_type): New.
5551
5552 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5553
5554         * graphite.c (graphite_initialize): Do not initialize
5555         CLooG and initialize the Parma Polyhedra Library
5556         manually when using CLOOG_ORG.
5557         (graphite_finalize): Do not finalize CLooG and finalize
5558         the Parma Polyhedra Library manually when using CLOOG_ORG.
5559         * graphite-cloog-compat.h (cloog_initialize): Hide function
5560         when using CLOOG_ORG.
5561         (cloog_finalize): Same.
5562
5563 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5564
5565         * graphite-clast-to-gimple.c (free_scattering): Change
5566         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
5567         (CLOOG_ORG).
5568         (build_cloog_prog): Same.
5569         * graphite-cloog-compat.h (cloog_domain): Removed.
5570         (cloog_scattering): New.
5571         (cloog_set_domain): Removed.
5572         (cloog_set_scattering): New.
5573         (cloog_next_domain): Removed.
5574         (cloog_next_scattering): New.
5575         (cloog_set_next_domain): Removed.
5576         (cloog_set_next_scattering): New.
5577         (CloogScatteringList): New.
5578         (CloogScattering): New.
5579         (cloog_scattering_free): New.
5580         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
5581         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
5582         New.
5583
5584 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5585
5586         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
5587         CloogState.
5588         (set_cloog_options): Same.
5589         (print_clast_stmt): Same.
5590         (scop_to_clast): Same.
5591         (print_generated_program): Same.
5592         (gloog): Same.
5593         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
5594         (scop_to_clast): Extend with CloogState.
5595         * graphite-cloog-util.c: Include graphite-cloog-compat.h
5596         (new_Cloog_Domain_from_ppl_Polyhedron):
5597         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
5598         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
5599         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
5600         * graphite-cloog-util.h (build_cloog_prog): Same.
5601         * graphite-cloog-copat.h (build_cloog_prog): New.
5602         (CloogState): New.
5603         (cloog_state_malloc): New.
5604         (cloog_state_free): New.
5605         (cloog_loop_malloc): New.
5606         (cloog_options_malloc): New.
5607         (cloog_statement_alloc): New.
5608         (cloog_domain_from_cloog_matrix): New.
5609         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
5610         (new_Cloog_Domain_from_ppl_Polyhedron): New.
5611
5612 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5613
5614         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
5615         type of NAME now depends on used CLooG version.
5616         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
5617         (gcc_type_for_clast_expr): Same.
5618         (print_clast_stmt): Replace pprint with clast_pprint.
5619         * graphite-cloog-compat.h: Provide compatibility macros for
5620         CLooG Legacy.
5621         (clast_name_p): New.
5622         (clast_expr_term): New.
5623         (clast_expr_red): New.
5624         (clast_expr_bin): New.
5625         (clast_pprint): New.
5626
5627 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5628
5629         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
5630         compatible to newer CLooG releases (CLOOG_ORG).
5631         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
5632         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
5633         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
5634         (build_cloog_prog) : New.
5635         (cloog_program_extract_scalars): New.
5636         (cloog_program_scatter): New.
5637
5638 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5639
5640         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
5641         conditionally (CLOOG_ORG).
5642         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
5643         (cloog_statement_usr): New.
5644         (cloog_domain): Same.
5645         (cloog_set_domain): Same.
5646         (cloog_next_domain): Same.
5647         (cloog_set_next_domain): Same.
5648         (cloog_program_nb_scattdims): Same.
5649         (cloog_program_set_nb_scattdims): Same.
5650         (cloog_program_names): Same.
5651         (cloog_program_set_names): Same.
5652         (cloog_program_set_context): Same.
5653         (cloog_program_set_loop): Same.
5654         (cloog_program_blocklist): Same.
5655         (cloog_program_set_blocklist): Same.
5656         (cloog_program_scaldims): Same.
5657         (cloog_program_set_scaldims): Same.
5658         (cloog_names_nb_parameters): Same.
5659         (cloog_names_set_nb_parameters): Same.
5660         (cloog_names_parameters): Same.
5661         (cloog_names_set_parameters): Same.
5662         (cloog_names_set_nb_iterators): Same.
5663         (cloog_names_set_iterators): Same.
5664         (cloog_names_set_nb_scattering): Same.
5665         (cloog_names_set_scattering): Same.
5666         (cloog_statement_set_usr): Same.
5667         (cloog_loop_set_next): Same.
5668         (cloog_loop_set_domain): Same.
5669         (cloog_loop_set_block): Same.
5670         (cloog_block_list_next): Same.
5671         (cloog_block_list_set_next):
5672         (cloog_block_list_set_block): Same.
5673
5674 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5675
5676         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
5677         a bool.
5678         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
5679         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
5680         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
5681         when something has been changed.
5682         (rewrite_commutative_reductions_out_of_ssa): Same.
5683
5684 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5685
5686         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
5687         handle the case when def is in the sese region.
5688         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
5689         for invariant expressions.
5690         (rewrite_cross_bb_phi_deps): Removed.
5691         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
5692         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
5693         rewrite_cross_bb_phi_deps.
5694
5695 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5696
5697         * graphite-sese-to-poly.c
5698         (rewrite_commutative_reductions_out_of_ssa_loop): Call
5699         scev_analyzable_p only on is_gimple_reg
5700
5701 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5702
5703         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
5704         (rewrite_close_phi_out_of_ssa): Propagate constant values or
5705         parametric expressions outside the scop region.
5706         (rewrite_cross_bb_scalar_deps): Same.
5707         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
5708
5709 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5710
5711         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
5712         SSA_NAME_DEF_STMT only on SSA_NAMEs.
5713
5714 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5715
5716         * tree-scalar-evolution.c (instantiate_scev_name): Do not
5717         instantiate default definitions.
5718
5719 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
5720             Sebastian Pop  <sebastian.pop@amd.com>
5721
5722         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
5723         (loop_exits_from_bb_p): New.
5724         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
5725         (loop_exits_from_bb_p): Declared.
5726         * graphite-scop-detection.c (scopdet_basic_block_info): Call
5727         loop_exits_to_bb_p.
5728
5729 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5730
5731         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
5732         extra parameter for the region.  Call scev_analyzable_p.
5733         (rewrite_reductions_out_of_ssa): Update call to
5734         rewrite_close_phi_out_of_ssa.
5735         (rewrite_cross_bb_phi_deps): Same.
5736         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
5737         parameter for the region.  Call scev_analyzable_p.
5738         (rewrite_commutative_reductions_out_of_ssa): Update call to
5739         rewrite_commutative_reductions_out_of_ssa_loop.
5740
5741 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5742
5743         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
5744
5745 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5746
5747         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
5748         SSA scalar phi nodes that can be scev_analyzable_p.
5749
5750 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5751
5752         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
5753         handle SSA_NAME_IS_DEFAULT_DEF.
5754
5755 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5756
5757         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
5758
5759 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5760
5761         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
5762         case non close-phi nodes with one argument.
5763
5764 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5765
5766         * sese.h (scev_analyzable_p): Scevs could be expressions without
5767         chrecs and still be scev_analyzable_p.
5768
5769 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5770
5771         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
5772
5773 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5774
5775         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
5776         * cfgloop.h (struct loop): Remove single_iv field.
5777         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
5778         (scop_canonicalize_loops): Removed.
5779         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
5780         over all the loop phi nodes in loop->header.
5781         (build_poly_scop): Remove use of scop_canonicalize_loops.
5782
5783 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5784
5785         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
5786         handle GIMPLE_CALL.
5787
5788 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5789
5790         * tree-chrec.c (chrec_apply): Should only apply to the specified
5791         variable.  Also handle multivariate chains of recurrences that
5792         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
5793
5794 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5795
5796         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
5797         (debug_clast_name_indexes_1): Removed.
5798         (debug_clast_name_indexes): Removed.
5799         (pbb_to_depth_to_oldiv): Removed.
5800         (build_iv_mapping): Replace the use of rename_map with iv_map.
5801         (translate_clast_user): Remove uses of rename_map.  Allocate and
5802         free iv_map.
5803         (translate_clast_for_loop): Remove uses of rename_map.
5804         (translate_clast_for): Same.
5805         (translate_clast_guard): Same.
5806         (translate_clast): Same.
5807         (gloog): Same.
5808         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
5809         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
5810         * sese.c (set_rename): Now static.
5811         (rename_variables_in_stmt): Removed.
5812         (rename_uses): New.
5813         (is_parameter): Removed.
5814         (is_iv): Removed.
5815         (expand_scalar_variables_call): Removed.
5816         (expand_scalar_variables_ssa_name): Removed.
5817         (expand_scalar_variables_expr): Removed.
5818         (expand_scalar_variables_stmt): Removed.
5819         (expand_scalar_variables): Removed.
5820         (rename_variables): Removed.
5821         (remove_condition): Removed.
5822         (get_true_edge_from_guard_bb): Removed.
5823         (get_false_edge_from_guard_bb): Removed.
5824         (struct igp): Removed.
5825         (default_before_guard): Removed.
5826         (convert_for_phi_arg): Removed.
5827         (add_guard_exit_phis): Removed.
5828         (insert_guard_phis): Removed.
5829         (graphite_copy_stmts_from_block): Now also uses iv_map and a
5830         region.  Do not copy conditions.  Do not copy induction variables.
5831         Call rename_uses.
5832         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
5833         the translated statement.  Use the iv_map for the induction
5834         variable renaming.
5835         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
5836         (set_rename): Removed declaration.
5837         (scev_analyzable_p): ...here.
5838         * tree-chrec.c (chrec_apply_map): New.
5839         * tree-chrec.h (chrec_apply_map): Declared.
5840
5841 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5842
5843         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
5844         insert_loop_close_phis.
5845         * sese.c (name_defined_in_loop_p): Removed.
5846         (expr_defined_in_loop_p): Removed.
5847         (alive_after_loop): Removed.
5848         (close_phi_not_yet_inserted_p): Removed.
5849         (struct alep): Removed.
5850         (add_loop_exit_phis): Removed.
5851         (insert_loop_close_phis): Removed.
5852
5853 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5854
5855         * graphite-cloog-util.c
5856         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
5857         * graphite-poly.c
5858         (psct_scattering_dim_for_loop_depth): Same.
5859
5860 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5861
5862         * graphite-cloog-util.h: Added cloog.h.
5863         * graphite-blocking.c: Removed cloog.h.
5864         * graphite-dependences.c: Same.
5865         * graphite-interchange.c: Same.
5866         * graphite-poly.c: Same.
5867         * graphite-ppl.c: Same.
5868         * graphite-scop-detection.c: Same.
5869         * graphite-sese-to-poly.c:
5870         Removed cloog.h.
5871         Removed graphite-clast-to-gimple.h.
5872         (check_poly_representation): Removed (unused).
5873         * graphite-sese-to-poly.h
5874         (check_poly_representation): Removed (unused).
5875
5876 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5877
5878         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
5879         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
5880         (graphite-cloog-util.o): New.
5881         (graphite-ppl.o): Added graphite-cloog-util.h.
5882         * graphite-clast-to-gimple.c:
5883         Added graphite-cloog-util.h to include statements.
5884         * graphite-cloog-util.c: New.
5885         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
5886         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
5887         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
5888         (new_C_Polyhedron_from_Cloog_Matrix): Same.
5889         (insert_constraint_into_matrix): Same.
5890         (ppl_Constrain_System_number_of_constraints): Same.
5891         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
5892         (oppose_constraint): Same.
5893         (cloog_matrix_to_ppl_constraint): Same.
5894         (new_Constraint_System_from_Cloog_Matrix): Same.
5895         * graphite-cloog-util.h: New.
5896         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
5897         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
5898         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
5899         (new_C_Polyhedron_from_Cloog_Matrix): Same.
5900         (insert_constraint_into_matrix): Same.
5901         * graphite-ppl.c:
5902         Added graphite-cloog-util.h to include statements.
5903         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
5904         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
5905         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
5906         (new_C_Polyhedron_from_Cloog_Matrix): Same.
5907         (insert_constraint_into_matrix): Same.
5908         (ppl_Constrain_System_number_of_constraints): Same.
5909         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
5910         (oppose_constraint): Same.
5911         (cloog_matrix_to_ppl_constraint): Same.
5912         (new_Constraint_System_from_Cloog_Matrix): Same.
5913         * graphite-ppl.h:
5914         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
5915         graphite-cloog-util.h.
5916         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
5917         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
5918         (new_C_Polyhedron_from_Cloog_Matrix): Same.
5919         (insert_constraint_into_matrix): Same.
5920
5921 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5922
5923         * graphite-clast-to-gimple.c
5924         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
5925         (precision_for_interval): Same.
5926         (gcc_type_for_interval): Same.
5927         (compute_type_for_level): Same.
5928         * graphite-interchange.c
5929         (lst_interchange_profitable_p): Same.
5930         * graphite-poly.c
5931         (psct_scattering_dim_for_loop_depth): Same.
5932         * graphite-ppl.c
5933         (ppl_max_for_le_pointset): Same.
5934         (ppl_min_for_le_pointset): Same.
5935
5936 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5937
5938         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
5939         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
5940
5941 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5942
5943         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
5944         rewrite_close_phi_out_of_ssa.
5945
5946 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5947
5948         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
5949
5950 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5951
5952         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
5953         rename_map.
5954         * sese.c (debug_rename_map): Same.
5955         (get_rename): Same.
5956         (set_rename): Same.
5957         (rename_variables_in_stmt): Same.
5958         (expand_scalar_variables_call): Same.
5959         (expand_scalar_variables_ssa_name): Same.
5960         (expand_scalar_variables_expr): Same.
5961         (expand_scalar_variables_stmt): Same.
5962         (expand_scalar_variables): Same.
5963         (rename_variables): Same.
5964         (graphite_copy_stmts_from_block): Same.
5965         (copy_bb_and_scalar_dependences): Same.
5966
5967 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5968
5969         * graphite-clast-to-gimple.c (copy_renames): Removed.
5970         (translate_clast_for): Do not call copy_renames.
5971         (translate_clast_guard): Same.
5972
5973 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5974
5975         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
5976         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
5977         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
5978         before rewrite_cross_bb_scalar_deps.
5979
5980 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5981
5982         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
5983         Early return in when flag_associative_math is not set.
5984
5985 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5986
5987         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
5988         of SSA copies on edges except for loop->latch.
5989
5990 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5991
5992         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
5993         Split out of rewrite_reductions_out_of_ssa.
5994         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
5995         Declared.
5996         * graphite.c (graphite_transform_loops): Call it.
5997
5998 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
5999
6000         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
6001
6002 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
6003
6004         * dbgcnt.def (graphite_scop): New counter.
6005         * graphite.c: Include dbgcnt.h.
6006         (graphite_transform_loops): Use new counter to limit transformations.
6007         * Makefile.in (graphite.o): Depend on DBGCNT_H.
6008
6009 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6010
6011         * passes.c (init_optimization_passes): Add pass_graphite.
6012         Schedule a pass_copy_prop before pass_graphite_transforms.
6013         * timevar.def (TV_GRAPHITE): Declared.
6014         * tree-pass.h (pass_graphite): Declared.
6015         * tree-ssa-loop.c (pass_graphite): New.
6016
6017 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6018
6019         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
6020         Remove calls to rename_nb_iterations and rename_sese_parameters.
6021         * graphite-clast-to-gimple.h (gloog): Update declaration.
6022         * graphite.c (graphite_transform_loops): Update call to gloog.
6023         * sese.c (rename_variables_in_expr): Removed.
6024         (rename_nb_iterations): Removed.
6025         (rename_sese_parameters): Removed.
6026         * sese.h (rename_nb_iterations): Removed.
6027         (rename_sese_parameters): Removed.
6028
6029 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6030
6031         * graphite-clast-to-gimple.c (gloog): Remove call to
6032         sese_adjust_liveout_phis.
6033         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
6034         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
6035         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
6036         rewrite_phi_out_of_ssa.
6037         * sese.c (get_vdef_before_sese): Removed.
6038         (sese_adjust_vphi): Removed.
6039         (sese_adjust_liveout_phis): Removed.
6040         * sese.h (sese_adjust_liveout_phis): Removed.
6041
6042 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6043
6044         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
6045         argument for the place after which to insert the out of SSA copy.
6046         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
6047         (rewrite_phi_out_of_ssa): Same.
6048         (rewrite_cross_bb_scalar_deps): Same.
6049         (insert_copyout): Removed.
6050         (insert_copyin): Removed.
6051         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
6052         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
6053         insert_copyin.
6054
6055 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6056
6057         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
6058         (rewrite_reductions_out_of_ssa): Same.
6059         (rewrite_commutative_reductions_out_of_ssa): Same.
6060         (build_poly_scop): Do not call these functions.
6061         * graphite-sese-to-poly.h (build_poly_scop): Declared.
6062         (rewrite_reductions_out_of_ssa): Declared.
6063         (rewrite_commutative_reductions_out_of_ssa): Declared.
6064         * graphite.c (graphite_transform_loops): Call on every scop
6065         rewrite_commutative_reductions_out_of_ssa before calling
6066         rewrite_reductions_out_of_ssa and build_scop_bbs.
6067
6068 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6069
6070         * graphite-dependences.c (dot_deps): Make system call to dotty run
6071         in background.
6072         (dot_deps_stmt): Same.
6073         * graphite-poly.c (dot_lst): Same.
6074
6075 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
6076
6077         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
6078         phi_arg_in_outermost_loop.
6079         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
6080         (remove_invariant_phi): Same.
6081
6082 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
6083
6084         * target.def (output_addr_const_extra): New hook.
6085         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
6086         * doc/tm.texi: Regenerate.
6087         * targhooks.c (default_asm_output_addr_const_extra): New function.
6088         * targhooks.h (default_asm_output_addr_const_extra): Declare.
6089         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
6090         target hook.
6091
6092         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
6093         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
6094         * config/i386/i386.h (output_addr_const_extra): Rename to...
6095         (i386_asm_output_addr_const_extra): ...this. Make static.
6096         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
6097
6098 2010-08-11  Richard Henderson  <rth@redhat.com>
6099
6100         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
6101
6102 2010-08-11  Nick Clifton  <nickc@redhat.com>
6103
6104         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
6105         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
6106         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
6107         stormy16-lib2-cmpsi.c.
6108
6109         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
6110         -O2.
6111
6112 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
6113
6114         * opts.h (struct cl_option_handler_func): Make handler take
6115         cl_decoded_option structure as parameter, not individual elements.
6116         (struct cl_option_handlers): Make callbacks take cl_decoded_option
6117         structure as parameter, not individual elements.
6118         (handle_option): Take cl_decoded_option structure as parameter,
6119         not individual elements.
6120         (handle_generated_option): Declare.
6121         * opts-common.c (handle_option): Take cl_decoded_option structure
6122         as parameter, not individual elements.  Update calls to callback
6123         and handler functions.
6124         (handle_generated_option): New.
6125         (read_cmdline_option): Update calls to callback functions and
6126         handle_option.
6127         * opts.c (common_handle_option, complain_wrong_lang,
6128         unknown_option_callback, post_handling_callback,
6129         lang_handle_option, target_handle_option): Take cl_decoded_option
6130         structure as parameter, not individual elements.
6131         (lang_handle_option, target_handle_option, common_handle_option):
6132         Assert option has at most one argument.
6133         (enable_warning_as_error): Call handle_generated_option instead of
6134         handle_option.  Do not pass -Werror argument as argument of
6135         generated option.
6136
6137 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6138
6139         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
6140         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
6141         (SUBWORD_BOOL_CAS): Likewise.
6142         (SUBWORD_SYNC_OP): Likewise.
6143         (SUBWORD_TEST_AND_SET): Likewise.
6144         (FETCH_AND_OP_WORD): Parenthesise INF_OP
6145         (SUBWORD_SYNC_OP): Likewise.
6146         (OP_AND_FETCH_WORD): Likewise.
6147
6148 2010-08-10  Xinliang David Li  <davidxl@google.com>
6149
6150         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
6151         compute max/min offset in address.
6152
6153 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
6154
6155         * ira-live.c: Include sbitmap.h.
6156         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
6157         Compress live ranges even more.
6158
6159 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
6160
6161         * coverage.c (ctr_labels): Delete.
6162
6163 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
6164
6165         PR bootstrap/45177
6166         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
6167         test here from arm_gen_load_multiple_1.
6168         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
6169         multiple_operation_profitable_p.
6170
6171 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
6172
6173         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
6174         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
6175
6176 2010-08-10  Richard Henderson  <rth@redhat.com>
6177
6178         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
6179         after saving registers.  Assert that SSE registers are only saved
6180         with a sufficiently aligned frame.
6181         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
6182         remove stack_realign_fp handling.
6183         (ix86_expand_prologue): Save int registers before stack_realign_fp,
6184         and do not mark the stack alignment as frame related.
6185         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
6186
6187         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
6188         saves when re-aligning the stack.
6189
6190 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
6191
6192         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
6193         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
6194         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
6195
6196 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
6197
6198         * dwarf2out.c (struct die_struct): Move die_tag to the end.
6199
6200 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
6201
6202         * config/arm/iterators.md: New file.
6203         * config/arm/arm.md: Include iterators.md.
6204         (QHSI): Move to new file.
6205         (LTUGEU, cnb, optab, ior_xor): Likewise.
6206         * config/arm/iwmmxt.md (VMMX): Move to new file.
6207         (VSHFT, MMX_char): Likewise.
6208         * config/arm/neon.md (VD): Move to new file.
6209         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
6210         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
6211         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
6212         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
6213         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
6214         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
6215         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
6216         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
6217         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
6218         (Is_d_reg, V_mode_nunits): Likewise.
6219         * config/arm/vec-common.md (VALL): Move to new file.
6220         (VALLW, VINT, VINTW): Likewise.
6221
6222 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
6223
6224         PR middle-end/45182
6225         * combine.c (make_compound_operation): Don't try to convert
6226         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
6227
6228 2010-08-10  Richard Guenther  <rguenther@suse.de>
6229
6230         * tree.h (get_object_alignment): Adjust prototype.
6231         * builtins.c (get_object_alignment): Return unsigned int,
6232         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
6233         and TARGET_MEM_REF properly.
6234         (get_pointer_alignment): Adjust.
6235         * emit-rtl.c (get_mem_align_offset): Adjust comment.
6236         (set_mem_attributes_minus_bitpos): Adjust.
6237         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
6238
6239 2010-08-10  Richard Guenther  <rguenther@suse.de>
6240
6241         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
6242         (copy_prop_visit_assignment): Simplify.
6243         (copy_prop_visit_stmt): Also visit assignments from
6244         constants.
6245         (copy_prop_visit_phi_node): Use operand_equal_p.
6246
6247 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
6248
6249         * ipa-split.c (find_split_points): Free stack.
6250
6251 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
6252
6253         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
6254         * tree.c (tree_node_kind): Delete corresponding entries.
6255
6256 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
6257
6258         * alias.c (may_alias_p): Remove unused ret.
6259
6260 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
6261
6262         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
6263         alias_sets_conflict_p.
6264         (walk_mems_1): Moved from alias.c.
6265         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
6266         in alias.c.
6267         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
6268         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
6269         * alias.c (walk_mems_2): Moved to ddg.c.
6270         (walk_mems_1): Ditto.
6271         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
6272         to ddg.c.
6273         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
6274         disambiguation.
6275         *(may_alias_p): New function to check whether two memory expression
6276         may alias or not. Currently used in buidling inter-iteration memory
6277         dependence.
6278         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
6279         (insn_alias_sets_conflict_p): Removed
6280         *rtl.h (may_alias_p): New function prototype.
6281
6282 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
6283
6284         * tree.c (nreverse): Assert that we don't have a BLOCK.
6285
6286 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
6287
6288         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
6289         * config/arm/arm.c (arm_get_pcs_model): Likewise.
6290         * config/avr/avr.c (init_cumulative_args): Likewise.
6291         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
6292         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
6293         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
6294         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
6295         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
6296         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6297         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
6298         * dwarf2out.c (gen_subprogram_die): Likewise.
6299         * function.c (allocate_struct_function): Likewise.
6300         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
6301         (deserves_ellipsis): Delete.
6302
6303 2010-08-09  Richard Guenther  <rguenther@suse.de>
6304
6305         * tree-ssa-copy.c (cached_last_copy_of): Remove.
6306         (valueize_val): New function.
6307         (get_last_copy_of): Remove.
6308         (set_copy_of_val): Simplify.
6309         (dump_copy_of): Likewise.
6310         (copy_prop_visit_cond_stmt): Use valueize_val.
6311         (copy_prop_visit_phi_node): Properly handle unvisited names.
6312         Drop code managing copy-of chains.
6313         (init_copy_prop): Adjust.
6314         (fini_copy_prop): Likewise.
6315         (execute_copy_prop): Remove obsolete comment.
6316
6317 2010-08-09  Richard Guenther  <rguenther@suse.de>
6318
6319         PR middle-end/44632
6320         * function.c (gimplify_parameters): Do not clear addressable
6321         bit of the original parameter.
6322
6323 2010-08-09  Richard Guenther  <rguenther@suse.de>
6324
6325         PR middle-end/45212
6326         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
6327         alignment from MEM_REF offset only if we took it from the
6328         base object.
6329
6330 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
6331
6332         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
6333
6334 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
6335
6336         * c-tree.h (build_arg_info): Declare.
6337         * c-decl.c (build_arg_info): Define.
6338         (get_parm_info): Call it.  Delete initialization code.
6339         * c-parser.c (c_parser_parms_declarator): Likewise.
6340         (c_parser_parms_list_declaractor): Likewise.
6341
6342 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
6343
6344         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
6345         (struct c_arg_info): Change type of tags field.
6346         * c-decl.c (grokdeclarator): Update for changed type of tags field.
6347         (get_parm_info): Likewise.
6348         (store_parm_decls_newstyle): Likewise.
6349
6350 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
6351
6352         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
6353         (branch_island_list): Delete.
6354         (branch_islands): Declare.
6355         (add_compiler_branch_island): Adjust for branch_islands instead of
6356         branch_island_list.
6357         (macho_branch_islands): Likewise.
6358         (no_previous_def): Likewise.
6359         (get_prev_label): Likewise.
6360
6361 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6362
6363         PR boehm-gc/34544
6364         * gthr-posix.h (__gthread_start): Delete.
6365         (__gthread_active_init): Use pthread_default_stacksize_np instead of
6366         pthread_create to determine if hpux pthreads are active.
6367         * gthr-posix95.h (__gthread_start): Delete.
6368         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
6369
6370 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
6371
6372         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
6373         _WIN64 not expanded.
6374
6375 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
6376             H.J. Lu  <hongjiu.lu@intel.com>
6377
6378         PR target/45213
6379         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
6380         to output 32bit SFmode immediate as 8 byte sign extended value.
6381
6382 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6383
6384         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
6385         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
6386         (SUBWORD_BOOL_CAS): Likewise.
6387         (SUBWORD_SYNC_OP): Likewise.
6388         (SUBWORD_TEST_AND_SET): Likewise.
6389         (FETCH_AND_OP_WORD): Parenthesise INF_OP
6390         (SUBWORD_SYNC_OP): Likewise.
6391         (OP_AND_FETCH_WORD): Likewise.
6392
6393 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6394
6395         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
6396         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
6397         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
6398         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
6399         generic part.
6400         (cortex_a9_sched_adjust_cost): New function.
6401         (xscale_sched_adjust_cost): New function.
6402         * config/arm/arm-protos.h (struct tune_params): New field
6403         sched_adjust_cost.
6404         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
6405
6406 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
6407
6408         PR target/44942
6409         * config/sparc/sparc.c (function_arg_advance): Always take into account
6410         the padding, if any.
6411
6412 2010-08-06  Richard Guenther  <rguenther@suse.de>
6413
6414         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
6415         (dump_lattice_value): Dump it.
6416         (get_default_value): Adjust.
6417         (get_constant_value): Likewise.
6418         (set_value_varying): Likewise.
6419         (set_lattice_value): Make sure to not go up the lattice
6420         with bitwise constant values.
6421         (get_value_for_expr): Handle ADDR_EXPRs.
6422         (value_to_double_int): New function.
6423         (get_value_from_alignment): Likewise.
6424         (do_dbg_cnt): Adjust.
6425         (ccp_lattice_meet): Handle partially constant values.
6426         (bit_value_unop_1): New function.
6427         (bit_value_binop_1): Likewise.
6428         (bit_value_unop): Likewise.
6429         (bit_value_binop): Likewise.
6430         (evaluate_stmt): Track partially constant values if
6431         flag_tree_bit_ccp is set.
6432         (ccp_fold_stmt): Dump if we folded a predicate.
6433         (ccp_visit_stmt): Adjust.
6434         * common.opt (ftree-bit-ccp): New flag.
6435         * doc/invoke.texi (ftree-bit-ccp): Document.
6436         * opts.c (decode_options): Enable bit-CCP at -O1.
6437
6438 2010-08-06  Alan Modra  <amodra@gmail.com>
6439
6440         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
6441         and -mrelocatable-lib description.
6442
6443 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
6444
6445         From Martin Thuresson  <martint@google.com>
6446         * postreload.c (reload_cse_simplify_operands): Use
6447         SET_REGNO_RAW instead of SET_REGNO.
6448         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
6449         SET_REGNO.
6450         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
6451         instead of SET_REGNO.
6452         * rtl.h (SET_REGNO_RAW): New macro.
6453
6454 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
6455
6456         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
6457         computations.  Fix formatting issues.
6458         (num_sign_bit_copies1): Likewise.
6459         (canonicalize_condition): Likewise.
6460
6461 2010-08-05  Richard Henderson  <rth@redhat.com>
6462
6463         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
6464         (floor_log2): Use clz_hwi.
6465         (exact_log2): Use ctz_hwi.
6466         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
6467         * builtins.c (fold_builtin_bitop): Use them.
6468         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
6469         * combine.c (get_pos_from_mask): Use ctz_hwi.
6470         * double-int.c (double_int_ctz): Likewise.
6471         * explow.c (force_reg): Likewise.
6472         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
6473
6474 2010-08-05  Richard Henderson  <rth@redhat.com>
6475
6476         PR target/45189
6477         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
6478         the alignment constant is properly sign-extended.
6479
6480 2010-08-05  Richard Guenther  <rguenther@suse.de>
6481
6482         * expr.c (store_expr): Use emit_block_move only if both
6483         source and target are MEMs.  Use store_bit_field if only
6484         the target is a MEM.
6485
6486 2010-08-05  Richard Henderson  <rth@redhat.com>
6487
6488         PR debug/45188
6489         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
6490         (INCOMING_RETURN_ADDR_RTX): Likewise.
6491         (dwarf2out_do_frame): Remove conditional compilation.
6492         (dwarf2out_frame_init): Likewise.
6493
6494 2010-08-05  Nicolas Setton  <setton@adacore.com>
6495
6496         * gcov.c (flag_display_progress): New static variable.
6497         (main): Display progress info on standard output if requested.
6498         (options): Add -d/--display-progress.
6499         (print_usage): Print them.
6500         (process_args): Handle them.
6501         * doc/gcov.texi: Document them.
6502
6503 2010-08-05  Martin Jambor  <mjambor@suse.cz>
6504
6505         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
6506         (ipcp_insert_stage): Redirect only edges not flagged with
6507         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
6508         discovered constants.
6509
6510 2010-08-05  Martin Jambor  <mjambor@suse.cz>
6511
6512         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
6513         (struct ipa_param_descriptor): New fields types and
6514         cannot_devirtualize.
6515         (ipa_param_cannot_devirtualize_p): New function.
6516         (ipa_param_types_vec_empty): Likewise.
6517         (ipa_make_edge_direct_to_target): Declare.
6518         * ipa-cp.c: Fixed first stage driver name in initial comment,
6519         described devirtualization there too.
6520         (ipcp_analyze_node): Call ipa_analyze_params_uses.
6521         (ipcp_print_all_lattices): Print devirtualization info.
6522         (ipa_set_param_cannot_devirtualize): New function.
6523         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
6524         lattice to BOTTOM.
6525         (ipcp_init_stage): Merged into...
6526         (ipcp_generate_summary): ...its caller.
6527         (ipcp_change_tops_to_bottom): Also process type lists.
6528         (ipcp_add_param_type): New function.
6529         (ipcp_copy_types): Likewise.
6530         (ipcp_propagate_types): Likewise.
6531         (ipcp_propagate_stage): Also propagate types.
6532         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
6533         Also return true if propagated types require it.
6534         (ipcp_update_callgraph): Dump redirection info.
6535         (ipcp_process_devirtualization_opportunities): New function.
6536         (ipcp_const_param_count): Include known type information.
6537         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
6538         on new node.  Fixed formatting.
6539         * ipa-prop.c (make_edge_direct_to_target): Renamed to
6540         ipa_make_edge_direct_to_target and changed all callers.  Made
6541         externally visible.
6542         (ipa_node_duplication_hook): Duplicate types vector.
6543         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
6544         redirect outgoing calls for which we can't get a decl from the
6545         statement.  Check that we can get a decl from the call statement.
6546         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
6547         ipa_analyze_params_uses only when ipa-cp is disabled.
6548         * tree-inline.c (get_indirect_callee_fndecl): Removed.
6549         (expand_call_inline): Do not call get_indirect_callee_fndecl.
6550         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
6551         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
6552
6553 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
6554
6555         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
6556         temporary. Emit move from temporary to accum, so REG_EQUAL note will
6557         be attached to this insn in correct mode.
6558
6559 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
6560
6561         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
6562         using REGNO of base_reg directly.
6563
6564 2010-08-05  Jie Zhang  <jie@codesourcery.com>
6565
6566         PR tree-optimization/45144
6567         * tree-sra.c (type_consists_of_records_p): Return false
6568         if the record contains bit-field.
6569
6570 2010-08-04  Richard Henderson  <rth@redhat.com>
6571
6572         * config/i386/i386.c (struct ix86_frame): Remove padding and
6573         to_allocate members.
6574         (ix86_compute_frame_layout): Don't store them.
6575         (ix86_can_use_return_insn_p): Use a more direct and more obviously
6576         correct condition for the position of the stack pointer.
6577         (ix86_expand_prologue): Compute remaining stack allocation based
6578         on the ultimate stack pointer offset.
6579         (ix86_expand_epilogue): Use more obvious expressions testing for
6580         the stack pointer already pointing to the saved registers.
6581
6582         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
6583         duplication deconstructing the frame pointer.  Simplify
6584         deallocation of the local stack frame.
6585
6586         * reg-notes.def (CFA_EXPRESSION): New.
6587         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
6588         (dwarf2out_frame_debug_cfa_expression): New.
6589         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
6590
6591         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
6592         * config/i386/i386.c (ix86_expand_prologue): Set it.
6593         (ix86_expand_epilogue): Clear it.
6594         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
6595         context, add REG_CFA_EXPRESSION notes.
6596
6597         * config/i386/i386.h (struct machine_frame_state): Rename from
6598         machine_cfa_state.  Add members tracking SP and FP regardless
6599         of the current CFA register.
6600         (ix86_cfa_state): Remove.
6601         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
6602         and sse_reg_save_offset members.
6603         (ix86_compute_frame_layout): Set them.
6604         (gen_push): Increment sp_offset too.
6605         (choose_baseaddr_len, choose_baseaddr): New.
6606         (ix86_emit_save_reg_using_mov): New.
6607         (ix86_emit_save_regs_using_mov): Use it.
6608         (ix86_emit_save_sse_regs_using_mov): Likewise.
6609         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
6610         compare vs the saved red_zone_offset.
6611         (pro_epilogue_adjust_stack): Adjust sp_offset.
6612         (ix86_adjust_stack_and_probe): Likewise.
6613         (ix86_expand_prologue): Set up, use, and validate the new
6614         frame_state_info members.  Use gen_frame_mem.
6615         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
6616         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
6617         new frame_state_info members.
6618         (ix86_emit_leave): Likewise.
6619         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
6620         out-of-range stack pointer offsets here.
6621         (ix86_emit_restore_sse_regs_using_mov): Likewise.
6622         (ix86_expand_epilogue): Use and validate the new frame_state_info
6623         members.  Break up and simplify the logic selecting the
6624         restore_regs_via_mov code path.  Ensure that there will be no
6625         out-of-range stack pointer offsets.
6626
6627         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
6628
6629         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
6630         argument name to reflect the expected tree; fix indentation.
6631         (ix86_asm_output_function_label): Output the entire 32-bit
6632         ms_hook here as bytes ...
6633         (ix86_expand_prologue): ... not here as insns.  Attach the
6634         unwind info for the ms_hook to a blockage insn.
6635         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
6636         (ix86_ms_bitfield_layout_p): Fix indentation.
6637         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
6638
6639         * config/i386/i386.c (ix86_using_red_zone): New.
6640         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
6641         ix86_expand_prologue, ix86_force_to_memory): Use it.
6642
6643         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
6644         saving the int registers.
6645
6646         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
6647         and DWARF2_UNWIND_INFO conditional compilation.
6648
6649 2010-08-04  Richard Henderson  <rth@redhat.com>
6650
6651         PR debug/45171
6652         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
6653         an is_naming_typedef_decl.
6654
6655 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
6656
6657         PR rtl-optimization/45162
6658         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
6659         * dce.c (word_dce_process_block): Likewise.
6660
6661 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
6662
6663         PR target/44583
6664         * config/ia64/constraints.md (Z): New.
6665         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
6666         (xfreg_or_signed_fp01_operand): New.
6667         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
6668         with fr_reg_or_signed_fp01_operand and constraint G with Z.
6669         (subsf3): Ditto.
6670         (*maddsf4): Ditto.
6671         (*msubsf4): Ditto.
6672         (adddf3): Ditto.
6673         (adddf3_trunc): Ditto.
6674         (subdf3): Ditto.
6675         (*subdf3_trunc): Ditto.
6676         (*madddf4): Ditto.
6677         (*madddf4_trunc): Ditto.
6678         (*msubdf4): Ditto.
6679         (*msubdf4_trunc): Ditto.
6680         (addxf3): Replace xfreg_or_fp01_operand with
6681         xfreg_or_signed_fp01_operand and constraint G with Z.
6682         (*addxf3_truncsf): Ditto.
6683         (*addxf3_truncdf): Ditto.
6684         (subxf3): Ditto.
6685         (*subxf3_truncsf): Ditto.
6686         (*subxf3_truncdf): Ditto.
6687         (*maddxf4): Ditto.
6688         (*maddxf4_truncsf): Ditto.
6689         (*maddxf4_truncdf): Ditto.
6690         (*msubxf4): Ditto.
6691         (*msubxf4_truncsf): Ditto.
6692         (*msubxf4_truncdf): Ditto.
6693
6694 2010-08-04  Richard Guenther  <rguenther@suse.de>
6695
6696         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
6697         if either alias-set is zero.
6698
6699 2010-08-04  Richard Guenther  <rguenther@suse.de>
6700
6701         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
6702         * tree-ssa-ccp.c: ... here.
6703         * tree-ssa-copy.c: ... and here.
6704         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
6705         value_range_t): Move ...
6706         * tree-vrp.c: ... here.
6707         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
6708         (substitute_and_fold): Adjust prototype.
6709         * tree-ssa-propagate.c (replace_uses_in): Adjust.
6710         (replace_phi_args_in): Likewise.
6711         (substitute_and_fold): Take callback to query lattice instead
6712         of pointer to lattice.  Replace SSA name defs with lattice
6713         values first.
6714         * tree-ssa-ccp.c (ccp_finalize): Adjust.
6715         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
6716         (get_value): New function.
6717         (fini_copy_prop): Adjust.
6718         * tree-vrp.c (vrp_finalize): Adjust.
6719
6720 2010-08-04  Richard Guenther  <rguenther@suse.de>
6721
6722         PR middle-end/45176
6723         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
6724         points-to set for original MEM_REF.
6725
6726 2010-08-04  Richard Guenther  <rguenther@suse.de>
6727
6728         * tree-ssa-ccp.c (get_constant_value): New function.
6729         (get_rhs_assign_op_for_ccp): Remove.
6730         (valueize_op): New function.
6731         (ccp_fold): Use get_constant_value and valueize_op.
6732         (fold_const_aggregate_ref): Likewise.
6733         (ccp_fold_stmt): Likewise.
6734         (visit_assignment): Simplify.
6735
6736 2010-08-04  Richard Guenther  <rguenther@suse.de>
6737
6738         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
6739         * double-int.h (double_int_ctz): Declare.
6740         * double-int.c (double_int_ctz): New function.
6741
6742 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
6743
6744         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
6745         Define.
6746         picochip_expand_movmemhi : Expand movmem pattern.
6747         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
6748         Declare.
6749         * config/picochip/picochip.md (movmemhi) : New pattern.
6750
6751 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
6752
6753         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
6754
6755 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
6756
6757         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
6758         NEG as operand of a MULT by merging it with the other operand.
6759         * combine.c (make_compound_operation): Use trunc_int_for_mode when
6760         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
6761         MULT.
6762         * config/arm/constraints.md (M): Examine only 32 bits of a
6763         HOST_WIDE_INT.
6764         * config/arm/predicates.md (power_of_two_operand): Likewise.
6765
6766 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6767
6768         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
6769         non-NOTE insns.
6770
6771 2010-08-03  Jan Hubicka  <jh@suse.cz>
6772
6773         * ipa-split.c (struct split_point): Add split_part_set_retval.
6774         (find_retval): Forward declare.
6775         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
6776         (consider_split): Compute current->split_part_set_retval.
6777         (visit_bb): Do not look into return value.
6778         (split_function): Handle !split_part_set_retval
6779
6780 2010-08-03  Martin Jambor  <mjambor@suse.cz>
6781
6782         * tree-sra.c (completely_scalarize_record): New parameter REF, create
6783         its own access->expr intead of using build_ref_for_offset.
6784
6785 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
6786
6787         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
6788         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
6789         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
6790         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
6791         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
6792         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
6793         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
6794         DEFAULT_SWITCH_TAKES_ARG.
6795         * config/rx/rx.opt (-patch=): Remove option.
6796         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
6797         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
6798         * doc/invoke.texi (RX Options): Remove -patch=.
6799         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
6800         (option_map): Remove --profile-blocks, --quiet and --silent.
6801
6802 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
6803
6804         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
6805         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
6806         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
6807         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
6808         Update calls to ix86_expand_compare and ix86_expand_branch.
6809         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
6810         ix86_expand_compare.
6811         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
6812         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
6813         Make static.
6814         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
6815         and ix86_compare_op1.  Update calls to ix86_expand_compare.
6816         (ix86_expand_int_movcc): Ditto.
6817         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
6818         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
6819         (ix86_expand_setcc): Ditto.
6820         (ix86_expand_compare): Remove prototype.
6821         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
6822         ix86_compare_op0 and ix86_compare_op1.  Update calls
6823         to ix86_expand_branch to directly pass operands[1] and operands[2].
6824         (cbranchxf4): Ditto.
6825         (cbranch<MODEF:mode>4): Ditto.
6826         (cbranchcc4): Ditto.
6827         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
6828         Update calls to ix86_expand_setcc to directly pass operands[2] and
6829         operands[3].
6830         (cstorexf4): Ditto.
6831         (cstore<MODEF:mode>4): Ditto.
6832         (cstorecc4): Ditto.
6833
6834 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
6835
6836         PR target/45063
6837         * caller-save.c (save_call_clobbered_regs): Remove regs from
6838         hard_regs_saved when they are set.
6839
6840 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
6841
6842         PR target/41089
6843         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
6844         as volatile.
6845
6846 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
6847
6848         * common.opt (ftree-loop-distribute-patterns): New.
6849         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
6850         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
6851         at -O3.
6852         * tree-data-ref.c (stores_zero_from_loop): New.
6853         * tree-data-ref.h (stores_zero_from_loop): Declared.
6854         * tree-loop-distribution.c (tree_loop_distribution): Call
6855         stores_zero_from_loop.
6856         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
6857
6858 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
6859
6860         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
6861         into account.
6862
6863         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
6864         * config/arm/arm.c (thumb1_code): New variable.
6865         (arm_override_options): Set it.
6866         (thumb1_final_prescan_insn): Keep track of condition code status.
6867         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
6868         jumps that depend on them.
6869         * config/arm/arm.h (thumb1_code): Declare variable.
6870         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
6871         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
6872         thumb1_cc_mode.
6873         (CC_STATUS_INIT): New macro.
6874         * config/arm/constraints.md (Pd): New constraint.
6875         * config/arm/predicates.md (noov_comparison_operator): New predicate.
6876         * config/arm/arm.md (is_thumb1): New define_attr.
6877         (conds): Set default to "clob" when generating Thumb1 code.
6878         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
6879         code are set.  Use two-operand assembly syntax.
6880         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
6881         pattern.
6882         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
6883         codes are set.  Use two-operand assembly syntax.
6884         (zero_extendhisi splitter): Remove constraints.
6885         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
6886         thumb1_movsf_insn): Set conds attribute as appropriate.
6887         (cbranchsi4_insn): Use condition code status from struct
6888         machine_function to determine whether the comparison can be eliminated.
6889         Discourage the alternative using high registers.
6890         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
6891         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
6892         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
6893         subsi3_cbranch): Delete.
6894         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
6895         one subtract and one cbranch insn.
6896
6897         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
6898         thumb2_movdf_soft_insn): Delete patterns.
6899         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
6900         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
6901         (pool_range, neg_pool_range): Use them to define defaults.
6902         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
6903         and allow for TARGET_32BIT.
6904
6905         PR target/40457
6906         * config/arm/arm.h (arm_regs_in_sequence): Declare.
6907         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
6908         load_multiple_sequence, store_multiple_sequence): Delete
6909         declarations.
6910         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
6911         declarations.
6912         * config/arm/ldmstm.md: New file.
6913         * config/arm/arm.c (arm_regs_in_sequence): New array.
6914         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
6915         CHECK_REGS.  All callers changed.
6916         If SAVED_ORDER is nonnull, copy the computed order into it.
6917         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
6918         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
6919         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
6920         If SAVED_ORDER is nonnull, copy the computed order into it.
6921         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
6922         like REGS.  Handle Thumb mode.
6923         (arm_gen_load_multiple_1): New function, broken out of
6924         arm_gen_load_multiple.
6925         (arm_gen_store_multiple_1): New function, broken out of
6926         arm_gen_store_multiple.
6927         (arm_gen_multiple_op): New function, with code from
6928         arm_gen_load_multiple and arm_gen_store_multiple moved here.
6929         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
6930         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
6931         changed.
6932         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
6933         * config/arm/predicates.md (commutative_binary_operator): New.
6934         (load_multiple_operation, store_multiple_operation): Handle more
6935         variants of these patterns with different starting offsets.  Handle
6936         Thumb-1.
6937         * config/arm/arm.md: Include "ldmstm.md".
6938         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
6939         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
6940         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
6941         peepholes): Delete.
6942         * config/arm/ldmstm.md: New file.
6943         * config/arm/arm-ldmstm.ml: New file.
6944
6945         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
6946         if statement which adds extra costs to frame-related expressions.
6947
6948 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6949
6950         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
6951
6952 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
6953
6954         PR target/45142
6955         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
6956         alternative 2.
6957         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
6958         split V4SI operands.
6959
6960 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
6961
6962         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
6963         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
6964         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
6965         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
6966
6967 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
6968
6969         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
6970         LOCAL_INCLUDE_DIR.
6971
6972 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
6973
6974         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
6975         used in the call to optab_for_tree_code.  Fix the second
6976         is_widening_mult_p call.  Check that both unwidened operands
6977         have the same sign.
6978
6979 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
6980
6981         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
6982
6983 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
6984
6985         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
6986
6987 2010-07-30  DJ Delorie  <dj@redhat.com>
6988
6989         * config/rx/predicates.md (rx_constshift_operand): New.
6990         * config/rx/rx.md (zs_cond): New.
6991         (cbranchsi4): Remove mode.
6992         (*cbranchsi4_<code>): Likewise.
6993         (*tstbranchsi4_<code>): New.
6994         (*tstbranchsi4r_<code>): New.
6995         (*tstbranchsi4m_eq): New.
6996         (*tstbranchsi4m_ne): New.
6997         (cbranchsf4): Remove mode.
6998         (*cbranchsf4_<code>): Likewise.
6999
7000 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
7001
7002         * rtlanal.c (simplify_subreg_regno): Don't treat
7003         HARD_FRAME_POINTER_REGNUM specially.
7004
7005 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
7006
7007         * common.opt (-G): Don't define option here.
7008         * config/g.opt: New.
7009         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
7010         rs6000/powerpc and score targets.
7011         * opts.c (common_handle_option): Don't handle -G here.
7012         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
7013         * config/frv/frv.c (frv_handle_option): Handle -G.
7014         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
7015         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
7016         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
7017         * config/mips/mips.c (mips_handle_option): Handle -G.
7018         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
7019         * config/score/score.c (score_handle_option): Handle -G.
7020
7021 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
7022
7023         * config/mmix/mmix.c: Include basic-block.h.
7024
7025 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
7026
7027         PR debug/45055
7028         PR rtl-optimization/45137
7029         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
7030         prototypes.
7031         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
7032         New functions.
7033         * combine.c (next_nonnote_nondebug_insn): Removed.
7034         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
7035         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
7036         * sched-deps.c (sched_analyze_insn): Likewise.
7037         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
7038         * rtlanal.c (canonicalize_condition): Likewise.
7039         * postreload.c (reload_combine_recognize_pattern): Likewise.
7040         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
7041
7042 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
7043
7044         * config/i386/i386.md (int_cond): Remove code iterator.
7045         (fp_cond): Ditto.
7046         (cbranch<mode>4): Use ordered_comparison_operator predicate
7047         for operator0.
7048         (cstore<mode>4): Ditto for operator1.
7049         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
7050         (add<mode>cc): ditto.
7051
7052 2010-07-30  Richard Guenther  <rguenther@suse.de>
7053
7054         PR middle-end/45141
7055         * expr.c (expand_expr_real_1): Check for not handled base address.
7056
7057 2010-07-30  Richard Guenther  <rguenther@suse.de>
7058
7059         * ipa-prop.c (ipa_modify_formal_parameters): Use
7060         build_distinct_type_copy.
7061
7062 2010-07-30  Anthony Green  <green@moxielogic.com>
7063
7064         * config/moxie/rtems.h: New file.
7065         * config.gcc: Add moxie-rtems support.
7066
7067 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
7068
7069         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
7070         df flags as in run_fast_df_dce.
7071
7072 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
7073
7074         Revert:
7075         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
7076
7077         * rtl.def (NOTE): Swap operands 4 and 5.
7078         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
7079         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
7080         Adjust accordingly.
7081         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
7082
7083 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
7084
7085         PR debug/45110
7086         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
7087         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
7088         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
7089         formal parameters.
7090         (gen_decl_die): Change return type to dw_die_ref, return what
7091         gen_formal_parameter_die returned.
7092
7093 2010-07-29  Martin Jambor  <mjambor@suse.cz>
7094
7095         * dbgcnt.def (eipa_sra): New counter.
7096         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
7097
7098 2010-07-29  Xinliang David Li  <davidxl@google.com>
7099
7100         PR bootstrap/45119
7101         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
7102         in revision 162652.
7103
7104 2010-07-29  Richard Guenther  <rguenther@suse.de>
7105
7106         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
7107         (TV_TREE_STORE_CCP): Likewise.
7108         (TV_TREE_REDPHI): Likewise.
7109
7110 2010-07-29  Richard Guenther  <rguenther@suse.de>
7111
7112         * double-int.h (double_int_and_not): New function.
7113         * combine.c (try_combine): Use it.
7114         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
7115
7116 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
7117
7118         PR rtl-optimization/42575
7119         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
7120         Argument AU removed.  All callers changed.  Ignore artificial refs.
7121         Use return value of df_word_lr_simulate_defs to decide whether an insn
7122         is necessary.
7123         (fast_dce): Rename arg to WORD_LEVEL.
7124         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
7125         static.
7126         (pass_fast_rtl_byte_dce): Delete.
7127         * dce.h (run_word_dce): Declare.
7128         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
7129         All callers changed.  Simplify code to only deal with two-word regs.
7130         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
7131         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
7132         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
7133         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
7134         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
7135         (df_word_lr_mark_ref): Declare.
7136         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
7137         df_word_lr_simulate_uses): Declare or rename from byte variants.
7138         (df_byte_lr_simulate_artificial_refs_at_top,
7139         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
7140         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
7141         declarations.
7142         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
7143         (enum df_mm): Delete.
7144         * df-byte-scan.c: Delete file.
7145         * df-problems.c (df_word_lr_problem_data): Renamed from
7146         df_byte_lr_problem_data, all members deleted except for
7147         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
7148         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
7149         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
7150         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
7151         df_byte_lr_confluence_0): Delete functions.
7152         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
7153         callers changed.
7154         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
7155         Don't initialize members that were deleted, don't try to discover data
7156         about registers.  Ignore hard regs.
7157         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
7158         (df_word_lr_mark_ref): New function.
7159         (df_word_lr_bb_local_compute): Renamed from
7160         df_byte_bb_lr_local_compute; all callers changed.  Use
7161         df_word_lr_mark_ref.  Assert that artificial refs don't include
7162         pseudos.  Ignore hard registers.
7163         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
7164         Assert that exit block uses don't contain pseudos.
7165         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
7166         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
7167         callers changed.  Ignore hard regs.
7168         (df_word_lr_transfer_function): Renamed from
7169         df_byte_lr_transfer_function; all callers changed.
7170         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
7171         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
7172         changed.
7173         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
7174         callers changed.
7175         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
7176         confluence operator 0 set to NULL.
7177         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
7178         callers changed.
7179         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
7180         Return bool, true if bitmap changed or insn otherwise necessary.
7181         All callers changed.  Simplify using df_word_lr_mark_ref.
7182         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
7183         all callers changed.  Simplify using df_word_lr_mark_ref.
7184         * lower-subreg.c: Include "dce.h"
7185         (decompose_multiword_subregs): Call run_word_dce if df available.
7186         * Makefile.in (lower-subreg.o): Adjust dependencies.
7187         (df-byte-scan.o): Delete.
7188         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
7189
7190 2010-07-29  Richard Guenther  <rguenther@suse.de>
7191
7192         * tree.c (build_vector): Assert that the vector constant
7193         has enough elements.
7194         (build_vector_from_ctor): Pad with trailing zeros.
7195
7196 2010-07-29  Richard Guenther  <rguenther@suse.de>
7197
7198         PR tree-optimization/45120
7199         * tree-ssa-structalias.c (get_constraint_for_component_ref):
7200         Handle offset in DEREFs properly.
7201         (get_constraint_for_1): Handle MEM_REF offset properly.
7202
7203 2010-07-29  Richard Guenther  <rguenther@suse.de>
7204
7205         PR middle-end/45034
7206         * convert.c (convert_to_integer): Always use an unsigned
7207         type for narrowed negate and bitwise not.
7208
7209 2010-07-29  Ira Rosen  <irar@il.ibm.com>
7210
7211         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
7212         to outer loop when creating reduction epilogue for double reduction,
7213         and switch back to the inner loop when updating the phi nodes.
7214         Update uses of outer loop exit phi nodes in double reduction (instead
7215         of uses of reduction).
7216
7217 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
7218
7219         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
7220         popcount on power7 and parity on power6 systems.
7221         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
7222         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
7223         instructions.
7224
7225         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
7226         (UNSPEC_PARITY): Ditto.
7227         (SFDF): New iterator for SF/DF.
7228         (rreg2): New mode attribute for floating register constraint.
7229         (TARGET_FLOAT): New mode attribute for whether single/double float
7230         is supported.
7231         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
7232         pattern.
7233         (parity<mode>2_cmpb): New insn for parity on power6 and newer
7234         machines.
7235         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
7236         pattern.  Add support for fcpsgn instruction added in power6.
7237         (copysignsf3): Delete.
7238         (copysigndf3): Delete.
7239         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
7240         instead of if_then_else in RTL to avoid problems with -0.
7241
7242         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
7243         of if_then_else to mirror scalar code.
7244         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
7245         rs6000.md.
7246
7247         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
7248         instead of if_then_else.
7249
7250 2010-07-28  Xinliang David Li  <davidxl@google.com>
7251
7252         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
7253         (dump_cand): Dump var_before/after.
7254         (htab_inv_expr_eq): New function.
7255         (htab_inv_expr_hash): New function.
7256         (tree_ssa_iv_optimize_init): Support pseudo invariants.
7257         (add_candidate_1): consider base type precision.
7258         (set_use_iv_cost): New parameter.
7259         (adjust_setup_cost): Use profile information.
7260         (get_address_cost): Do not hard code width in computing address
7261         offset limits.
7262         (compare_aff_trees): New function.
7263         (get_loop_invariant_expr_id): New function.
7264         (get_computation_cost_at): New parameter and use profile information.
7265         (get_computation_cost): New parameter.
7266         (determine_use_iv_cost_generic): Pass new parameter.
7267         (determine_use_iv_cost_address): Ditto.
7268         (determine_use_iv_cost_condition): Ditto.
7269         (autoinc_possible_for_pair): Ditto.
7270         (determine_use_iv_costs): More dumps.
7271         (iv_ca_get_num_inv_exprs): New function.
7272         (iv_ca_recount_cost): Consider loop invariants in register pressure
7273         cost.
7274         (iv_ca_add_use): New parameter.
7275         (iv_ca_dump): Better dumping.
7276         (iv_ca_extend): New parameter.
7277         (try_add_cand_for): Attempt to get better partial solution.
7278         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
7279         (create_new-ivs): More dumps.
7280         (rewrite_use_compare): Ditto.
7281         (free_loop_data): More cleanup.
7282         (treee_ssa_iv_optimize_finalize): Ditto.
7283
7284 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
7285
7286         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
7287         * config/i386/i386.c (ix86_profile_before_prologue): New.
7288         (override_options): Add special handling for -mfentry.
7289         (ix86_function_regparm): Likewise.
7290         (ix86_function_sseregparm): Likewise.
7291         (ix86_frame_pointer_required): Likewise.
7292         (ix86_expand_prologue): Check for ms_hook_prologue.
7293         (x86_function_profiler): Adjust mcount output.
7294         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
7295         * config/i386/i386.opt (mfentry): New.
7296         * doc/invoke.texi (mfentry): Add documentation.
7297         * doc/tm.texi: Regenerated..
7298         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
7299         * final.c (final_start_function): Replace macro
7300         PROFILE_BEFORE_PROLOGUE by target hook.
7301         * function.c (thread_prologue_and_epilogue_insns): Likewise.
7302         * target.def (profile_before_prologue): New hook.
7303         * targhooks.c (default_profile_before_prologue): New.
7304         * targhooks.h (default_profile_before_prologue): New.
7305
7306 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
7307
7308         PR debug/45105
7309         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
7310
7311         PR debug/45103
7312         * dwarf2out.c (dwarf2out_var_location): Always consider
7313         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
7314
7315 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
7316
7317         PR rtl-optimization/45107
7318         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
7319
7320 2010-07-28  Richard Guenther  <rguenther@suse.de>
7321
7322         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
7323         (set_lattice_value): Do not query an old default value.
7324         (get_value_for_expr): New function.  Properly canonicalize
7325         float values.
7326         (ccp_visit_phi_node): Use it.
7327
7328 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
7329
7330         * config/arm/arm.c (arm_pcs_default): Remove static.
7331         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
7332         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
7333         (arm_pcs_default): Declare.
7334
7335 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
7336
7337         * config/rs6000/rs6000.c (rs6000_override_options):
7338         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
7339         ... to darwin_rs6000_override_options.
7340         (rs6000_return_in_memory): Update preceding comment for darwin
7341         64 bit ABI.  Use TARGET_MACHO inline.
7342         (rs6000_darwin64_struct_check_p): New.
7343         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
7344         (function_arg): Likewise.
7345         (rs6000_arg_partial_bytes): Likewise.
7346         (rs6000_function_value): Likewise.
7347
7348 2010-07-28  Andi Kleen  <ak@linux.intel.com>
7349
7350         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
7351
7352 2010-07-28  Richard Guenther  <rguenther@suse.de>
7353
7354         PR middle-end/44903
7355         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
7356         targets try harder to not generate unaligned accesses.
7357
7358 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
7359
7360         PR rtl-optimization/45101
7361         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
7362         for gcse-las.
7363
7364 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
7365
7366         PR tree-optimization/44885
7367         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
7368         with non-aliased component.
7369
7370 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
7371
7372         * config/darwin-driver.c (SWITCH_TAKES_ARG,
7373         WORD_SWITCH_TAKES_ARG): Remove.
7374         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7375         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
7376         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
7377         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
7378         definitions from gcc.c.
7379         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
7380         defaults.h.
7381         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
7382         Move to defaults.h.
7383         * opts-common.c: Include tm.h.
7384         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
7385         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
7386         Handle more than one argument.  Set canonical_option_num_elements.
7387         (decode_cmdline_options_to_array): Set
7388         canonical_option_num_elements and trailing elements of
7389         canonical_option.
7390         * opts.h (struct cl_decoded_option): Allow four elements in
7391         canonical_option.  Add field canonical_option_num_elements.
7392         * Makefile.in (opts-common.o): Update dependencies.
7393
7394 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
7395
7396         PR middle-end/44790
7397         PR middle-end/44993
7398         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
7399         sure the base has address_mode before adding the offset.
7400
7401 2010-07-27  Xinliang David Li  <davidxl@google.com>
7402
7403         * tree-flow.h (create_mem_ref): Add one new parameter.
7404         * tree-ssa-address.c (create_mem_ref): New parameter.
7405         (addr_to_parts): Ditto.
7406         (move_variant_to_index): New function.
7407         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
7408
7409 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
7410
7411         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
7412         4 and 5.
7413         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
7414         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
7415         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
7416         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
7417         CODE_LABELs and NOTEs.
7418         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
7419         * combine.c (try_combine): Likewise.
7420         * ira.c (setup_prohibited_mode_move_regs): Likewise.
7421         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
7422
7423 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
7424
7425         * coretypes.h (struct cl_option_handlers): Declare.
7426         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
7427         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
7428         * langhooks-def.h (lhd_handle_option): Declare.
7429         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
7430         * langhooks.c (lhd_handle_option): New.
7431         * langhooks.h (struct lang_hooks): Update prototype and return
7432         value type of handle_option hook.
7433         * optc-gen.awk: Generate target_flags_explicit definition for the
7434         driver.
7435         * opts-common.c: Include diagnostic.h.
7436         (handle_option): Move from opts.c.  Update prototype and return
7437         value type.  Use handlers structure.
7438         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
7439         handlers structure.
7440         (set_option): Move from opts.c.
7441         * opts.c (common_handle_option): Update prototype and return value
7442         type.  Update calls to handle_option and enable_warning_as_error.
7443         (unknown_option_callback, post_handling_callback,
7444         lang_handle_option, target_handle_option): New.
7445         (handle_option, read_cmdline_option): Move to opts-common.c.
7446         (read_cmdline_options): Update prototype.  Update call to
7447         read_cmdline_option.
7448         (decode_options): Initialize and use handlers structure.
7449         (set_option): Move to opts-common.c.
7450         (enable_warning_as_error): Update prototype.  Update call to
7451         handle_option.
7452         * opts.h (struct cl_option_handler_func, struct
7453         cl_option_handlers): New.
7454         (handle_option, enable_warning_as_error): Update prototypes.
7455         (read_cmdline_option): Declare.
7456         * Makefile.in (opts-common.o): Update dependencies.
7457
7458 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7459
7460         * config/arm/arm.c (params.h): Include.
7461         (arm_override_options): Tune gcse-unrestricted-cost.
7462         * config/arm/t-arm (arm.o): Define dependencies.
7463
7464 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7465
7466         PR target/42495
7467         PR middle-end/42574
7468         * basic-block.h (get_dominated_to_depth): Declare.
7469         * dominance.c (get_dominated_to_depth): New function, use
7470         get_all_dominated_blocks as a base.
7471         (get_all_dominated_blocks): Use get_dominated_to_depth.
7472
7473         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
7474         (hoist_exprs): Remove.
7475         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
7476         (compute_code_hoist_vbeinout): Add debug print outs.
7477         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
7478
7479         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
7480         quadratic behavior.
7481         * params.h (MAX_HOIST_DEPTH): New macro.
7482         * doc/invoke.texi (max-hoist-depth): Document.
7483
7484 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7485
7486         PR rtl-optimization/40956
7487         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
7488         constants.
7489
7490 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7491
7492         PR target/42495
7493         PR middle-end/42574
7494         * config/arm/arm.c (legitimize_pic_address): Use
7495         gen_calculate_pic_address pattern to emit calculation of PIC address.
7496         (will_be_in_index_register): New function.
7497         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
7498         (thumb1_legitimate_address_p): Use it provided !strict_p.
7499         * config/arm/arm.md (calculate_pic_address): New expand and split.
7500
7501 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7502
7503         PR target/42495
7504         PR middle-end/42574
7505         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
7506         * config/arm/arm.md (define_split "J", define_split "K"): Make
7507         IRA/reload friendly.
7508
7509 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7510
7511         * gcse.c (insert_insn_end_basic_block): Update signature, remove
7512         unused checks.
7513         (pre_edge_insert, hoist_code): Update.
7514
7515 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7516
7517         PR target/42495
7518         PR middle-end/42574
7519         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
7520
7521 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7522
7523         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
7524
7525 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7526
7527         PR rtl-optimization/40956
7528         PR target/42495
7529         PR middle-end/42574
7530         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
7531         for hoisting.
7532         (hoist_code): Count occurences in current block too.
7533
7534 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7535
7536         * gcse.c (struct expr:max_distance): New field.
7537         (doing_code_hoisting_p): New static variable.
7538         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
7539         simple expressions, don't change behavior for PRE.  Set max_distance.
7540         (insert_expr_in_table): Set new max_distance field.
7541         (hash_scan_set): Update.
7542         (hoist_expr_reaches_here_p): Stop search after max_distance
7543         instructions.
7544         (find_occr_in_bb): New static function.  Use it in ...
7545         (hoist_code): Calculate sizes of basic block before any changes are
7546         done.  Pass max_distance to hoist_expr_reaches_here_p.
7547         (one_code_hoisting_pass): Set doing_code_hoisting_p.
7548
7549         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
7550         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
7551         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
7552         macros.
7553         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
7554         Document.
7555
7556 2010-07-27  Jeff Law  <law@redhat.com>
7557             Maxim Kuvyrkov  <maxim@codesourcery.com>
7558
7559         * gcse.c (compute_transpout, transpout): Remove, move logic
7560         to prune_expressions.
7561         (compute_pre_data): Move pruning of trapping expressions ...
7562         (prune_expressions): ... here.  New static function.
7563         (compute_code_hoist_data): Use it.
7564         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
7565
7566 2010-07-27  Xinliang David Li  <davidxl@google.com>
7567
7568         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
7569         (rewrite_use_address): Adjust iv update position when needed.
7570
7571 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
7572
7573         * dbgcnt.def (hoist_insn): New debug counter.
7574         * gcse.c (hoist_code): Use it.
7575
7576 2010-07-27  Xinliang David Li  <davidxl@google.com>
7577
7578         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
7579         (niter_for_single_dom_exit): Passes additional parameter.
7580         (iv_period): Fix comments.
7581         (may_eliminate_iv): Handles multiple exit loops properly.
7582         (free_tree_niter_desc): New function.
7583         (free_loop_data): Frees up loop iteration descriptors.
7584
7585 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
7586
7587         PR target/44542
7588         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
7589         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
7590         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
7591         (expand_one_var): Don't consider DECL_ALIGN for variables for
7592         which expand_one_stack_var_at has been already called.
7593
7594         PR testsuite/44701
7595         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
7596         constraints on IA-64.
7597
7598 2010-07-27  Jie Zhang  <jie@codesourcery.com>
7599
7600         PR target/44290
7601         Revert:
7602         2010-07-23  Jie Zhang  <jie@codesourcery.com>
7603
7604         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
7605         false if ! tree_versionable_function_p.
7606
7607 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
7608
7609         * dwarf2out.c (add_data_member_location_attribute): Use
7610         add_AT_unsigned instead of add_AT_int if offset is non-negative.
7611
7612 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
7613
7614         * postreload.c (try_replace_in_use): New static function.
7615         (reload_combine_recognize_const_pattern): Use it here.  Allow
7616         substituting into a final add insn, and substituting into a memory
7617         reference in an insn that sets the reg.
7618
7619 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
7620
7621         * common.opt (o): Add MissingArgError.
7622         * doc/options.texi (MissingArgError): Document.
7623         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
7624         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
7625         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
7626         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
7627         * langhooks.h (struct lang_hooks): Remove missing_argument.
7628         * optc-gen.awk: Handle MissingArgError and output new structure
7629         field initializers.
7630         * opts.c (read_cmdline_option): Use missing_argument_error field
7631         instead of missing_argument langhook.
7632         * opts.h (struct cl_option): Add missing_argument_error field.
7633         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
7634
7635 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
7636
7637         PR target/29090
7638         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
7639         Darwin64 ABI, for zero-sized objects.
7640
7641 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
7642
7643         PR target/35491
7644         PR target/29090
7645
7646         Merge from Apple local 4.2.1.
7647         2005-05-11  Stan Shebs  <shebs@apple.com>
7648         Fix 64-bit varargs for Darwin (Radar 4028089).
7649         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
7650         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
7651         Add argument, add case for 8-byte register half-filled with a float.
7652         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
7653         single-precision floats specially.
7654
7655 2010-07-27  Ira Rosen  <irar@il.ibm.com>
7656
7657         PR tree-optimization/44152
7658         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
7659         complex numbers for further check.
7660         (vect_supported_load_permutation_p): Check nodes with
7661         complex numbers.
7662
7663 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
7664
7665         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
7666         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
7667         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
7668         (LANG_HOOKS_INITIALIZER): Add new hooks.
7669         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
7670         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
7671         and complain_wrong_lang_p.  Update init_options prototype.
7672         * c-objc-common.c (c_initialize_diagnostics): First call
7673         c_common_initialize_diagnostics.
7674         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
7675         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
7676         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
7677         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
7678         (hook_uint_void_0): New.
7679         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
7680         (hook_uint_void_0): New.
7681         * opts-common.c (decode_cmdline_option,
7682         decode_cmdline_options_to_array): Also fill in canonical_option field.
7683         * opts.c (complain_wrong_lang): Use langhook to determine whether
7684         to complain instead of special-casing LTO.
7685         (decode_options): Separate lang_mask determination with
7686         option_lang_mask hook from call of init_options hook.
7687         * opts.h (struct cl_decoded_option): Add canonical_option.
7688
7689 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
7690
7691         PR tree-optimization/45083
7692         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
7693
7694 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
7695
7696         * postreload.c (reload_combine_recognize_const_pattern): Move test
7697         for limiting the insn movement to the right scope.
7698
7699         PR rtl-optimization/45051
7700         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
7701         than reg_mentioned_p.
7702
7703 2010-07-26  Richard Henderson  <rth@redhat.com>
7704
7705         PR target/44132
7706         * tree-emutls.c: New file.
7707         * Makefile.in (OBJS-common): Add it.
7708         * tree-pass.h (pass_ipa_lower_emutls): Declare.
7709         * passes.c (init_optimization_passes): Add it.
7710
7711         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
7712         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
7713         * expr.c (emutls_var_address): Delete.
7714         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
7715         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
7716         (emutls_finish): Delete.
7717         * toplev.c (compile_file): Don't call it.
7718         * tree.h (emutls_decl): Delete.
7719         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
7720         (emutls_finish, emutls_finalize_control_var): Delete.
7721         (emutls_object_type): Move to tree-emutls.c.
7722         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
7723         default_emutls_var_fields, get_emutls_object_type,
7724         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
7725         default_emutls_var_init): Likewise.
7726         (get_variable_section): Don't special case emutls.
7727         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
7728         default_elf_select_section, default_unique_section,
7729         default_encode_section_info): Likewise.
7730         * varpool.c (decide_is_variable_needed): Likewise.
7731         * gimple-iterator.c (update_call_edge_frequencies): New
7732         (gsi_insert_on_edge_immediate): Use it.
7733         (gsi_insert_seq_on_edge_immediate): Likewise.
7734         (gsi_commit_one_edge_insert): Likewise.
7735
7736         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
7737         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
7738         (x86_64_elf_unique_section): Likewise.
7739
7740 2010-07-26  Jan Hubicka  <jh@suse.cz>
7741
7742         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
7743         GTY((skip)).
7744
7745 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
7746
7747         * target.def (output_source_filename): New hook.
7748         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
7749         * doc/tm.texi: Regenerate.
7750         * toplev.c (output_file_directive) Remove function.
7751         * toplev.h (output_file_directive) Remove.
7752         * output.h (default_asm_output_source_filename,
7753         output_file_directive): Declare.
7754         * varasm.h (default_asm_output_source_filename,
7755         output_file_directive): New functions.
7756
7757         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
7758         * config/mips/mips-protos.h (mips_output_filename): Remove.
7759         * config/mips/mips.c (mips_output_filename): Make Static.
7760         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
7761
7762 2010-07-26  Richard Guenther  <rguenther@suse.de>
7763
7764         PR tree-optimization/43784
7765         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
7766         if the destination is used by the call.
7767
7768 2010-07-26  Richard Guenther  <rguenther@suse.de>
7769
7770         PR middle-end/45073
7771         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
7772         SSA updating on being in SSA form.
7773
7774 2010-07-26  Richard Guenther  <rguenther@suse.de>
7775
7776         PR middle-end/45056
7777         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
7778
7779 2010-07-26  Richard Guenther  <rguenther@suse.de>
7780
7781         PR tree-optimization/45071
7782         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
7783         adjust op->opcode.
7784
7785 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
7786
7787         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
7788         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
7789         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
7790         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
7791         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
7792         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
7793         save_r31, return_r31, save_interrupt, return_interrupt,
7794         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
7795         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
7796         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
7797         new ABI requirements.
7798         (save_r6_r9, L_callt_save_r6_r9): Remove.
7799         * config/v850/predicates.md (even_reg_operand, disp23_operand,
7800         const_float_1_operand const_float_0_operand): New Predicates.
7801         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
7802         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
7803         * config/v850/t-v850: Update multilibs for new target variants.
7804         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
7805         * config/v850/t-v850e: Likewise.
7806         * config/v850/v850.c (v850_issue_rate): New.
7807         (v850_strict_argument_naming): New.
7808         (function_arg): Modify to generate a different ABI.
7809         (print_operand): Update case 'z' to support float modes.
7810         (output_move_single): Modify to generate appropriate and better
7811         assembly.
7812         (v850_float_z_comparison_operator, v850_select_cc_mode,
7813         v850_float_nz_comparison_operator,  v850_gen_float_compare,
7814         v850_gen_compare): New functions to support comparison of float values.
7815         (ep_memory_offset): Add support for V850E2 targets.
7816         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
7817         (INTERRUPT_REGPARM_NUM): Remove.
7818         (compute_register_save_size): Add extra case to save/restore long call.
7819         (use_prolog_function): New function to support prologue.
7820         (expand_prologue): Add support for V850E2 targets and modified
7821         as per the current ABI requirements.
7822         (expand_epilogue): Likewise.
7823         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
7824         (construct_save_jarl): Likewise.
7825         (construct_dispose_instruction): Update as per the current ABI
7826         requirements.
7827         (construct_prepare_instruction): Likewise.
7828         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
7829         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
7830         (CPP_SPEC): Updated to support v850e2 targets.
7831         (STRICT_ALIGNMENT): Modified.
7832         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
7833         (FIXED_REGISTERS): Likewise.
7834         (CALL_USED_REGISTERS): Likewise.
7835         (CONDITIONAL_REGISTER_USAGE): Updated.
7836         (HARD_REGNO_MODE_OK): Updated.
7837         (reg_class): Updated to add even registers.
7838         (REG_CLASS_NAMES): Likewise.
7839         (REG_CLASS_CONTENTS): Likewise.
7840         (REGNO_REG_CLASS): Updated for CC registers.
7841         (REG_CLASS_FROM_LETTER): Added support for even registers.
7842         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
7843         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
7844         ARG_POINTER_REGNUM): Updated.
7845         (FUNCTION_ARG_ADVANCE): Define.
7846         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
7847         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
7848         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
7849         (GO_IF_LEGITIMATE_ADDRESS): Updated.
7850         (SELECT_CC_MODE): Define.
7851         (REGISTER_NAMES): Updated to add psw and fcc registers.
7852         (ADDITIONAL_REGISTER_NAMES): Updated.
7853         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
7854         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
7855         * config/v850/v850.md (define_constants): Define new constants.
7856         (type): Update store,bit1,macc,div,fpu and single attributes.
7857         (cpu): New attribute.
7858         (cc): Add set_z attribute.
7859         (unsign23byte_load, sign23byte_load, unsign23hword_load,
7860         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
7861         23word_store): New instructions for 23-bit displacement load and store.
7862         (movqi_internal, movhi_internal): Update the attributes.
7863         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
7864         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
7865         the attributes.
7866         (v850_tst1): Modified using CC_REGNUM.
7867         (tstsi): Remove.
7868         (cmpsi): Modified as define_expand from define_insn.
7869         (cmpsi_insn, cmpsf, cmpdf): New instructions.
7870         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
7871         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
7872         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
7873         one_cmplsi2): Clobber the CC_REGNUM register.
7874         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
7875         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
7876         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
7877         (setf_insn, set_z_insn, set_nz_insn): New instructions for
7878         v850e2v3 target.
7879         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
7880         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
7881         targets.
7882         (sasf_1, sasf_2): Remove.
7883         (sasf): New instruction.
7884         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
7885         targets. CC_REGNUM register is clobbered and attributes are
7886         updated.
7887         (branch_z_normal, branch_z_invert, branch_nz_normal,
7888         branch_nz_invert): New branch related instructions.
7889         (jump): Updated the attributes.
7890         (switch): Update to support new targets. CC_REGNUM register is
7891         clobbered and attributes are updated.
7892         (call_internal_short, call_internal_long, call_value_internal_short,
7893         call_value_internal_long): Updated the attributes.
7894         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
7895         clobbered and attributes are updated.
7896         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
7897         Update to support new targets. CC_REGNUM register is clobbered.
7898         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
7899         instructions.
7900         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
7901         are updated.
7902         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
7903         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
7904         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
7905         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
7906         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
7907         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
7908         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
7909         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
7910         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
7911         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
7912         point instructions defined for V850e2v3 target.
7913         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
7914         Add support for V850E2 targets and CC_REGNUM register is clobbered.
7915         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
7916         support for new targets.
7917         * config/v850/v850-modes.def: New file.
7918         * config/v850/v850.opt(mstrict-align): Remove.
7919         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
7920         mv850e2v3): New command line options for V850.
7921         * config.gcc: Update the newly added files.
7922         * doc/invoke.texi: Update the newly added command line options for
7923         V850 target.
7924
7925 2010-07-26  Richard Guenther  <rguenther@suse.de>
7926
7927         PR tree-optimization/45052
7928         * ipa-pure-const.c (check_stmt): Check volatileness.
7929
7930 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
7931
7932         PR target/44707
7933         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
7934         * config/sparc/sparc.c: Include reload.h.
7935         (legitimize_tls_address): Rename into...
7936         (sparc_legitimize_tls_address): ...this.
7937         (legitimize_pic_address): Rename into...
7938         (sparc_legitimize_pic_address): ...this.
7939         (sparc_expand_move): Adjust to above renaming.
7940         (sparc_tls_referenced_p): Likewise.
7941         (sparc_legitimize_tls_address): Likewise.
7942         (sparc_legitimize_pic_address): Likewise.
7943         (sparc_legitimize_address): Likewise.
7944         (sparc_output_mi_thunk): Likewise.
7945         (sparc_legitimize_reload_address): New global function.  Recognize
7946         (lo_sum (high ...) ...) patterns generated by earlier passes.
7947         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
7948
7949 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
7950
7951         PR target/44484
7952         * config/sparc/predicates.md (memory_reg_operand): Delete.
7953         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
7954         (*sync_compare_and_swap): Encode the address form in the pattern.
7955         (*sync_compare_and_swapdi_v8plus): Likewise.
7956
7957 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
7958
7959         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
7960         Streamline paragraph on compatibility with the system compiler.
7961
7962 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
7963
7964         PR middle-end/45035
7965         * alias.c (true_dependence_1): Fix thinko in merge of old
7966         true_dependence and canon_true_dependence.
7967
7968 2010-07-23  Jan Hubicka  <jh@suse.cz>
7969
7970         * lto-streamer-out.c (write_symbol): Fix visibilities of external
7971         references.
7972
7973 2010-07-23  Le-Chun Wu  <lcwu@google.com>
7974
7975         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
7976         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
7977         and an unnecessary assignment.
7978         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
7979         self-assign warning.
7980         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
7981         unnecessary self-init.
7982
7983 2010-07-23  Richard Guenther  <rguenther@suse.de>
7984
7985         PR lto/43071
7986         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
7987         for -flto and -fwhopr.
7988
7989 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
7990
7991         PR target/41943
7992         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
7993         (stmp-int-hdrs): Prefix/postfix headers by include_next.
7994         * config.gcc (user_headers_inc_next_pre): New.
7995         (user_headers_inc_next_post): Likewise.
7996         (*-w64-mingw*): Use for float.h post-fixing, and for
7997         stddef.h/stdarg.h pre-fixing by include_next.
7998         * configure.ac (user_headers_inc_next_post): New.
7999         (user_headers_inc_next_pre): New.
8000         * configure: Regenerated.
8001
8002 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8003
8004         * configure.ac: Don't disable TLS on Solaris 8/9 by default
8005         Set tga_func for Solaris 2/x86 resp. SPARC.
8006         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
8007         (LIB_THREAD_LDFLAGS_SPEC): Define.
8008         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
8009         * configure: Regenerate.
8010         * config.in: Regenerate.
8011         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
8012         -pthread, -threads, LIB_TLS_SPEC with -pthread.
8013         * doc/install.texi (Specific, *-*-solaris2*): Document use of
8014         alternate thread libraries on Solaris 8.
8015         Document TLS patch requirements.
8016         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
8017         Document tls.
8018
8019         PR target/18788
8020         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
8021         -shared.
8022
8023 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
8024
8025         * tree.h (struct tree_base): Add nameless_flag bitfield.
8026         (TYPE_NAMELESS, DECL_NAMELESS): Define.
8027         * omp-low.c (create_omp_child_function, scan_omp_parallel,
8028         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
8029         DECL_ARTIFICIAL where needed.
8030         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
8031         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
8032         has DECL_NAMELESS set.
8033
8034 2010-07-23  Martin Jambor  <mjambor@suse.cz>
8035
8036         PR tree-optimization/44915
8037         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
8038         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
8039         (analyze_function): Likewise.
8040
8041 2010-07-23  Martin Jambor  <mjambor@suse.cz>
8042
8043         PR tree-optimization/44914
8044         * tree-sra.c (sra_modify_function_body): Return true if CFG was
8045         changed, add purging dead eh edges.
8046         (ipa_sra_modify_function_body): Return true if CFG was changed,
8047         simplify purging dead eh edges.
8048         (modify_function): Return true if CFG was changed.
8049         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
8050         was changed.
8051         (ipa_early_sra): Likewise.
8052
8053 2010-07-23  Jie Zhang  <jie@codesourcery.com>
8054
8055         PR target/44290
8056         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
8057         if "naked".
8058         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
8059         false if ! tree_versionable_function_p.
8060
8061 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
8062
8063         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
8064         * ipa-pure-const.c (special_builtlin_state): Remove
8065         BUILT_IN_ARGS_INFO case.
8066         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
8067         * builtins.c (expand_builtin): Likewise.
8068         (expand_builtin_args_info): Remove.
8069         * doc/tm.texi (__builtin_args_info): Remove.
8070         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
8071         * doc/tm.text.in: Likewise.
8072
8073 2010-07-23  Richard Guenther  <rguenther@suse.de>
8074
8075         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
8076         (lto_symtab_merge_decls_2): Likewise.
8077         * tree-ssa.c (useless_type_conversion_p): Likewise.
8078         * lto-streamer-in.c (input_gimple_stmt): Likewise.
8079         * gimple.c (gtc_visited2, gtc_ob2): Remove.
8080         (struct type_pair_d): Make same_p an array indexed by mode.
8081         Update comment.
8082         (lookup_type_pair): Update initialization.
8083         (struct sccs): Adjust same_p type.
8084         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
8085         Adjust.
8086         (print_gimple_types_stats): Likewise.
8087         * gimple.h (enum gtc_mode): New.
8088         (gimple_types_compatible_p): Adjust prototype.
8089
8090 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
8091
8092         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
8093         again after processing insn.
8094
8095 2010-07-23  Jie Zhang  <jie@codesourcery.com>
8096
8097         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
8098         proper words when !tree_versionable_function_p.
8099
8100 2010-07-23  Richard Guenther  <rguenther@suse.de>
8101
8102         PR tree-optimization/45037
8103         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
8104
8105 2010-07-23  Jie Zhang  <jie@codesourcery.com>
8106
8107         * doc/extend.texi: Remove IP2K from the description of naked attribute.
8108         Add MCORE instead.
8109
8110 2010-07-10  Andi Kleen  <ak@linux.intel.com>
8111
8112         PR lto/44992
8113         * lto-opts.c (lto_write_options): Add NULL file_data argument to
8114         lto_get_section_name.
8115         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
8116         * lto-streamer-out.c (produce_asm): Likewise.
8117         (copy_function): Likewise.
8118         (produce_symtab): Likewise.
8119         (produce_asm_for_decls): Likewise.
8120         * lto-streamer.c (lto_get_section_name): Add file_data argument.
8121         Rewrite to add random postfix to LTO sections.
8122         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
8123         (lto_get_section_name): Add file_data argument to prototype.
8124
8125 2010-07-10  Andi Kleen  <ak@linux.intel.com>
8126
8127         * lto-section-in.c (lto_section_name): Synchronize names
8128         with lto_get_section_name.
8129
8130 2010-07-10  Andi Kleen  <ak@linux.intel.com>
8131
8132         * lto-opts.c (lto_read_file_options): Check for missing section.
8133
8134 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
8135
8136         * ira.c (check_allocation): Correctly handle the case where an allocno
8137         with two objects was allocated to a single reg.
8138
8139 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
8140
8141         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
8142         (is_widening_mult_p): Likewise.
8143         (convert_to_widen): Use them.
8144         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
8145         well as integer ones.
8146
8147 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
8148
8149         * alias.c (true_dependence_1): New function, merged version of
8150         true_dependence and canon_true_dependence.
8151         (true_dependence): Simplify.
8152         (canon_true_dependence): Simplify.
8153
8154 2010-07-22  Richard Henderson  <rth@redhat.com>
8155
8156         PR target/45027
8157         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
8158         of V4SFmode for the SSE saves; increase stack alignment if needed.
8159         (ix86_gimplify_va_arg): Don't increase stack alignment here.
8160
8161 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
8162
8163         PR bootstrap/45028
8164         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
8165         call cprop_find_used_regs again via note_uses.
8166
8167 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
8168
8169         * alias.c (get_alias_set): Fix formatting issues.
8170
8171 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
8172
8173         PR middle-end/44878
8174         * stmt.c (expand_value_return):  Call promote_function_mode with
8175         a for_return argument of 2 when returning by reference.
8176
8177 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
8178
8179         PR debug/45024
8180         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
8181         unit DIE if we can find the scope DIE.
8182
8183 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
8184
8185         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
8186         changed.  Initialize OBJECT_SUBWORD.
8187         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
8188         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
8189         all callers changed.
8190         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
8191         (finish_allocno): Likewise.
8192         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
8193         (remove_low_level_allocnos): Likewise.
8194         (update_bad_spill_attribute): Likewise.
8195         (setup_min_max_allocno_live_range_point): Likewise.
8196         (sort_conflict_id_map): Likewise.
8197         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
8198         (ior_hard_reg_conflicts): New function.
8199         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
8200         (compress_conflict_vecs): Iterate over objects, not allocnos.
8201         (ira_add_live_range_to_object): New function.
8202         (object_range_compare_func): Renamed from allocno_range_compare_func.
8203         All callers changed.
8204         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
8205         subobjects, widen the min/max range of the lowest-order object to
8206         potentially include all other such low-order objects.
8207         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
8208         (check_allocation): Likewise.  Use more fine-grained tests for register
8209         conflicts.
8210         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
8211         allocno subobjects.
8212         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
8213         choices about which bits to set in each set.  Don't use
8214         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
8215         using the multiple sets we computed.
8216         (push_allocno_to_stack): Iterate over allocno subobjects.
8217         (all_conflicting_hard_regs_coalesced): New static function.
8218         (setup_allocno_available_regs_num): Use it.
8219         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
8220         subobjects.
8221         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
8222         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
8223         by ALLOCNO_NUM_OBJECTS.
8224         (calculate_spill_cost): Likewise.
8225         (color_pass): Express if statement in a more normal way.
8226         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
8227         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
8228         (setup_slot_coalesced_allocno_live_ranges): Likewise.
8229         (allocno_reload_assign): Likewise.
8230         (ira_reassign_pseudos): Likewise.
8231         (fast_allocation): Likewise.
8232         * ira-conflicts.c (build_conflict_bit_table): Likewise.
8233         (print_allocno_conflicts): Likewise.
8234         (ira_build_conflicts): Likewise.
8235         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
8236         callers changed.  Test subword 0 of each allocno for conflicts.
8237         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
8238         callers changed.  Iterate over allocno subobjects.
8239         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
8240         * ira-int.h (struct ira_allocno): New member: num_objects.
8241         Rename object to objects and change it into an array.
8242         (ALLOCNO_OBJECT): Add new argument N.
8243         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
8244         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
8245         (ior_hard_reg_conflicts): Declare.
8246         (ira_add_live_range_to_object): Declare.
8247         (ira_allocno_object_iterator): New.
8248         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
8249         (FOR_EACH_ALLOCNO_OBJECT): New macro.
8250         * ira-lives.c (objects_live): Renamed from allocnos_live; all
8251         uses changed.
8252         (allocnos_processed): New sparseset.
8253         (make_object_born): Renamed from make_allocno_born; take an
8254         ira_object_t argument.  All callers changed.
8255         (make_object_dead): Renamed from make_allocno_dead; take an
8256         ira_object_t argument.  All callers changed.
8257         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
8258         All callers changed.
8259         (mark_pseudo_regno_live): Iterate over allocno subobjects.
8260         (mark_pseudo_regno_dead): Likewise.
8261         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
8262         functions.
8263         (mark_ref_live): Detect subword accesses and call
8264         mark_pseudo_regno_subword_live as appropriate.
8265         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
8266         (process_bb_nodes_live): Deal with object-related updates first; set
8267         and test bits in allocnos_processed to avoid computing allocno
8268         statistics more than once.
8269         (create_start_finish_chains): Iterate over objects, not allocnos.
8270         (print_object_live_ranges): New function.
8271         (print_allocno_live_ranges): Use it.
8272         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
8273         and objects_live.
8274
8275 2010-07-22  Richard Guenther  <rguenther@suse.de>
8276
8277         PR lto/42451
8278         * gimple.c (gtc_next_dfs_num): New global.
8279         (struct sccs): Make value a union, add integer same_p member.
8280         (gtc_visit): New function.
8281         (gimple_types_compatible_p_1): New function, split out from ...
8282         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
8283         (iterative_hash_gimple_type): Adjust for sccs change.
8284
8285 2010-07-22  Martin Jambor  <mjambor@suse.cz>
8286
8287         PR tree-optimization/44891
8288         * tree-sra.c: Include gimple-pretty-print.h.
8289         (replace_uses_with_default_def_ssa_name): Renamed to
8290         get_repl_default_def_ssa_name, return the new SSA name instead of
8291         replacing the old one.
8292         (sra_modify_assign): Dump a message when removing a load, if the LHS
8293         is an SSA_NAME, do not do any propagation, just set the RHS to a
8294         default definition SSA NAME, type convert if necessary.
8295         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
8296
8297 2010-07-22  Richard Guenther  <rguenther@suse.de>
8298
8299         PR tree-optimization/45017
8300         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
8301         TYPE_PRECISION of integral types in addition to size.
8302
8303 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
8304
8305         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
8306         when no C library is specified.
8307
8308 2010-07-22  Martin Jambor  <mjambor@suse.cz>
8309
8310         * ipa-prop.h (struct ipa_node_params): Updated comment.
8311         (struct ipa_edge_args): Likewise.
8312         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
8313
8314 2010-07-22  Martin Jambor  <mjambor@suse.cz>
8315
8316         * cgraphunit.c (verify_edge_count_and_frequency): New function.
8317         (verify_cgraph_node): Verify frequencies of indirect edges.
8318         * tree-inline.c (tree_function_versioning): Update frequencies of
8319         indirect edges.
8320
8321 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8322
8323         PR target/43698
8324         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
8325         Set *arm_rev to be predicable.
8326
8327 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
8328
8329         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
8330         (LINK_COMMAND_SPEC_A): New.
8331         (DSYMUTIL): New.
8332         (DSYMUTIL_SPEC): New.
8333         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
8334         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
8335
8336 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
8337
8338         * calls.c (load_register_parameters): Move check for zero
8339         sized items so that only the call to
8340         mem_overlaps_already_clobbered_arg_p () is protected.
8341
8342 2010-07-22  Jan Hubicka  <jh@suse.cz>
8343
8344         * ipa-pure-const.c (varying_state): Break out from ...
8345         (get_function_state): ... here; always return varying_state
8346         when state would be NULL otherwise.
8347         (remove_node_data): Do not free varying state.
8348
8349 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
8350
8351         PR bootstrap/44970
8352         PR middle-end/45009
8353         * postreload.c: Include "target.h".
8354         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
8355         into account.
8356         (fixup_debug_insns): Don't copy the rtx.
8357         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
8358         Don't copy when replacing.  Call fixup_debug_insns in the case where
8359         we merged one add with another.
8360         (reload_combine_recognize_pattern): Fail if there aren't any uses.
8361         Try harder to determine whether we're picking a valid index register.
8362         Don't set store_ruid for an insn we're going to scan in the
8363         next iteration.
8364         (reload_combine): Remove unused code.
8365         (reload_combine_note_use): When updating use information for
8366         an old insn, ignore a use that occurs after store_ruid.
8367         * Makefile.in (postreload.o): Update dependencies.
8368
8369         * function.c (record_hard_reg_sets): Restrict the previous change
8370         to cases where the incoming nominal mode is the same as the
8371         incoming promoted mode and everything happens in MODE_INT.
8372
8373 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
8374
8375         PR debug/45015
8376         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
8377         ASM_OPERANDS_OUTPUT_IDX.
8378         (adjust_insn): For inline asm with multiple sets ensure first
8379         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
8380         the insn.
8381
8382 2010-07-21  Richard Henderson  <rth@redhat.com>
8383
8384         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
8385         comparison for avoiding xmm register saves.  Emit the xmm register
8386         saves explicitly.
8387         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
8388         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
8389         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
8390         Remove patterns and the associated splitters.
8391
8392 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
8393
8394         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
8395         and imagine parts of a complex, so that they can have the same
8396         base and fall into the same group.
8397
8398 2010-07-21  Richard Guenther  <rguenther@suse.de>
8399
8400         PR lto/45018
8401         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
8402         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
8403         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
8404
8405 2010-07-21  Martin Jambor  <mjambor@suse.cz>
8406
8407         PR tree-optimization/44900
8408         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
8409         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
8410
8411 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
8412
8413         PR middle-end/44738
8414         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
8415
8416 2010-07-21  Richard Guenther  <rguenther@suse.de>
8417
8418         PR middle-end/45013
8419         * tree-ssa.c (useless_type_conversion_p): Dispatch to
8420         gimple_types_compatible_p only when in lto.
8421         * gimple.c (gimple_types_compatible_p): Use canonical types
8422         to speed up comparison.
8423
8424 2010-07-21  Richard Guenther  <rguenther@suse.de>
8425
8426         * tree-flow.h (referenced_var): Move define ...
8427         * tree-flow-inline.h (referenced_var): ... here as an inline
8428         function.  Assert here ...
8429         * tree-dfa.c (referenced_var_lookup): ... instead of here.
8430         * tree-ssa.c (maybe_optimize_var): Check if the variable
8431         is in referenced vars.
8432         (execute_update_addresses_taken): Remove old broken check.
8433         * gimple-pretty-print.c (pp_points_to_solution): Use
8434         referenced_var_lookup.
8435         * tree-into-ssa.c (dump_decl_set): Likewise.
8436
8437 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
8438
8439         PR debug/45003
8440         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
8441         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
8442         ZERO_EXTEND here.
8443
8444 2010-07-20  Richard Henderson  <rth@redhat.com>
8445
8446         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
8447
8448 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
8449
8450         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
8451         computing the sum of the stack pointer and a large constant.
8452         * config/arm/constraints.md (M): Remove superfluous parentheses.
8453         (Pc): New constraint.
8454
8455 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
8456
8457         PR debug/45006
8458         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
8459         operand's type if exp is tcc_unary class tree.
8460
8461 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
8462
8463         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
8464         Reverse sense of if_then_else condition.
8465
8466 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
8467
8468         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
8469         * config/rs6000/rs6000.c (rs6000_override_options): Set
8470         rs6000_block_move_inline_limit appropriately.
8471         (expand_block_move): Use rs6000_block_move_inline_limit.
8472         * doc/invoke.texi (mblock-move-inline-limit): Document.
8473
8474 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
8475
8476         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
8477         FROM and TO.  All callers changed.  Don't look for tracked uses,
8478         just scan the RTL for DEBUG_INSNs and substitute.
8479         (reload_combine_recognize_pattern): Call fixup_debug_insns.
8480         (reload_combine): Ignore DEBUG_INSNs.
8481
8482 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
8483
8484         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
8485         depth to 8 from 5.
8486
8487         PR debug/45003
8488         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
8489         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
8490         instead of the result's type.
8491
8492 2010-07-20  Richard Guenther  <rguenther@suse.de>
8493
8494         PR tree-optimization/44977
8495         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
8496         SSA form.
8497
8498 2010-07-20  Richard Guenther  <rguenther@suse.de>
8499
8500         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
8501         (lto_symtab_merge_decls_2): Likewise.
8502         * gimple.h (gimple_types_compatible_p): Declare.
8503         * gimple.c (gimple_queue_type_fixup): Remove.
8504         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
8505         (gimple_compatible_complete_and_incomplete_type_p): New function.
8506         (gimple_types_compatible_p): Adjust.
8507         (gimple_register_type): Remove type fixup code.
8508         (print_gimple_types_stats): Adjust.
8509         (free_gimple_type_tables): Likewise.
8510         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
8511         * tree-ssa.c (useless_type_conversion_p): Likewise.
8512
8513 2010-07-20  Richard Guenther  <rguenther@suse.de>
8514
8515         PR middle-end/44971
8516         PR middle-end/44988
8517         * tree-ssa.c (maybe_optimize_var): New function split out from ...
8518         (execute_update_addresses_taken): ... here.
8519         (non_rewritable_mem_ref_base): Likewise.
8520         (execute_update_addresses_taken): Do not iterate over all referenced
8521         vars but just all local decls and parms.
8522         Properly check call and asm arguments and rewrite call arguments.
8523
8524 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
8525
8526         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
8527         to top level.
8528         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
8529         definitions ...
8530         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
8531         New macro.
8532         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
8533
8534 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
8535
8536         * gengtype.c (start_root_entry): New function, split out from
8537         write_root.  Check whether V is null and raise an error if so.
8538         (write_field_root): Check for V being null.  Don't raise an error here;
8539         set V to null instead.
8540         (write_root): Update comment above function.  Use start_root_entry.
8541
8542 2010-07-19  Xinliang David Li  <davidxl@google.com>
8543
8544         PR testsuite/44932
8545         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
8546         def edges.
8547         (find_uninit_use): Add dump.
8548         (is_use_properly_guarded): Ditto.
8549         (warn_uninitialized_phi): Ditto.
8550         (execute_late_warn_uninitialized): Ditto.
8551
8552 2010-07-19  Richard Guenther  <rguenther@suse.de>
8553
8554         PR middle-end/44941
8555         * expr.c (emit_block_move_hints): Move zero size check first.
8556         Move asserts to more useful places.
8557         * calls.c (load_register_parameters): Check for zero size.
8558
8559 2010-07-19  Richard Henderson  <rth@redhat.com>
8560
8561         * tree-optimize.c (execute_all_early_local_passes): New.  Change
8562         cgraph_state here ...
8563         (execute_early_local_optimizations): ... not here.  Remove.
8564         (pass_early_local_passes, pass_all_early_optimizations): Update.
8565
8566 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
8567
8568         * postreload.c (reload_combine_closest_single_use): Ignore the
8569         number of uses for DEBUG_INSNs.
8570         (fixup_debug_insns): New static function.
8571         (reload_combine_recognize_const_pattern): Use it.  Don't let the
8572         main loop be affected by DEBUG_INSNs.
8573         Really disallow moving adds past a jump insn.
8574         (reload_combine_recognize_pattern): Don't update use_ruid here.
8575         (reload_combine_note_use): Do it here.
8576         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
8577
8578 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
8579
8580         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
8581         of a loop.
8582         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
8583
8584 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
8585
8586         * config/i386/darwin.h: Define darwin_emit_branch_islands.
8587         (TARGET_MACHO_BRANCH_ISLANDS): New.
8588         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
8589         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
8590         default value.
8591         * config/i386/i386.c (output_pic_addr_const): Do not emit
8592         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
8593         (x86_output_mi_thunk): Adjust symbol creation.
8594         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
8595         Remove out of date comment.
8596         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
8597         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
8598         (DARWIN_GENERATE_ISLANDS): Ditto.
8599         (output_call):  Do not emit branch islands unless
8600         darwin_emit_branch_islands is set.
8601         * config/darwin.c: Declare darwin_emit_branch_islands.
8602         (machopic_indirect_data_reference): Do not emit unless
8603         darwin_emit_branch_islands is set.
8604         (darwin_override_options): Set darwin_emit_branch_islands
8605         where it is needed.
8606         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
8607
8608 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8609
8610         * doc/sourcebuild.texi (Effective-Target Keywords): Document
8611         sse_runtime, sse2_runtime.
8612
8613 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
8614
8615         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
8616         low half of a single-register SCmode return value before ORing
8617         it with the high half.
8618         * config/mips/mips16.S (MERGE_GPRf): Likewise.
8619
8620 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8621
8622         PR target/44805
8623         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
8624         on all targets.
8625
8626 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
8627
8628         PR target/42235
8629         * postreload.c (reload_cse_move2add): Return bool, true if anything.
8630         changed.  All callers changed.
8631         (move2add_use_add2_insn): Likewise.
8632         (move2add_use_add3_insn): Likewise.
8633         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
8634         reload_combine.
8635         (RELOAD_COMBINE_MAX_USES): Bump to 16.
8636         (last_jump_ruid): New static variable.
8637         (struct reg_use): New members CONTAINING_MEM and RUID.
8638         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
8639         (reload_combine_split_one_ruid, reload_combine_split_ruids,
8640         reload_combine_purge_insn_uses, reload_combine_closest_single_use
8641         reload_combine_purge_reg_uses_after_ruid,
8642         reload_combine_recognize_const_pattern): New static functions.
8643         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
8644         is true for our reg and that we have available index regs.
8645         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
8646         callers changed.  Use them to initialize fields in struct reg_use.
8647         (reload_combine): Initialize last_jump_ruid.  Be careful when to
8648         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
8649         Call reload_combine_recognize_const_pattern.
8650         (reload_combine_note_store): Update REAL_STORE_RUID field.
8651
8652 2010-07-16  Jason Merrill  <jason@redhat.com>
8653
8654         * Makefile.in (opts-common.o): Depend on options.h.
8655
8656 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
8657
8658         * tree.c (build_common_builtin_nodes): Use build_function_type_list
8659         instead of build_function_type.
8660         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
8661         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
8662
8663 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
8664
8665         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
8666         do all the work.
8667         (rs6000_emit_int_cmove): Use function pointers for insn generation.
8668         Don't force values into registers unnecessarily.
8669         (output_isel): Assert that we're not given conditions we can't handle.
8670         Delete corresponding code.
8671         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
8672         scc_comparison_operator constraint.  Permit 0 for the consequent
8673         operand.  Permit any GPR for the alternative operand.
8674         (isel_unsigned_<mode>): Likewise.
8675
8676 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
8677
8678         PR target/44942
8679         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
8680         argument to const_tree.
8681         * config/i386/i386.c (function_arg_advance): If padding needs to be
8682         inserted before argument, increment cum->words by number of padding
8683         words as well.
8684         (contains_aligned_value_p): Change argument to const_tree.
8685         (ix86_function_arg_boundary): Change second argument to const_tree.
8686
8687 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
8688
8689         PR target/42235
8690         * function.c (record_hard_reg_sets): New static function.
8691         (assign_parm_setup_reg): If an optab for extending exists and the
8692         generated code clobbbers no hard regs, emit the insn directly and
8693         create a REG_EQUIV note.
8694
8695 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
8696
8697         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
8698         TREE_CHAIN.
8699         * c-typeck.c (push_init_level): Likewise.
8700         (process_init_element): Likewise.
8701
8702 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
8703
8704         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
8705         (integer_three_node): Add.
8706         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
8707         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
8708         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
8709         of call build_int_cst.
8710         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
8711         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
8712         (find_interesting_uses_address): Ditto.
8713         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
8714         * tree-eh.c (lower_eh_constructs_2): Ditto.
8715         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
8716         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
8717         * expmed.c (expand_divmod): Ditto.
8718         * tree-mudflap.c (mx_register_decls): Ditto.
8719         * varasm.c (array_size_for_constructor): Ditto.
8720         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
8721         * c-parser.c (c_parser_postfix_expression): Ditto.
8722
8723 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
8724
8725         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
8726         New static variables.
8727         (reload_combine_recognize_pattern): New static function, broken out
8728         of reload_combine.
8729         (reload_combine): Use it.  Only initialize first_index_reg and
8730         last_index_reg once.
8731
8732 2010-07-15  Richard Henderson  <rth@redhat.com>
8733
8734         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
8735         when done.
8736
8737 2010-07-15  Jan Hubicka  <jh@suse.cz>
8738
8739         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
8740         comdats for broken gold.
8741         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
8742
8743 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
8744
8745         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
8746
8747 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
8748
8749         * tree.h (DECL_CHAIN): Define.
8750         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
8751         * c-decl.c: Likewise.
8752         * c-parser.c: Likewise.
8753         * c-typeck.c: Likewise.
8754         * cfgexpand.c: Likewise.
8755         * cgraph.c: Likewise.
8756         * cgraphunit.c: Likewise.
8757         * combine.c: Likewise.
8758         * config/alpha/alpha.c: Likewise.
8759         * config/arm/arm.c: Likewise.
8760         * config/frv/frv.c: Likewise.
8761         * config/i386/i386.c: Likewise.
8762         * config/i386/winnt-cxx.c: Likewise.
8763         * config/ia64/ia64.c: Likewise.
8764         * config/iq2000/iq2000.c: Likewise.
8765         * config/mep/mep.c: Likewise.
8766         * config/mips/mips.c: Likewise.
8767         * config/pa/som.h: Likewise.
8768         * config/rs6000/rs6000.c: Likewise.
8769         * config/s390/s390.c: Likewise.
8770         * config/sh/sh.c: Likewise.
8771         * config/sh/symbian-cxx.c: Likewise.
8772         * config/sparc/sparc.c: Likewise.
8773         * config/spu/spu.c: Likewise.
8774         * config/stormy16/stormy16.c: Likewise.
8775         * config/vxworks.c: Likewise.
8776         * config/xtensa/xtensa.c: Likewise.
8777         * coverage.c: Likewise.
8778         * dbxout.c: Likewise.
8779         * dwarf2out.c: Likewise.
8780         * emit-rtl.c: Likewise.
8781         * expr.c: Likewise.
8782         * function.c: Likewise.
8783         * gimple-low.c: Likewise.
8784         * gimple-pretty-print.c: Likewise.
8785         * gimplify.c: Likewise.
8786         * integrate.c: Likewise.
8787         * ipa-inline.c: Likewise.
8788         * ipa-prop.c: Likewise.
8789         * ipa-split.c: Likewise.
8790         * ipa-struct-reorg.c: Likewise.
8791         * ipa-type-escape.c: Likewise.
8792         * langhooks.c: Likewise.
8793         * lto-cgraph.c: Likewise.
8794         * omp-low.c: Likewise.
8795         * stor-layout.c: Likewise.
8796         * tree-cfg.c: Likewise.
8797         * tree-complex.c: Likewise.
8798         * tree-dfa.c: Likewise.
8799         * tree-dump.c: Likewise.
8800         * tree-inline.c: Likewise.
8801         * tree-mudflap.c: Likewise.
8802         * tree-nested.c: Likewise.
8803         * tree-object-size.c: Likewise.
8804         * tree-pretty-print.c: Likewise.
8805         * tree-sra.c: Likewise.
8806         * tree-ssa-live.c: Likewise.
8807         * tree-ssa-loop-niter.c: Likewise.
8808         * tree-ssa-math-opts.c: Likewise.
8809         * tree-ssa-reassoc.c: Likewise.
8810         * tree-ssa-sccvn.c: Likewise.
8811         * tree-ssa-structalias.c: Likewise.
8812         * tree-tailcall.c: Likewise.
8813         * tree-vrp.c: Likewise.
8814         * tree.c: Likewise.
8815         * var-tracking.c: Likewise.
8816         * varasm.c: Likewise.
8817
8818 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8819
8820         PR target/44877
8821         * config/spu/spu.c (spu_expand_builtin_1): Allow references
8822         (as well as pointers) as argument to mask_for_load builtins.
8823
8824 2010-07-15  Richard Guenther  <rguenther@suse.de>
8825
8826         PR tree-optimization/44946
8827         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
8828         with accessing only padding properly.
8829
8830 2010-07-15  Jan Hubicka  <jh@suse.cz>
8831
8832         * ipa.c (function_and_variable_visibility): Variables marked as used
8833         should not be localized.
8834
8835 2010-07-15  Jan Hubicka  <jh@suse.cz>
8836
8837         * cgraph.c: Include lto-streamer.h
8838         (change_decl_assembler_name): Work when assembler name hash is at place.
8839         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
8840         be sure to rename it to avoid name clash.
8841         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
8842         Localize hidden symbols only when locally defined.
8843
8844 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
8845
8846         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
8847
8848 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
8849             Kevin F. Quinn  <kevquinn@gentoo.org>
8850
8851         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
8852         * common.opt: Add -Wtrampolines.
8853         * doc/invoke.texi: Add -Wtrampolines.
8854
8855 2010-07-15  Jie Zhang  <jie@codesourcery.com>
8856
8857         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
8858         cortex_a8_issue_ls.
8859
8860 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
8861
8862         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
8863         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
8864
8865 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8866
8867         * config/spu/spu.c (reg_names): Remove prototype.
8868         (call_used_regs): Likewise.
8869
8870 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
8871
8872         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
8873         "unused" with attribute "used".
8874         (__JCR_END__): Likewise.
8875         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
8876         "used" attribute.
8877         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
8878
8879 2010-07-14  Richard Guenther  <rguenther@suse.de>
8880
8881         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
8882         (maybe_fixup_decls): Likewise.
8883         (input_gimple_stmt): Do not fixup anything.
8884         * lto-streamer-out.c (output_gimple_stmt): Make sure all
8885         non-automatic variable uses are wrapped inside a MEM_REF.
8886
8887 2010-07-14  Richard Henderson  <rth@redhat.com>
8888
8889         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
8890         for functions.
8891         * varasm.c (assemble_variable): Remove early exit for functions;
8892         assert that we're given a variable.
8893
8894 2010-07-14  Jie Zhang  <jie@codesourcery.com>
8895
8896         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
8897         cortex_a8_default when neon_type is not none.
8898
8899 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
8900
8901         * lower-subreg.c (subreg_context): New static bitmap.
8902         (decompose_multiword_subregs): Allocate and free it.
8903         (find_decomposable_subregs): Set a bit in it for a register that
8904         occurs in a subreg that changes mode but not size.
8905         (can_decompose_p): Test it instead of non_decomposable_context.
8906
8907 2010-07-14  Richard Guenther  <rguenther@suse.de>
8908
8909         PR tree-optimization/44824
8910         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
8911         is_gimple_mem_ref_addr.
8912         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
8913         non-decl_address_invariant_p addresses.
8914
8915 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
8916
8917         * reload.c (find_reloads): Revert code to penalize small register
8918         classes that was brought in with the IRA merge.
8919
8920 2010-07-14  Richard Guenther  <rguenther@suse.de>
8921
8922         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
8923         as base of ARRAY_REFs.
8924
8925 2010-07-14  Richard Guenther  <rguenther@suse.de>
8926
8927         PR middle-end/44930
8928         * tree-pretty-print.c (do_niy): Do not print a newline.
8929
8930 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
8931
8932         * ira-int.h (struct ira_object): New.
8933         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
8934         (struct ira_allocno): Remove members min, max,
8935         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
8936         conflict_allocnos_num and conflict_vec_p.  Add new member object.
8937         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
8938         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
8939         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
8940         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
8941         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
8942         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
8943         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
8944         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
8945         an ira_object_t rather than ira_allocno_t.  All uses changed.
8946         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
8947         contains a vector of ira_object_t; all uses changed.
8948         (ira_objects_num): Declare variable.
8949         (ira_create_allocno_object): Declare function.
8950         (ira_conflict_vector_profitable_p): Adjust prototype.
8951         (ira_allocate_conflict_vec): Renamed from
8952         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
8953         (ira_allocate_object_conflicts): Renamed from
8954         ira_allocate_allocno_conflicts; first arg now ira_object_t.
8955         (struct ira_object_iterator): New.
8956         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
8957         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
8958         to conflict_vec_p.  All uses changed.
8959         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
8960         Changed to take into account that conflicts are now tracked for
8961         objects.
8962         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
8963         Args changed to accept ira_object_t.  All uses changed.
8964         (allocnos_conflict_p): New static function.
8965         (collected_conflict_objects): Renamed from collected_allocno_objects;
8966         now a vector of ira_object_t.  All uses changed.
8967         (build_conflict_bit_table): Changed to take into account that
8968         conflicts are now tracked for objects.
8969         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
8970         (print_allocno_conflicts, ira_build_conflicts): Likewise.
8971         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
8972         setup_allocno_left_conflicts_size, allocno_reload_assign,
8973         fast_allocation): Likewise.
8974         * ira-lives.c (make_hard_regno_born, make_allocno_born)
8975         process_single_reg_class_operands, process_bb_node_lives): Likewise.
8976         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
8977         Likewise.
8978         * ira-build.c (ira_objects_num): New variable.
8979         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
8980         contains a vector of ira_object_t; all uses changed.
8981         (ira_object_id_map_vec): Corresponding change.
8982         (object_pool): New static variable.
8983         (initiate_allocnos): Initialize it.
8984         (finish_allocnos): Free it.
8985         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
8986         New functions.
8987         (ira_create_allocno): Don't set members that were removed.
8988         (ira_set_allocno_cover_class): Don't change conflict hard regs.
8989         (merge_hard_reg_conflicts): Changed to take into account that
8990         conflicts are now tracked for objects.
8991         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
8992         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
8993         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
8994         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
8995         setup_min_max_conflict_allocno_ids, ):  Likewise.
8996         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
8997         to ira_object_t; all callers changed.
8998         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
8999         to ira_object_t, all callers changed.
9000         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
9001         to ira_object_t, all callers changed.
9002         (conflict_check, curr_conflict_check_tick): Renamed from
9003         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
9004         changed.
9005         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
9006         arg changed to ira_object_t, all callers changed.
9007         (create_cap_allocno): Call ira_create_allocno_object.
9008         (finish_allocno): Free the corresponding object.
9009         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
9010         callers changed.  Adjusted for dealing with objects.
9011         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
9012         dealing with objects.
9013         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
9014
9015         * ira-int.h (struct live_range): Rename allocno member to object
9016         and change type to ira_object_t.
9017         (struct ira_object): New member live_ranges.
9018         (struct ira_allocno): Remove member live_ranges.
9019         (ALLOCNO_LIVE_RANGES): Remove.
9020         (OBJECT_LIVE_RANGES): New macro.
9021         (ira_create_live_range, ira_copy_live_range_list,
9022         ira_merge_live_range_list, ira_live_ranges_intersect_p,
9023         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
9024         * ira-build.c (ira_create_object): Initialize live ranges here.
9025         (ira_create_allocno): Not here.
9026         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
9027         changed to ira_object_t, all callers changed.
9028         (copy_live_range): Rename from copy_allocno_live_range, all callers
9029         changed.
9030         (ira_copy_live_range_list): Rename from
9031         ira_copy_allocno_live_range_list, all callers changed.
9032         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
9033         all callers changed.
9034         (ira_live_ranges_intersect_p): Rename from
9035         ira_allocno_live_ranges_intersect_p, all callers changed.
9036         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
9037         callers changed.
9038         (ira_finish_live_range_list): Rename from
9039         ira_finish_allocno_live_range_list, all callers changed.
9040         (change_object_in_range_list): Rename from change_allocno_in_range_list,
9041         last arg changed to ira_object_t, all callers changed.
9042         (finish_allocno): Changed to expect live ranges in the allocno's object.
9043         (move_allocno_live_ranges, copy_allocno_live_ranges,
9044         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
9045         ira_flattening, ira_build): Likewise.
9046         * ira-color.c (allocnos_have_intersected_live_ranges_p,
9047         slot_coalesced_allocno_live_ranges_intersect,
9048         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
9049         * ira-conflicts.c (build_conflict_bit_table): Likewise.
9050         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
9051         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
9052         make_allocno_dead, create_start_finish_chains,
9053         remove_some_program_points_and_update_live_ranges,
9054         ira_debug_live_range_list): Likewise.
9055
9056         * ira-int.h (ira_object_conflict_iterator): Rename from
9057         ira_allocno_conflict_iterator.
9058         (ira_object_conflict_iter_init): Rename from
9059         ira_allocno_conflict_iter_init, second arg changed to
9060         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
9061         FOR_EACH_ALLOCNO_CONFLICT.
9062         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
9063         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
9064         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
9065         * ira-conflicts.c (print_allocno_conflicts): Likewise.
9066
9067 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
9068
9069         PR other/44874
9070         * tree-dump.c (dump_options): Add enumerate_locals entry.
9071         Add TDF_NOID exclusion to all entry.
9072         * tree-dump.h (dump_enumerated_decls): Declare.
9073         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
9074         Don't display type uid.
9075         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
9076         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
9077         * tree-ssa-live.c: Include gimple.h.
9078         (numbered_tree_d): New struct.
9079         (numbered_tree): New typedef.
9080         (DEF_VEC_O (numbered_tree): New.
9081         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
9082         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
9083         (dump_enumerated_decls): Likewise.
9084         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
9085         debug info and flag_dump_final_insns, call dump_enumerated_decls.
9086         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
9087         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
9088
9089 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
9090
9091         * expmed.h (MAX_BITS_PER_WORD): Move to...
9092         * defaults.h (MAX_BITS_PER_WORD): ...here.
9093
9094 2010-07-13  DJ Delorie  <dj@redhat.com>
9095
9096         * config/h8300/h8300.c (h8300_init_once): Default to
9097         -fstrict_volatile_bitfields.
9098
9099         * config/sh/sh.c (sh_override_options): Default to
9100         -fstrict_volatile_bitfields.
9101
9102         * config/rx/rx.c (rx_option_override): New.
9103
9104         * config/m32c/m32c.c (m32c_override_options): Default to
9105         -fstrict_volatile_bitfields.
9106
9107 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
9108
9109         * tree.h (build_function_call_expr): Delete.
9110         (build_call_expr_loc_array): New function.
9111         (build_call_expr_loc_vec): New function.
9112         * tree-flow.h (struct omp_region): Change type of ws_args field
9113         to a VEC.
9114         * builtins.c (build_function_call_expr): Delete.
9115         (build_call_expr_loc_array): New function.
9116         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
9117         (build_call_expr): Likewise.
9118         (build_call_expr_loc_vec): New function.
9119         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
9120         build_function_call_expr.
9121         * expr.c (emutls_var_address): Likewise.
9122         * varasm.c (emutls_common_1): Likewise.
9123         * omp-low.c (expand_omp_atomic_mutex): Likewise.
9124         (expand_omp_taskreg): Adjust for new type of region->ws_args.
9125         (get_ws_args_for): Return a VEC instead of a tree.
9126         (expand_parallel_call): Call build_call_expr_loc_vec instead of
9127         build_function_call_expr.
9128         * stor-layout.c (self_referential_size): Likewise.
9129
9130 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
9131
9132         PR testsuite/44701
9133         * recog.c (constrain_operands): Allow side-effects in memory
9134         operands if either < or > constraint is used, rather than if
9135         both < and > is used.
9136
9137 2010-07-13  Richard Guenther  <rguenther@suse.de>
9138
9139         PR middle-end/44911
9140         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
9141         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
9142         without name.
9143
9144 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
9145
9146         PR target/44761
9147         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
9148         to variable emited.
9149         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
9150         * config/sh/sh.md (symGOT_load): Likewise.
9151         (symDTPOFF2reg): Likewise.
9152         (symTPOFF2reg): Likewise.
9153
9154 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9155
9156         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
9157         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
9158
9159 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9160
9161         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
9162         explanation.
9163         Find ucontext_t * on Solaris 11.
9164         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
9165         Handle new Solaris 11 __sighndlr patterns.
9166
9167 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
9168
9169         PR debug/44901
9170         * vec.h (VEC_block_remove): Fix comment.
9171         * tree-ssa-live.c (remove_unused_locals): Don't use
9172         VEC_unordered_remove on local_decls, instead replace a single
9173         vector element in each iteration if at least one element had
9174         to be removed and VEC_truncate at the end.
9175         * omp-low.c (expand_omp_taskreg): Likewise.
9176
9177 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9178
9179         * c-decl.c (finish_function): Fix typo in comment.
9180
9181 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
9182
9183         PR bootstrap/44921
9184         * postreload.c (move2add_use_add3_insn): Silence gcc warning
9185         on min_regno.
9186
9187 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
9188
9189         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
9190         (simplify_stmt_using_ranges): Use it.
9191
9192 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9193
9194         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
9195         member.  Do not mark as GTY(()).
9196         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
9197         (spu_builtin_decls): New static variable.
9198         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
9199         (spu_init_builtins): Likewise.
9200         (spu_builtin_mul_widen_even): Likewise.
9201         (spu_builtin_mul_widen_odd): Likewise.
9202         (spu_builtin_mask_for_load): Likewise.
9203         (spu_builtin_vec_perm): Likewise.
9204         * config/spu/spu-c.c: Include "target.h".
9205         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
9206         of using spu_builtins[].fndecl.
9207
9208 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9209
9210         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
9211         imply -minterlink-mips16.
9212
9213 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9214
9215         * config/mips/mips.h (mips16_globals): Declare.
9216         (SWITCHABLE_TARGET): Define.
9217         * config/mips/mips.c: Include target-globals.h.
9218         (mips16_globals): New variable.
9219         (mips_set_mips16_mode): Use save_target_globals and
9220         restore_target_globals instead of target_reinit.
9221
9222 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9223
9224         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
9225         to say that the function can be called more than once.
9226         * target-globals.c (save_target_globals): Call init_reg_sets.
9227
9228 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9229
9230         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
9231         * bb-reorder.h: New file.
9232         * bb-reorder.c (default_target_bb_reorder): New variable.
9233         (this_target_bb_reorder): New conditional variable.
9234         (uncond_jump_length): Redefine as a macro.
9235         * target-globals.h (this_target_bb_reorder): Declare.
9236         (target_globals): Add a bb_reorder field.
9237         (restore_target_globals): Copy the bb_reorder field to
9238         this_target_bb-reorder.
9239         * target-globals.c: Include bb-reorder.h.
9240         (default_target_globals): Initialize the bb_reorder field.
9241         (save_target_globals): Likewise.
9242
9243 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9244
9245         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
9246         * gcse.h: New file.
9247         * gcse.c: Include gcse.h.
9248         (default_target_gcse): New variable.
9249         (this_target_gcse): New conditional variable.
9250         (can_copy): Redefine as a macro.
9251         (can_copy_init_p): New macro.
9252         (can_copy_p): Remove can_copy_init_p.
9253         * target-globals.h (this_target_gcse): Declare.
9254         (target_globals): Add a gcse field.
9255         (restore_target_globals): Copy the gcse field to this_target_gcse.
9256         * target-globals.c: Include gcse.h.
9257         (default_target_globals): Initialize the gcse field.
9258         (save_target_globals): Likewise.
9259
9260 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9261
9262         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
9263         and x_ira_prohibited_mode_move_regs_initialized_p.
9264         (ira_prohibited_mode_move_regs): Redefine as a macro.
9265         * ira.c (ira_prohibited_mode_move_regs): Delete.
9266         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
9267
9268 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9269
9270         * reload.h (target_reload): Add x_cached_reg_save_code and
9271         x_cached_reg_restore_code.
9272         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
9273         Redefine as macros.
9274
9275 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9276
9277         * Makefile.in (target-globals.o): Depend on builtins.h.
9278         * builtins.h: New file.
9279         * builtins.c: Include builtins.h.
9280         (default_target_builtins): New variable.
9281         (this_target_builtins): New conditional variable.
9282         (apply_args_mode, apply_result_mode): Redefine as macros.
9283         * target-globals.h (this_target_builtins): Declare.
9284         (target_globals): Add a builtins field.
9285         (restore_target_globals): Copy the builtins field to
9286         this_target_builtins.
9287         * target-globals.c: Include builtins.h.
9288         (default_target_globals): Initialize the builtins field.
9289         (save_target_globals): Likewise.
9290
9291 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9292
9293         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
9294         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
9295         from expmed.c.
9296         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
9297         (alg_hash, alg_hash_used_p): New macros.
9298         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
9299         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
9300         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
9301
9302 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9303
9304         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
9305         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
9306         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
9307         (this_op_costs, costs_classes): Redefine as macros.
9308         (record_reg_classes): Don't take op_costs as a parameter.
9309         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
9310         (scan_one_insn): Update call to record_operand_costs.
9311
9312 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9313
9314         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
9315         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
9316         (target_ira_int): New structure.
9317         (default_target_ira_int): Declare.
9318         (this_target_ira_int): Declare as a variable or define as a macro.
9319         (ira_reg_mode_hard_regset, ira_register_move_cost)
9320         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
9321         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
9322         (prohibited_class_mode_regs, ira_important_classes_num)
9323         (ira_important_classes, ira_reg_class_intersect)
9324         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
9325         (ira_reg_class_union): Redefine as macros.
9326         * ira.h (target_ira): New structure.
9327         (default_target_ira): Declare.
9328         (this_target_ira): Declare as a variable or define as a macro.
9329         (ira_available_class_regs, ira_hard_regno_cover_class)
9330         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
9331         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
9332         (ira_class_hard_regs_num): Redefine as macros.
9333         * ira.c (default_target_ira, default_target_ira_int): New variables.
9334         (this_target_ira, this_target_ira_int): New conditional variables.
9335         (ira_reg_mode_hard_regset, ira_memory_move_cost)
9336         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
9337         (ira_class_subset_p): Delete.
9338         (no_unit_alloc_regs): Redefine as a macro.
9339         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
9340         (ira_class_hard_regs_num, ira_class_hard_reg_index)
9341         (ira_available_class_regs): Delete.
9342         (alloc_reg_class_subclasses): Redefine as a macro.
9343         (ira_reg_class_cover_size, ira_reg_class_cover)
9344         (ira_important_classes_num, ira_important_classes)
9345         (ira_important_class_nums, ira_class_translate): Delete.
9346         (cover_class_order): Document the variable's lifetime.
9347         (reorder_important_classes): Don't set ira_important_class_nums.
9348         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
9349         (ira_reg_class_super_classes, ira_reg_class_union)
9350         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
9351         Delete.
9352         (setup_reg_class_nregs): Don't set ira_max_regs.
9353         (prohibited_class_mode_regs): Delete.
9354         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
9355         (target_globals): Add ira and ira_int fields.
9356         (restore_target_globals): Copy the ira field to this_target_ira
9357         and the ira_int field to this_target_ira_int.
9358         * target-globals.c: Include ira-int.h.
9359         (default_target_globals): Initialize the ira and ira_int fields.
9360         (save_target_globals): Likewise.
9361
9362 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9363
9364         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
9365         * cfgloop.h (target_cfgloop): New structure.
9366         (default_target_cfgloop): Declare.
9367         (this_target_cfgloop): Declare as a variable or define as a macro.
9368         (target_avail_regs, target_clobbered_regs, target_res_regs)
9369         (target_reg_cost, target_spill_cost): Redefine as macros.
9370         * cfgloopanal.c (default_target_cfgloop): New variable.
9371         (this_target_cfgloop): New conditional variable.
9372         (target_avail_regs, target_clobbered_regs, target_res_regs)
9373         (target_reg_cost, target_spill_cost): Delete.
9374         * target-globals.h (this_target_cfgloop): Declare.
9375         (target_globals): Add a cfgloop field.
9376         (restore_target_globals): Copy the cfgloop field to
9377         this_target_cfgloop.
9378         * target-globals.c: Include cfgloop.h.
9379         (default_target_globals): Initialize the cfgloop field.
9380         (save_target_globals): Likewise.
9381
9382 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9383
9384         * regs.h (target_regs): Add x_direct_load, x_direct_store and
9385         x_float_extend_from_mem.
9386         (direct_load, direct_store, float_extend_from_mem): New macros.
9387         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
9388
9389 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9390
9391         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
9392         (target-globals.o): Depend on $(LIBFUNCS_H).
9393         * libfuncs.h: Include hashtab.h.
9394         (libfunc_entry): Moved from optabs.c.
9395         (target_libfuncs): New structure.
9396         (default_target_libfuncs): Declare.
9397         (this_target_libfuncs): Declare as a variable or define as a macro.
9398         (libfunc_table): Redefine as a macro.
9399         * optabs.c (default_target_libfuncs): New variable.
9400         (this_target_libfuncs): New conditional variable.
9401         (libfunc_table): Delete.
9402         (libfunc_entry): Moved to optabs.h.
9403         (libfunc_hash): Redefine as a macro.
9404         (hash_libfunc, eq_libfunc): Fix comments.
9405         (init_optabs): Use libfunc_hash to detect cases where the function
9406         has already been called.  Clear the hash table instead of
9407         recreating it.
9408         * target-globals.h (this_target_libfuncs): Declare.
9409         (target_globals): Add a libfuncs field.
9410         (restore_target_globals): Copy the libfuncs field to
9411         this_target_libfuncs.
9412         * target-globals.c: Include libfuncs.h.
9413         (default_target_globals): Initialize the libfuncs field.
9414         (save_target_globals): Likewise.
9415
9416 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9417
9418         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
9419         in all dependency lists.
9420
9421 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9422
9423         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
9424         * optabs.h (target_optabs): New structure.
9425         (default_target_optabs): Declare.
9426         (this_target_optabs): Declare as a variable or define as a macro.
9427         (optab_table, convert_optab_table, direct_optab_table): Redefine
9428         as macros.
9429         * optabs.c (default_target_optabs): New variable.
9430         (this_target_optabs): New conditional variable.
9431         (optab_table, convert_optab_table, direct_optab_table): Delete.
9432         * target-globals.h (this_target_optabs): Declare.
9433         (target_globals): Add a optabs field.
9434         (restore_target_globals): Copy the optabs field to
9435         this_target_optabs.
9436         * target-globals.c: Include expr.h and optabs.h.
9437         (default_target_globals): Initialize the optabs field.
9438         (save_target_globals): Likewise.
9439
9440 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9441
9442         * flags.h (target_flagstate): Add x_flag_excess_precision.
9443         (flag_excess_precision): Redefine as a macro.
9444         * toplev.c (flag_excess_precision): Delete.
9445
9446 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9447
9448         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
9449         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
9450         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
9451         (no_caller_save_reg_set): Redefine as a macro.
9452         * reload.h (target_reload): Add x_caller_save_initialized_p and
9453         x_regno_save_mode.
9454         (caller_save_initialized_p): Redefine as a macro.
9455         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
9456         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
9457         (regno_save_mode): Redefine as a macro.
9458
9459 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9460
9461         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
9462         * expmed.h: New file.
9463         * expmed.c (default_target_costs): New variable.
9464         (this_target_costs): New conditional variable.
9465         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
9466         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
9467         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
9468         * target-globals.h (this_target_expmed): Declare.
9469         (target_globals): Add a expmed field.
9470         (restore_target_globals): Copy the expmed field to
9471         this_target_expmed.
9472         * target-globals.c: Include expmed.h.
9473         (default_target_globals): Initialize the expmed field.
9474         (save_target_globals): Likewise.
9475
9476 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9477
9478         * Makefile.in (target-globals.o): Depend on reload.h.
9479         * reload.h (target_reload): New structure.
9480         (default_target_reload): Declare.
9481         (this_target_reload): Declare as a variable or define as a macro.
9482         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
9483         * reload1.c (default_target_reload): New variable
9484         (this_target_reload): New conditional variable.
9485         (indirect_symref_ok, double_reg_address_ok): Delete.
9486         (spill_indirect_levels): Redefine as a macro.
9487         * target-globals.h (this_target_reload): Declare.
9488         (target_globals): Add a reload field.
9489         (restore_target_globals): Copy the reload field to
9490         this_target_reload.
9491         * target-globals.c: Include hard-reg-set.h.
9492         (default_target_globals): Initialize the reload field.
9493         (save_target_globals): Likewise.
9494
9495 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9496
9497         * rtl.h (target_rtl): Add x_static_reg_base_value.
9498         * alias.c (static_reg_base_value): Redefine as a macro.
9499
9500 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9501
9502         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
9503         (GTFILES): Remove reginfo.c.
9504         * rtl.h (target_rtl): Add x_top_of_stack.
9505         (top_of_stack): New macro.
9506         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
9507         (top_of_stack): Delete.
9508
9509 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9510
9511         * regs.h (target_regs): Add x_hard_regs_of_mode,
9512         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
9513         x_may_move_out_cost and x_last_mode_for_init_move_cost.
9514         (have_regs_of_mode, contains_reg_of_mode, move_cost)
9515         (may_move_in_cost, may_move_out_cost): Redefine as macros.
9516         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
9517         (may_move_in_cost, may_move_out_cost): Delete.
9518         (last_mode_for_init_move_cost): Redefine as a macro.
9519
9520 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9521
9522         * hard-reg-set.h (target_hard_regs): New structure.
9523         (default_target_hard_regs): Declare.
9524         (this_target_hard_regs): Declare as a variable or define as a macro.
9525         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
9526         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
9527         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
9528         (reg_class_size, reg_class_subclasses, reg_class_subunion)
9529         (reg_class_superunion, reg_names): Redefine as macros.
9530         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
9531         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
9532         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
9533         (reg_class_contents, reg_class_size, reg_class_subclasses)
9534         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
9535         (default_target_hard_regs): New variable
9536         (this_target_hard_regs, initial_call_really_used_regs)
9537         (initial_reg_alloc_order): New conditional variables.
9538         (initial_reg_names): New variable.
9539         (init_reg_sets): Assert that initial_call_really_used_regs,
9540         initial_reg_alloc_order and initial_reg_names
9541         are all the same size as their variable counterparts.  Use them to
9542         initialize those counterparts.
9543         * target-globals.h (this_target_hard_regs): Declare.
9544         (target_globals): Add a hard_regs field.
9545         (restore_target_globals): Copy the hard_regs field to
9546         this_target_hard_regs.
9547         * target-globals.c: Include hard-reg-set.h.
9548         (default_target_globals): Initialize the hard_regs field.
9549         (save_target_globals): Likewise.
9550
9551 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9552
9553         * Makefile.in (target-globals.o): Depend on $(RTL_H).
9554         * rtl.h (target_rtl): New structure.
9555         (default_target_rtl): Declare.
9556         (this_target_rtl): Declare as a variable or define as a macro.
9557         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
9558         Redefine as macros.
9559         * emit-rtl.c (default_target_rtl): New variable.
9560         (this_target_rtl): New conditional variable.
9561         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
9562         (return_address_pointer_rtx): Delete.
9563         (initial_regno_reg_rtx): New macro.
9564         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
9565         (init_emit_regs): Likewise.
9566         * target-globals.h (this_target_rtl): Declare.
9567         (target_globals): Add a rtl field.
9568         (restore_target_globals): Copy the rtl field to this_target_rtl.
9569         * target-globals.c: Include rtl.h.
9570         (default_target_globals): Initialize the rtl field.
9571         (save_target_globals): Likewise.
9572
9573 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9574
9575         * Makefile.in (target-globals.o): Depend on $(REGS_H).
9576         * regs.h (target_reg_modes): New structure.
9577         (default_target_reg_modes): Declare.
9578         (this_target_reg_modes): Declare as a variable or define as a macro.
9579         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
9580         * reginfo.c (default_target_reg_modes): New variable.
9581         (this_target_reg_modes): New conditional variable.
9582         (hard_regno_nregs, reg_raw_mode): Delete.
9583         * target-globals.h (this_target_regs): Declare.
9584         (target_globals): Add a regs field.
9585         (restore_target_globals): Copy the regs field to this_target_regs.
9586         * target-globals.c: Include regs.h.
9587         (default_target_globals): Initialize the regs field.
9588         (save_target_globals): Likewise.
9589
9590 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
9591
9592         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
9593         * doc/tm.texi: Regenerate.
9594         * Makefile.in (OBJS-common): Add target-globals.o.
9595         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
9596         and target-globals.h.
9597         (target-globals.o): New rule.
9598         (GTFILES): Include $(srcdir)/target-globals.h.
9599         * defaults.h (SWITCHABLE_TARGET): Define.
9600         * gengtype.c (open_base_files): Add target-globals.h to the
9601         list of includes.
9602         * target-globals.h: New file.
9603         * target-globals.c: Likewise.
9604
9605         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
9606         * flags.h (target_flag_state): New structure.
9607         (default_target_flag_state): Declare.
9608         (this_target_flag_state): Declare as a variable or define as a macro.
9609         (align_loops_log): Redefine as a macro.
9610         (align_loops_max_skip, align_jumps_log): Likewise.
9611         (align_jumps_max_skip, align_labels_log): Likewise.
9612         (align_labels_max_skip, align_functions_log): Likewise.
9613         * toplev.c (default_target_flag_state): New variable.
9614         (this_target_flag_state): New conditional variable.
9615         (align_loops_log): Delete.
9616         (align_loops_max_skip, align_jumps_log): Likewise.
9617         (align_jumps_max_skip, align_labels_log): Likewise.
9618         (align_labels_max_skip, align_functions_log): Likewise.
9619         * target-globals.h (this_target_flag_state): Declare.
9620         (target_globals): Add a flag_state field.
9621         (restore_target_globals): Copy the flag_state field to
9622         this_target_flag_state.
9623         * target-globals.c: Include flags.h.
9624         (default_target_globals): Initialize the flag_state field.
9625         (save_target_globals): Likewise.
9626
9627 2010-07-12  Jie Zhang  <jie@codesourcery.com>
9628
9629         * postreload.c (reg_symbol_ref[]): New.
9630         (move2add_use_add2_insn): New.
9631         (move2add_use_add3_insn): New.
9632         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
9633         (move2add_note_store): Likewise.
9634
9635 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
9636
9637         PR rtl-optimization/44752
9638         * genautomata.c (main): Don't emit an empty file even if there
9639         is no automaton.
9640
9641 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9642
9643         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
9644         ix86_solaris_return_in_memory.
9645         * config/i386-protos.h: Reflect this.
9646         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
9647         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
9648         Move ...
9649         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
9650
9651 2010-07-12  Jie Zhang  <jie@codesourcery.com>
9652
9653         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
9654         align the stack when it's going to be saved.
9655
9656 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9657
9658         PR pch/14940
9659         * config/host-solaris.c (mmap_fixed): New function.
9660         (sol_gt_pch_get_address): Use it.
9661         (sol_gt_pch_use_address): Likewise.
9662
9663 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9664
9665         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
9666         pentiumpro on Solaris 8 and 9/x86.
9667         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
9668         Document SSE/SSE2 support.
9669         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
9670
9671 2010-07-12  Andi Kleen  <ak@linux.intel.com>
9672
9673         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
9674         instead of gcc_assert to print better error message for multiple
9675         prevailing defs.
9676
9677 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
9678
9679         * config/i386/i386.c (ix86_asm_output_function_label): Change format
9680         string placeholder from 0x%x to %#x.
9681         (ix86_code_end): Use putc to output '\n'.
9682         (ix86_print_operand) <case ';'>: Use putc to output ';'.
9683
9684 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
9685
9686         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
9687         in directive -export.
9688
9689 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
9690
9691         * reginfo.h (reg_classes_intersect_p): Change arguments type to
9692         reg_class_t.
9693         * rtl.h (reg_classes_intersect_p): Adjust prototype.
9694
9695         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
9696         Remove macros.
9697         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
9698         rs6000_memory_move_cost): Remove
9699         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
9700         TARGET_MEMORY_MOVE_COST): Define.
9701         (rs6000_register_move_cost): Make static. Change arguments type from
9702         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
9703         (rs6000_memory_move_cost): Make static. Change arguments type from
9704         'enum reg_class' to reg_class_t.
9705
9706 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
9707
9708         PR middle-end/42505
9709         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
9710         lookup code into....
9711         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
9712         new functions.
9713         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
9714         * cfgloopanal.c (target_clobbered_regs): Define.
9715         (init_set_costs): Initialize target_clobbered_regs.
9716         (estimate_reg_pressure_cost): Add call_p argument.  When true,
9717         adjust the number of available registers to exclude the
9718         call-clobbered registers.
9719         * cfgloop.h (target_clobbered_regs): Declare.
9720         (estimate_reg_pressure_cost): Adjust declaration.
9721         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
9722         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
9723         (determine_set_costs): Dump target_clobbered_regs.
9724         (loop_body_includes_call): New function.
9725         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
9726         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
9727         call_p flag through.
9728         (best_gain_for_invariant): Likewise.
9729         (find_invariants_to_move): Likewise.
9730         (move_single_loop_invariants): Likewise, using already-computed
9731         has_call field.
9732
9733 2010-07-10  Richard Guenther  <rguenther@suse.de>
9734             Joern Rennecke  <joern.rennecke@embecosm.com>
9735
9736         PR debug/44832
9737         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
9738         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
9739         unless they have DECL_IGNORED_P set.
9740
9741 2010-07-10  Richard Guenther  <rguenther@suse.de>
9742
9743         PR lto/44889
9744         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
9745         helper function.
9746         (gimple_types_compatible_p): Similar to pointed-to
9747         types allow and merge a mix of complete and incomplete aggregate.
9748         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
9749         (iterative_hash_gimple_type): Adjust for that.
9750
9751 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
9752
9753         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
9754
9755 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
9756
9757         PR objc/44140
9758         * config/darwin.c (output_objc_section_asm_op): Save and restore
9759         section when outputting ObjC section list.
9760
9761 2010-07-09  Jan Hubicka  <jh@suse.cz>
9762
9763         * lto-streamer-out.c (produce_symtab): Do not write alias
9764         cgraph/varpool nodes.
9765
9766 2010-07-09  Jan Hubicka  <jh@suse.cz>
9767
9768         * tree-inline.c (declare_return_variable): Fix ICE while
9769         inlining DECL_BY_VALUE function not in SSA form
9770
9771 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
9772
9773         PR tree-optimization/44576
9774         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
9775         New.  Pull out from is_loop_prefetching_profitable to implement
9776         the trip count to ahead ratio heuristic.
9777         (mem_ref_count_reasonable_p): New.  Pull out from
9778         is_loop_prefetching_profitable to implement the instruction to
9779         memory reference ratio heuristic.  Also consider not reasonable if
9780         the memory reference count is above a threshold (to avoid
9781         explosive compilation time.
9782         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
9783         is_loop_prefetching_profitable to implement the instruction to
9784         prefetch ratio heuristic.
9785         (is_loop_prefetching_profitable): Removed.
9786         (loop_prefetch_arrays): Distribute the cost analysis across the
9787         function to allow early exit of the prefetch analysis.
9788         is_loop_prefetching_profitable is splitted into three functions,
9789         with each one called as early as possible.
9790         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
9791         number of memory references in a loop is considered too many.
9792
9793 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
9794
9795         * reload.c (find_reloads): Don't clear badop if we have a winreg
9796         alternative, but not win, and the class only has fixed regs.
9797         * hard-reg-set.h (class_only_fixed_regs): Declare.
9798         * reginfo.c (class_only_fixed_regs): New array.
9799         (init_reg_sets_1): Initialize it.
9800         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
9801         discourage alternatives using the stack pointer.
9802
9803         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
9804
9805         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
9806
9807         * config/arm/arm.md (cbranchqi4): Fix array size.
9808         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
9809         calculating length.
9810
9811 2010-07-09  Richard Guenther  <rguenther@suse.de>
9812
9813         * gimple.c (struct type_fixup_s): New struct and VEC type.
9814         (gimple_register_type_fixups): New static global.
9815         (gimple_queue_type_fixup): New function.
9816         (gimple_types_compatible_p): Queue type fixups instead of
9817         applying them here.
9818         (gimple_register_type): Apply queued fixups for the
9819         canonical type.  Empty the type fixup queue.
9820
9821 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
9822
9823         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
9824         * configure: Regenerate.
9825         * config.in: Ditto.
9826
9827 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
9828             Denys Vlasenko  <dvlasenk@redhat.com>
9829             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
9830
9831         PR tree-optimization/28632
9832         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
9833         (extract_range_from_binary_expr): Further optimize
9834         BIT_AND_EXPR and BIT_IOR_EXPR.
9835
9836 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
9837
9838         * tree-if-conv.c (fold_or_predicates): New.
9839         (add_to_predicate_list): Call it.
9840
9841 2010-07-09  Richard Guenther  <rguenther@suse.de>
9842
9843         PR middle-end/44890
9844         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
9845         if base is a pointer.
9846         * tree-cfg.c (verify_expr): Update MEM_REF checking.
9847
9848 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
9849
9850         PR target/44877
9851         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
9852         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
9853         builtin mask for load/store builtins.
9854
9855 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
9856
9857         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
9858         for "lock addl".
9859         * configure: Regenerate.
9860         * config/i386/i386.c (ix86_print_operand) <case ';'>:
9861         Remove TARGET_MACHO.
9862
9863 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
9864
9865         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
9866         default ISA flags.
9867         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
9868
9869 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
9870
9871         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
9872
9873 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
9874
9875         * config/picochip/picochip.md (commsTestPort): Emit more
9876         efficient sequence for tstport instruction.
9877
9878 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
9879
9880         * config/i386/i386.c (ix86_veclib_handler): Make static.
9881
9882 2010-07-09  Richard Guenther  <rguenther@suse.de>
9883
9884         PR tree-optimization/44852
9885         * tree-ssa-alias.c: Include toplev.h for exact_log2.
9886         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
9887         in MEM_REF.
9888         (indirect_refs_may_alias_p): Likewise.
9889         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
9890
9891 2010-07-09  Richard Guenther  <rguenther@suse.de>
9892
9893         PR tree-optimization/44882
9894         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
9895         sets do conflict.
9896         (vectorizable_load): Likewise.
9897
9898 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
9899
9900         PR target/40657
9901         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
9902         All callers changed.
9903         Handle the case when we're called for the epilogue.
9904         (thumb_unexpanded_epilogue): Use it.
9905         (thumb1_expand_epilogue): Likewise.
9906
9907 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
9908
9909         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
9910         both ranges are range_int_cst_p with non-negative minimum,
9911         try harder to derive smaller range.
9912
9913 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9914
9915         * genrecog.c: Include diagnostic-core.h before toplev.h.
9916         * genoutput.c: Likewise.
9917         * genextract.c: Likewise.
9918         * genautomata.c: Likewise.
9919         * genemit.c: Likewise.
9920         * genpeep.c: Likewise.
9921         * genattrtab.c: Likewise.
9922         * genconditions.c: Likewise.
9923         * genpreds.c: Likewise.
9924
9925 2010-07-08  Andi Kleen  <ak@linux.intel.com>
9926
9927         * lto-section-in.c (lto_section_name): Add missing comma.
9928
9929 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
9930
9931         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
9932         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
9933         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
9934         (ia64_override_options): Rename to...
9935         (ia64_option_override): ... this one. Make static.
9936
9937 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
9938
9939         PR middle-end/44843
9940         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
9941         pointed-to type of the offset in a MEM_REF to compute the alignment.
9942
9943 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
9944
9945         * final.c (final_scan_insn): Replace
9946         TARGET_UNWIND_INFO macro check by unwind_emit
9947         hook NULL check.
9948         * targhooks.c (default_unwind_emit): Removed.
9949         * targhooks.h (default_unwind_emit): Likewise.
9950         * target.def (unwind_emit): Set default value to NULL.
9951
9952         * config/i386/i386-protos.h (ix86_asm_output_function_label):
9953         New prototype.
9954         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
9955         for NULL fntype argument and allow 64-bit targets.
9956         (ix86_asm_output_function_label): New function.
9957         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
9958         (ix86_handle_fndecl_attribute): Likewise.
9959         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
9960         * doc/doc/tm.texi: Regenerated.
9961         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
9962         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
9963         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
9964         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
9965         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
9966         * config/elfos.h: Likewise.
9967         * config/i386/cygming.h: Likewise.
9968         * config/netbsd-aout.h: Likewise.
9969         * config/openbsd.h: Likewise.
9970         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
9971         by ix86_asm_output_function_label function call.
9972         * varasm.c (assemble_start_function): Use
9973         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
9974
9975 2010-07-08  Jan Hubicka  <jh@suse.cz>
9976
9977         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
9978         New function.
9979         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
9980         Declare.
9981         * ipa-cp.c (ipcp_estimate_growth): Use it.
9982         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
9983         Likewise.
9984
9985 2010-07-08  Jan Hubicka  <jh@suse.cz>
9986
9987         * tree-inline.c (declare_return_variable): Allocate annotation for new
9988         temporary.
9989
9990 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
9991
9992         PR tree-optimization/44710
9993         * tree-if-conv.c (parse_predicate): New.
9994         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
9995         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
9996
9997 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
9998
9999         * common.opt (ftree-loop-if-convert): New flag.
10000         * doc/invoke.texi (ftree-loop-if-convert): Documented.
10001         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
10002         when flag_tree_loop_if_convert is set.
10003
10004 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
10005
10006         * config/i386/i386.c: Use short syntax for function calls
10007         through function pointers.
10008         * config/i386/i386.md: Ditto.
10009
10010 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
10011
10012         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
10013
10014 2010-07-08  Richard Guenther  <rguenther@suse.de>
10015
10016         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
10017         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
10018
10019 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
10020
10021         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
10022         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
10023         (loc_list_from_tree): Likewise.
10024         (output_loc_operands): Handle outputting DW_OP_const[48]u
10025         with loc->dtprel set.
10026         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
10027
10028 2010-07-08  Jan Hubicka  <jh@suse.cz>
10029
10030         * ipa.c: Include pointer-set.h
10031         (cgraph_externally_visible_p): New attribute ALIASED;
10032         when in LTO, hidden symbols are local unless they are aliased.
10033         (function_and_variable_visibility): Compute aliased nodes;
10034         handle LTO and hidden symbol on functions and vars.
10035         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
10036         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
10037
10038 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
10039
10040         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
10041         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10042         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10043         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10044         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10045         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
10046         (ix86_gen_probe_stack_range): Likewise.
10047         (override_options): Set them.
10048         (ix86_target_stack_probe): New function.
10049         (ix86_compute_frame_layout): Force use of push instructions to
10050         save registers if stack checking with probes is enabled.
10051         (get_scratch_register_on_entry): New function.
10052         (release_scratch_register_on_entry): Likewise.
10053         (ix86_adjust_stack_and_probe): Likewise.
10054         (output_adjust_stack_and_probe): Likewise.
10055         (ix86_emit_probe_stack_range): Likewise.
10056         (output_probe_stack_range): Likewise.
10057         (ix86_expand_prologue): Emit stack checking code if static built-in
10058         stack checking is enabled.
10059         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
10060         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
10061         (output_adjust_stack_and_probe): Likewise.
10062         (output_probe_stack_range): Likewise.
10063         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
10064         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
10065         TARGET_STACK_PROBE.
10066         (allocate_stack_worker_64): Likewise.
10067         (allocate_stack): Likewise.
10068         (adjust_stack_and_probe): New insn.
10069         (probe_stack_range): Likewise.
10070
10071 2010-07-08  Richard Guenther  <rguenther@suse.de>
10072
10073         PR tree-optimization/44831
10074         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
10075         a MEM_REF preserving TBAA info of the original dereference.
10076         Dereference the original pointer if the address is not invariant.
10077         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
10078         at least one invariant address that we are going to dereference.
10079
10080 2010-07-08  Richard Guenther  <rguenther@suse.de>
10081
10082         PR tree-optimization/44861
10083         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
10084         information when building MEM_REFs.
10085         (vectorizable_load): Likewise.
10086         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
10087
10088 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
10089
10090         * config/sol2-c.c: Do not include diagnostic-core.h.
10091
10092 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10093
10094         PR bootstrap/44768
10095         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
10096         with respect to current_function_decl. Pass decl of the function.
10097         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
10098         * ipa-inline.c (compute_inline_parameters): Pass decl to
10099         estimated_stack_frame_size.
10100
10101 2010-07-08  Richard Guenther  <rguenther@suse.de>
10102
10103         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
10104         New function.
10105         (valueize_refs): Call it.
10106
10107 2010-07-08  Richard Guenther  <rguenther@suse.de>
10108
10109         PR rtl-optimization/44838
10110         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
10111         SSA form do not use pointer equivalence.
10112
10113 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
10114
10115         * dwarf2out.c (AT_linkage_name): Delete.
10116         (add_linkage_attr): New function.
10117         (add_linkage_name): Call it to emit the linkage attribute.
10118         (dwarf2out_finish): Likewise.
10119         (move_linkage_attr): Explicitly accept both attribute variants.
10120
10121 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10122
10123         * toplev.h: Do not include diagnostic-core.h.
10124         Include diagnostic-core.h in every file that includes toplev.h.
10125         * c-tree.h: Do not include toplev.h.
10126         * pretty-print.h: Update comment.
10127         * Makefile.in: Update dependencies.
10128         * alias.c: Include diagnostic-core.h in every file that includes
10129         toplev.h.
10130         * attribs.c: Likewise.
10131         * auto-inc-dec.c: Likewise.
10132         * bb-reorder.c: Likewise.
10133         * bt-load.c: Likewise.
10134         * caller-save.c: Likewise.
10135         * calls.c: Likewise.
10136         * cfg.c: Likewise.
10137         * cfganal.c: Likewise.
10138         * cfgbuild.c: Likewise.
10139         * cfgcleanup.c: Likewise.
10140         * cfghooks.c: Likewise.
10141         * cfgloop.c: Likewise.
10142         * combine.c: Likewise.
10143         * config/alpha/alpha.c: Likewise.
10144         * config/arc/arc.c: Likewise.
10145         * config/arm/arm.c: Likewise.
10146         * config/arm/pe.c: Likewise.
10147         * config/avr/avr.c: Likewise.
10148         * config/bfin/bfin.c: Likewise.
10149         * config/cris/cris.c: Likewise.
10150         * config/crx/crx.c: Likewise.
10151         * config/darwin-c.c: Likewise.
10152         * config/darwin.c: Likewise.
10153         * config/fr30/fr30.c: Likewise.
10154         * config/frv/frv.c: Likewise.
10155         * config/h8300/h8300.c: Likewise.
10156         * config/host-darwin.c: Likewise.
10157         * config/i386/i386.c: Likewise.
10158         * config/i386/netware.c: Likewise.
10159         * config/i386/nwld.c: Likewise.
10160         * config/i386/winnt-cxx.c: Likewise.
10161         * config/i386/winnt-stubs.c: Likewise.
10162         * config/i386/winnt.c: Likewise.
10163         * config/ia64/ia64-c.c: Likewise.
10164         * config/ia64/ia64.c: Likewise.
10165         * config/iq2000/iq2000.c: Likewise.
10166         * config/lm32/lm32.c: Likewise.
10167         * config/m32c/m32c-pragma.c: Likewise.
10168         * config/m32c/m32c.c: Likewise.
10169         * config/m32r/m32r.c: Likewise.
10170         * config/m68hc11/m68hc11.c: Likewise.
10171         * config/m68k/m68k.c: Likewise.
10172         * config/mcore/mcore.c: Likewise.
10173         * config/mep/mep-pragma.c: Likewise.
10174         * config/mep/mep.c: Likewise.
10175         * config/mmix/mmix.c: Likewise.
10176         * config/mn10300/mn10300.c: Likewise.
10177         * config/moxie/moxie.c: Likewise.
10178         * config/pa/pa.c: Likewise.
10179         * config/pdp11/pdp11.c: Likewise.
10180         * config/picochip/picochip.c: Likewise.
10181         * config/rs6000/rs6000-c.c: Likewise.
10182         * config/rs6000/rs6000.c: Likewise.
10183         * config/rx/rx.c: Likewise.
10184         * config/s390/s390.c: Likewise.
10185         * config/score/score.c: Likewise.
10186         * config/score/score3.c: Likewise.
10187         * config/score/score7.c: Likewise.
10188         * config/sh/sh.c: Likewise.
10189         * config/sh/symbian-base.c: Likewise.
10190         * config/sh/symbian-c.c: Likewise.
10191         * config/sh/symbian-cxx.c: Likewise.
10192         * config/sol2-c.c: Likewise.
10193         * config/sol2.c: Likewise.
10194         * config/sparc/sparc.c: Likewise.
10195         * config/spu/spu.c: Likewise.
10196         * config/stormy16/stormy16.c: Likewise.
10197         * config/v850/v850-c.c: Likewise.
10198         * config/v850/v850.c: Likewise.
10199         * config/vax/vax.c: Likewise.
10200         * config/vxworks.c: Likewise.
10201         * config/xtensa/xtensa.c: Likewise.
10202         * convert.c: Likewise.
10203         * cse.c: Likewise.
10204         * cselib.c: Likewise.
10205         * dbgcnt.c: Likewise.
10206         * dbxout.c: Likewise.
10207         * ddg.c: Likewise.
10208         * dominance.c: Likewise.
10209         * emit-rtl.c: Likewise.
10210         * explow.c: Likewise.
10211         * expmed.c: Likewise.
10212         * fixed-value.c: Likewise.
10213         * fold-const.c: Likewise.
10214         * fwprop.c: Likewise.
10215         * gcse.c: Likewise.
10216         * ggc-common.c: Likewise.
10217         * ggc-page.c: Likewise.
10218         * ggc-zone.c: Likewise.
10219         * gimple-low.c: Likewise.
10220         * gimplify.c: Likewise.
10221         * graph.c: Likewise.
10222         * haifa-sched.c: Likewise.
10223         * ifcvt.c: Likewise.
10224         * implicit-zee.c: Likewise.
10225         * integrate.c: Likewise.
10226         * ira-build.c: Likewise.
10227         * ira-color.c: Likewise.
10228         * ira-conflicts.c: Likewise.
10229         * ira-costs.c: Likewise.
10230         * ira-lives.c: Likewise.
10231         * ira.c: Likewise.
10232         * lists.c: Likewise.
10233         * loop-doloop.c: Likewise.
10234         * loop-iv.c: Likewise.
10235         * lto-opts.c: Likewise.
10236         * lto-symtab.c: Likewise.
10237         * main.c: Likewise.
10238         * modulo-sched.c: Likewise.
10239         * optabs.c: Likewise.
10240         * params.c: Likewise.
10241         * plugin.c: Likewise.
10242         * postreload-gcse.c: Likewise.
10243         * postreload.c: Likewise.
10244         * predict.c: Likewise.
10245         * profile.c: Likewise.
10246         * real.c: Likewise.
10247         * regcprop.c: Likewise.
10248         * reginfo.c: Likewise.
10249         * regmove.c: Likewise.
10250         * reorg.c: Likewise.
10251         * resource.c: Likewise.
10252         * rtl.c: Likewise.
10253         * rtlanal.c: Likewise.
10254         * sched-deps.c: Likewise.
10255         * sched-ebb.c: Likewise.
10256         * sched-rgn.c: Likewise.
10257         * sdbout.c: Likewise.
10258         * sel-sched-dump.c: Likewise.
10259         * sel-sched-ir.c: Likewise.
10260         * simplify-rtx.c: Likewise.
10261         * stmt.c: Likewise.
10262         * stor-layout.c: Likewise.
10263         * store-motion.c: Likewise.
10264         * targhooks.c: Likewise.
10265         * tree-cfg.c: Likewise.
10266         * tree-cfgcleanup.c: Likewise.
10267         * tree-dump.c: Likewise.
10268         * tree-eh.c: Likewise.
10269         * tree-inline.c: Likewise.
10270         * tree-nomudflap.c: Likewise.
10271         * tree-object-size.c: Likewise.
10272         * tree-optimize.c: Likewise.
10273         * tree-outof-ssa.c: Likewise.
10274         * tree-phinodes.c: Likewise.
10275         * tree-profile.c: Likewise.
10276         * tree-ssa-ccp.c: Likewise.
10277         * tree-ssa-coalesce.c: Likewise.
10278         * tree-ssa-live.c: Likewise.
10279         * tree-ssa-loop-niter.c: Likewise.
10280         * tree-ssa-loop-prefetch.c: Likewise.
10281         * tree-ssa-loop.c: Likewise.
10282         * tree-ssa-structalias.c: Likewise.
10283         * tree-ssa-uninit.c: Likewise.
10284         * tree-ssa.c: Likewise.
10285         * tree-vect-data-refs.c: Likewise.
10286         * tree-vect-loop-manip.c: Likewise.
10287         * tree-vect-loop.c: Likewise.
10288         * tree-vect-patterns.c: Likewise.
10289         * tree-vect-stmts.c: Likewise.
10290         * tree-vrp.c: Likewise.
10291         * varasm.c: Likewise.
10292         * vec.c: Likewise.
10293         * web.c: Likewise.
10294         * xcoffout.c: Likewise.
10295
10296 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
10297
10298         * gengtype.c (write_field_root): New function.
10299         (write_root): Use it.
10300
10301 2010-07-07  Wei Guozhi  <carrot@google.com>
10302
10303         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
10304         of lowest bits to lshift/compare): Add a missing line.
10305
10306 2010-07-07  Wei Guozhi  <carrot@google.com>
10307
10308         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
10309         of lowest bits to lshift/compare): New.
10310
10311 2010-07-07  Tom Tromey  <tromey@redhat.com>
10312
10313         * doc/tm.texi: Update.
10314         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
10315         Add @hook.
10316         * target.def (want_debug_pub_sections): New hook.
10317         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
10318         * dwarf2out.c (add_pubname_string): Check
10319         targetm.want_debug_pub_sections.
10320         (add_pubname): Likewise.
10321         (add_pubtype): Likewise.
10322
10323 2010-07-07  Jie Zhang  <jie@codesourcery.com>
10324
10325         * genautomata.c (output_automata_list_min_issue_delay_code):
10326         Correctly decompress min_issue_delay.
10327
10328 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
10329
10330         PR rtl-optimization/44404
10331         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
10332         possible, use reg_overlap_mentioned_p instead.
10333
10334 2010-07-07  Duncan Sands  <baldrick@free.fr>
10335
10336         PR middle-end/41355
10337         * tree.c (build_function_type_skip_args): Copy the original type using
10338         build_distinct_type_copy rather than copy_node.
10339
10340 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
10341
10342         PR target/44850
10343         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
10344         revision 161876.
10345         (ix86_expand_prologue): Likewise.
10346         (ix86_handle_fndecl_attribute): Likewise.
10347         (ix86_asm_declare_function_name): Likewise.
10348         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
10349         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
10350         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
10351         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
10352         * doc/extend.texi: Likewise.
10353
10354 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
10355
10356         PR target/44844
10357         * config/i386/i386.md (rdrand<mode>): Changed to expand to
10358         retry if the carry flag isn't valid.
10359         (rdrand<mode>_1): New.
10360
10361 2010-07-07  Richard Guenther  <rguenther@suse.de>
10362
10363         PR middle-end/44790
10364         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
10365         for expanding the constant offset for MEM_REFs.
10366
10367 2010-07-07  Richard Guenther  <rguenther@suse.de>
10368
10369         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
10370         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
10371         * gimple.h (is_gimple_operand): Remove.
10372         * gimple.c (is_gimple_operand): Likewise.
10373         (walk_gimple_op): Fix wi->val_only setting for calls.
10374         * tree-cfg.c (verify_gimple_call): Fix argument validation.
10375         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
10376         invalid gimple calls.
10377
10378 2010-07-06  Jan Hubicka  <jh@suse.cz>
10379
10380         * lto-cgraph.c (output_cgraph): Add missing declaration.
10381
10382 2010-07-06  Jan Hubicka  <jh@suse.cz>
10383
10384         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
10385         partition.
10386
10387 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
10388
10389         * doc/gimple.texi (GIMPLE_DEBUG): Document.
10390         * doc/rtl.texi (Debug Information): New node.
10391         (NOTE_INSN_VAR_LOCATION): Document.
10392         (debug_insn): Likewise.
10393         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
10394
10395 2010-07-07  Jan Hubicka  <jh@suse.cz>
10396
10397         With parts by Richard Guenther.
10398
10399         PR middle-end/44813
10400         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
10401         for functions passed by reference.
10402         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
10403         in memory when passed by reference.
10404         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
10405         beggining.
10406         * ipa-split.c (split_function): Cleanup way return value is passed;
10407         handle SSA DECL_BY_REFERENCE retvals.
10408         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
10409         DECL_BY_REFERENCE is set.
10410         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
10411         find_what_p_points_to): Handle RESULT_DECL.
10412         * tree-inline.c (declare_return_variable): Get new entry_block argument;
10413         when passing by reference ensure that RESULT_DECL is gimple_val.
10414         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
10415         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
10416
10417 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
10418
10419         PR rtl-optimization/44787
10420         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
10421         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
10422
10423 2010-07-06  Jan Hubicka  <jh@suse.cz>
10424
10425         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
10426         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
10427         with body can prevail.
10428         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
10429         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
10430         * cgraph.c (cgraph_get_node_or_alias): New function.
10431         * cgraph.h (cgraph_get_node_or_alias): Declare.
10432
10433 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
10434
10435         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
10436         support.
10437         (ix86_expand_prologue): Likewise.
10438         (ix86_handle_fndecl_attribute): Likewise.
10439         (ix86_asm_declare_function_name): New function for
10440         ASM_DECLARE_FUNCTION_NAME.
10441         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
10442         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
10443         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
10444         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
10445         * doc/extend.texi: Adjust documentation about ms_hook_prologue
10446         attribute.
10447
10448 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
10449
10450         * config/i386/i386.md (immediate_operand): New mode attribute.
10451
10452         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
10453         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
10454         using P mode iterator.
10455         (pro_epilogue_adjust_stack_di_2): Rename from
10456         pro_epilogue_adjust_stack_rex64_2.
10457
10458         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
10459
10460 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
10461
10462         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
10463         through gen_mov_insv_1 function pointer.
10464         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
10465         gen_truncxf<mode>2 through gen_truncxf function pointer.
10466         (remainder<mode>3): Ditto.
10467         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
10468         (allocate_stack): Call gen_allocate_stack_worker_64 or
10469         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
10470         function pointer.
10471         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
10472         function pointer.
10473
10474 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
10475
10476         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
10477         operand constraint instead of <r><i>m.
10478
10479 2010-07-06  Richard Guenther  <rguenther@suse.de>
10480
10481         PR middle-end/44828
10482         * convert.c (convert_to_integer): Watch out for overflowing
10483         MULT_EXPR as well.
10484
10485 2010-07-05  Jan Hubicka  <jh@suse.cz>
10486
10487         * lto-streamer.c (write_symbol_vec): Rename to ...
10488         (write_symbol) ... this one; write only symbol given and when
10489         present in cache. Sanity check that what is defined is present
10490         in cgraph/varpool with body/finalized decl.
10491         (write_symbols_of_kind): Remove.
10492         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
10493         pairs to produce symtab.
10494         (produce_asm_for_decls): Update call of produce_symtab; don't do so
10495         when doing WPA streaming.
10496
10497 2010-07-05  Jan Hubicka  <jh@suse.cz>
10498
10499         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
10500         function is still available to fold into.
10501
10502 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
10503
10504         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
10505         * function.h (struct_function): Change type of local_decls field
10506         to a VEC.
10507         (add_local_decl): New function.
10508         (FOR_EACH_LOCAL_DECL): New macro.
10509         * cfgexpand.c (init_vars_expansion): Adjust for new type of
10510         cfun->local_decls.
10511         (estimated_stack_frame_size): Likewise.
10512         (expand_used_vars): Likewise.
10513         * cgraphbuild.c (build_cgraph_edges): Likewise.
10514         * function.c (instantiate_decls_1): Likewise.
10515         * ipa-struct-reorg.c (build_data_structure): Likewise.
10516         * ipa-type-escape.c (analyze_function): Likewise.
10517         * lto-streamer-in.c (input_function): Likewise.
10518         * lto-streamer-out.c (output_function): Likewise.
10519         * tree-ssa-live.c (remove_unused_locals): Likewise.
10520         * tree.c (free_lang_data_in_decl): Likewise.
10521         (find_decls_types_in_node): Likewise.
10522         * omp-low.c (remove_exit_barrier): Likewise.
10523         (expand_omp_taskreg): Likewise.
10524         (list2chain): Rename to...
10525         (vec2chain): ...this.  Adjust.
10526         * cgraphunit.c (assemble_thunk): Call add_local_decl.
10527         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
10528         * gimple-low.c (record_vars_into): Likewise.
10529         * tree-inline.c (remap_decls): Likewise.
10530         (declare_return_variable): Likewise.
10531         (declare_inline_vars): Likewise.
10532         (copy_forbidden): Adjust for new type of cfun->local_decls.
10533         (add_local_variables): New function.
10534         (expand_call_inline): Call it.
10535         (tree_function_versioning): Likewise.
10536
10537 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
10538
10539         AVX Programming Reference (June, 2010)
10540         * config/i386/cpuid.h (bit_F16C): New.
10541         (bit_RDRND): Likewise.
10542         (bit_FSGSBASE): Likewise.
10543
10544         * config/i386/i386-builtin-types.def: Add
10545         "DEF_FUNCTION_TYPE (UINT16)", function types for
10546         float16 <-> float conversions and
10547         "DEF_FUNCTION_TYPE (VOID, UINT64)".
10548
10549         * config/i386/i386-c.c (ix86_target_macros_internal): Support
10550         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
10551         OPTION_MASK_ISA_F16C.
10552
10553         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
10554         (OPTION_MASK_ISA_RDRND_SET): Likewise.
10555         (OPTION_MASK_ISA_F16C_SET): Likewise.
10556         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
10557         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
10558         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
10559         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
10560         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
10561         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
10562         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
10563         (override_options): Handle them.
10564         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
10565         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
10566         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
10567         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
10568         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
10569         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
10570         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
10571         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
10572         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
10573         (bdesc_args): Likewise.
10574         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
10575         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
10576         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
10577         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
10578         Handle non-memory store.
10579
10580         * config/i386/i386.h (TARGET_FSGSBASE): New.
10581         (TARGET_RDRND): Likewise.
10582         (TARGET_F12C): Likewise.
10583
10584         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
10585         (UNSPEC_VCVTPS2PH): Likewise.
10586         (UNSPECV_RDFSBASE): Likewise.
10587         (UNSPECV_RDGSBASE): Likewise.
10588         (UNSPECV_WRFSBASE): Likewise.
10589         (UNSPECV_WRGSBASE): Likewise.
10590         (UNSPECV_RDRAND): Likewise.
10591         (rdfsbase<mode>): Likewise.
10592         (rdgsbase<mode>): Likewise.
10593         (wrfsbase<mode>): Likewise.
10594         (wrgsbase<mode>): Likewise.
10595         (rdrand<mode>): Likewise.
10596
10597         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
10598
10599         * config/i386/immintrin.h (_rdrand_u16): New.
10600         (_rdrand_u32): Likewise.
10601         (_readfsbase_u32): Likewise.
10602         (_readfsbase_u64): Likewise.
10603         (_readgsbase_u32): Likewise.
10604         (_readgsbase_u64): Likewise.
10605         (_writefsbase_u32): Likewise.
10606         (_writefsbase_u64): Likewise.
10607         (_writegsbase_u32): Likewise.
10608         (_writegsbase_u64): Likewise.
10609         (_rdrand_u64): Likewise.
10610         (_cvtsh_ss): Likewise.
10611         (_mm_cvtph_ps): Likewise.
10612         (_mm256_cvtph_ps): Likewise.
10613         (_cvtss_sh): Likewise.
10614         (_mm_cvtps_ph): Likewise.
10615         (_mm256_cvtps_ph): Likewise.
10616
10617         * config/i386/sse.md (vcvtph2ps): New.
10618         (*vcvtph2ps_load): Likewise.
10619         (vcvtph2ps256): Likewise.
10620         (vcvtps2ph): Likewise.
10621         (*vcvtps2ph): Likewise.
10622         (*vcvtps2ph_store): Likewise.
10623         (vcvtps2ph256): Likewise.
10624
10625         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
10626
10627         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
10628
10629 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
10630
10631         PR bootstrap/44512
10632         * genenums.c (main): Output include of insn-constants.h
10633         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
10634
10635 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
10636
10637         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
10638         (override_options): Initialize it.
10639         (ix86_expand_prologue): Use it.
10640
10641 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
10642
10643         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
10644
10645 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
10646
10647         * double-int.h (fit_double_type): Remove declaration.
10648         * double-int.c (fit_double_type): Remove function.
10649         * tree.h (int_fits_type_p): Adjust prototype.
10650         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
10651         instead of fit_double_type.
10652         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
10653         instead of fit_double_type and build_int_cst_wide.
10654         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
10655         instead of fit_double_type and build_int_cst_wide.
10656         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
10657         of fit_double_type.
10658
10659 2010-07-05  Jan Hubicka  <jh@suse.cz>
10660
10661         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
10662         in_other_partition.
10663         * lto-cgraph.c (referenced_from_other_partition_p,
10664         reachable_from_other_partition_p): Use in_other_partition flags.
10665         (output_node, output_varpool_node): COMDAT nodes always have private
10666         copies and thus are never used from other partition.
10667
10668 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
10669
10670         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
10671         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
10672         * config/ia64/ia64.c Include reload.h.
10673         (ia64_memory_move_cost): New function.
10674         (TARGET_MEMORY_MOVE_COST): Define.
10675         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
10676         memory_move_cost.
10677
10678 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
10679
10680         PR middle-end/42505
10681         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
10682         comments about cost model.
10683         (try_add_cand_for):  Add second strategy for choosing initial set
10684         based on original IVs, controlled by ORIGINALP argument.
10685         (get_initial_solution): Add ORIGINALP argument.
10686         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
10687         (find_optimal_iv_set): Try two different strategies for choosing
10688         the IV set, and return the one with lower cost.
10689
10690 2010-07-05  Richard Guenther  <rguenther@suse.de>
10691
10692         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
10693
10694 2010-07-05  Richard Guenther  <rguenther@suse.de>
10695
10696         * tree.c (reference_alias_ptr_type): New function.
10697         * tree.h (reference_alias_ptr_type): Declare.
10698         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
10699         allow non-TARGET_MEM_REF new refs.
10700         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
10701         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
10702         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
10703         (create_mem_ref): Get alias pointer type.  Adjust calls to
10704         create_mem_ref_raw.
10705         (maybe_fold_tmr): Likewise.
10706         * tree-flow.h (create_mem_ref): Adjust prototype.
10707
10708 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
10709
10710         PR c++/44808
10711         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
10712         *from_p is VAR_DECL.
10713
10714 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
10715
10716         * tree.h (build_call_list): Remove.
10717         * tree.c (build_call_list): Remove.
10718
10719 2010-07-05  Richard Guenther  <rguenther@suse.de>
10720
10721         * double-int.h (double_int_sub): Declare.
10722         * double-int.c (double_int_sub): New function.
10723         * dwarf2out.c (field_byte_offset): Use it.
10724         * fixed-value.c (do_fixed_add): Likewise.
10725         (do_fixed_multiply): Likewise.
10726         (do_fixed_divide): Likewise.
10727         * tree-predcom.c (add_ref_to_chain): Likewise.
10728         (determine_roots_comp): Likewise.
10729         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
10730
10731 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
10732
10733         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
10734         implementations.
10735
10736 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
10737
10738         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
10739         * arm-modes.def (CC_NOTB): Don't define.
10740         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
10741         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
10742         (LTUGEU): New code_iterator.
10743         (cnb, optab): New corresponding code_attrs.
10744         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
10745         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
10746         using LTUGEU.
10747         (addsi3_carryin_shift_<optab>): Likewise.
10748         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
10749         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
10750         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
10751         (subsi3_compare): Renamed from subsi3_compare0_c.
10752         Change CC_NOTB to CC.
10753         (arm_subsi3_insn): Allow constants for operand 0.
10754         (compare_scc peephole for eq case): New.
10755         (compare_scc splitters): Change CC_NOTB to CC.
10756
10757 2010-07-05  Richard Guenther  <rguenther@suse.de>
10758
10759         * tree-ssa-loop-im.c (for_each_index): Do not handle
10760         ALIGN_INDIRECT_REF.
10761         (gen_lsm_tmp_name): Likewise.
10762         * tree-dump.c (dequeue_and_dump): Likewise.
10763         * tree-pretty-print.c (dump_generic_node): Likewise.
10764         (op_code_prio): Likewise.
10765         (op_symbol_code): Likewise.
10766         * tree.c (staticp): Likewise.
10767         (build1_stat): Likewise.
10768         * tree.h (INDIRECT_REF_P): Likewise.
10769         * fold-const.c (maybe_lvalue_p): Likewise.
10770         (operand_equal_p): Likewise.
10771         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
10772         (ao_ref_init_from_vn_reference): Likewise.
10773         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
10774         (find_interesting_uses_address): Likewise.
10775         * dwarf2out.c (loc_list_from_tree): Likewise.
10776         * gimplify.c (gimplify_expr): Likewise.
10777         * tree-eh.c (tree_could_trap_p): Likewise.
10778         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
10779         * cfgexpand.c (expand_debug_expr): Likewise.
10780         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
10781         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
10782         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
10783         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
10784         * tree-ssa-operands.c (get_expr_operands): Likewise.
10785         * expr.c (safe_from_p): Likewise.
10786         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
10787         * tree-vect-data-refs.c (vect_setup_realignment): Build
10788         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
10789         * tree-vect-stmts.c (vectorizable_load): Likewise.
10790         * tree.def (ALIGN_INDIRECT_REF): Remove.
10791
10792 2010-07-05  Richard Guenther  <rguenther@suse.de>
10793
10794         PR tree-optimization/44784
10795         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
10796         for inserted stmts.
10797         (find_or_generate_expression): Fix SCCVN insertion check.
10798
10799 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
10800
10801         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
10802         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
10803         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
10804         directives.
10805
10806 2010-07-05  Ira Rosen  <irar@il.ibm.com>
10807
10808         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
10809         statements that are not vectorized.
10810         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
10811         in INSIDE_COST.
10812
10813 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
10814
10815         PR bootstrap/44820
10816         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
10817
10818 2010-07-05  Richard Guenther  <rguenther@suse.de>
10819
10820         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
10821         RESULT_DECLs properly.
10822
10823 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
10824
10825         PR rtl-optimization/44695
10826         * config/i386/i386.md (extract_code): Removed.
10827         (<u>divmodqi4): Likewise.
10828         (divmodqi4): New.
10829         (udivmodqi4): Likewise.
10830         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
10831         (udivmodhiqi3): Likewise.
10832
10833 2010-07-04  Jan Hubicka  <jh@suse.cz>
10834
10835         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
10836
10837 2010-07-04  Jan Hubicka  <jh@suse.cz>
10838
10839         * cgraphunit.c (init_cgraph): Only initialize dump file if it
10840         is not already initialized.
10841
10842 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
10843
10844         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
10845         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
10846         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
10847         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
10848         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
10849         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
10850         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
10851         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
10852         (sync_new_nand_optab): Redefine as macros.
10853         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
10854         Delete.
10855         (direct_optab_index): New enum.
10856         (direct_optab_d): New structure.
10857         (direct_optab): New typedef.
10858         (direct_optab_table): Declare.
10859         (direct_optab_handler, set_direct_optab_handler): New functions.
10860         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
10861         (sync_lock_release_optab): New macros.
10862         * optabs.c (direct_optab_table): New variable.
10863         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
10864         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
10865         cmpstr_optab and cmpstrn_optab.
10866         (emit_conditional_move): Likewise for movcc_optab.
10867         (can_conditionally_move_p): Likewise for movcc_gen_code.
10868         (init_insn_codes): Clear direct_optab_table.
10869         (init_optabs): Don't initialize the new "direct optabs" here.
10870         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
10871         vcond_gen_code.
10872         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
10873         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
10874         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
10875         (expand_sync_operation): Likewise other sync_*_optabs.
10876         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
10877         to sync_compare_and_swap_optab.
10878         (expand_sync_lock_test_and_set): Use direct_optab_handler for
10879         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
10880         to the names of both.
10881         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
10882         cmpstr_optab and cmpstrn_optab.
10883         (expand_builtin_lock_release): Likewise sync_lock_release.
10884         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
10885         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
10886         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
10887         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
10888         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
10889         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
10890         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
10891         (sync_lock_test_and_set, sync_lock_release): Delete.
10892         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
10893         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
10894         * genopinit.c (optabs): Use set_direct_optab_handler for the new
10895         macro optabs.
10896         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
10897         the "optab" local variable.  Use direct_optab_handler for optab and
10898         sync_compare_and_swap_optab.
10899         * reload1.c (reload_in_optab, reload_out_optab): Delete.
10900         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
10901         reload_in_optab and reload_out_optab.
10902         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
10903         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
10904         * config/pa/pa.c (pa_secondary_reload): Likewise.
10905         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
10906         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
10907         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
10908         (VMSupportsCS8_builtin): Likewise.
10909
10910 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
10911
10912         * optabs.h (optab_handlers): Change type of insn_code to int.
10913         (optab_handler, set_optab_handler, convert_optab_handler)
10914         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
10915         CODE_FOR_nothing".
10916         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
10917         (init_insn_codes): Zero both the above arrays.
10918         (init_optabs): Never call init_insn_codes first time around.
10919
10920 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
10921
10922         * optabs.h (optab_handler, convert_optab_handler): Turn into
10923         inline functions that return an insn code.
10924         (set_optab_handler, set_convert_optab_handler): New functions.
10925         * builtins.c: Replace optab_handler(X)->insn_code with
10926         optab_handler or set_optab_handler thoughout.  Likewise
10927         convert_optab_handler(X)->insn_code with convert_optab_handler
10928         and set_convert_optab_handler.
10929         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
10930         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
10931         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
10932         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
10933         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
10934         config/spu/spu.c: Likewise.
10935
10936 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
10937
10938         PR target/44531
10939         * config.gcc (sh*-*-*): Use regular expressions instead of
10940         the 'i' modifier for sed substitutions.
10941
10942 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
10943
10944         * gimple.c (gimple_body): Comments added.
10945
10946 2010-07-04  Richard Guenther  <rguenther@suse.de>
10947
10948         PR middle-end/44809
10949         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
10950         of an INDIRECT_REF.
10951
10952 2010-07-04  Richard Guenther  <rguenther@suse.de>
10953
10954         PR tree-optimization/44479
10955         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
10956         extra SSA name copy statements which preserves points-to
10957         information.
10958         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
10959         Copy points-to information for all pointers.  Properly handle
10960         MEM_REFs.
10961         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
10962         copy statements.
10963         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
10964         dependency.
10965
10966 2010-07-04  Richard Guenther  <rguenther@suse.de>
10967
10968         PR middle-end/44785
10969         * tree-inline.c (initialize_inlined_parameters): Do not
10970         re-use pointer-map slot over remap_type call.
10971
10972 2010-07-04  Richard Guenther  <rguenther@suse.de>
10973
10974         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
10975
10976 2010-07-04  Richard Guenther  <rguenther@suse.de>
10977
10978         PR tree-optimization/44656
10979         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
10980         again after value-replacing in the defintions lhs.
10981
10982 2010-07-04  Ira Rosen  <irar@il.ibm.com>
10983             Revital Eres  <eres@il.ibm.com>
10984
10985         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
10986         Document new arguments.
10987         * doc/tm.texi: Regenerate.
10988         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
10989         Handle unaligned store.
10990         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
10991         * target.def (builtin_vectorization_cost): Add new arguments.
10992         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
10993         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
10994         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
10995         (vect_vfa_segment_size): Fix indentation.
10996         * tree-vectorizer.h (struct _vect_peel_info): New.
10997         (struct _vect_peel_extended_info): New.
10998         (struct _loop_vec_info): Add new field for peeling hash table and a
10999         macro for its access.
11000         (VECT_MAX_COST): Define.
11001         (vect_get_load_cost): Declare.
11002         (vect_get_store_cost, vect_get_known_peeling_cost,
11003         vect_get_single_scalar_iteraion_cost): Likewise.
11004         (vect_supportable_dr_alignment): Add new argument.
11005         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
11006         field.
11007         (destroy_loop_vec_info): Free peeling hash table.
11008         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
11009         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
11010         vect_analyze_slp. Fix indentation.
11011         (vect_get_single_scalar_iteraion_cost): New function.
11012         (vect_get_known_peeling_cost): Likewise.
11013         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
11014         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
11015         statement. Move outside cost calculation inside unknown peeling case.
11016         Call vect_get_known_peeling_cost for known amount of peeling.
11017         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
11018         reference to the print message of forced alignment.
11019         (vect_verify_datarefs_alignment): Update call to
11020         vect_supportable_dr_alignment.
11021         (vect_get_data_access_cost): New function.
11022         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
11023         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
11024         vect_peeling_hash_choose_best_peeling): Likewise.
11025         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
11026         to store all the accesses in the loop and find best possible access to
11027         align using peeling for known alignment case. For unknown alignment
11028         check if stores are preferred or if peeling is worthy.
11029         (vect_find_same_alignment_drs): Analyze pairs of loads too.
11030         (vect_supportable_dr_alignment): Add new argument and check aligned
11031         accesses according to it.
11032         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
11033         (cost_for_stmt): Call vect_get_stmt_cost.
11034         (vect_model_simple_cost): Likewise.
11035         (vect_model_store_cost): Call vect_get_stmt_cost. Call
11036         vect_get_store_cost to calculate the cost of the statement.
11037         (vect_get_store_cost): New function.
11038         (vect_model_load_cost): Call vect_get_stmt_cost. Call
11039         vect_get_load_cost to calculate the cost of the statement.
11040         (vect_get_load_cost): New function.
11041         (vectorizable_store): Update call to vect_supportable_dr_alignment.
11042         (vectorizable_load): Likewise.
11043         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
11044         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
11045         arguments. Handle unaligned store.
11046         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
11047         (rs6000_builtin_support_vector_misalignment): Return true for word and
11048         double word alignments for VSX.
11049         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
11050         vect_supportable_dr_alignment and builtin_vectorization_cost.
11051
11052 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11053
11054         PR target/44597
11055         * config/pa/predicates.md (prefetch_cc_operand): Remove.
11056         (prefetch_nocc_operand): Likewise.
11057         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
11058         (prefetch_20): New insn.
11059         (prefetch_cc): Remove.
11060         (prefetch_nocc): Likewise.
11061
11062 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11063
11064         * expr.c (vector_mode_valid_p): Move to c-common.c.
11065         * expr.h (vector_mode_valid_p): Do not declare here.
11066         * system.h: Poison GCC_EXPR_H in front-ends.
11067         * Makefile.in: Update dependencies.
11068
11069 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11070
11071         PR target/44705
11072         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
11073
11074 2010-07-03  Jan Hubicka  <jh@suse.cz>
11075
11076         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
11077         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
11078         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
11079         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
11080         Likewise.
11081
11082         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
11083         Update timevars.V
11084         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
11085         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
11086         TV_IPA_LTO_DECL_OUT): New.
11087         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
11088
11089 2010-07-03  Jan Hubicka  <jh@suse.cz>
11090
11091         * ipa-inline.c (update_edge_key): Break out from ...
11092         update_callers_keys): ... here;
11093         (update_callee_keys): Update only the edges from caller to callee.
11094         (update_all_calle_keys): Do what update_calle_keys did.
11095         (decide_inlining_of_small_functions): Avoid recomputing of all
11096         callees when badness increase.
11097
11098 2010-07-03  Jie Zhang  <jie@codesourcery.com>
11099
11100         * config/arm/arm.c (arm_attr_length_move_neon): New.
11101         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
11102         * config/arm/neon.md (define_mode_attr V_slen): Remove.
11103         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
11104         to compute length attribute.
11105
11106 2010-07-03  Jie Zhang  <jie@codesourcery.com>
11107
11108         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
11109         as predicate for operand 1 and remove its constraint.
11110         * config/arm/predicates.md (vfp_register_operand): New.
11111         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
11112         (*push_fp_multi): Likewise.
11113
11114 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
11115
11116         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
11117
11118 2010-07-03  Jan Hubicka  <jh@suse.cz>
11119
11120         * config/i386/i386.c (override_options): Revert accidental commit.
11121
11122 2010-07-02  Le-Chun Wu  <lcwu@google.com>
11123
11124         PR c++/44128
11125         * doc/invoke.texi: Update documentation of -Wshadow.
11126
11127 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
11128             Julian Brown  <julian@codesourcery.com>
11129             Sandra Loosemore  <sandra@codesourcery.com>
11130
11131         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
11132         comparisons.  Adjust to take both operands.
11133         (arm_select_cc_mode): Handle DImode comparisons.
11134         (arm_gen_compare_reg): Generate a scratch register for DImode
11135         comparisons which require one.  Use xor for Thumb equality checks.
11136         (arm_const_double_by_immediates): New.
11137         (arm_print_operand): Allow 'Q' and 'R' for constants.
11138         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
11139         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
11140         arm_canonicalize_comparison.
11141         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
11142         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
11143         prototype.
11144         (arm_const_double_by_immediates): Declare.
11145         * config/arm/constraints.md (Di): New constraint.
11146         * config/arm/predicates.md (arm_immediate_di_operand)
11147         (arm_di_operand, cmpdi_operand): New.
11148         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
11149         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
11150         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
11151         (cstoredi4): Handle non-Cirrus also.
11152
11153 2010-07-02  Julian Brown  <julian@codesourcery.com>
11154             Sandra Loosemore  <sandra@codesourcery.com>
11155
11156         PR target/43703
11157         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
11158         (smax<mode>3): Disable for NEON float modes when
11159         flag_unsafe_math_optimizations is false.
11160         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
11161         (*mul<mode>3_neon)
11162         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
11163         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
11164         for NEON float modes when flag_unsafe_math_optimizations is false.
11165         (quad_halves_<code>v4sf): Only enable if
11166         flag_unsafe_math_optimizations is true.
11167         * doc/invoke.texi (ARM Options): Add note about floating point
11168         vectorization requiring -funsafe-math-optimizations.
11169
11170 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
11171             Julian Brown  <julian@codesourcery.com>
11172
11173         * config/arm/neon.md (UNSPEC_VABA): Delete.
11174         (UNSPEC_VABAL): Delete.
11175         (UNSPEC_VABS): Delete.
11176         (UNSPEC_VMUL_N): Delete.
11177         (adddi3_neon): New.
11178         (subdi3_neon): New.
11179         (mul<mode>3add<mode>_neon): Make the pattern named.
11180         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
11181         (neon_vadd<mode>): Replace with define_expand, and move the remaining
11182         unspec parts...
11183         (neon_vadd<mode>_unspec): ...to this.
11184         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
11185         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
11186         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
11187         (neon_vaba<mode>): Rewrite in terms of vabd.
11188         (neon_vabal<mode>): Rewrite in terms of vabdl.
11189         (neon_vabs<mode>): Rewrite without unspec.
11190         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
11191         (*arm_subdi3): Likewise.
11192         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
11193         No_op attribute to disable assembly output checks.
11194         * config/arm/arm_neon.h: Regenerated.
11195         * doc/arm-neon-intrinsics.texi: Regenerated.
11196
11197 2010-07-02  Jan Hubicka  <jh@suse.cz>
11198
11199         * ipa-split.c (split_function): For aggregate values, set the return
11200         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
11201         *<retval> = fncall.part ().
11202         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
11203
11204 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
11205
11206         * config/arm/neon.md (UNSPEC_VAND): Delete.
11207         (UNSPEC_VBIC): Delete.
11208         (UNSPEC_VCLZ): Delete.
11209         (UNSPEC_VCNT): Delete.
11210         (UNSPEC_VEOR): Delete.
11211         (UNSPEC_VORN): Delete.
11212         (UNSPEC_VORR): Delete.
11213         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
11214         core registers too.
11215         (anddi3_neon): Likewise.
11216         (orndi3_neon): Likewise.
11217         (bicdi3_neon): Likewise.
11218         (xordi3_neon): Likewise.
11219         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
11220         rid of unspec and handle unused operand.
11221         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
11222         * config/arm/predicates.md (imm_for_neon_logic_operand):
11223         Require TARGET_NEON.
11224         (imm_for_neon_inv_logic_operand): Likewise.
11225         * config/arm/arm.md (define_split for logical_binary_operator):
11226         Disable for NEON registers.
11227         (anddi3): Add new define_expand, and rename the insn.  Disable
11228         this insn for NEON, where anddi3_neon now applies.
11229         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
11230         (iordi3): As for anddi3.
11231         (xordi3): Likewise.
11232         * config/arm/neon.ml (Vand): Split DImode variants and mark them
11233         as No_op to disable testing for exact instruction match.
11234         (Vorr): Likewise.
11235         (Veor): Likewise.
11236         (Vbic): Likewise.
11237         (Vorn): Likewise.
11238         * config/arm/arm_neon.h: Regenerated.
11239         * doc/arm-neon-intrinsics.texi: Regenerated.
11240
11241 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
11242
11243         * expr.h (emit_stack_probe): Declare.
11244         * explow.c (emit_stack_probe): Make global.
11245         (anti_adjust_stack_and_probe): Fix comments.
11246         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
11247         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
11248         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
11249         * config/sparc/sparc.c: Include except.h.
11250         (sparc_emit_probe_stack_range): New function.
11251         (output_probe_stack_range): Likewise.
11252         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
11253         built-in stack checking is enabled.
11254         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
11255         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
11256         (probe_stack_range): New insn.
11257
11258 2010-07-02  Richard Guenther  <rguenther@suse.de>
11259
11260         PR target/43958
11261         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
11262         for argument alignment.
11263
11264 2010-07-02  Jan Hubicka  <jh@suse.cz>
11265
11266         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
11267         walk backwards from entry_bb to check only those basic block of header
11268         that might lead to execution of split part.
11269         (consider_split) ... here.
11270         (find_return_bb): Allow assignment in return BB.
11271         (find_retval): New.
11272         (split_function): Fix name of cloned function; take care of updating
11273         return value in return_bb containing move.
11274
11275 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
11276
11277         PR target/44771
11278         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
11279         used variable insn.
11280
11281 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
11282
11283         * implicit-zee.c (combine_reaching_defs): Fix long lines.
11284         (is_set_with_extension_DI): Delete.
11285         (struct zero_extend_info): New structure.
11286         (add_removable_zero_extend): New function.
11287         (find_removable_zero_extends): Use note_stores to find SETs.
11288         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
11289
11290 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
11291
11292         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
11293         is_miss_rate_acceptable. Pull total_positions computation
11294         out of the loops.  Early return if miss_positions exceeds
11295         the acceptable threshold.
11296         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
11297         is_miss_rate_acceptable after renaming of compute_miss_rate.
11298
11299 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
11300
11301         PR middle-end/44576
11302         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
11303         of 1000) for miss rate if the address diference is greater than or
11304         equal to the cache line size (the two reference will never hit the
11305         same cache line).
11306
11307 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
11308
11309         PR target/42835
11310         * config/arm/arm-modes.def (CC_NOTB): New mode.
11311         * config/arm/arm.c (get_arm_condition_code): Handle it.
11312         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
11313         * config/arm/arm.md (subsi3_compare0_c): New pattern.
11314         (compare_scc): Now a define_and_split.  Add a number of extra
11315         splitters before it.
11316
11317         PR target/42172
11318         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
11319         and ZERO_EXTEND.
11320         (arm_rtx_costs_1): Likewise.
11321         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
11322         * config/arm/arm.md (is_arch6): New attribute.
11323         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
11324         extendqisi2): Tighten the code somewhat, avoiding invalid
11325         RTL to occur in the expander patterns.
11326         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
11327         (thumb1_zero_extendhisi2_v6): Delete.
11328         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
11329         (thumb1_extendhisi2_v6): Delete.
11330         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
11331         (thumb1_extendqisi2_v6): Delete.
11332         (zero_extendhisi2 for register input splitter): New.
11333         (zero_extendqisi2 for register input splitter): New.
11334         (thumb1_extendhisi2 for register input splitter): New.
11335         (extendhisi2 for register input splitter): New.
11336         (extendqisi2 for register input splitter): New.
11337         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
11338         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
11339         and add support for a register alternative requiring a split.
11340         (thumb1_zero_extendqisi2): Likewise.
11341         (arm_zero_extendqisi2): Likewise.
11342         (arm_extendhisi2): Likewise.
11343         (arm_extendqisi2): Likewise.
11344
11345 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
11346
11347         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
11348         instead of an unspec.
11349         (neon_expand_vector_init): Likewise.
11350         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
11351         (UNSPEC_VDUP_LANE): Delete.
11352         (UNSPEC VDUP_N): Delete.
11353         (UNSPEC_VGET_HIGH): Delete.
11354         (UNSPEC_VGET_LANE): Delete.
11355         (UNSPEC_VGET_LOW): Delete.
11356         (UNSPEC_VMVN): Delete.
11357         (UNSPEC_VSET_LANE): Delete.
11358         (V_double_vector_mode): New.
11359         (vec_set<mode>_internal): Make code emitted match that for the
11360         corresponding intrinsics.
11361         (vec_setv2di_internal): Likewise.
11362         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
11363         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
11364         (neon_vset_lane<mode>): Combine double and quad patterns and
11365         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
11366         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
11367         (neon_vdup_n<mode>): Rewrite RTL without unspec.
11368         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
11369         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
11370         with neon_vdup_lanev2di, adjusting the pattern from the latter
11371         to be predicable for consistency.
11372         (neon_vdup_lane<mode>_internal): New.
11373         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
11374         to avoid using an unspec.
11375         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
11376         (neon_vdup_lanev2di): Turn into a define_expand.
11377         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
11378         (neon_vget_high<mode>): Replace with....
11379         (neon_vget_highv16qi): New pattern using canonical RTL.
11380         (neon_vget_highv8hi): Likewise.
11381         (neon_vget_highv4si): Likewise.
11382         (neon_vget_highv4sf): Likewise.
11383         (neon_vget_highv2di): Likewise.
11384         (neon_vget_low<mode>): Replace with....
11385         (neon_vget_lowv16qi): New pattern using canonical RTL.
11386         (neon_vget_lowv8hi): Likewise.
11387         (neon_vget_lowv4si): Likewise.
11388         (neon_vget_lowv4sf): Likewise.
11389         (neon_vget_lowv2di): Likewise.
11390
11391         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
11392         test for this emitting vmov.
11393         (Vset_lane): Likewise.
11394         (Vdup_n): Likewise.
11395         (Vmov_n): Likewise.
11396
11397         * doc/arm-neon-intrinsics.texi: Regenerated.
11398
11399 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
11400
11401         * config/arm/neon.md (vec_extractv2di): Correct error in register
11402         numbering to reconcile with neon_vget_lanev2di.
11403
11404 2010-07-02  Richard Guenther  <rguenther@suse.de>
11405
11406         * tree-ssa-structalias.c (pt_solution_set_var): New function.
11407         * tree-ssa-alias.h (pt_solution_set_var): Declare.
11408         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
11409         points-to information.
11410
11411 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
11412
11413         * config/s390/s390.c (override_options): Adopt prefetching
11414         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
11415
11416 2010-07-02  Jan Hubicka  <jh@suse.cz>
11417
11418         * df-problems.c (df_kill_notes): Do not collect dead  notes.
11419         (df_set_note): Just call add_reg_note.
11420         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
11421         df_create_unused_note): Do not deal with lists of old notes.
11422         (df_note_bb_compute): Likewise.
11423
11424 2010-07-02  Richard Guenther  <rguenther@suse.de>
11425
11426         * tree-ssa-structalias.c (find_func_aliases): Handle
11427         pointer alignment via BIT_AND_EXPR.
11428         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
11429
11430 2010-07-02  Richard Guenther  <rguenther@suse.de>
11431
11432         * tree-data-ref.c (initialize_data_dependence_relation): Handle
11433         mismatching number of dimensions properly.
11434
11435 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11436
11437         PR target/44707
11438         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
11439         (lo_sum (high ...) ...) patterns generated by earlier passes.
11440
11441 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11442
11443         * doc/install.texi (Prerequisites): Document Perl requirement on
11444         Solaris 2.
11445         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
11446
11447 2010-07-02  Richard Guenther  <rguenther@suse.de>
11448
11449         PR middle-end/44777
11450         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
11451
11452 2010-07-02  Jan Hubicka  <jh@suse.cz>
11453
11454         PR middle-end/44706
11455         * predict.c (predict_paths_for_bb): Handle case when control dependence
11456         BB has only abnormal edges.
11457
11458 2010-07-02  Richard Guenther  <rguenther@suse.de>
11459
11460         PR tree-optimization/44748
11461         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
11462         the embedded conversion in MEM_REFs.
11463
11464 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
11465
11466         * reload.c: Include toplev.h.
11467         * recog.c:  Likewise.
11468         * Makefile.in: Adjust dependencies.
11469
11470 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
11471
11472         PR debug/44694
11473         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
11474         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
11475
11476 2010-07-01  Richard Guenther  <rguenther@suse.de>
11477
11478         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
11479         types for offsets.
11480
11481 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
11482
11483         PR target/44732
11484         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
11485         Fix argument types.
11486
11487 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
11488
11489         PR target/44727
11490         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
11491         Make sure operand 0 dies.
11492
11493 2010-07-01  Richard Guenther  <rguenther@suse.de>
11494
11495         PR middle-end/42834
11496         PR middle-end/44468
11497         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
11498         * doc/generic.texi (References to storage): Document MEM_REF.
11499         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
11500         (print_call_name): Likewise.
11501         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
11502         (build_simple_mem_ref_loc): New function.
11503         (mem_ref_offset): Likewise.
11504         * tree.h (build_simple_mem_ref_loc): Declare.
11505         (build_simple_mem_ref): Define.
11506         (mem_ref_offset): Declare.
11507         * fold-const.c: Include tree-flow.h.
11508         (operand_equal_p): Handle MEM_REF.
11509         (build_fold_addr_expr_with_type_loc): Likewise.
11510         (fold_comparison): Likewise.
11511         (fold_unary_loc): Fold
11512         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
11513         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
11514         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
11515         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
11516         (ptr_deref_may_alias_ref_p_1): Likewise.
11517         (ao_ref_base_alias_set): Properly differentiate base object for
11518         offset and TBAA.
11519         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
11520         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
11521         (indirect_refs_may_alias_p): Likewise.
11522         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
11523         chasing code.
11524         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
11525         (call_may_clobber_ref_p_1): Likewise.
11526         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
11527         * expr.c (expand_assignment): Handle MEM_REF.
11528         (store_expr): Handle MEM_REFs from STRING_CSTs.
11529         (store_field): If expanding a MEM_REF of a non-addressable
11530         decl use bitfield operations.
11531         (get_inner_reference): Handle MEM_REF.
11532         (expand_expr_addr_expr_1): Likewise.
11533         (expand_expr_real_1): Likewise.
11534         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
11535         * alias.c (ao_ref_from_mem): Handle MEM_REF.
11536         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
11537         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
11538         (dr_analyze_indices): Likewise.
11539         (dr_analyze_alias): Likewise.
11540         (object_address_invariant_in_loop_p): Likewise.
11541         * gimplify.c (mark_addressable): Handle MEM_REF.
11542         (gimplify_cond_expr): Build MEM_REFs.
11543         (gimplify_modify_expr_to_memcpy): Likewise.
11544         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
11545         (gimple_fold_indirect_ref): Adjust.
11546         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
11547         * tree.def (MEM_REF): New tree code.
11548         * tree-dfa.c: Include toplev.h.
11549         (get_ref_base_and_extent): Handle MEM_REF.
11550         (get_addr_base_and_unit_offset): New function.
11551         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
11552         * gimple-fold.c (may_propagate_address_into_dereference): Handle
11553         MEM_REF.
11554         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
11555         accesses if the array has just one dimension.  Remove always true
11556         parameter.  Do not require type compatibility here.
11557         (maybe_fold_offset_to_component_ref): Remove.
11558         (maybe_fold_stmt_indirect): Remove.
11559         (maybe_fold_reference): Remove INDIRECT_REF handling.
11560         Fold back to non-MEM_REF.
11561         (maybe_fold_offset_to_address): Simplify.  Deal with type
11562         mismatches here.
11563         (maybe_fold_reference): Likewise.
11564         (maybe_fold_stmt_addition): Likewise.  Also handle
11565         &ARRAY + I in addition to &ARRAY[0] + I.
11566         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
11567         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
11568         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
11569         * tree-ssa.c (useless_type_conversion_p): Make most pointer
11570         conversions useless.
11571         (warn_uninitialized_var): Handle MEM_REF.
11572         (maybe_rewrite_mem_ref_base): New function.
11573         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
11574         to SSA form.
11575         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
11576         INDIRECT_REF handling.
11577         (copy_tree_body_r): Handle MEM_REF.
11578         * gimple.c (is_gimple_addressable): Adjust.
11579         (is_gimple_address): Likewise.
11580         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
11581         invariant base are invariant.
11582         (is_gimple_min_lval): Adjust.
11583         (is_gimple_mem_ref_addr): New function.
11584         (get_base_address): Handle MEM_REF.
11585         (count_ptr_derefs): Likewise.
11586         (get_base_loadstore): Likewise.
11587         * gimple.h (is_gimple_mem_ref_addr): Declare.
11588         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
11589         * tree-cfg.c (verify_address): New function, split out from ...
11590         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
11591         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
11592         INDIRECT_REFs.
11593         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
11594         INDIRECT_REF.  Allow conversions.
11595         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
11596         a register does not change its size.
11597         (verify_types_in_gimple_reference): Verify MEM_REF.
11598         (verify_gimple_assign_single): Disallow INDIRECT_REF.
11599         Handle MEM_REF.
11600         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
11601         New.
11602         (mark_address_taken): Handle MEM_REF.
11603         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
11604         (get_asm_expr_operands): Pass opf_not_non_addressable.
11605         (get_expr_operands): Handle opf_[not_]non_addressable.
11606         Handle MEM_REF.  Remove INDIRECT_REF handling.
11607         * tree-vrp.c (check_array_ref): Handle MEM_REF.
11608         (search_for_addr_array): Likewise.
11609         (check_array_bounds): Likewise.
11610         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
11611         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
11612         (ref_always_accessed_p): Likewise.
11613         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
11614         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
11615         Handle MEM_REF.
11616         * cgraphbuild.c (mark_load): Properly check for NULL result
11617         from get_base_address.
11618         (mark_store): Likewise.
11619         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
11620         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
11621         handling for MEM_REF.
11622         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
11623         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
11624         * builtins.c (stabilize_va_list_loc): Use the function ABI
11625         valist type if we couldn't canonicalize the argument type.
11626         Always dereference with the canonical va-list type.
11627         (maybe_emit_free_warning): Handle MEM_REF.
11628         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
11629         memmove to memcpy.
11630         * builtins.c (fold_builtin_memory_op): Use ref-all types
11631         for all memcpy foldings.
11632         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
11633         (build_outer_var_ref): Likewise.
11634         (scan_omp_1_op): Likewise.
11635         (lower_rec_input_clauses): Likewise.
11636         (lower_lastprivate_clauses): Likewise.
11637         (lower_reduction_clauses): Likewise.
11638         (lower_copyprivate_clauses): Likewise.
11639         (expand_omp_atomic_pipeline): Likewise.
11640         (expand_omp_atomic_mutex): Likewise.
11641         (create_task_copyfn): Likewise.
11642         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
11643         Remove old union trick.  Initialize constant offsets.
11644         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
11645         INDIRECT_REF.  Init base_alias_set properly.
11646         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
11647         (vn_reference_fold_indirect): Adjust for MEM_REFs.
11648         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
11649         for ARRAY_REFs.
11650         (may_insert): Remove.
11651         (visit_reference_op_load): Do not test may_insert.
11652         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
11653         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
11654         a field to store the constant offset this op applies.
11655         (run_scc_vn): Adjust prototype.
11656         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
11657         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
11658         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
11659         bother about volatile qualifiers on pointers.
11660         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
11661         * tree-ssa-loop-ivopts.c
11662         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
11663         (strip_offset_1): Likewise.
11664         (find_interesting_uses_address): Replace INDIRECT_REF handling with
11665         MEM_REF handling.
11666         (get_computation_cost_at): Likewise.
11667         * ipa-pure-const.c (check_op): Handle MEM_REF.
11668         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
11669         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
11670         and constants.
11671         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
11672         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
11673         (eliminate_local_variables_1): Likewise.
11674         (create_call_for_reduction_1): Likewise.
11675         (create_loads_for_reductions): Likewise.
11676         (create_loads_and_stores_for_name): Likewise.
11677         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
11678         (ssa_accessed_in_tree): Handle MEM_REF.
11679         (ssa_accessed_in_assign_rhs): Likewise.
11680         (update_type_size): Likewise.
11681         (analyze_accesses_for_call_stmt): Likewise.
11682         (analyze_accesses_for_assign_stmt): Likewise.
11683         (transform_access_sites): Likewise.
11684         (transform_allocation_sites): Likewise.
11685         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
11686         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
11687         not handle INDIRECT_REF.
11688         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
11689         (cond_store_replacement): Likewise.
11690         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
11691         MEM_REF, no not handle INDIRECT_REFs.
11692         (insert_into_preds_of_block): Properly initialize avail.
11693         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
11694         for ARRAY_REFs.  Properly handle reference lookups that
11695         require a bit re-interpretation.
11696         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
11697         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
11698         (build_ref_for_offset_1): Remove.
11699         (build_ref_for_offset): Build MEM_REFs.
11700         (gate_intra_sra): Disable for now.
11701         (sra_ipa_modify_expr): Handle MEM_REF.
11702         (ipa_early_sra_gate): Disable for now.
11703         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
11704         MEM_REF handling.
11705         (disqualify_base_of_expr): Likewise.
11706         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
11707         MEM_REF handling.
11708         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
11709         Use mem_ref_offset.  Remove bogus folding.
11710         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
11711         (make_fancy_name_1): Add support for MEM_REF.
11712         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
11713         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
11714         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
11715         (compute_complex_ancestor_jump_func): Likewise.
11716         (ipa_analyze_virtual_call_uses): Likewise.
11717         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
11718         INDIRECT_REF folding with more generalized MEM_REF folding.
11719         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
11720         (forward_propagate_addr_into_variable_array_index): Also handle
11721         &ARRAY + I in addition to &ARRAY[0] + I.
11722         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
11723         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
11724         creates assignments with overlap.
11725         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
11726         (get_frame_field): Likewise.
11727         (get_nonlocal_debug_decl): Likewise.
11728         (convert_nonlocal_reference_op): Likewise.
11729         (struct nesting_info): Add mem_refs pointer-set.
11730         (create_nesting_tree): Allocate it.
11731         (convert_local_reference_op): Insert to be folded mem-refs.
11732         (fold_mem_refs): New function.
11733         (finalize_nesting_tree_1): Perform defered folding of mem-refs
11734         (free_nesting_tree): Free the pointer-set.
11735         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
11736         (vectorizable_load): Likewise.
11737         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
11738         (propagate_with_phi): Likewise.
11739         * tree-object-size.c (addr_object_size): Handle MEM_REFs
11740         instead of INDIRECT_REFs.
11741         (compute_object_offset): Handle MEM_REF.
11742         (plus_stmt_object_size): Handle MEM_REF.
11743         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
11744         for &MEM_REF.
11745         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
11746         (symbol_marked_for_renaming): Likewise.
11747         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
11748         (fold-const.o): Add $(TREE_FLOW_H).
11749         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
11750         (find_func_clobbers): Likewise.
11751         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
11752         (decompose_access): Likewise.
11753         (replace_field_acc): Likewise.
11754         (replace_field_access_stmt): Likewise.
11755         (insert_new_var_in_stmt): Likewise.
11756         (get_stmt_accesses): Likewise.
11757         (reorg_structs_drive): Disable.
11758         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
11759         (ix86_canonical_va_list_type): Likewise.
11760
11761 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
11762
11763         PR other/44566
11764         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
11765         * target.def (struct gcc_target): Replace enum reg_class with
11766         reg_class_t in hook argument / return types.
11767         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
11768         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
11769         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
11770         * targhooks.h (default_branch_target_register_class): Likewise.
11771         (default_ira_cover_classes, default_secondary_reload): Likewise.
11772         (default_memory_move_cost, default_register_move_cost): Likewise.
11773         * targhooks.c (default_branch_target_register_class): Likewise.
11774         (default_ira_cover_classes, default_secondary_reload): Likewise.
11775         (default_memory_move_cost, default_register_move_cost): Likewise.
11776         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
11777         * bt-load.c (branch_target_load_optimize): Likewise.
11778         * ira.c (setup_cover_and_important_classes): Likewise.
11779         * ira-costs.c (copy_cost): Likewise.
11780         * reload1.c (emit_input_reload_insns): Likewise.
11781         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
11782         * config/frv/frv.c (frv_secondary_reload): Likewise.
11783         * config/s390/s390.c (s390_secondary_reload): Likewise.
11784         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
11785         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
11786         (ix86_register_move_cost): Likewise.
11787         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
11788         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
11789         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
11790         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
11791         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
11792         (rs6000_ira_cover_classes): Likewise.
11793         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
11794         * config/picochip/picochip-protos.h (picochip_secondary_reload):
11795         Likewise.
11796         * config/pa/pa.c (pa_secondary_reload): Likewise.
11797         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
11798         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
11799         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
11800         * doc/tm.texi: Regenerate.
11801
11802 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
11803
11804         PR bootstrrap/44726
11805         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
11806         use.
11807         (build_alias_set_optimal_p): Likewise.
11808         (build_base_obj_set_for_drs): Likewise.
11809
11810 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
11811
11812         * target.def: Remove comment about licensing problems of function
11813         declarations.
11814
11815         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
11816         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
11817         * doc/tm.texi: Regenerate.
11818
11819         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
11820         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
11821
11822         * target.def (enum_va_list_p): Use DEFHOOK.
11823         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
11824         Rename ptype to ptree.
11825         * doc/tm.texi: Regenerate.
11826
11827         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
11828         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
11829         * doc/tm.texi: Regenerate.
11830
11831         * target.def (memory_move_cost): Use DEFHOOK.
11832         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
11833         Rename regclass AKA class to rclass.
11834         * doc/tm.texi: Regenerate.
11835
11836         * target.def (pragma_parse): Use DEFHOOK.
11837         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
11838         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
11839         * doc/tm.texi: Regenerate.
11840
11841         * target.def (pass_by_reference): Use DEFHOOK.
11842         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
11843         * doc/tm.texi: Regenerate.
11844
11845         * target.def (resolve_overloaded_builtin): Rename params to arglist.
11846         Use DEFHOOK.
11847         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
11848         * doc/tm.texi: Regenerate.
11849
11850         * target.def (return_pops_args): Use DEFHOOK.
11851         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
11852         Rename stack-size to size.
11853         * doc/tm.texi: Regenerate.
11854
11855         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
11856         last-sched_cycle to last_clock, cur_cycle to clock.
11857         * doc/tm.texi.in: Use @hook.
11858         * doc/tm.texi: Regenerate.
11859
11860         * target.def (print_operand, print_operand_address): Update comment.
11861         (print_operand_punct_valid_p): Likewise.
11862
11863 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11864
11865         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
11866         to rtl.h.
11867         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
11868         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
11869         * rtl-error.h: New.
11870         * regrename.c: Do not include toplev.h. Include rtl-error.h.
11871         * rtl-error.c: Likewise.
11872         * reload.c: Likewise.
11873         * recog.c:  Likewise.
11874         * sel-sched.c: Likewise.
11875         * function.c: Likewise.
11876         * reg-stack.c: Likewise.
11877         * cfgrtl.c: Likewise.
11878         * reload1.c: Likewise.
11879         * final.c: Include rtl-error.
11880         * Makefile.in: Adjust dependencies.
11881
11882 2010-06-30  Jan Hubicka  <jh@suse.cz>
11883
11884         PR middle-end/PR44706
11885         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
11886         to return the value.
11887
11888 2010-06-30  Michael Matz  <matz@suse.de>
11889
11890         PR bootstrap/44699
11891         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
11892         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
11893         a gimple reg, attach the original VDEF to the last store in the
11894         sequence.
11895
11896 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
11897
11898         PR other/44034
11899         * config/darwin.c (darwin_override_options): Use renamed
11900         targetm.asm_out.emit_unwind_label.
11901
11902 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
11903
11904         PR tree-optimization/39799
11905         * tree-inline.c (remap_ssa_name): Initialize variable only if
11906         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
11907
11908 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
11909
11910         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
11911
11912 2010-06-30  Richard Guenther  <rguenther@suse.de>
11913
11914         PR target/44722
11915         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
11916         against oscillation with reverse peephole2.
11917
11918 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
11919
11920         PR target/44721
11921         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
11922         Fix last commit.
11923
11924 2010-06-30  Nick Clifton  <nickc@redhat.com>
11925
11926         * config/rx/rx-modes.def: New file.
11927         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
11928         (CC_REGNUM): Define.
11929         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
11930         register.
11931         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
11932         (SELECT_CC_MODE): Define.
11933         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
11934         (reg:CC CC_REG) instead of (cc0).
11935         (attr "cc"): Delete.
11936         (cbranchsi4): Do not split compare and branch here. Instead move
11937         it to...
11938         (cbranchsi4_<code>): ... here.  New patterns.
11939         (cmpsi): Call rx-compare_redundant to find out if it is necessary
11940         to emit the compare instruction.
11941         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
11942         cc_status flags.
11943         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
11944         FIRST_PSEUDO_REGNUM.
11945         (rx_expand_prologue, rx_expand_epilogue): Likewise.
11946         (rx_notice_update_cc): Delete.
11947         (rx_cc_modes_compatible): New function.
11948         (flags_needed_for_conditional): New function.
11949         (flags_from_mode): New function.
11950         (rx_compare_redundant): New function - scans backwards through
11951         insn list to find out if condition flags are already set correctly.
11952         (TARGET_CC_MODES_COMPATIBLE): Define.
11953         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
11954
11955         * config/rx/rx.h (BRANCH_COST): Define.
11956         (REGISTER_MOVE_COST): Define.
11957         * config/rx/predicates (rx_source_operand): Allow all constant types.
11958         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
11959         (tstsi4): New pattern.
11960         * config/rx/rx.c (rx_memory_move_cost): Define.
11961         (TARGET_MEMORY_MOVE_COST): Define.
11962
11963 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11964
11965         * tree.h (block_may_fallthru): Declare here.
11966         * tree-flow.h (block_may_fallthru): Do not declare here.
11967         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
11968         bitmap.h
11969         * Makefile.in (c-typeck.o): Update dependencies.
11970
11971 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
11972
11973         PR debug/44694
11974         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
11975         * cselib.c (cfa_base_preserved_regno): New static variable.
11976         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
11977         of REGNO (cfa_base_preserved_val->locs->loc).
11978         (cselib_preserve_cfa_base_value): Add regno argument, set
11979         cfa_base_preserved_regno to it.
11980         (cselib_invalidate_regno): Allow removal of registers other than
11981         cfa_base_preserved_regno from cfa_base_preserved_val.
11982         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
11983         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
11984         of MEM addresses, if not on LHS.
11985         (reverse_op): Don't add reverse ops for cfa_base_rtx.
11986         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
11987
11988 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
11989
11990         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
11991         static variables.
11992         (peep2_buf_position): New static function.
11993         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
11994         peephole2_optimize): Use it.
11995         (peep2_attempt, peep2_update_life): New static functions, broken out
11996         of peephole2_optimize.
11997         (peep2_fill_buffer): New static function.
11998         (peephole2_optimize): Change the main loop to try to fill the buffer
11999         with the maximum number of insns before matching them against
12000         peepholes.  Use a forward scan.  Remove special case for targets with
12001         conditional execution.
12002         * genrecog.c (change_state): Delete dead code.
12003         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
12004         Rewrite so as not to expect the second insn to have had a peephole
12005         applied yet.
12006
12007 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
12008
12009         * genhooks.c (emit_findices): Cast field precision to int.
12010         (emit_documentation): Likewise.
12011
12012 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
12013
12014         PR tree-optimization/43801
12015         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
12016         if old_decl was DECL_ONE_ONLY.
12017
12018         PR debug/44668
12019         * dwarf2out.c (add_accessibility_attribute): New function.
12020         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
12021         instead of adding DW_AT_accessibility manually.
12022         (gen_enumeration_type_die, gen_struct_or_union_type_die,
12023         gen_typedef_die): Use it.
12024
12025 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
12026
12027         * vmsdbgout.c (full_name): Just output the file name if not native.
12028
12029 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
12030
12031         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
12032         (funcnam_table): New static table.
12033         (funcnum_table): New static table.
12034         (write_rtnbeg): Write value saved in funcnum_table.
12035         (write_rtnend): Write value saved in funcnum_table.
12036         (vmsdbgout_begin_function): Save current function info in
12037         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
12038         (vmsdbgout_finish): Iterate over funcnum_table.
12039
12040 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
12041
12042         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
12043         (vmsdbgout_type_decl): Declare
12044         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
12045         (FUNC_EPILOGUE_LABEL): New macro
12046         (vmsdbgout_begin_epilogue): New function.
12047         (vmsdbgout_type_decl): New function.
12048
12049 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
12050
12051         * vmsdbg.h: Update copyright.
12052
12053 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
12054
12055         * vmsdbg.h (DST_K_TBG): New DST constant.
12056         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
12057         (write_modbeg): Cast module_language to avoid warning.
12058         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
12059
12060 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
12061
12062         PR other/44034
12063         * target.def, doc/tm.texi.in, genhooks.c: New files.
12064         * target.h: Instead of defining individual hook members,
12065         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
12066         include target.def.
12067         * target-def.h: Instead of defining individual hook initializers,
12068         include target-hooks-def.h.
12069         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
12070         targetm.live_on_entry -> targetm.extra_live_on_entry
12071         targetm.sched.md_finish ->targetm.sched.finish
12072         targetm.sched.md_init -> targetm.sched.init
12073         targetm.sched.md_init_global -> targetm.sched.init_global
12074         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
12075         targetm.asm_out.except_table_label ->
12076           targetm.asm_out.emit_except_table_label
12077         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
12078         targetm.target_help -> targetm.help
12079         targetm.vectorize.builtin_support_vector_misalignment ->
12080           targetm.vectorize.support_vector_misalignment
12081         targetm.file_start_app_off -> targetm.asm_file_start_app_off
12082         targetm.file_start_file_directive ->
12083          targetm.asm_file_start_file_directive
12084         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
12085         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
12086         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
12087         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
12088           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
12089         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
12090           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
12091         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
12092         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
12093         * Makefile.in (TARGET_H): Depend on target.def.
12094         (TARGET_DEF_H): Depend on target-hooks-def.h.
12095         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
12096         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
12097         * doc/tm.texi: Regenerate.
12098
12099         * Makefile.in (s-tm-texi): Remove stray tab / rule.
12100
12101         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
12102         (targetm.sched.init): Likewise.
12103
12104 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
12105
12106         PR bootstrap/44713
12107         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
12108         (function_arg_advance_32): Const-ify TYPE parameter.
12109         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
12110         (ix86_function_arg_advance): Change type of NAMED to bool.
12111         (function_arg_32): Const-ify CUM and TYPE parameters.
12112         (function_arg_64): Likewise.  Change type of NAMED to bool.
12113         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
12114         to bool.
12115         (ix86_function_arg): Change type of NAMED to bool.
12116         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
12117         last argument as a bool.
12118
12119 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
12120
12121         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
12122         (OVERRIDE_OPTIONS): Add note of obsolescence.
12123         Replace references with references to TARGET_OPTION_OVERRIDE.
12124         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
12125          the macro).
12126         * targhooks.c (default_target_option_override): New function.
12127         * targhooks.h (default_target_option_override): Declare.
12128         * target.h (struct gcc_target): Add override member to
12129         target_option member.
12130         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
12131         targetm.target_option.override call.
12132         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
12133         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
12134
12135 2010-06-29  Jan Hubicka  <jh@suse.cz>
12136
12137         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
12138
12139 2010-06-29  Jan Hubicka  <jh@suse.cz>
12140
12141         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
12142         unreachable.
12143         (rebuild_frequencies): New function.
12144         * predict.h (rebuild_frequencies): Declare.
12145         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
12146         entry block and edge reaching new_entry.
12147         (tree_function_versioning): When doing partial cloning, rebuild
12148         frequencies when done.
12149         * passes.c (execute_function_todo): Use rebild_frequencies.
12150
12151 2010-06-29  Richard Guenther  <rguenther@suse.de>
12152
12153         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
12154         * tree-flow.h (enum noalias_state): Remove.
12155         (struct var_ann_d): Remove noalias_state member.
12156
12157 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
12158
12159         PR target/43902
12160         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
12161         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
12162         (maddhidi4): Likewise.
12163
12164         Revert parts of the change for PR25130.
12165         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
12166         MEM_ALIAS_SET.
12167
12168 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
12169
12170         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
12171         targetm.calls.function_incoming_arg, and
12172         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
12173         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
12174         * target.h (struct gcc_target): Add function_arg_advance,
12175         function_arg, and function_incoming_arg fields.
12176         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
12177         (TARGET_FUNCTION_INCOMING_ARG): Define.
12178         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
12179         and TARGET_FUNCTION_INCOMING_ARG.
12180         * targhooks.h (default_function_arg_advance): Declare.
12181         (default_function_arg, default_function_incoming_arg): Declare.
12182         * targhooks.c (default_function_arg_advance): New function.
12183         (default_function_arg, default_function_incoming_arg): New function.
12184         * config/i386/i386.c (function_arg_advance): Rename to...
12185         (ix86_function_arg_advance): ...this.  Make static.
12186         (function_arg): Rename to...
12187         (ix86_function_arg): ...this.  Make static.
12188         (TARGET_FUNCTION_ARG_ADVANCE): Define.
12189         (TARGET_FUNCTION_ARG): Define.
12190         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
12191         (FUNCTION_ARG): Delete.
12192         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
12193         (function_arg): Delete prototype.
12194
12195 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
12196
12197         * reginfo.c (init_reg_sets_1): Adjust comments.
12198         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
12199         * calls.c (prepare_call_address): Likewise.
12200         (emit_call_1): Use targetm.calls.return_pops_args.
12201         (expand_call): Likewise.
12202         * function.c (assign_parms): Likewise.
12203         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
12204         * target.h (struct gcc_target) [struct calls]: Add
12205         return_pops_args field.
12206         * targhooks.h (default_return_pops_args): Declare.
12207         * targhooks.c (default_return_pops_args): Define.
12208         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
12209         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
12210         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
12211         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
12212         documentation.
12213         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
12214         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
12215         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
12216         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
12217         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
12218         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
12219         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
12220         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
12221         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
12222         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
12223         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
12224         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
12225         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
12226         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
12227         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
12228         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
12229         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
12230         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
12231         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
12232         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
12233         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
12234         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
12235         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
12236         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
12237         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
12238         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
12239         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
12240         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
12241         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
12242         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
12243         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
12244         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
12245         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
12246         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
12247         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
12248         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
12249         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
12250         * config/i386/i386.c (ix86_return_pops_args): Make static.
12251         Constify arguments.
12252         (TARGET_RETURN_POPS_ARGS): Define.
12253         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
12254         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
12255         (TARGET_RETURN_POPS_ARGS): Define.
12256         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
12257         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
12258         (TARGET_RETURN_POPS_ARGS): Define.
12259
12260 2010-06-29  Richard Guenther  <rguenther@suse.de>
12261
12262         PR middle-end/44667
12263         * tree-inline.c (initialize_inlined_parameters): Make sure
12264         to remap the inlined parameter variable substitutions types.
12265
12266 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
12267
12268         PR rtl-optimization/44659
12269         * combine.c (make_compound_operation) <SUBREG>: Do not return the
12270         result of force_to_mode if it partially re-expanded the compound.
12271
12272 2010-06-28  Jan Hubicka  <jh@suse.cz>
12273
12274         PR middle-end/44671
12275         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
12276         RESULT_DECL.
12277
12278 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
12279
12280         * double-int.h (force_fit_type_double): Remove declaration.
12281         * double-int.c (force_fit_type_double): Move to tree.c.
12282         * tree.h (force_fit_type_double): Declare.
12283         * tree.h (force_fit_type_double): Moved from double-int.c. Use
12284         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
12285         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
12286         * convert.c (convert_to_pointer): Adjust call to
12287         force_fit_type_double.
12288         * tree-vrp.c (extract_range_from_assert,
12289         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
12290         * fold-const.c: Update comment.
12291         (int_const_binop, fold_convert_const_int_from_int,
12292         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
12293         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
12294         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
12295         round_up_loc): Adjust call to force_fit_type_double.
12296
12297 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
12298
12299         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
12300
12301 2010-06-28  Martin Jambor  <mjambor@suse.cz>
12302
12303         * tree-sra.c (convert_callers): New parameter, change fndecls of
12304         recursive calls.
12305         (modify_function): Pass the old decl to convert_callers.
12306
12307 2010-06-28  Martin Jambor  <mjambor@suse.cz>
12308
12309         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
12310         ipa_check_create_node_params and ipa_initialize_node_params with
12311         checking asserts they are not necessary.
12312
12313 2010-06-28  Jan Hubicka  <jh@suse.cz>
12314
12315         PR tree-optimization/44687
12316         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
12317
12318 2010-06-28  Martin Jambor  <mjambor@suse.cz>
12319
12320         PR c++/44535
12321         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
12322         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
12323         instead of BINFO_BASE_BINFO.
12324
12325 2010-06-28  Michael Matz  <matz@suse.de>
12326
12327         PR middle-end/44592
12328         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
12329         proper VDEF chain for intermediate stores in the sequence.
12330
12331 2010-06-28  Jan Hubicka  <jh@suse.cz>
12332
12333         PR tree-optimization/44357
12334         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
12335         uninlinable functions.
12336
12337 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
12338
12339         * config.gcc (powerpc*-*-*): Handle titan.
12340         * config/rs6000/rs6000.c (titan_cost): New costs.
12341         (rs6000_override_options): Add "titan" to processor_target_table.
12342         Add Titan to branch alignment logic.
12343         Correctly set rs6000_cost for titan.
12344         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
12345         * config/rs6000/titan.md: New file.
12346         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
12347
12348 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
12349
12350         * tree-browser.c (TB_history_stack): Convert to a VEC.
12351         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
12352         (TB_history_prev): Likewise.
12353
12354 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
12355
12356         * vec.h (vec_heap_free): Add parentheses around free.
12357
12358 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
12359
12360         * system.h: Poison GCC_EXCEPT_H for front-end files.
12361
12362         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
12363         langhook.
12364         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
12365         Define to NULL by default.
12366         * except.h: Define GCC_EXCEPT_H.
12367         (doing_eh): Remove prototype.
12368         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
12369         (lang_protect_cleanup_actions): Remove.
12370         * except.c (lang_protect_cleanup_actions): Remove.
12371         (doing_eh): Remove.
12372         (gen_eh_region): Don't check doing_eh here.
12373         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
12374         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
12375         instead of lang_protect_cleanup_actions.
12376         * omp-low.c (maybe_catch_exception): Likewise.
12377         * Makefile.in: Update dependencies.
12378
12379 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
12380
12381         * cgraph.h (struct varpool_node): new used_from_object_file flag.
12382         (struct cgraph_local_info): new used_from_object_file flag.
12383         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
12384         (cgraph_clone_node): initialize used_from_object_file.
12385         (cgraph_create_virtual_clone): initialize used_from_object_file.
12386         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
12387         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
12388         when compiling with -fwhole-program.
12389         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
12390         internal resolver.
12391         * ipa.c (function_and_variable_visibility): Set externally_visible
12392         flag of varpool_node if used_from_object_file flag is set.
12393         (cgraph_externally_visible_p): check used_from_object_file flag.
12394         * doc/invoke.texi (-fwhole-program option): Change description of
12395         externally_visible attribute accordingly.
12396         * doc/extend.texi (externally_visible): Ditto.
12397
12398 2010-06-27  Jan Hubicka  <jh@suse.cz>
12399
12400         * params.def (max-inline-insns-auto): Default to 40.
12401         * doc/invoke.texi (max-inline-insns-auto): Document the change.
12402
12403 2010-06-27  Jan Hubicka  <jh@suse.cz>
12404
12405         PR middle-end/44671
12406         PR middle-end/44686
12407         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
12408         signature change.
12409         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
12410         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
12411
12412 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
12413
12414         * target.h (struct gcc_target): Add register_move_cost field.
12415         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
12416         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
12417         * targhooks.c (default_register_move_cost): New function.
12418         * targhooks.h (default_register_move_cost): Declare function.
12419         * defaults.h (REGISTER_MOVE_COST): Delete.
12420         * ira-int.h (ira_register_move_cost): Update comment.
12421         * ira.c (ira_register_move_cost): Update comment.
12422         * reload.h (register_move_cost): Declare.
12423         * reginfo.c (register_move_cost): New function.
12424         (move_cost): Update comment.
12425         (init_move_cost, memory_move_secondary_cost): Replace
12426         REGISTER_MOVE_COST with register_move_cost.
12427         * postreload.c (reload_cse_simplify_set): (Ditto.).
12428         * reload.c (find_valid_class, find_reloads): (Ditto.).
12429         * reload1.c (choose_reload_regs): (Ditto.).
12430         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
12431         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
12432         * doc/md.texi (can_create_pseudo_p): Update documentation.
12433
12434         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
12435         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
12436         * config/i386/i386.h (ix86_memory_move_cost): Make static.
12437         (TARGET_MEMORY_MOVE_COST): Define.
12438
12439         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
12440         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
12441         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
12442         (TARGET_MEMORY_MOVE_COST): Define.
12443
12444 2010-06-27  Richard Guenther  <rguenther@suse.de>
12445
12446         PR tree-optimization/44683
12447         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
12448         false edge from the inverted condition.
12449
12450 2010-06-27  Richard Guenther  <rguenther@suse.de>
12451
12452         PR middle-end/44684
12453         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
12454         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
12455         for register LHS.  Or non-store assignments.
12456
12457 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
12458
12459         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
12460         (sparc_emit_set_const64): Likewise.  Remove disabled code.
12461         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
12462         (sparc_emit_set_const64): Likewise.
12463
12464 2010-06-26  Catherine Moore  <clm@codesourcery.com>
12465
12466         * config/mips/mips.md (alu_type): New attribute.
12467         (type): Infer type from alu_type.
12468         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
12469         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
12470         *subsi3_extended, negsi2, negdi2, *low<mode>,
12471         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
12472         xor<mode>3, *nor<mode>3,
12473         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
12474         *zero_extendhi_truncqi):  Set alu_type instead of type.
12475
12476 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
12477
12478         * config/alpha/alpha.c (alpha_need_linkage): Adjust
12479         splay_tree_new_ggc call.
12480         (alpha_use_linkage): Likewise.
12481
12482 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
12483
12484         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
12485         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
12486         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
12487         (static_specs): Remove switches_need_spaces.
12488         (process_command, do_self_spec): Hardcode handling "-o" instead of
12489         checking switches_need_spaces.
12490         * system.h (SWITCHES_NEED_SPACES): Poison.
12491
12492 2010-06-26  Richard Guenther  <rguenther@suse.de>
12493
12494         PR tree-optimization/44393
12495         * tree-loop-distribution.c (generate_loops_for_partition): Fix
12496         stmt removal and VOP renaming.
12497         (generate_memset_zero): Remove redundant stmt updating.
12498         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
12499         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
12500
12501 2010-06-26  Jan Hubicka  <jh@suse.cz>
12502
12503         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
12504         edges comming from header are equivalent.
12505         (visit_bb): Handle PHIs correctly.
12506         * tree-inline.c (copy_phis_for_bb): Be able to copy
12507         PHI from entry edge.
12508         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
12509
12510 2010-06-26  Richard Guenther  <rguenther@suse.de>
12511
12512         PR middle-end/44674
12513         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
12514         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
12515
12516 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
12517
12518         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
12519         add_infile, alloc_switch): New.
12520         (process_command): Remove variable lang_n_infiles.  Process
12521         options in a single pass.  Use new functions for allocating
12522         infiles and switches arrays.  Properly skip operands of
12523         -Xpreprocessor and -Xassembler.
12524
12525 2010-06-26  Jan Hubicka  <jh@suse.cz>
12526
12527         PR middle-end/44671
12528         * cgraphunit.c (cgraph_function_versioning): Remove wrong
12529         cgraph_make_decl_local call; fix typo copying RTL data.
12530
12531 2010-06-25  DJ Delorie  <dj@redhat.com>
12532
12533         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
12534         (m32c_output_aligned_common): Likewise.
12535         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
12536         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
12537         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
12538         (m32c_register_pragmas): Register it.
12539         * config/m32c/m32c.c (m32c_get_pragma_address): New.
12540         (m32c_insert_attributes): Set #pragma address decls volatile.
12541         (pragma_entry_eq): New.
12542         (pragma_entry_hash): New.
12543         (m32c_note_pragma_address): New.
12544         (m32c_get_pragma_address): New.
12545         (m32c_output_aligned_common): New.
12546         * doc/extend.texi: Document the new pragma.
12547
12548         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
12549         also.
12550         * config/m32c/predicates.md (m32c_any_operand): Check the code
12551         instead of memory_operand so as to allow matching volatile MEMs.
12552         (m32c_nonimmediate_operand): Likewise.
12553         (mra_operand): Allow volatiles.
12554
12555 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
12556
12557         PR debug/44610
12558         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
12559         address if the offset is unknown.
12560
12561 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
12562
12563         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
12564         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
12565         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
12566         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
12567         to ia64_start_function. Invoke it.
12568         * config/ia64/ia64.c (ia64_start_function): Call new function
12569         dwarf2out_vms_debug_main_pointer.
12570
12571 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
12572
12573         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
12574         statements computing the true predicate.
12575
12576 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
12577
12578         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
12579         to boolean_true_node.
12580         (reset_bb_predicate): New.
12581         (predicate_bbs): Call reset_bb_predicate.
12582
12583 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
12584
12585         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
12586         (tree_if_conversion): Returns true when something has been changed.
12587         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
12588         changed something.
12589
12590 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
12591
12592         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
12593         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
12594         * tree-if-conv.c: Include dbgcnt.h.
12595         (tree_if_conversion): Use if_conversion_tree to count the number of
12596         if-convertible loops.
12597
12598 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
12599
12600         * common.opt (fprefetch-loop-arrays): Re-define
12601         -fprefetch-loop-arrays as a tri-state option with the initial
12602         value of -1.
12603         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
12604         pass only when flag_prefetch_loop_arrays > 0.
12605         * toplev.c (process_options): Note that, with tri-states,
12606         flag_prefetch_loop_arrays>0 means prefetching is enabled.
12607         * config/i386/i386.c (override_options): Enable prefetching at -O3
12608         for a set of CPUs that sw prefetching is helpful.
12609         (software_prefetching_beneficial_p): New.  Return TRUE if software
12610         prefetching is beneficial for the given CPU.
12611
12612 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
12613
12614         PR rtl-optimization/44326
12615         * implicit-zee.c (find_removable_zero_extends): Replace
12616         INSN_P with NONDEBUG_INSN_P.
12617
12618 2010-06-25  Martin Jambor  <mjambor@suse.cz>
12619
12620         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
12621         (struct ipa_node_params): Removed the modification_analysis_done flag.
12622         (ipa_is_param_modified): Removed.
12623         (ipa_analyze_node): Declare.
12624         (ipa_compute_jump_functions): Remove declaration.
12625         (ipa_count_arguments): Likewise.
12626         (ipa_detect_param_modifications): Likewise.
12627         (ipa_analyze_params_uses): Likewise.
12628         * ipa-prop.c (struct param_analysis_info): New type.
12629         (visit_store_addr_for_mod_analysis): Removed.
12630         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
12631         moved down in the file.
12632         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
12633         (ipa_count_arguments): Made static.
12634         (mark_modified): New function.
12635         (is_parm_modified_before_call): New function.
12636         (compute_pass_through_member_ptrs): New parameter parms_info, call
12637         is_parm_modified_before_call instead of ipa_is_param_modified.
12638         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
12639         it to compute_pass_through_member_ptrs.
12640         (ipa_compute_jump_functions): New parameter parms_info, pass it to
12641         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
12642         on the callee if it is analyzed.  Made static.
12643         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
12644         is_parm_modified_before_call instead of ipa_is_param_modified.
12645         (ipa_analyze_call_uses): New parameter parms_info, pass it to
12646         ipa_analyze_indirect_call_uses.
12647         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
12648         ipa_analyze_call_uses.
12649         (ipa_analyze_params_uses): New parameter parms_info, pass it to
12650         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
12651         (ipa_analyze_node): New function.
12652         (ipa_print_node_params): Do not dump the modified flag.
12653         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
12654         it.  Do not stream the modified parameter flag.
12655         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
12656         it.  Do not stream the modified parameter flag.
12657         * ipa-cp.c (ipcp_analyze_node): Removed.
12658         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
12659         with only a call to ipa_analyze_node.
12660         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
12661         node with only a call to ipa_analyze_node.
12662
12663 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12664
12665         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
12666
12667 2010-06-25  Jan Hubicka  <jh@suse.cz>
12668
12669         * tree-pass.h (pass_split_functions): Declare.
12670         * opts.c (decode_options): Enable function splitting at -O2
12671         * timevar.def (TV_IPA_FNSPLIT): New macro.
12672         * ipa-split.c: New file.
12673         * common.opt (-fpartial-inlining): New flag.
12674         * Makefile.in (ipa-split.o): New object file.
12675         * passes.c (init_optimization_passes): Add ipa-split.
12676         * params.def (partial-inlining-entry-probability): New parameters.
12677         * doc/invoke.texi (-fpartial-inlining): New.
12678
12679 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12680
12681         PR 44665
12682         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
12683         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
12684         (gimplify_expr): Likewise.
12685
12686 2010-06-25  Martin Jambor  <mjambor@suse.cz>
12687
12688         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
12689         statements instead of bailing out on them.
12690         (ipa_analyze_indirect_call_uses): Do not require that loads from the
12691         parameter are in the same BB as the condition.  Update comments.
12692
12693 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
12694
12695         PR middle-end/43866
12696         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
12697         true or always false, return NULL_TREE.
12698         (tree_unswitch_single_loop): Optimize conditions even when reaching
12699         max-unswitch-level parameter.  If num > 0, optimize first all conditions
12700         using entry checks, then do still reachable block discovery and consider
12701         only conditions in still reachable basic blocks in the loop.
12702
12703         PR tree-optimization/44539
12704         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
12705         the call doesn't have LHS, but has VDEF.
12706
12707 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
12708
12709         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
12710         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
12711         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
12712         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
12713         * system.h (MODIFY_TARGET_NAME): Poison.
12714
12715 2010-06-25  Alan Modra  <amodra@gmail.com>
12716
12717         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
12718         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
12719         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
12720         CMODEL_LARGE as default.
12721         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
12722         (offsettable_ok_by_alignment): Delete.
12723         (rs6000_emit_move): Remove mcmodel=medium optimization.
12724
12725 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
12726
12727         With large parts from Jim Wilson:
12728         PR target/43902
12729         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
12730         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
12731         * optabs.c (optab_for_tree_code): Likewise.
12732         (expand_widen_pattern_expr): Likewise.
12733         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
12734         out of execute_optimize_widening_mul.
12735         (convert_plusminus_to_widen): New function.
12736         (execute_optimize_widening_mul): Use the two new functions.
12737         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
12738         Remove code to generate widening multiply-accumulate.  Add support
12739         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
12740         * gimple-pretty-print.c (dump_ternary_rhs): New function.
12741         (dump_gimple_assign): Call it when appropriate.
12742         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
12743         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
12744         (expand_gimple_stmt_1): Likewise.
12745         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
12746         WIDEN_MULT_MINUS_EXPR.
12747         * tree-ssa-operands.c (get_expr_operands): Likewise.
12748         * tree-inline.c (estimate_operator_cost): Likewise.
12749         * gimple.c (extract_ops_from_tree_1): Renamed from
12750         extract_ops_from_tree.  Add new arg for a third operand; fill it.
12751         (gimple_build_assign_stat): Support operations with three operands.
12752         (gimple_build_assign_with_ops_stat): Likewise.
12753         (gimple_assign_set_rhs_from_tree): Likewise.
12754         (gimple_assign_set_rhs_with_ops_1): Renamed from
12755         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
12756         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
12757         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
12758         WIDEN_MULT_MINUS_EXPR.
12759         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
12760         (extract_ops_from_tree_1): Adjust declaration.
12761         (gimple_assign_set_rhs_with_ops_1): Likewise.
12762         (gimple_build_assign_with_ops): Pass NULL for last operand.
12763         (gimple_build_assign_with_ops3): New macro.
12764         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
12765         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
12766         functions.
12767         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
12768         (verify_gimple_assign): Call it.
12769         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
12770         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
12771         functions for dealing with three-operand statements.
12772         * tree.c (commutative_ternary_tree_code): New function.
12773         * tree.h (commutative_ternary_tree_code): Declare it.
12774         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
12775         ternary statements.
12776         (gimple_assign_nonzero_warnv_p): Likewise.
12777         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
12778         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
12779         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
12780         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
12781         (struct hashtable_expr): New member ternary in the union.
12782         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
12783         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
12784         (iterative_hash_hashable_expr): Likewise.
12785         (print_expr_hash_elt): Handle EXPR_TERNARY.
12786         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
12787         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
12788         statements.  Handle GIMPLE_TERNARY_RHS.
12789
12790 2010-06-25  Jan Hubicka  <jh@suse.cz>
12791
12792         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
12793
12794 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
12795
12796         PR c/44517
12797         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
12798         parameters are not good.
12799         (c_parser_parameter_declaration): Error unknown type name if the type
12800         name can't start declaration specifiers.
12801
12802 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
12803
12804         * gcc.c (translate_options): Don't mention +e in comment.
12805         (process_command): Don't handle +e specially.
12806
12807 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
12808
12809         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
12810
12811         * ira-build.c (merge_hard_reg_conflicts): New function.
12812         (create_cap_allocno, copy_info_to_removed_store_destinations,
12813         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
12814         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
12815         (remove_unnecessary_allocnos, remove_low_level_allocnos)
12816         copy_nifo_to_removed_store_destination): Use them.
12817         * ira-lives.c (make_hard_regno_born): New function, split out of
12818         make_regno_born.
12819         (make_allocno_born): Likewise.
12820         (make_hard_regno_dead): New function, split out of make_regno_dead.
12821         (make_allocno_dead): Likewise.
12822         (inc_register_pressure): New function, split out of set_allocno_live.
12823         (dec_register_pressure): New function, split out of clear_allocno_live.
12824         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
12825         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
12826         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
12827         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
12828         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
12829         mark_pseudo_regno_live.
12830         (process_bb_node_lives): Use mark_pseudo_regno_live,
12831         make_hard_regno_born and make_allocno_dead.
12832         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
12833         set_allocno_live, clear_allocno_live): Delete functions.
12834
12835         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
12836         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
12837         functions.
12838         (ira_flattening): Use ira_parent_allocno.
12839         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
12840         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
12841
12842         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
12843         statement.
12844
12845         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
12846         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
12847         minmax_set_iter_cond, minmax_set_iter_next,
12848         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
12849         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
12850         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
12851         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
12852         uses changed.
12853
12854         * ira-int.h (struct live_range, live_range_t): Renamed from struct
12855         ira_allocno_live_range and allocno_live_range_t; all uses changed.
12856         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
12857         All uses changed.
12858
12859 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
12860
12861         * thumb2.md (thumb2_tlobits_cbranch): Delete.
12862         (peephole2 to convert zero_extract/compare of single bit to
12863          lshift/compare): New.
12864
12865 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
12866
12867         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
12868         recursive call and call to 'int_const_binop'.
12869         (build_range_check, fold_cond_expr_with_comparison, unextend,
12870         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
12871         multiple_of_p): Adjust call to const_binop.
12872
12873 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
12874
12875         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
12876         determine size of XFmode operand.
12877         (XFmode extended DFmode push splitter): Ditto.
12878         (XFmode extended SFmode push splitter): Ditto.
12879
12880 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
12881
12882         PR target/44588
12883         * config/i386/i386.md (extract_code): New.
12884         (<u>divmodqi4): Likewise.
12885         (divmodhiqi3): Likewise.
12886         (udivmodhiqi3): Likewise.
12887         (<u>divqi3): Remvoved.
12888
12889 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
12890
12891         PR middle-end/44492
12892         * recog.h (struct recog_data): Add is_asm field.
12893         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
12894         present in constraints of inline-asm operand and memory operand
12895         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
12896         (extract_insn): Initialize recog_data.is_asm.
12897         * doc/md.texi (Constraints): Document operand side-effect rules.
12898
12899 2010-06-24  Andi Kleen  <ak@linux.intel.com>
12900
12901         * c-parser.c (c_parser_conditional_expression): Call
12902         warn_for_omitted_condop.
12903         * doc/invoke.texi: Document omitted condop warning.
12904
12905 2010-06-24  Nick Clifton<nickc@redhat.com>
12906
12907         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
12908         insn in the sequence is a jump insn before setting its label.
12909
12910 2010-06-24  Alan Modra  <amodra@gmail.com>
12911
12912         * collect2.c (main): Match exactly --version and --help.
12913
12914 2010-06-24  DJ Delorie  <dj@redhat.com>
12915
12916         * config/m32c/m32c-pragma.c: Don't include rtl.h.
12917
12918 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
12919
12920         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
12921         using X87MODEF mode iterator.
12922         (pushsf splitter): Macroize splitter using P mode iterator.
12923         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
12924         mode iterator.
12925
12926         (*movxf_internal): Rename from *movxf_integer.
12927         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
12928         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
12929         (*movdf_internal): Rename from *movdf_integer.
12930         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
12931         (*movsf_internal): Rename from *movdf_1.
12932
12933 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
12934
12935         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
12936         (const_gimple_seq_node): Removed typedefs.
12937
12938         * gimple.h (gimple_seq_node_d, gimple_seq_node)
12939         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
12940
12941 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
12942
12943         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
12944         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
12945         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
12946         and CODE_FOR_vec_extract_lo_v4df.
12947
12948         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
12949         Changed to define_insn_and_split.
12950         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
12951         (vec_extract_lo_v16hi): Likewise.
12952         (vec_extract_lo_v32qi): Likewise.
12953         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
12954         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
12955
12956 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
12957
12958         PR target/44640
12959         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
12960         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
12961         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
12962         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
12963         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
12964
12965         PR target/44640
12966         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
12967
12968         PR other/44644
12969         * df-core.c (struct df): Rename to df_d.
12970         * df.h (struct df): Likewise.
12971         * dse.h (struct df): Remove forward declaration.
12972         * recog.h (struct insn_data): Rename to:
12973         (struct_insn_data_d).  Adjusted all users.
12974
12975 2010-06-23  Arnaud Charlet  <charlet@adacore.com
12976
12977         PR ada/22220
12978         * doc/install.texi: Update requirements to build GNAT.
12979
12980 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
12981
12982         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
12983         enum type.
12984         (m68k_sched_attr_opx_type): Remove unreachable return.
12985         (m68k_sched_attr_opy_type): Likewise.
12986         (m68k_sched_attr_size): Likewise.
12987         (sched_get_opxy_mem_type): Likewise.
12988         (m68k_sched_attr_op_mem): Likewise.
12989
12990 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
12991
12992         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
12993         new statement and adjust VDEF only if necessary.  Remove superfluous
12994         call to maybe_clean_or_replace_eh_stmt.
12995         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
12996         copy the flags.
12997         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
12998         * tree-inline.c (copy_bb): ...and not there.
12999
13000 2010-06-22  Cary Coutant  <ccoutant@google.com>
13001
13002         * dwarf2out.c (is_nested_in_subprogram): New function.
13003         (should_move_die_to_comdat): Use it.
13004         (copy_ancestor_tree): Don't mark DIEs here.
13005         (copy_decls_walk): Start walk from root of newly-added tree;
13006         mark DIEs here instead.
13007
13008 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
13009
13010         * config/i386/i386.md (unit): Also check sseishft1.
13011
13012 2010-06-22  Jan Hubicka  <jh@suse.cz>
13013
13014         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
13015         enabled.
13016
13017 2010-06-22  Jan Hubicka  <jh@suse.cz>
13018
13019         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
13020         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
13021         Return true if something changed.
13022         * df.h (df_confluence_function_n): Return bool.
13023         * df-core.c (df_worklist_propagate_forward,
13024         df_worklist_propagate_backward): Track changes and ages.
13025         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
13026         track ages.
13027         * dse.c (dse_confluence_n): Return always true.
13028
13029 2010-06-22  Jan Hubicka  <jh@suse.cz>
13030
13031         * bitmap.c (bitmap_clear_bit): Micro optimize.
13032
13033 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
13034
13035         * config/i386/i386.md (SWI1248x): New mode iterator.
13036         (SWI48x): Ditto.
13037         (SWI12): Ditto.
13038         (SWI24): Ditto.
13039
13040         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
13041         SWI1248x mode iterator.
13042         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
13043         using SWI124 mode iterator.
13044         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
13045         mode iterator.
13046         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
13047         *pushdi2_prologue_rex64 using P mode iterator.
13048         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
13049         using SWI48 mode iterator.
13050         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
13051         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
13052         using SWI1248x mode iterator.
13053         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
13054         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
13055         SWI48 mode iterator.
13056         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
13057         iterator.
13058         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
13059         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
13060         SWI12 mode iterator.
13061         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
13062         SWI12 mode iterator.
13063         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
13064         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
13065         SWI24 mode iterator.
13066         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
13067         SWI48 mode iterator.
13068         (mov<mode>_insn_1): New expander.
13069         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
13070         using SWI48x mode iterator.
13071
13072         (*movoi_internal_avx): Rename from *movoi_internal.
13073         (*movti_internal_rex64): Rename from *movti_rex64.
13074         (*movti_internal_sse): Rename from *movti_sse.
13075         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
13076         (*movdi_internal): Rename from *movdi_2.
13077         (*movsi_internal): Rename from *movsi_1.
13078         (*movhi_internal): Rename from *movhi_1.
13079         (*movqi_internal): Rename from *movqi_1.
13080
13081         (insv): Update the call to gen_movsi_insv_1 for rename.
13082         * config/i386/i386.c (promote_duplicated_reg): Ditto.
13083
13084 2010-06-22  Jan Hubicka  <jh@suse.cz>
13085
13086         * passes.c (execute_function_todo): Move call of statistics_fini_pass
13087         to ...
13088         (execute_todo) ... this one.
13089
13090 2010-06-22  Alan Modra  <amodra@gmail.com>
13091
13092         PR target/44364
13093         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
13094         * caller-save.c (insert_restore, insert_save): Use non-validate
13095         form of adjust_address.
13096
13097 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13098
13099         PR target/39690
13100         * config/pa/pa.c (override_options): Disable
13101         -freorder-blocks-and-partition.
13102
13103 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
13104
13105         PR target/44615
13106         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
13107
13108         * config/i386/i386.md (type): Add sseishft1
13109
13110         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
13111         (ppro_insn_load): Likewise.
13112         (ppro_insn_store): Likewise.
13113         (ppro_insn_both): Likewise.
13114
13115         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
13116         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
13117         for type.
13118         (*vec_extractv2di_1_avx): Likewise.
13119         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
13120         type.  Remove atom_unit.
13121         (*vec_extractv2di_1_sse2): Likewise.
13122
13123 2010-06-21  DJ Delorie  <dj@redhat.com>
13124
13125         * diagnostic.h (diagnostic_classification_change_t): New.
13126         (diagnostic_context): Add history and push/pop list.
13127         (diagnostic_push_diagnostics): Declare.
13128         (diagnostic_pop_diagnostics): Declare.
13129         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
13130         from pragmas in a history chain instead of the global table.
13131         (diagnostic_push_diagnostics): New.
13132         (diagnostic_pop_diagnostics): New.
13133         (diagnostic_report_diagnostic): Scan history chain to find state
13134         of diagnostics as of the diagnostic location.
13135         * opts.c (set_option): Pass UNKNOWN_LOCATION to
13136         diagnostic_classify_diagnostic.
13137         (enable_warning_as_error): Likewise.
13138         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
13139         use in the history chain.
13140         * doc/extend.texi: Document pragma GCC diagnostic changes.
13141
13142 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
13143
13144         * dwarf2out.c (add_linkage_name): New function.  Don't add
13145         anything to DW_TAG_member DIEs.
13146         (add_name_and_src_coords_attributes): Use it.
13147         (gen_variable_die): Call it for C++ static data members if
13148         specification is DW_TAG_member.
13149
13150         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
13151         C++ char16_t and char32_t.
13152
13153         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
13154         * genattrtab.c: Include vecprim.h.
13155         (cached_attrs, cached_attr_count, attrs_seen_once,
13156         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
13157         attrs_cached_after): New variables.
13158         (find_attrs_to_cache): New function.
13159         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
13160         (write_test_expr): Add attrs_cached argument, return it too,
13161         attempt to cache non-const attributes used more than once in
13162         a single case handling.
13163         (write_attr_get): Use find_attrs_to_cache, for caching candidates
13164         emit cached_* variables.  Adjust write_attr_set callers.
13165         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
13166         to find attributes that should be cached in this block.  Adjust
13167         write_test_expr callers.
13168         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
13169         callers.
13170         (make_automaton_attrs): Adjust write_test_expr caller.
13171
13172         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
13173         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
13174         (make_automaton_attrs): If find_tune_attr returns non-NULL,
13175         write separate internal_dfa_insn_code_* and insn_default_latency_*
13176         functions for each attribute's value and emit init_sched_attrs
13177         function and function pointers.
13178         * genattr.c (const_attrs, reservations): New variables.
13179         (gen_attr): Add const attributes to const_attrs vector.
13180         (check_tune_attr, find_tune_attr): New functions.
13181         (main): Add reservations to reservations vector.  If find_tune_attr
13182         returns true, add prototype for init_sched_attrs and make
13183         internal_dfa_insn_code and insn_default_latency function pointers,
13184         otherwise define init_sched_attrs as dummy macro.
13185         * cfgexpand.c: Include insn-attr.h.
13186         (gimple_expand_cfg): Call init_sched_attrs.
13187
13188         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
13189
13190         PR target/44575
13191         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
13192         va_arg from a set of register save slots into a temporary,
13193         if the container is bigger than type size, do the copying
13194         using smaller mode or using memcpy.
13195
13196         PR bootstrap/44426
13197         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
13198         prototype.
13199         (sel_print_to_dot): Remove macro.
13200         (sel_print): Likewise.  New prototype.
13201         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
13202         (sel_print): New function.
13203
13204 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13205
13206         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
13207         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
13208
13209 2010-06-21  Nick Clifton  <nickc@redhat.com>
13210
13211         * config/rx/rx.h (PTRDIFF_TYPE): Define.
13212         (SMALL_REGISTER_CLASS): Define (to zero).
13213         (PRINT_OPERAND): Delete.
13214         (PRINT_OPERAND_ADDRESS): Delete.
13215         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
13216         (rx_print_operand_address): Delete prototype.
13217         * config/rx/rx.c (rx_print_operand): Make static.
13218         Allow %H and %L to handle CONST_DOUBLEs.
13219         (rx_print_operand_address): Make static.
13220         (rx_gen_move_template): Rename local variable 'template' to
13221         out_template.
13222         (rx_function_arg): Do not pass unknown sized objects in registers.
13223         (TARGET_PRINT_OPERAND): Define.
13224         (TARGET_PRINT_OPERAND_ADDRESS): Define.
13225
13226 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
13227
13228         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
13229
13230 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
13231
13232         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
13233         stack-alignment for simple leaf-functions.
13234
13235 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
13236
13237         * doc/install.texi: Document bootstrap-lto.
13238
13239 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
13240
13241         PR debug/44248
13242         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
13243         (input_function): Drop them here, if VTA is disabled.
13244
13245 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
13246
13247         PR target/44546
13248         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
13249         New predicate.
13250         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
13251         ix86_swapped_fp_comparsion_operator instead of
13252         ix86_fp_comparison_operator.
13253
13254         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
13255         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
13256         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
13257         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
13258         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
13259         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
13260
13261 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
13262
13263         PR other/32998
13264         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
13265         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
13266         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
13267         (decode_cmdline_option): Update for this return value.  Set
13268         orig_option_with_args_text field.  Set arg field for unknown
13269         options.  Make static.
13270         (decode_cmdline_options_to_array): New.
13271         (prune_options): Update handling of find_opt return value.
13272         * opts.c (read_cmdline_option): Take decoded option.  Return void.
13273         (read_cmdline_options): Take decoded options.
13274         (decode_options): Add parameters for decoded options.  Use
13275         decode_cmdline_options_to_array.  Use decoded options for -O
13276         scan.  Use integral_argument for -O parameters.  Update call to
13277         read_cmdline_options.
13278         (enable_warning_as_error): Update handling of find_opt return value.
13279         * opts.h: Update comment on unknown options.
13280         (struct cl_decoded_option): Update comments on opt_index and arg.
13281         Add orig_option_with_args_text.
13282         (decode_cmdline_option): Remove.
13283         (decode_cmdline_options_to_array): Declare.
13284         (decode_options): Update prototype.
13285         * toplev.c (save_argv): Remove.
13286         (save_decoded_options, save_decoded_options_count): New.
13287         (read_integral_parameter): Remove.
13288         (print_switch_values): Use decoded options.
13289         (toplev_main): Don't set save_argv.  Update call to decode_options.
13290         * toplev.h (read_integral_parameter): Remove.
13291         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
13292
13293 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
13294
13295         PR target/44072
13296         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
13297         immediate.
13298         * constraints.md (Pw, Px): New constraints.
13299         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
13300
13301 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
13302
13303         * config/i386/sse.md (fma4modesuffixf4): Removed.
13304         (ssemodesuffixf2s): Likewise.
13305         (ssemodesuffixf4): Likewise.
13306         (ssemodesuffixf2c): Likewise.
13307         (ssescalarmodesuffix2s): Likewise.
13308         (avxmodesuffixf2c): Likewise.
13309         (ssemodesuffix): New.
13310         (ssescalarmodesuffix): Likewise.
13311         Update patterns with ssemodesuffix and ssescalarmodesuffix.
13312
13313 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
13314
13315         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
13316
13317 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
13318
13319         * stor-layout.c (debug_rli): Remove unused local variables.
13320
13321 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
13322
13323         PR rtl-optimization/40900
13324         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
13325         original expression for later reuse.
13326         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
13327         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
13328
13329 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
13330
13331         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
13332         double_int_fits_in_uhwi_p): Implement as static inline.
13333         (double_int_xor): New inline function.
13334         (double_int_lrotate, double_int_rrotate, double_int_max,
13335         double_int_umax, double_int_smax, double_int_min, double_int_umin,
13336         double_int_smin): Declare.
13337         (lrotate_double, rrotate_double): Remove declaration.
13338         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
13339         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
13340         (double_int_lrotate, double_int_rrotate, double_int_max,
13341         double_int_umax, double_int_smax, double_int_min, double_int_umin,
13342         double_int_smin): New function.
13343         * fold-const.c (int_const_binop): Clean up, use double_int_*
13344         functions.
13345         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
13346         double_int_* and immed_double_int_const functions.
13347
13348 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
13349
13350         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
13351         * function.c (types_used_by_cur_var_decl): Likewise.
13352         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
13353
13354 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
13355
13356         * tree.h (record_layout_info): Change type of pending_statics field
13357         to a VEC.
13358         * stor-layout.c (start_record_layout): Store NULL into
13359         pending_statics.
13360         (debug_rli): Call debug_vec_tree instead of debug_tree.
13361         (place_field): Likewise.
13362         (finish_record_layout): Likewise.
13363
13364 2010-06-18  Alan Modra  <amodra@gmail.com>
13365
13366         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
13367
13368 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13369
13370         PR target/43740
13371         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
13372         for SET source operand from SET destination operand.
13373
13374 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
13375
13376         PR rtl-optimization/39871
13377         * reload1.c (init_eliminable_invariants): For flag_pic, disable
13378         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
13379         (function_invariant_p): Rule out a plus of frame or arg pointer with
13380         a SYMBOL_REF.
13381         * ira.c (find_reg_equiv_invariant_const): Likewise.
13382
13383 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
13384
13385         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
13386         print_operand_address and puts to output the operand for CONST.
13387
13388 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
13389
13390         PR debug/44572
13391         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
13392         hook.
13393
13394 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13395
13396         * v850-protos.h (print_operand): Delete.
13397         (print_operand_address): Delete.
13398         * v850.h (PRINT_OPERAND): Delete.
13399         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13400         (PRINT_OPERAND_ADDRESS): Delete.
13401         * v850.c (print_operand_address): Rename to...
13402         (v850_print_operand_address): ...this.  Make static. Call
13403         v850_print_operand.
13404         (print_operand): Rename to...
13405         (v850_print_operand): ...this.  Make static.  Call
13406         v850_print_operand_address.
13407         (v850_print_operand_punct_valid_p): New function.
13408         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
13409         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
13410
13411 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13412
13413         * config/sh/sh-protos.h (print_operand): Delete.
13414         (print_operand_address): Delete.
13415         * config/sh/sh.h (PRINT_OPERAND): Delete.
13416         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13417         (PRINT_OPERAND_ADDRESS): Delete.
13418         * config/sh/sh.c (sh_print_operand_address): Make static.
13419         (sh_print_operand): Make static.  Call sh_print_operand_address
13420         and sh_print_operand.
13421         (sh_print_operand_punct_valid_p): New function.
13422         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
13423         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
13424
13425 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13426
13427         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
13428         (mcore_print_operand_address): Delete.
13429         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
13430         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13431         (PRINT_OPERAND_ADDRESS): Delete.
13432         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
13433         (mcore_print_operand): Make static.
13434         (mcore_print_operand_punct_valid_p): New function.
13435         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
13436         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
13437
13438 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13439
13440         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
13441         (print_operand_address): Delete.
13442         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
13443         (PRINT_OPERAND_ADDRESS): Delete.
13444         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
13445         static.
13446         (m68hc11_print_operand): Make static.
13447         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
13448
13449 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13450
13451         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
13452         (m32r_print_operand_address): Delete.
13453         * config/m32r/m32r.h (m32r_punct_chars): Delete.
13454         (PRINT_OPERAND): Delete.
13455         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13456         (PRINT_OPERAND_ADDRESS): Delete.
13457         * config/m32r/m32r.c (m32r_punct_chars): Make static.
13458         (m32r_print_operand_address): Make static.
13459         (m32r_print_operand): Make static.
13460         (m32r_print_operand_punct_valid_p): New function.
13461         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
13462         (TARGET_PRINT_OPERAND_ADDRESS): Define.
13463
13464 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13465
13466         * config/iq2000/iq2000-protos.h (print_operand): Delete.
13467         (print_operand_address): Delete.
13468         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
13469         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13470         (PRINT_OPERAND_ADDRESS): Delete.
13471         (iq2000_print_operand_punct): Delete.
13472         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
13473         (iq2000_print_operand_address): Make static.
13474         (iq2000_print_operand): Make static.
13475         (iq2000_print_operand_punct_valid_p): New function.
13476         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
13477         (TARGET_PRINT_OPERAND_ADDRESS): Define.
13478
13479 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13480
13481         * config/frv/frv-protos.h (frv_print_operand): Delete.
13482         (frv_print_operand_address): Delete.
13483         * config/frv/frv.h (PRINT_OPERAND): Delete.
13484         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13485         (PRINT_OPERAND_ADDRESS): Delete.
13486         * config/frv/frv.c (frv_print_operand_address): Make static.
13487         (frv_print_operand): Make static.
13488         (frv_print_operand_punct_valid_p): New function.
13489         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
13490         (TARGET_PRINT_OPERAND_ADDRESS): Define.
13491
13492 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
13493
13494         * tree.h (vec_member): Declare.
13495         * tree.c (vec_member): Define.
13496
13497 2010-06-17  Richard Guenther  <rguenther@suse.de>
13498
13499         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
13500         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
13501
13502 2010-06-17  Richard Guenther  <rguenther@suse.de>
13503
13504         * tree-inline.c (declare_return_variable): Remove bogus code.
13505
13506 2010-06-17  Richard Guenther  <rguenther@suse.de>
13507
13508         * gimplify.c (gimplify_bind_expr): Always promote complex
13509         and vector variables to registers if possible.
13510
13511 2010-06-17  Richard Guenther  <rguenther@suse.de>
13512
13513         * expr.c (get_inner_reference): Use double_int for bit_offset
13514         calculation.
13515
13516 2010-06-16  DJ Delorie  <dj@redhat.com>
13517
13518         * common.opt (-fstrict-volatile-bitfields): new.
13519         * doc/invoke.texi: Document it.
13520         * fold-const.c (optimize_bit_field_compare): For volatile
13521         bitfields, use the field's type to determine the mode, not the
13522         field's size.
13523         * expr.c (expand_assignment): Likewise.
13524         (get_inner_reference): Likewise.
13525         (expand_expr_real_1): Likewise.
13526         * expmed.c (store_fixed_bit_field): Likewise.
13527         (extract_bit_field_1): Likewise.
13528         (extract_fixed_bit_field): Likewise.
13529
13530 2010-06-16  Richard Guenther  <rguenther@suse.de>
13531
13532         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
13533
13534 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
13535
13536         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
13537         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
13538         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
13539         * debug.c: Likewise.
13540         * sdbout.c: Likewise.
13541         * vmsdbgout.c: Likewise.
13542         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
13543         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
13544         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
13545         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
13546         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
13547         * dwarf2out.c (dw_fde_struct): New fields
13548         dw_fde_vms_{end,begin}_prologue.
13549         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
13550         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
13551         (dwarf2out_vms_end_prologue): New function.
13552         (dwarf2out_vms_begin_epilogue): New function.
13553         (dw_val_struct): New value dw_val_class_vms_delta.
13554         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
13555         begin_epilogue for VMS.
13556         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
13557         new static functions.
13558         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
13559         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
13560         static functions.
13561         (print_die): New case dw_val_class_vms_delta.
13562         (attr_checksum): Likewise.
13563         (same_dw_val_p: Likewise.
13564         (size_of_die): Likewise.
13565         (value_format): Likewise.
13566         (output_die): Likewise.
13567         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
13568         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
13569         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
13570         dwarf2out_cfi_begin_epilogue
13571         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
13572
13573 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
13574
13575         * config/cris/cris-protos.h (cris_print_operand): Delete.
13576         (cris_print_operand_address): Delete.
13577         * config/cris/cris.h (PRINT_OPERAND): Delete.
13578         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13579         (PRINT_OPERAND_ADDRESS): Delete.
13580         * config/cris/cris.c (cris_print_operand_address): Make static.
13581         (cris_print_operand): Make static.
13582         (cris_print_operand_punct_valid_p): New function.
13583         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
13584         (TARGET_PRINT_OPERAND_ADDRESS): Define.
13585
13586 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
13587
13588         * config/arm/arm-protos.h (arm_print_operand): Delete.
13589         (arm_print_operand_address): Delete.
13590         * config/arm/arm.h (PRINT_OPERAND): Delete.
13591         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13592         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
13593         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
13594         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
13595         (arm_print_operand): Make static.
13596         (arm_print_operand_punct_valid_p): New function.
13597         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
13598         (TARGET_PRINT_OPERAND_ADDRESS): Define.
13599
13600 2010-06-16  Nick Clifton  <nickc@redhat.com>
13601
13602         * config/rx/constraints.md (NEGint4): New constraint.
13603         * config/rx/rx.md (attr cc): Add set_zsc.
13604         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
13605         initialised.
13606         (cmpsf): Likewise.
13607         (call_internal): Clobber the cc0 register.
13608         (call_value_internal): Likewise.
13609         (cstoresi4): Likewise.
13610         (movsieq): Likewise.
13611         (movsine): Likewise.
13612         (addsi3): Add alternative to handle small negative constants.
13613         (sunsi3): Likewise.
13614         (addsi3): Do not set the O bit in the cc0 register.
13615         (adddi3): Likewise.
13616         (subsi3): Likewise.
13617         (subdi3): Likewise.
13618         (andsi3): Reorder alternatives to prefer shorter forms.
13619         (mulsi3): Likewise.
13620         (iorsi3): Likewise.
13621         (negsi2): Note that the cc0 flags are set.
13622         (rotlsi3): Note that only the Z and S bits are set in cc0.
13623         (lshrsi3): Likewise.
13624         (ashlsi3): Likewise.
13625         (subsf3): Use %Q for the MEM operand.
13626         (fix_truncsfsi2): Likewise.
13627         (floatsisf2): Likewise.
13628         (bitset): Remove early clobber from destination.
13629         (bitset_in_memory): Likewise.
13630         (lrintsf2): Clobber the cc0 register.
13631         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
13632         (rx_print_operand): Handle %N.
13633
13634 2010-06-16  Jan Hubicka  <jh@suse.cz>
13635
13636         * df-core.c (df_compact_blocks): Free problem_temps vector.
13637
13638 2010-06-16  Martin Jambor  <mjambor@suse.cz>
13639
13640         PR tree-optimization/43905
13641         * tree-sra.c: Include tree-inline.h.
13642         (create_abstract_origin): Removed.
13643         (modify_function): Version the call graph node instead of creating
13644         abstract origins and dealing with same_body aliases.
13645         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
13646         function is versionable.
13647         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
13648
13649 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
13650
13651         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
13652         (CHOOSE_DYNAMIC_LINKER): Update.
13653
13654 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
13655
13656         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
13657         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
13658         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
13659         *prefetch_3dnow_rex.
13660
13661 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
13662
13663         * target.h (struct asm_out):Add declare_constant_name field.
13664         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
13665         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
13666         * output.h (default_asm_declare_constant_name): Declare.
13667         (assemble_label): Update prototype.
13668         * varasm.c (assemble_constant_contents): Use
13669         targetm.asm_out.declare_constant_name target hook.
13670         (assemble_label): Add 'file' argument.
13671         (default_asm_declare_constant_name): New function.
13672         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
13673         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
13674         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
13675
13676         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
13677         * config/darwin.c (darwin_asm_declare_constant_name): New function.
13678         (machopic_output_indirection): Update assemble_label argument list.
13679         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
13680         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
13681
13682 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
13683
13684         PR middle-end/44391
13685         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
13686         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
13687
13688 2010-06-15  Richard Guenther  <rguenther@suse.de>
13689
13690         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
13691
13692 2010-06-15  Paul Brook  <paul@codesourcery.com>
13693
13694         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
13695         hard-float ABI.
13696
13697 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
13698
13699         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
13700         don't get a vector type for output.
13701
13702 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
13703
13704         PR fortran/44536
13705         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
13706         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
13707         (LANG_HOOKS_DECLS): Add it.
13708         * gimplify.c (omp_notice_variable): Call
13709         lang_hooks.decls.omp_report_decl.
13710
13711 2010-06-15  Martin Jambor  <mjambor@suse.cz>
13712
13713         PR lto/44464
13714         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
13715         on the newly dead SSA name.
13716
13717 2010-06-15  Alan Modra  <amodra@gmail.com>
13718
13719         * doc/invoke.texi: Add mcmodel to powerpc options.
13720         * configure.ac: Add HAVE_LD_LARGE_TOC test.
13721         * configure: Regenerate.
13722         * config.in: Regenerate.
13723         * config/rs6000/linux64.opt (mcmodel): New.
13724         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
13725         (TARGET_CMODEL, SET_CMODEL): Define.
13726         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
13727         select CMODEL_MEDIUM default.
13728         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
13729         (TARGET_CMODEL): Define default.
13730         * config/rs6000/rs6000.c (cmodel): New variable.
13731         (rs6000_explicit_options): Add cmodel field.
13732         (rs6000_handle_option): Handle -mcmodel.
13733         (create_TOC_reference): Add largetoc_reg param.  Generate high,
13734         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
13735         (rs6000_delegitimize_address): Recognise new toc reference rtl
13736         and minimal-toc rtl.
13737         (rs6000_legitimize_reload_address): Handle new toc references.
13738         (print_operand_address): Handle legitimate_constant_pool_address_p
13739         match before lo_sum.
13740         (rs6000_eliminate_indexed_memrefs): Tidy.
13741         (rs6000_emit_move): Tweak threshold for inlining constants.
13742         Keep rs6000_emit_allocate_stack large stack frame offsets
13743         loaded into r0 inline.
13744         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
13745         (tocrel_base, tocrel_offset): New variables.
13746         (toc_relative_expr_p): Set them here.
13747         (print_operand_address): Skip over any offset on constant pool address.
13748         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
13749         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
13750         (offsettable_ok_by_alignment): New function.
13751         (rs6000_emit_move): Address suitably aligned local symbol_refs
13752         relative to the toc pointer for -mcmodel=medium.
13753         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
13754         strict param.  Allow lo_sum version of addressing.  Verify reg
13755         used for -mminimal-toc and -mcmodel != small.  Update all callers.
13756         * config/rs6000/constraints.md: Update for above change.
13757         * config/rs6000/predicates.md: Likewise.
13758         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
13759         code.
13760         (tls_gd): Split for -mcmodel=medium/large.
13761         (tls_gd_high, tls_gd_low): New.
13762         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
13763         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
13764         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
13765         (largetoc_high, largetoc_low): New.
13766         (cmptf_internal2): Add clobber.
13767         * config/rs6000/rs6000-protos.h: Update.
13768
13769 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
13770
13771         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
13772         true if no prefetch is going to be generated for a given group.
13773         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
13774         estimate the prefetch_count.
13775         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
13776         prefetch count by considering the unroll_factor and prefetch_mod
13777         for is_loop_prefetching_profitable.
13778
13779 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
13780
13781         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
13782         anything if the argument is not a MEM.
13783
13784 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
13785
13786         PR debug/43650
13787         PR debug/44181
13788         PR debug/44247
13789         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
13790         debug stmts.
13791         (canonicalize_loop_ivs): Likewise.
13792
13793 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
13794
13795         PR debug/43656
13796         * haifa-sched.c (setup_insn_reg_pressure_info,
13797         update_register_pressure): Reject debug insns.
13798         (ready_sort): Don't setup reg pressure for debug insns.
13799         (schedule_insn): Don't update reg pressure for debug insns.
13800
13801 2010-06-14  Richard Guenther  <rguenther@suse.de>
13802
13803         * lto-streamer.c (cached_bp): Remove.
13804         (bitpack_delete): Likewise.
13805         (bitpack_create): Likewise.
13806         (bp_get_next_word): Likewise.
13807         (bp_pack_value, bp_unpack_value): Move ...
13808         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
13809         Re-implement.
13810         (struct bitpack_d): Likewise.
13811         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
13812         New inline functions.
13813         * lto-streamer-out.c (lto_output_bitpack): Remove.
13814         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
13815         (pack_value_fields): Adjust.
13816         (lto_write_tree): Likewise.
13817         (output_gimple_stmt): Likewise.
13818         (output_function): Likewise.
13819         * lto-streamer-in.c (input_gimple_stmt): Adjust.
13820         (input_function): Likewise.
13821         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
13822         (lto_input_bitpack): Remove.
13823         (lto_materialize_tree): Adjust.
13824         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
13825         * lto-cgraph.c (lto_output_edge): Adjust.
13826         (lto_output_node): Likewise.
13827         (lto_output_varpool_node): Likewise.
13828         (lto_output_ref): Likewise.
13829         (input_node): Likewise.
13830         (input_varpool_node): Likewise.
13831         (input_ref): Likewise.
13832         (input_edge): Likewise.
13833         (output_node_opt_summary): Likewise.
13834         (input_node_opt_summary): Likewise.
13835         * ipa-pure-const.c (pure_const_write_summary): Likewise.
13836         (pure_const_read_summary): Likewise.
13837         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
13838         (ipa_read_indirect_edge_info): Likewise.
13839         (ipa_write_node_info): Likewise.
13840         (ipa_read_node_info): Likewise.
13841
13842 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
13843
13844         PR target/44534
13845         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
13846         (vec_extract_lo_v16hi): Likewise.
13847         (vec_extract_lo_v32qi): Likewise.
13848
13849 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
13850
13851         PR bootstrap/44426
13852         * tree.h (build_call_expr): Don't define as vararg macro, instead
13853         add a prototype.
13854         * builtins.c (build_call_nofold): Remove.
13855         (expand_builtin_int_roundingfn, expand_builtin_pow,
13856         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
13857         expand_builtin_memset_args, expand_builtin_strcmp,
13858         expand_builtin_strncmp, expand_builtin_memory_chk): Use
13859         build_call_nofold_loc instead of build_call_nofold.
13860         (build_call_expr): New function.
13861
13862         PR tree-optimization/44508
13863         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
13864         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
13865         don't eliminate trivially dead stmts.
13866         * tree-vrp.c (vrp_finalize): Pass false as last argument
13867         to substitute_and_fold.
13868         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
13869         to substitute_and_fold.
13870         * tree-ssa-ccp.c (ccp_finalize): Likewise.
13871
13872         PR bootstrap/44509
13873         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
13874
13875 2010-06-14  Ira Rosen  <irar@il.ibm.com>
13876
13877         PR tree-optimization/44507
13878         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
13879         to build initial vector for BIT_AND_EXPR.
13880         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
13881
13882 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
13883
13884         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
13885         adjust z10prop set_attr.
13886
13887 2010-06-13  Jan Hubicka  <jh@suse.cz>
13888
13889         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
13890         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
13891         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
13892         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
13893         datastructure checks into checking asserts.
13894         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
13895         * tree-ssa-sccvn.c (VN_INFO): Likewise.
13896         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
13897         df_ref_create_structure): Likewise.
13898         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
13899         pool_free): Use gcc_checking_assert.
13900         * alias.c (get_alias_set): Likewise.
13901         * var-tracking.c (variable_htab_free, shared_hash_copy,
13902         canonicalize_values_mark, variable_merge_over_cur): Likewise.
13903         * lto-streamer.c (bp_unpack_value): Likewise.
13904
13905 2010-06-13  Richard Guenther  <rguenther@suse.de>
13906
13907         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
13908         Do not stream but initialize TYPE_CANONICAL to NULL.
13909         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
13910         * gimple.c (gimple_types_compatible_p): Disregard
13911         TYPE_STRUCTURAL_EQUALITY_P.
13912         (gimple_register_type): Use TYPE_CANONICAL as cache.
13913         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
13914         before registering common types.
13915         * config/i386/i386.c (ix86_function_arg_boundary): Do not
13916         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
13917         * tree.h (TYPE_CANONICAL): Clarify documentation.
13918
13919 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
13920
13921         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
13922         LIBCALL_VALUE): Remove macros.
13923         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
13924         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13925         TARGET_FUNCTION_VALUE_REGNO_P): Define.
13926         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
13927         (ia64_function_value): Make static. Handle receiving the function
13928         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
13929
13930 2010-06-12  Jan Hubicka  <jh@suse.cz>
13931
13932         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
13933         at correct place.
13934
13935 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
13936
13937         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
13938
13939 2010-06-12  Jan Hubicka  <jh@suse.cz>
13940
13941         * df-core.c (df_clear_bb_info): New function.
13942         (df_set_blocks): bb_info is always allocated.
13943         (df_get_bb_info): Use block_info_elt_size.
13944         (df_set_bb_info): Likewise.
13945         (df_compact_blocks): Update for new block_info.
13946         (grow_bb_info): New function.
13947         * df-problems.c (df_grow_bb_info): Move to df-core.c
13948         (df_rd_set_bb_info): Remove.
13949         (df_rd_free_bb_info): Do not free block pool.
13950         (df_rd_alloc): Do not create pool, use check for
13951         obstack presence instead of NULL pointer for new blocks.
13952         (df_rd_free): DO not free alloc pool; clear block_info.
13953         (problem_RD): Add size of block info structure.
13954         (df_lr_set_bb_info): Remove.
13955         (df_lr_free_bb_info): Do not free block pool.
13956         (df_lr_alloc): Do not create pool, use check for
13957         obstack presence instead of NULL pointer for new blocks.
13958         (df_lr_free): DO not free alloc pool; clear block_info.
13959         (problem_LR): Add size of block info structure.
13960         (df_live_set_bb_info): Remove.
13961         (df_live_free_bb_info): Do not free block pool.
13962         (df_live_alloc): Do not create pool, use check for
13963         obstack presence instead of NULL pointer for new blocks.
13964         (df_live_free): DO not free alloc pool; clear block_info.
13965         (problem_LIVE): Add size of block info structure.
13966         (problem_CHAIN): Add size of block info structure.
13967         (df_byte_lr_set_bb_info): Remove.
13968         (df_byte_lr_free_bb_info): Do not free block pool.
13969         (df_byte_lr_alloc): Do not create pool, use check for
13970         obstack presence instead of NULL pointer for new blocks.
13971         (df_byte_lr_free): DO not free alloc pool; clear block_info.
13972         (problem_BYTE_LR): Add size of block info structure.
13973         (problem_NOTE): Add size of block info structure.
13974         (df_byte_MD_set_bb_info): Remove.
13975         (df_byte_MD_free_bb_info): Do not free block pool.
13976         (df_byte_MD_alloc): Do not create pool, use check for
13977         obstack presence instead of NULL pointer for new blocks.
13978         (df_byte_MD_free): DO not free alloc pool; clear block_info.
13979         (problem_BD): Add size of block info structure.
13980         * df-scan.c (df_scan_free_internal): Free block pool.
13981         (df_scan_set_bb_info): Remove.
13982         (df_scan_free_bb_info): Check for artificial_defs instead
13983         of bb_info being non-NULL.
13984         (df_scan_alloc): DO not create df_scan_block pool.
13985         (problem_SCAN): Set size of block info.
13986         (df_bb_refs_record): Do not allocate bb_info.
13987         * df.h (df_problem): Add block_info_elt_size.
13988         (struct dataflow): Change block_info to void *.
13989         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
13990         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
13991         in-line structures.
13992
13993 2010-06-12  Jan Hubicka  <jh@suse.cz>
13994
13995         PR tree-optimize/44485
13996         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
13997         containing use of return value of noreturn function.
13998
13999 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
14000
14001         * targhooks.c (default_function_value): Don't use
14002         FUNCTION_OUTGOING_VALUE.
14003         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
14004         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
14005
14006 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
14007
14008         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
14009         Add crtfastmath.o to extra_parts.
14010         * config/mips/crtfastmath.c: New.
14011         * config/mips/linux.h (ENDFILE_SPEC): New.
14012
14013 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
14014
14015         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
14016         old_type in parameter.
14017         (gcc_type_for_value): Update call to gcc_type_for_interval.
14018         (compute_type_for_level_1): Renamed compute_type_for_level.
14019         Update call to gcc_type_for_interval.
14020
14021 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
14022
14023         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
14024         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
14025
14026 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
14027
14028         * opts-common.c: Include options.h.
14029         (integral_argument): Move from opts.c.
14030         (decode_cmdline_option): New.  Based on read_cmdline_option.
14031         * opts.c (integral_argument): Move to opts-common.c.
14032         (read_cmdline_option): Move most contents to
14033         decode_cmdline_option.  Use %qs in diagnostics.
14034         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
14035         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
14036         decode_cmdline_option): New.
14037
14038 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
14039
14040         PR target/44481
14041         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
14042         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
14043         (partiysi2_cmp): Ditto.
14044         (*partiyhi2_cmp): Ditto.
14045         (*parityqi2_cmp): Remove.
14046
14047 2010-06-11  Jan Hubicka  <jh@suse.cz>
14048
14049         * bitmap.h (bmp_iter_next_bit): New.
14050         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
14051
14052 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
14053             Eric Botcazou  <ebotcazou@adacore.com>
14054
14055         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
14056         computed cost.
14057
14058 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
14059
14060         * config/i386/i386.md (unspec): New define_c_enum.
14061         (unspecv): Ditto.
14062
14063 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
14064
14065         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
14066
14067 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
14068
14069         PR middle-end/44483
14070         * tree-if-conv.c (bb_predicate_s): New struct.
14071         (bb_predicate_p): New.
14072         (bb_has_predicate): New.
14073         (bb_predicate): New.
14074         (set_bb_predicate): New.
14075         (bb_predicate_gimplified_stmts): New.
14076         (set_bb_predicate_gimplified_stmts): New.
14077         (add_bb_predicate_gimplified_stmts): New.
14078         (init_bb_predicate): New.
14079         (free_bb_predicate): New.
14080         (is_predicated): Use bb_predicate.
14081         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
14082         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
14083         before processing their successors.
14084         (clean_predicate_lists): Removed.
14085         (find_phi_replacement_condition): Use bb_predicate.
14086         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
14087         computations.
14088         (insert_gimplified_predicates): New.
14089         (combine_blocks): Call insert_gimplified_predicates.
14090         (tree_if_conversion): Call free_bb_predicate instead of
14091         clean_predicate_lists.
14092
14093 2010-10-11  Paul Brook  <paul@codesourcery.com>
14094
14095         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
14096         * config/arm/arm.c (all_architectures): Change v7e-m default to
14097         cortexm4.
14098         * config/arm/arm-cores.def: Add cortex-m4.
14099         * config/arm/arm-tune.md: Regenerate.
14100
14101 2010-06-11  Jan Hubicka  <jh@suse.cz>
14102
14103         * ipa-pure-const.c (special_builtlin_state): New function.
14104         (check_call): Use it instead of special casign BUILT_IN_RETURN.
14105         (propagate_pure_const): Use it.
14106
14107 2010-06-11  Jan Hubicka  <jh@suse.cz>
14108
14109         * df-problems.c (df_live_scratch): Convert to bitmap_head.
14110         (df_live_alloc): Initialize df_live_scratch when initializing
14111         problem_data.
14112         (df_live_transfer_function): Update uses of df_live_scratch.
14113         (df_live_free): Free problem_data; clear df_live_scratch before
14114         releasing the obstack.
14115         (df_md_free): Free problem data.
14116
14117 2010-06-11  Jan Hubicka  <jh@suse.cz>
14118
14119         * doc/invoke.texi (Wsuggest-attribute): Document.
14120         (Wmissing-noreturn): Remove.
14121         * ipa-pure-const.c (warn_function_noreturn): New function.
14122         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
14123         warn_missing_noreturn.
14124         * common.opt (Wsuggest-attribute=noreturn): New.
14125         * tree-flow.h (warn_function_noreturn): Declare.
14126         * tree-cfg.c (execute_warn_function_noreturn): Use
14127         warn_function_noreturn.
14128         (gate_warn_function_noreturn): New.
14129         (pass_warn_function_noreturn): Update.
14130
14131 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14132
14133         * c-typeck.c (handle_warn_cast_qual): Add loc
14134         parameter. Improve warning message.
14135         (build_c_cast): Pass location to handle_warn_cast_qual.
14136
14137 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
14138
14139         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
14140         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
14141         insn mnemonic.
14142         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
14143
14144 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
14145
14146         Fix bootstap on mips
14147         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
14148         be naming typedefs.
14149
14150 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
14151
14152         * system.h (helper_const_non_const_cast): New inline for
14153         gcc version <= 4.0.
14154         (CONST_CAST2): For gcc version <= 4.0 use
14155         new helper to do const/non-const casting.
14156
14157 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14158
14159         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
14160         * Makefile.in (OBJS-common): Include insn-enums.o.
14161         (insn-enums.o): New rule.
14162         (simple_generated_c): Add insn-enums.c.
14163         (build/genenums.o): New rule.
14164         (genprogmd): Add "enums".
14165         * genconstants.c (print_enum_type): Declare a C string array
14166         for each enum.
14167         * genenums.c: New file.
14168         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
14169         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
14170         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
14171
14172 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14173
14174         * doc/md.texi (define_enum_attr): Document.
14175         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
14176         * read-md.h (lookup_enum_type): Declare.
14177         * read-md.c (lookup_enum_type): New function.
14178         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
14179         * genattrtab.c (attr_desc): Add an enum_name field.
14180         (evaluate_eq_attr): Take the associated attribute as argument.
14181         Get the enum prefix from the enum_name field, if defined.
14182         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
14183         (simplify_test_exp): Pass attr to evaluate_eq_attr.
14184         (add_attr_value): New function, split out from...
14185         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
14186         (write_test_expr): Pass attr to evaluate_eq_attr.
14187         (write_attr_get): Use the enum_name as the enum tag, if defined.
14188         (write_attr_valueq): Use the enum_name as a prefix, if defined.
14189         (find_attr): Initialize enum_name.
14190         (main): Handle DEFINE_ENUM_ATTR.
14191         * gensupport.c (process_rtx): Likewise.
14192         * config/mips/mips.h (mips_tune_attr): Delete.
14193         * config/mips/mips.md (cpu): Use define_attr_enum.
14194
14195 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14196
14197         * doc/md.texi (define_c_enum, define_enum): Document.
14198         * read-md.h (md_constant): Add a parent_enum field.
14199         (enum_value, enum_type): New structures.
14200         (upcase_string, traverse_enum_types): Declare.
14201         * read-md.c (enum_types): New variable.
14202         (upcase_string, add_constant): New functions.
14203         (handle_constants): Don't create the hash table here.
14204         Use add_constant.
14205         (traverse_md_constants): Don't check for a null md_constants.
14206         (decimal_string, handle_enum, traverse_enum_types): New functions.
14207         (read_md_files): Initialize md_constants and md_enums.
14208         * genconstants.c (print_md_constant): Ignore info argument.
14209         Only print constants that belong to no enum.
14210         (print_enum_type): New function.
14211         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
14212         for each defined enum type.
14213         * config/mips/mips.md (processor): New define_enum.
14214         (unspec): New define_c_enum.
14215         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
14216         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
14217         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
14218         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
14219         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
14220         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
14221         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
14222         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
14223         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
14224         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
14225         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
14226         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
14227         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
14228         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
14229         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
14230         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
14231         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
14232         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
14233         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
14234         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
14235         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
14236         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
14237         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
14238         (UNSPEC_RDDSP): Move to mips-dsp.md.
14239         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
14240         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
14241         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
14242         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
14243         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
14244         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
14245         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
14246         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
14247         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
14248         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
14249         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
14250         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
14251         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
14252         Moved to mips-dspr2.md.
14253         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
14254         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
14255         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
14256         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
14257         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
14258         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
14259         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
14260         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
14261         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
14262         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
14263         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
14264         UNSPEC_LOONGSON_PSADBH)
14265         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
14266         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
14267         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
14268         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
14269         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
14270         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
14271         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
14272         (cpu): Update comment.
14273         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
14274         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
14275         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
14276         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
14277         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
14278         UNSPEC_LOONGSON_PCMPEQ)
14279         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
14280         UNSPEC_LOONGSON_PINSR_0)
14281         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
14282         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
14283         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
14284         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
14285         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
14286         UNSPEC_LOONGSON_PSADBH)
14287         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
14288         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
14289         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
14290         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
14291         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
14292         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
14293         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
14294         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
14295         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
14296         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
14297         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
14298         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
14299         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
14300         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
14301         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
14302         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
14303         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
14304         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
14305         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
14306         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
14307         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
14308         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
14309         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
14310         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
14311         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
14312         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
14313         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
14314         (UNSPEC_RDDSP): Moved from mips.md.
14315         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
14316         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
14317         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
14318         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
14319         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
14320         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
14321         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
14322         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
14323         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
14324         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
14325         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
14326         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
14327         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
14328         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
14329         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
14330         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
14331         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
14332         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
14333         (UNSPEC_SCC): Moved from mips.md.
14334         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
14335         "processor_type" to "processor".
14336         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
14337         * config/mips/mips.h (processor_type): Delete.
14338         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
14339         "processor_type" to "processor".
14340
14341 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14342
14343         * configure.ac (tm_include_list): Add insn-constants.h.
14344         * configure: Regenerate.
14345         * Makefile.in (GTM_H): Move insn-constants.h here from...
14346         (TM_H): ...here.
14347         * mkconfig.sh: Remove special handling for insn-constants.h.
14348
14349 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14350
14351         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
14352         (BUILD_MD): ...this new variable.
14353         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
14354         that include the old contents of simple_generated_h and
14355         simple_generated_c.
14356         (simple_generated_h, simple_generated_c): Include them.  Add
14357         insn-constants.h.
14358         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
14359         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
14360         Remove these dependencies from the main rule and include
14361         insn-conditions.md in the command line only if it appears
14362         in the dependency list.
14363         (insn-constants.h, s-constants): Delete.
14364         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
14365         or gensupport.h.
14366         (build/genmddeps.o): Likewise.
14367         (genprogrtl): New variable that contains everything from genprogmd
14368         except mddeps and constants.
14369         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
14370         depend on $(BUILD_MD)
14371         (genprog): New variable.  Make these programs depend on
14372         $(BUILD_ERRORS).
14373         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
14374         (main): Use read_md_files instead of init_rtx_reader_args.
14375         * genconstants.c: As for genmddeps.c.
14376         * read-md.h (read_skip_construct): Declare.
14377         * read-md.c (read_skip_construct): New function.
14378         (handle_file): Allow a null handle_directive, skipping the
14379         construct if so.
14380         (parse_include): Update the comment accordingly.
14381
14382 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14383
14384         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
14385         * genmddeps.c: Include read-md.h.
14386         (main): Call init_rtx_reader_args instead of init_md_reader_args.
14387         * genattr.c (main): Likewise.
14388         * genattrtab.c (main): Likewise.
14389         * genautomata.c (main): Likewise.
14390         * gencodes.c (main): Likewise.
14391         * genconditions.c (main): Likewise.
14392         * genconfig.c (main): Likewise.
14393         * genconstants.c (main): Likewise.
14394         * genemit.c (main): Likewise.
14395         * genextract.c (main): Likewise.
14396         * genflags.c (main): Likewise.
14397         * genopinit.c (main): Likewise.
14398         * genoutput.c (main): Likewise.
14399         * genpeep.c (main): Likewise.
14400         * genrecog.c (main): Likewise.
14401         * genpreds.c (main): Likewise.
14402         * gensupport.h (in_fname): Move to read-md.h.
14403         (init_md_reader_args_cb): Rename to...
14404         (init_rtx_reader_args_cb): ...this and return a bool.
14405         (init_md_reader_args): Rename to...
14406         (init_rtx_reader_args): ...this and return a bool.
14407         (include_callback): Move to read-md.h.
14408         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
14409         (file_name_list, first_dir_md_include): Move to read-md.c
14410         (first_bracket_include): Delete unused variable.
14411         (last_dir_md_include): Move to read-md.c.
14412         (process_include): Delete, moving code to read-md.c:handle_include.
14413         (process_rtx): Don't handle INCLUDE.
14414         (save_string): Delete.
14415         (rtx_handle_directive): New function.
14416         (init_md_reader_args_cb): Rename to...
14417         (init_rtx_reader_args_cb): ...this and return a boolean success value.
14418         Use read_md_args.
14419         (init_md_reader_args): Rename to...
14420         (init_rtx_reader_args): ...this and return a boolean success value.
14421         * rtl.def (INCLUDE): Delete.
14422         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
14423         argument.
14424         * read-rtl.c (read_conditions): Don't gobble ')' here.
14425         (read_mapping): Likewise.
14426         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
14427         Handle top-level non-rtx constructs here rather than in read_rtx_1.
14428         Store the whole queue in *X.  Remove call to init_md_reader.
14429         (read_rtx_1): Rename to...
14430         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
14431         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
14432         here.
14433         (read_nested_rtx): New function.  Handle (nil) here rather than
14434         in read_rtx_code.
14435         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
14436         gobble ')' here.
14437         * read-md.h (directive_handler_t): New type.
14438         (in_fname, include_callback): Moved from read-md.h.
14439         (read_constants, init_md_reader): Delete.
14440         (read_md_files): Declare.
14441         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
14442         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
14443         from gensupport.c.
14444         (read_constants): Rename to...
14445         (handle_constants): ...this.  Don't gobble ')' here.
14446         (handle_include, handle_file, handle_toplevel_file)
14447         (parse_include): New functions, mostly taken from gensupport.c.
14448         (init_md_reader): Subsume into...
14449         (read_md_files): ...this new function.
14450
14451 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14452
14453         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
14454         (unread_char): Decrement read_md_lineno after putting back '\n'.
14455         * read-md.c (fatal_with_file_and_line): Push back any characters
14456         that we decide not to add to the context.
14457         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
14458         fatal_expected_char in cases where '/' ends a line (for example).
14459         (read_name): Don't increment read_md_lineno here.
14460         (read_escape): Likewise.
14461         (read_quoted_string): Likewise.
14462         (read_braced_string): Likewise.
14463
14464 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14465
14466         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
14467         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
14468         * genconstants.c: Include read-md.h.
14469         * read-rtl.c (md_constants): Move to read-md.c.
14470         (md_name): Move to read-md.h.
14471         (initialize_iterators): Use leading_string_hash instead of def_hash
14472         and leading_string_eq_p instead of def_name_eq_p.
14473         (read_name): Move to read-md.c.
14474         (def_hash, def_name_eq_p): Delete.
14475         (read_constants, traverse_md_constants): Move to read-md.c.
14476         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
14477         * read-md.h: Include hashtab.h.
14478         (md_name): Moved from read-rtl.c.
14479         (md_constant): Moved from read-md.h.
14480         (leading_string_hash, leading_string_eq_p, read_name)
14481         (read_constants, traverse_md_constants): Declare.
14482         * read-md.c (md_constants): Moved from read-rtl.c.
14483         (leading_string_hash, leading_string_eq_p): New functions.
14484         (read_name, read_constants, traverse_md_constants): Moved from
14485         read-rtl.c.
14486
14487 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14488
14489         * read-rtl.c (md_name): New structure.
14490         (read_name): Take an md_name instead of a buffer pointer.
14491         Use the "string" field instead of strcpy when expanding constants.
14492         (read_constants): Remove the tmp_char argument.  Update the calls
14493         to read_name, using two local name buffers instead of the tmp_char
14494         argument.  Merge the constant-creation code.
14495         (read_conditions): Remove the tmp_char argument.  Update the calls
14496         to read_name, using a local name buffer instead of the tmp_char
14497         argument.
14498         (read_mapping): Replace tmp_char variable with a local name buffer.
14499         Update the calls to read_name.
14500         (read_rtx_1): Likewise.  Update the calls to read_constants and
14501         read_conditions.
14502
14503 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14504
14505         * Makefile.in (build/read-md.o): Depend on errors.h.
14506         * read-md.h (error_with_line): Declare.
14507         * read-md.c: Include errors.h.
14508         (message_with_line_1): New function, extracted from...
14509         (message_with_line): ...here.
14510         (error_with_line): New function.
14511         * genattrtab.c: If a call to message_with_line is followed by
14512         "have_error = 1;", replace both statements with a call to
14513         error_with_line.
14514         * genoutput.c: Likewise.
14515         * genpreds.c: Likewise.
14516         * genrecog.c: If a call to message_with_line is followed by
14517         "error_count++;", replace both statements with a call to
14518         error_with_line.
14519         (errorcount): Delete.
14520         (main): Don't check it.
14521         * gensupport.c: If a call to message_with_line is followed by
14522         "errors = 1;", replace both statements with a call to error_with_line.
14523         (errors): Delete.
14524         (process_define_cond_exec): Check have_error instead of errors.
14525         (init_md_reader_args_cb): Likewise.  Don't set errors.
14526
14527 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14528
14529         * read-md.h (read_md_file): Declare.
14530         (read_char, unread_char): New functions.
14531         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
14532         (read_quoted_string, read_string): Remove FILE * argument.
14533         * read-md.c (read_md_file): New variable.
14534         (read_md_filename, read_md_lineno): Update comments and remove
14535         unnecessary initialization.
14536         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
14537         (read_escape, read_quoted_string, read_braced_string, read_string):
14538         Remove FILE * argument.  Update calls accordingly, using read_char
14539         and unread_char instead of getc and ungetc.
14540         * rtl.h (read_rtx): Remove FILE * argument.
14541         * read-rtl.c (iterator_group): Remove FILE * argument from
14542         "find_builtin".
14543         (iterator_traverse_data): Remove "infile" field.
14544         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
14545         (add_mapping, read_name, read_constants, read_conditions)
14546         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
14547         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
14548         Remove file arguments from all calls, using read_char and unread_char
14549         instead of getc and ungetc.
14550         * gensupport.c (process_include): Preserve read_md_file around
14551         the include.  Set read_md_file to the handle of the included file.
14552         Update call to read_rtx.
14553         (init_md_reader_args_cb): Set read_md_file to the handle of the file
14554         and remove local FILE *.  Update calls to read_rtx.
14555
14556 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14557
14558         * read-md.h (read_rtx_lineno): Rename to...
14559         (read_md_lineno): ...this.
14560         (read_rtx_filename): Rename to...
14561         (read_md_filename): ...this.
14562         (copy_rtx_ptr_loc): Rename to...
14563         (copy_md_ptr_loc): ...this.
14564         (print_rtx_ptr_loc): Rename to...
14565         (print_md_ptr_loc): ...this.
14566         * read-md.c: Likewise.  Update references after renaming.
14567         (string_obstack): Replace RTL with MD in comment.
14568         (set_rtx_ptr_loc): Rename to...
14569         (set_md_ptr_loc): ...this.
14570         (get_rtx_ptr_loc): Rename to...
14571         (get_md_ptr_loc): ...this.
14572         * genconditions.c: Update references after renaming.
14573         * genemit.c: Likewise.
14574         * genoutput.c: Likewise.
14575         * genpreds.c: Likewise.
14576         * gensupport.c: Likewise.
14577         * read-rtl.c: Likewise.
14578
14579 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
14580
14581         * Makefile.in (READ_MD_H): New variable.
14582         (BUILD_RTL): Add build/read-md.o.
14583         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
14584         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
14585         (build/genattrtab.o, build/genconditions.o build/genemit.o)
14586         (build/genextract.o, build/genflags.o, build/genoutput.o)
14587         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
14588         (build/read-md.o): New rule.
14589         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
14590         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
14591         * coretypes.h: ...here.
14592         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
14593         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
14594         * genattr.c: Include read-md.h.
14595         * genattrtab.c: Likewise.
14596         * genconditions.c: Likewise.
14597         * genemit.c: Likewise.
14598         * genextract.c: Likewise.
14599         * genflags.c: Likewise.
14600         * genoutput.c: Likewise.
14601         * genpreds.c: Likewise.
14602         * genrecog.c: Likewise.
14603         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
14604         (join_c_conditions, print_c_condition, read_rtx_filename)
14605         (read_rtx_lineno): Move to read-md.h.
14606         * read-rtl.c: Include read-md.h.
14607         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
14608         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
14609         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
14610         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
14611         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
14612         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
14613         (read_braced_string, read_string): Move to read-md.c.
14614         (read_rtx): Move some initialization to init_md_reader and call
14615         init_md_reader here.
14616         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
14617         Move to read-md.h.
14618         * gensupport.c: Include read-md.h.
14619         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
14620         * read-md.h, read-md.c: New files.
14621
14622 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
14623
14624         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
14625         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
14626         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
14627         * config/moxie/moxie.c (moxie_function_value): Make static.
14628         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
14629         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
14630
14631 2010-06-10  Martin Jambor  <mjambor@suse.cz>
14632
14633         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
14634         * dbgcnt.def (tree_sra): New counter.
14635         * tree-sra.c: Include dbgcnt.h.
14636         (gate_intra_sra): Check tree_sra debug counter.
14637
14638 2010-06-10  Martin Jambor  <mjambor@suse.cz>
14639
14640         PR tree-optimization/44258
14641         * tree-sra.c (build_access_subtree): Return false iff there is a
14642         partial overlap.
14643         (build_access_trees): Likewise.
14644         (analyze_all_variable_accesses): Disqualify candidates if
14645         build_access_trees returns true for them.
14646
14647 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
14648
14649         PR debug/41371
14650         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
14651         tail-recurse into canonical node.  Fast-forward over
14652         non-canonical VALUEs.
14653
14654 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
14655
14656         PR boostrap/44470
14657         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
14658         (*addsi_1_zext) <TYPE_LEA>: Likewise.
14659         (add lea splitter): Likewise.
14660         (add_zext lea splitter): Likewise.
14661
14662 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
14663
14664         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
14665
14666 2010-06-10  Jan Hubicka  <jh@suse.cz>
14667
14668         * df-problems.c (df_live_problem_data): Add live_bitmaps.
14669         (df_live_alloc): Initialize problem data and live_osbtacks.
14670         (df_live_finalize): Remove obstack, problem data; do not
14671         clear all bitmaps.
14672         (df_live_top_dump, df_live_bottom_dump): Do not dump old
14673         data when not allocated.
14674         (df_live_verify_solution_start): Do not allocate problem data.
14675         (df_live_verify_solution_end): Check if out is allocated.
14676         (struct df_md_problem_data): New structure.
14677         (df_md_alloc): Allocate problem data.
14678         (df_md_free): Free problem data; do not clear bitmaps.
14679
14680 2010-06-10  Jan Beulich  <jbeulich@novell.com>
14681
14682         PR bootstrap/37304
14683         * configure.ac: Replace $() with ${} when intending to expand
14684         variables rather than invoking commands.
14685         * configure: Re-generate.
14686
14687 2010-06-10  Jan Hubicka  <jh@suse.cz>
14688
14689         PR rtl-optimization/44460
14690         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
14691         TYPE_NEEDS_CONSTRUCTING sanity check.
14692
14693 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
14694
14695         * doc/include/fdl.texi: Move to GFDL version 1.3.
14696
14697         * doc/cpp.texi: Move to GFDL version 1.3.
14698         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
14699         * doc/gccint.texi: Move to GFDL version 1.3.
14700         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
14701         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
14702         * doc/invoke.texi: Move to GFDL version 1.3.
14703
14704 2010-06-09  Jan Hubicka  <jh@suse.cz>
14705
14706         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
14707         Break out from ...
14708         (propagate) ... here; swap the order.
14709
14710 2010-06-09  Jan Hubicka  <jh@suse.cz>
14711
14712         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
14713         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
14714         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
14715         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
14716
14717 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
14718
14719         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
14720         Do not the gather memory reference in the outer loop if the step
14721         is not a constant.
14722
14723 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
14724
14725         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
14726         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
14727         8 to 4.  Minor change of the related comments.
14728
14729 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
14730
14731         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
14732         the scev analysis when the variable is not used outside the loop
14733         in a close phi node: call compute_overall_effect_of_inner_loop.
14734
14735 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
14736
14737         * graphite-sese-to-poly.c (single_pred_cond): Renamed
14738         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
14739         (build_sese_conditions_before): Renamed call to single_pred_cond.
14740         (build_sese_conditions_after): Same.
14741
14742 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
14743
14744         * graphite-poly.h: Fix comments and indentation.
14745         * graphite-sese-to-poly.c: Same.
14746         (build_sese_conditions_before): Compute stmt and gbb only when needed.
14747         * tree-chrec.c: Fix comments and indentation.
14748         (tree-ssa-loop-niter.c): Same.
14749
14750 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
14751
14752         PR rtl-optimization/42461
14753         * dce.c (deletable_insn_p): Return true for const or pure calls again.
14754         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
14755
14756 2010-06-09  Jan Hubicka  <jh@suse.cz>
14757
14758         * bitmap.c (bitmap_and): Walk array forward.
14759         (bitmap_and_compl_into): Likewise.
14760         (bitmap_xor): Likewise.
14761         (bitmap_xor_into):  Likewise.
14762         (bitmap_equal_p): Likewise.
14763         (bitmap_intersect_p): Likewise.
14764         (bitmap_intersect_compl_p): Likewise.
14765         (bitmap_ior_and_into): Likewise.
14766         (bitmap_elt_copy): Likewise.
14767         (bitmap_and_compl): Likewise.
14768         (bitmap_elt_ior): Likewise.
14769
14770 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
14771
14772         * opts-common.c (prune_options): Ensure replacement argv array
14773         is correctly terminated by a NULL entry.
14774
14775 2010-06-09  Jan Hubicka  <jh@suse.cz>
14776
14777         * cgraph.h (varpool_first_static_initializer,
14778         varpool_next_static_initializer): Make checking only when
14779         checking enabled.
14780         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
14781         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
14782         gcc_assert to gcc_checking_assert.
14783         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
14784         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
14785         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
14786         op_iter_init_phiuse, op_iter_init_phidef,
14787         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
14788         gcc_checking_assert.
14789         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
14790         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
14791         partition_is_global, live_on_entry, live_on_exit,
14792         live_merge_and_clear): Likewise.
14793         * system.h (gcc_checking_assert): New macro.
14794         * gimple.h (set_bb_seq): Use gcc_checking_assert.
14795
14796 2010-06-09  Jason Merrill  <jason@redhat.com>
14797
14798         * Makefile.in (TAGS): Collect tags info from c-family.
14799
14800 2010-06-09  Jan Hubicka  <jh@suse.cz>
14801
14802         * gimple.h (gcc_gimple_checking_assert): New macro.
14803         (gimple_set_def_ops, gimple_set_use_ops,
14804         gimple_set_vuse, gimple_set_vdef,
14805         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
14806         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
14807         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
14808         gimple_asm_output_op, gimple_asm_output_op_ptr,
14809         gimple_asm_set_output_op, gimple_asm_clobber_op,
14810         gimple_asm_set_clobber_op, gimple_asm_label_op,
14811         gimple_asm_set_label_op, gimple_try_set_kind,
14812         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
14813         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
14814         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
14815         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
14816         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
14817         gimple_omp_for_set_initial, gimple_omp_for_final,
14818         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
14819         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
14820         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
14821         conditional with ENABLE_GIMPLE_CHECKING.
14822         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
14823
14824 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
14825
14826         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
14827         (get_computation_cost_at): Use it.
14828         (determine_use_iv_cost_condition): Likewise.
14829         (determine_iv_cost): Likewise.
14830
14831 2010-06-09  Richard Guenther  <rguenther@suse.de>
14832
14833         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
14834         replace constants.
14835
14836 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
14837
14838         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
14839
14840 2010-06-09  Martin Jambor  <mjambor@suse.cz>
14841
14842         PR tree-optimization/44423
14843         * tree-sra.c (dump_access): Dump also grp_assignment_read.
14844         (analyze_access_subtree): Pass negative allow_replacements to children
14845         if the current type is scalar.
14846
14847 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
14848
14849         PR testsuite/42843
14850         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
14851         * doc/plugins.texi (Plugin license check): Update information
14852         on type of plugin_is_GPL_compatible.
14853         * Makefile.in (PLUGINCC): Define as $(COMPILER).
14854         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
14855
14856 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
14857
14858         * config/arm/arm.c (thumb2_reorg): New function.
14859         (arm_reorg): Call it.
14860         * config/arm/thumb2.md (define_peephole2 for flag clobbering
14861         arithmetic operations): Delete.
14862
14863 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
14864
14865         PR target/44067
14866         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
14867         e500v2 target.
14868
14869 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
14870
14871         PR plugins/44459
14872         * gcc-plugin.h: Encapsulate all declarations in extern "C".
14873
14874 2010-06-08  Jan Hubicka  <jh@suse.cz>
14875
14876         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
14877         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
14878
14879 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
14880
14881         PR tree-optimization/39874
14882         PR middle-end/28685
14883         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
14884         Declare.
14885         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
14886         same_bool_result_p): New.
14887         (and_var_with_comparison, and_var_with_comparison_1,
14888         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
14889         (or_var_with_comparison, or_var_with_comparison_1,
14890         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
14891         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
14892         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
14893         of combine_comparisons.
14894         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
14895
14896 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
14897
14898         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
14899         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
14900         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
14901         pdp11_function_value_regno_p): New functions.
14902         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14903         TARGET_FUNCTION_VALUE_REGNO_P): Define.
14904
14905 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
14906
14907         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
14908         Thumb-2 in the MINUS case.
14909
14910 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
14911
14912         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
14913
14914         * doc/gty.texi (GTY Options): Document typed GC allocation and
14915         variable_size GTY option.
14916
14917         * ggc-internal.h: New.
14918
14919         * ggc.h: Update copyright year.
14920         (digit_string): Move to stringpool.c.
14921         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
14922         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
14923         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
14924         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
14925         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
14926         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
14927         (ggc_force_collect, ggc_get_size, ggc_statistics)
14928         (ggc_print_common_statistics): Move to ggc-internal.h.
14929         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
14930         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
14931         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
14932         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
14933         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
14934         (ggc_alloc_zone_pass_stat): Remove.
14935         (ggc_internal_alloc_stat, ggc_internal_alloc)
14936         (ggc_internal_cleared_alloc_stat): New.
14937         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
14938         (ggc_internal_vec_alloc_stat)
14939         (ggc_internal_cleared_vec_alloc_stat)
14940         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
14941         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
14942         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
14943         (ggc_cleared_alloc_ptr_array_two_args): New.
14944         (htab_create_ggc, splay_tree_new_ggc): Redefine.
14945         (ggc_splay_alloc): Change the type of the first argument to
14946         enum gt_types_enum.
14947         (ggc_alloc_string): Make macro.
14948         (ggc_alloc_string_stat): New.
14949         (ggc_strdup): Redefine.
14950         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
14951         (ggc_alloc_rtvec_sized): New.
14952         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
14953         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
14954         (ggc_internal_cleared_alloc_zone_stat)
14955         (ggc_internal_zone_alloc_stat)
14956         (ggc_internal_zone_cleared_alloc_stat)
14957         (ggc_internal_zone_vec_alloc_stat)
14958         (ggc_alloc_zone_rtx_def_stat)
14959         (ggc_alloc_zone_tree_node_stat)
14960         (ggc_alloc_zone_cleared_tree_node_stat)
14961         (ggc_alloc_cleared_gimple_statement_d_stat): New.
14962
14963         * ggc-common.c: Include ggc-internal.h.
14964         (ggc_internal_cleared_alloc_stat): Rename from
14965         ggc_alloc_cleared_stat.
14966         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
14967         (ggc_calloc): Remove.
14968         (ggc_cleared_alloc_htab_ignore_args): New.
14969         (ggc_cleared_alloc_ptr_array_two_args): New.
14970         (ggc_splay_alloc): Add obj_type parameter.
14971         (init_ggc_heuristics): Formatting fixes.
14972
14973         * ggc-none.c: Update copyright year.
14974         (ggc_alloc_stat): Rename to ggc_alloc_stat.
14975         (ggc_alloc_cleared_stat): Rename to
14976         ggc_internal_cleared_alloc_stat.
14977         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
14978
14979         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
14980         Remove references to ggc_alloc in comments.
14981         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
14982         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
14983         (new_ggc_zone, destroy_ggc_zone): Remove.
14984         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
14985
14986         * ggc-zone.c: Include ggc-internal.h.  Remove references to
14987         ggc_alloc in comments.
14988         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
14989         (ggc_internal_alloc_zone_pass_stat): New.
14990         (ggc_internal_cleared_alloc_zone_stat): New.
14991         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
14992         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
14993         (new_ggc_zone, destroy_ggc_zone): Remove.
14994
14995         * stringpool.c: Update copyright year.  Include ggc-internal.h
14996         (digit_vector): Make static.
14997         (digit_string): Moved from ggc.h.
14998         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
14999         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
15000
15001         * Makefile.in (GGC_INTERNAL_H): New.
15002         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
15003         $(GGC_INTERNAL_H) to dependencies.
15004
15005         * gentype.c: Update copyright year.
15006         (walk_type): Accept variable_size GTY option.
15007         (USED_BY_TYPED_GC_P): New macro.
15008         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
15009         whitespace at the end of strings.
15010         (get_type_specifier, variable_size_p): New functions.
15011         (alloc_quantity, alloc_zone): New enums.
15012         (write_typed_alloc_def): New function.
15013         (write_typed_struct_alloc_def): Likewise.
15014         (write_typed_typed_typedef_alloc_def): Likewise.
15015         (write_typed_alloc_defns): Likewise.
15016         (output_typename, write_splay_tree_allocator_def): Likewise.
15017         (write_splay_tree_allocators): Likewise.
15018         (main): Call write_typed_alloc_defns and
15019         write_splay_tree_allocators.
15020
15021         * lto-streamer.h (lto_file_decl_data_ptr): New.
15022
15023         * passes.c (order): Define using cgraph_node_ptr.
15024
15025         * strinpool.c (struct string_pool_data): Declare nested_ptr using
15026         ht_identifier_ptr.
15027
15028         * gimple.h (union gimple_statement_d): Likewise.
15029
15030         * rtl.h (struct rtx_def): Likewise.
15031         (struct rtvec_def): Likewise.
15032
15033         * tree.h (union tree_node): Likewise.
15034
15035         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
15036
15037         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
15038
15039         * tree-scalar-evolution.c (scev_initialize): Likewise.
15040
15041         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
15042
15043         * dwarf2asm.c (dw2_force_const_mem): Likewise.
15044
15045         * omp-low.c (lower_omp_critical): Likewise.
15046
15047         * bitmap.h (struct bitmap_head_def): Update comment to not
15048         reference ggc_alloc.
15049
15050         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
15051
15052         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
15053
15054         * ipa-prop.c (duplicate_ggc_array): Rename to
15055         duplicate_ipa_jump_func_array.  Use typed GC allocation.
15056         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
15057
15058         * gimple.c (gimple_alloc_stat): Use
15059         ggc_alloc_cleared_gimple_statement_d_stat.
15060
15061         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
15062
15063         * tree.c (make_node_stat): Use
15064         ggc_alloc_zone_cleared_tree_node_stat.
15065         (make_tree_vec_stat): Likewise.
15066         (build_vl_exp_stat): Likewise.
15067         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
15068         (make_tree_binfo_stat): Likewise.
15069         (tree_cons_stat): Likewise.
15070
15071         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
15072         (shallow_copy_rtx_stat): Likewise.
15073         (make_node_stat): Likewise.
15074
15075         * lto-symtab.c: Fix comment.
15076
15077         * tree-cfg.c (create_bb): Update comment to not reference
15078         ggc_alloc_cleared.
15079         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
15080
15081         * varpool.c (varpool_node): Use typed GC allocation.
15082         (varpool_extra_name_alias): Likewise.
15083
15084         * varasm.c (emutls_decl): Likewise.
15085         (get_unnamed_section): Likewise.
15086         (get_noswitch_section): Likewise.
15087         (get_section): Likewise.
15088         (get_block_for_section): Likewise.
15089         (build_constant_desc): Likewise.
15090         (create_constant_pool): Likewise.
15091         (force_const_mem): Likewise.
15092
15093         * tree.c (build_vl_exp_stat): Likewise.
15094         (build_real): Likewise.
15095         (build_string): Likewise.
15096         (decl_debug_expr_insert): Likewise.
15097         (decl_value_expr_insert): Likewise.
15098         (type_hash_add): Likewise.
15099         (build_omp_clause): Likewise.
15100
15101         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
15102
15103         * tree-ssa.c (init_tree_ssa): Likewise.
15104
15105         * tree-ssa-structalias.c (heapvar_insert): Likewise.
15106
15107         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
15108
15109         * tree-ssa-loop-niter.c (record_estimate): Likewise.
15110
15111         * tree-ssa-alias.c (get_ptr_info): Likewise.
15112
15113         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
15114
15115         * tree-phinodes.c (allocate_phi_node): Likewise.
15116
15117         * tree-iterator.c (tsi_link_before): Likewise.
15118         (tsi_link_after): Likewise.
15119
15120         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
15121
15122         * tree-dfa.c (create_var_ann): Likewise.
15123
15124         * tree-cfg.c (create_bb): Likewise.
15125
15126         * toplev.c (alloc_for_identifier_to_locale): Likewise.
15127         (general_init): Likewise.
15128
15129         * stringpool.c (stringpool_ggc_alloc): Likewise.
15130         (gt_pch_save_stringpool): Likewise.
15131
15132         * sese.c (if_region_set_false_region): Likewise.
15133
15134         * passes.c (do_per_function_toporder): Likewise.
15135
15136         * optabs.c (set_optab_libfunc): Likewise.
15137         (set_conv_libfunc): Likewise.
15138
15139         * lto-symtab.c (lto_symtab_register_decl): Likewise.
15140
15141         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
15142         (input_eh_region): Likewise.
15143         (input_eh_lp): Likewise.
15144         (make_new_block): Likewise.
15145         (unpack_ts_real_cst_value_fields): Likewise.
15146
15147         * lto-section-in.c (lto_new_in_decl_state): Likewise.
15148
15149         * lto-cgraph.c (input_node_opt_summary): Likewise.
15150
15151         * loop-init.c (loop_optimizer_init): Likewise.
15152
15153         * lambda.h (lambda_vector_new): Likewise.
15154
15155         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
15156
15157         * ira.c (update_equiv_regs): Likewise.
15158
15159         * ipa.c (cgraph_node_set_new): Likewise.
15160         (cgraph_node_set_add): Likewise.
15161         (varpool_node_set_new): Likewise.
15162         (varpool_node_set_add): Likewise.
15163
15164         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
15165         (duplicate_ipa_jump_func_array): Likewise.
15166         (ipa_read_node_info): Likewise.
15167
15168         * ipa-cp.c (ipcp_create_replace_map): Likewise.
15169
15170         * integrate.c (get_hard_reg_initial_val): Likewise.
15171
15172         * gimple.c (gimple_alloc_stat): Likewise.
15173         (gimple_build_omp_for): Likewise.
15174         (gimple_seq_alloc): Likewise.
15175         (gimple_copy): Likewise.
15176
15177         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
15178         (gsi_insert_after_without_update): Likewise.
15179
15180         * function.c (add_frame_space): Likewise.
15181         (insert_temp_slot_address): Likewise.
15182         (assign_stack_temp_for_type): Likewise.
15183         (allocate_struct_function): Likewise.
15184         (types_used_by_var_decl_insert): Likewise.
15185
15186         * except.c (init_eh_for_function): Likewise.
15187         (gen_eh_region): Likewise.
15188         (gen_eh_region_catch): Likewise.
15189         (gen_eh_landing_pad): Likewise.
15190         (add_call_site): Likewise.
15191
15192         * emit-rtl.c (get_mem_attrs): Likewise.
15193         (get_reg_attrs): Likewise.
15194         (start_sequence): Likewise.
15195         (init_emit): Likewise.
15196
15197         * dwarf2out.c (new_cfi): Likewise.
15198         (queue_reg_save): Likewise.
15199         (dwarf2out_frame_init): Likewise.
15200         (new_loc_descr): Likewise.
15201         (find_AT_string): Likewise.
15202         (new_die): Likewise.
15203         (add_var_loc_to_decl): Likewise.
15204         (clone_die): Likewise.
15205         (clone_as_declaration): Likewise.
15206         (break_out_comdat_types): Likewise.
15207         (new_loc_list): Likewise.
15208         (loc_descriptor): Likewise.
15209         (add_loc_descr_to_each): Likewise.
15210         (add_const_value_attribute): Likewise.
15211         (tree_add_const_value_attribute): Likewise.
15212         (add_comp_dir_attribute): Likewise.
15213         (add_name_and_src_coords_attributes): Likewise.
15214         (lookup_filename): Likewise.
15215         (store_vcall_insn): Likewise.
15216         (dwarf2out_init): Likewise.
15217
15218         * dbxout.c (dbxout_init): Likewise.
15219
15220         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
15221
15222         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
15223
15224         * config/score/score7.c (score7_output_external): Likewise.
15225
15226         * config/score/score3.c (score3_output_external): Likewise.
15227
15228         * config/s390/s390.c (s390_init_machine_status): Likewise.
15229
15230         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
15231         (rs6000_init_machine_status): Likewise.
15232         (output_toc): Likewise.
15233
15234         * config/pa/pa.c (pa_init_machine_status): Likewise.
15235         (get_deferred_plabel): Likewise.
15236
15237         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
15238
15239         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
15240
15241         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
15242
15243         * config/mep/mep.c (mep_init_machine_status): Likewise.
15244         (mep_note_pragma_flag): Likewise.
15245
15246         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
15247
15248         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
15249
15250         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
15251
15252         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
15253         (i386_pe_maybe_record_exported_symbol): Likewise.
15254
15255         * config/i386/i386.c (get_dllimport_decl): Likewise.
15256         (ix86_init_machine_status): Likewise.
15257         (assign_386_stack_local): Likewise.
15258
15259         * config/frv/frv.c (frv_init_machine_status): Likewise.
15260
15261         * config/darwin.c (machopic_indirection_name): Likewise.
15262
15263         * config/cris/cris.c (cris_init_machine_status): Likewise.
15264
15265         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
15266
15267         * config/avr/avr.c (avr_init_machine_status): Likewise.
15268
15269         * config/arm/arm.c (arm_init_machine_status): Likewise.
15270
15271         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
15272         (alpha_need_linkage): Likewise.
15273         (alpha_use_linkage): Likewise.
15274
15275         * cgraph.c (cgraph_allocate_node): Likewise.
15276         (cgraph_create_edge_1): Likewise.
15277         (cgraph_create_indirect_edge): Likewise.
15278         (cgraph_add_asm_node): Likewise.
15279
15280         * cfgrtl.c (init_rtl_bb_info): Likewise.
15281
15282         * cfgloop.c (alloc_loop): Likewise.
15283         (rescan_loop_exit): Likewise.
15284
15285         * cfg.c (init_flow): Likewise.
15286         (alloc_block): Likewise.
15287         (unchecked_make_edge): Likewise.
15288
15289         * c-parser.c (c_parse_init): Likewise.
15290         (c_parse_file): Likewise.
15291
15292         * c-decl.c (bind): Likewise.
15293         (record_inline_static): Likewise.
15294         (push_scope): Likewise.
15295         (make_label): Likewise.
15296         (lookup_label_for_goto): Likewise.
15297         (finish_struct): Likewise.
15298         (finish_enum): Likewise.
15299         (c_push_function_context): Likewise.
15300
15301         * bitmap.c (bitmap_element_allocate): Likewise.
15302         (bitmap_gc_alloc_stat): Likewise.
15303
15304         * alias.c (record_alias_subset): Likewise.
15305         (init_alias_analysis): Likewise.
15306
15307 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
15308
15309         * fold-const.c (fold_comparison): Remove redundant parenthesis.
15310         * tree-inline.c (expand_call_inline): Pass translated return value of
15311         cgraph_inline_failed_string to diagnostic function.
15312
15313 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
15314             Shujing Zhao  <pearly.zhao@oracle.com>
15315
15316         PR c/37724
15317         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
15318         implicit bad conversions is initialization.
15319         (error_init): Use gmsgid instead of msgid for argument name and change
15320         the call for error.
15321         (pedwarn_init): Use gmsgid instead of msgid for argument name and
15322         change the call for pedwarn.
15323         (warning_init): Use gmsgid instead of msgid for argument name and
15324         change the call for warning.
15325
15326 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
15327
15328         * config/mips/mips-protos.h (mips_print_operand): Delete.
15329         (mips_print_operand_address): Delete.
15330         * config/mips/mips.h (mips_print_operand_punct): Delete.
15331         (PRINT_OPERAND): Delete.
15332         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
15333         (PRINT_OPERAND_ADDRESS): Delete.
15334         * config/mips/mips.c (mips_print_operand_punct): Make static.
15335         (mips_print_operand_address): Make static.
15336         (mips_print_operand): Make static.  Call
15337         mips_print_operand_punct_valid_p.
15338         (mips_print_operand_punct_valid_p): New function.
15339         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
15340         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
15341
15342 2010-06-07  Jan Hubicka  <jh@suse.cz>
15343
15344         PR middle-end/44454
15345         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
15346         are allocated.
15347
15348 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
15349
15350         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
15351         name of RECORD.
15352
15353 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15354
15355         * doc/sourcebuild.texi (Effective-Target Keywords, Other
15356         attributes): Document gas.
15357
15358 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
15359
15360         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
15361         <TYPE_LEA>: Split instruction.
15362         <default>: Remove alternative 2 handling.
15363         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
15364         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
15365         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
15366
15367         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
15368         (ashift_zext lea splitter): Use DImode for multiplication.
15369
15370         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
15371         to generate addition.
15372
15373 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
15374
15375         * common.opt (fira-verbose): Use Var.
15376         (fpcc-struct-return): Use Init instead of VarExists.
15377         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
15378         toplev.c.
15379         * flags.h (flag_signed_char, flag_short_enums,
15380         flag_pcc_struct_return, flag_ira_verbose,
15381         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
15382         * toplev.c (flag_detailed_statistics, flag_signed_char,
15383         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
15384         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
15385         * toplev.h (flag_crossjumping, flag_if_conversion,
15386         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
15387         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
15388         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
15389         flag_cprop_registers, time_report, flag_ira_loop_pressure,
15390         flag_ira_coalesce, flag_ira_move_spills,
15391         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
15392
15393 2010-06-07  Jan Hubicka  <jh@suse.cz>
15394
15395         * df-core.c (df_analyze_problem): Do verification after allocation.
15396
15397         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
15398         (df_lr_alloc): Initialize problem data; move bitmaps to
15399         lr_bitmaps obstack.
15400         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
15401         (df_lr_verify_solution_start): Do not initialize problem data;
15402         allocate bitmaps in lr_bitmaps.
15403         (df_lr_verify_solution_end): Do not free problem data.
15404
15405 2010-06-07  Jan Hubicka  <jh@suse.cz>
15406
15407         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
15408         if caller is noreturn.
15409         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
15410         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
15411         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
15412         * ipa-pure-const.c (check_decl): Add IPA parameter.
15413         (state_from_flags): New function.
15414         (better_state, worse_state): New functions.
15415         (check_call): When in IPA mode, do not care about callees.
15416         (check_load, check_store): Update.
15417         (check_ipa_load, check_ipa_store): New.
15418         (check_stmt): When in IPA mode, use IPA checkers.
15419         (analyze_function): Use state_from_flags.
15420         (propagate): Check indirect edges and references.
15421
15422 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
15423
15424         PR rtl-optimization/44404
15425         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
15426         of count_occurrences to see if it's safe to modify mem_insn.
15427
15428 2010-06-07  Richard Guenther  <rguenther@suse.de>
15429
15430         * gimplify.c (gimplify_cleanup_point_expr): For empty body
15431         and EH-only cleanup drop the cleanup instead of inserting it
15432         unconditionally.
15433
15434 2010-06-07  Ira Rosen  <irar@il.ibm.com>
15435
15436         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
15437         documentation.
15438         * targhooks.c (default_builtin_vectorization_cost): New function.
15439         * targhooks.h (default_builtin_vectorization_cost): Declare.
15440         * target.h (enum vect_cost_for_stmt): Define.
15441         (builtin_vectorization_cost): Change argument and comment.
15442         * tree-vectorizer.h: Remove cost model macros.
15443         * tree-vect-loop.c: Include target.h.
15444         (vect_get_cost): New function.
15445         (vect_estimate_min_profitable_iters): Replace cost model macros with
15446         calls to vect_get_cost.
15447         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
15448         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
15449         default implementation.
15450         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
15451         calls to target hook builtin_vectorization_cost.
15452         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
15453         Likewise.
15454         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
15455         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
15456         implementation to return costs.
15457         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
15458         * config/spu/spu.h: Remove vectorizer cost model macros.
15459         * config/i386/i386.h: Likewise.
15460         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
15461         a call to target hook builtin_vectorization_cost.
15462
15463 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
15464
15465         PR target/44319
15466         * config/i386/i386.c (override_options): Turn zee pass on for level 2
15467         and above and defer till target is known.
15468         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
15469         turn off otherwise.
15470
15471 2010-05-25  Jan Hubicka  <jh@suse.cz>
15472
15473         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
15474         (df_compact_blocks): Likewise.
15475         * df.h (struct df): Turn hardware_regs_used,
15476         regular_block_artificial_uses, eh_block_artificial_uses,
15477         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
15478         bitmap_head.
15479         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
15480         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
15481         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
15482         df_scan_blocks, df_insn_delete, df_insn_rescan,
15483         df_insn_rescan_debug_internal, df_insn_rescan_all,
15484         df_process_deferred_rescans, df_process_deferred_rescans,
15485         df_notes_rescan, df_get_call_refs, df_get_call_refs,
15486         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
15487         df_record_entry_block_defs, df_record_exit_block_uses,
15488         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
15489         df_scan_verify): Update.
15490
15491 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
15492
15493         PR c++/44188
15494         * c-common.c (is_typedef_decl): Move this definition ...
15495         * tree.c (is_typedef_decl): ... here.
15496         (typdef_variant_p): Move definition here from cp/tree.c.
15497         * c-common.h (is_typedef_decl): Move this declaration ...
15498         * tree.h (is_typedef_decl): ... here.
15499         (typedef_variant_p): Move declaration here from cp/cp-tree.h
15500         * dwarf2out.c (is_naming_typedef_decl): New function.
15501         (gen_tagged_type_die): Split out of ...
15502         (gen_type_die_with_usage): ... this function. When an anonymous
15503         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
15504         is emitted for the typedef.
15505         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
15506         anonymous tagged types.
15507
15508 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15509
15510         PR c/20000
15511         * c-decl.c (grokdeclarator): Delete warning.
15512
15513 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
15514
15515         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
15516         newly built CALL_EXPR.
15517         * tree-profile.c (tree_profiling): Don't profile functions produced
15518         for built-in stuff.
15519
15520 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
15521
15522         PR bootstrap/44427
15523         PR bootstrap/44428
15524         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
15525         endianness-independent.
15526
15527 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
15528
15529         * c-common.c: Move to c-family/.
15530         * c-common.def: Likewise.
15531         * c-common.h: Likewise.
15532         * c-cppbuiltin.c: Likewise.
15533         * c-dump.c: Likewise.
15534         * c-format.c: Likewise.
15535         * c-format.h : Likewise.
15536         * c-gimplify.c: Likewise.
15537         * c-lex.c: Likewise.
15538         * c-omp.c: Likewise.
15539         * c.opt: Likewise.
15540         * c-opts.c: Likewise.
15541         * c-pch.c: Likewise.
15542         * c-ppoutput.c: Likewise.
15543         * c-pragma.c: Likewise.
15544         * c-pragma.h: Likewise.
15545         * c-pretty-print.c: Likewise.
15546         * c-pretty-print.h: Likewise.
15547         * c-semantics.c: Likewise.
15548         * stub-objc.c: Likewise.
15549
15550         * gengtype.c (get_file_langdir): Special-case files in c-family/.
15551         (get_output_file_with_visibility): Fix name for c-common.h.
15552         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
15553
15554         * c-tree.h: Update include path for moved files.
15555         * c-lang.c: Likewise.
15556         * c-lang.h: Likewise.
15557         * c-parser.c: Likewise.
15558         * c-convert.c: Likewise.
15559         * c-decl.c: Likewise.
15560         * c-objc-common.c: Likewise.
15561         * configure.ac: Make sure c-family/ exists in the build directory.
15562         * configure: Regenerate.
15563         * Makefile.in: Update paths for moved files.  Regroup files per
15564         location and update dependencies.  Move generated_files down after
15565         ALL_GTFILES_H.
15566
15567         * config/spu/spu-c.c: Update paths for moved files.
15568         * config/mep/mep-pragma.c: Likewise.
15569         * config/darwin-c.c: Likewise.
15570         * config/i386/msformat-c.c: Likewise.
15571         * config/i386/i386-c.c: Likewise.
15572         * config/avr/avr-c.c: Likewise.
15573         * config/sol2-c.c: Likewise.
15574         * config/ia64/ia64-c.c: Likewise.
15575         * config/rs6000/rs6000-c.c: Likewise.
15576         * config/arm/arm.c: Likewise.
15577         * config/arm/arm-c.c: Likewise.
15578         * config/h8300/h8300.c: Likewise.
15579         * config/v850/v850-c.c: Likewise.
15580
15581         * config/t-darwin: Fix dependencies for moved files.
15582         * config/t-sol2: Fix dependencies for moved files.
15583         * config/mep/t-mep: Fix dependencies for moved files.
15584         * config/ia64/t-ia64: Fix dependencies for moved files.
15585         * config/rs6000/t-rs6000: Fix dependencies for moved files.
15586         * config/v850/t-v850: Fix dependencies for moved files.
15587         * config/v850/t-v850e: Fix dependencies for moved files.
15588
15589         * config/m32c/m32c-pragma.c
15590
15591         * po/exgettext: Look in c-family/ also.
15592
15593 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
15594
15595         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
15596         (mark_control_dependent_edges_necessary): Call it instead of marking
15597         the last statement manually.
15598         (propagate_necessity): Likewise.
15599
15600 2010-06-05  Jan Hubicka  <jh@suse.cz>
15601
15602         * basic-block.h (compute_dominance_frontiers): Updated.
15603         (compute_idf): Likewise.
15604
15605         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
15606         for dominance frontiers.
15607         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
15608         (insert_updated_phi_nodes_for): Likewise.
15609         (update_ssa): Likewise.
15610         * cfganal.c (compute_dominance_frontiers_1): Likewise.
15611         (compute_dominance_frontiers): Likewise.
15612         (compute_idf): Likewise.
15613         * df-problems.c (df_md_local_compute): Likewise.
15614
15615 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
15616
15617         * target.h (struct gcc_target): Add memory_move_cost field.
15618         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
15619         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
15620         * targhooks.c (default_memory_move_cost): New function.
15621         * targhooks.h (default_memory_move_cost): Declare function.
15622         * reload.h (memory_move_cost): Declare.
15623         (memory_move_secondary_cost): Change type of 'in' argument to bool.
15624         * reginfo.c (memory_move_cost): New function.
15625         (memory_move_secondary_cost): Change type of 'in' argument to bool.
15626         * ira.h (ira_memory_move_cost): Update comment.
15627         * ira.c (ira_memory_move_cost): Update comment.
15628         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
15629         with memory_move_cost.
15630         * postreload.c (reload_cse_simplify_set): (Ditto.).
15631         * reload1.c (choose_reload_regs): (Ditto.).
15632         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
15633         (MEMORY_MOVE_COST):  Revise documentation.
15634
15635         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
15636         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
15637         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
15638         type of 'in' argument to bool.
15639         (TARGET_MEMORY_MOVE_COST): Define.
15640
15641 2010-06-05  Jan Hubicka  <jh@suse.cz>
15642
15643         * ipa-pure-const.c (propagate): Fix typo in handling of functions
15644         that cannot return.  Be more careful when merging the results with
15645         previously known ones.
15646
15647 2010-06-05  Matthias Klose  <doko@ubuntu.com>
15648
15649         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
15650         function to add the -iplugindir option.
15651         (find_plugindir_spec_function): Add new declaration and function.
15652         (static_spec_func): Use it for "find-plugindir".
15653
15654 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
15655
15656         PR c++/44361
15657         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
15658         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
15659         statement expression.
15660
15661 2010-06-05  Jan Hubicka  <jh@suse.cz>
15662
15663         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
15664         (df_rd_problem_data): Convert sparse_invalidated_by_call,
15665         dense_invalidated_by_call to bitmap head.
15666         (df_rd_alloc, df_rd_bb_local_compute_process_def,
15667         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
15668         df_rd_start_dump, df_lr_verify_transfer_functions,
15669         df_live_verify_transfer_functions, df_chain_create_bb,
15670         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
15671         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
15672         df_simulate_one_insn_forwards, df_md_alloc,
15673         df_md_bb_local_compute_process_def,
15674         df_md_bb_local_compute_process_def, df_md_local_compute,
15675         df_md_transfer_function df_md_free): Update.
15676
15677 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
15678
15679         PR c/44322
15680         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
15681         target type for ADDR_EXPR; require no changes to qualifiers except
15682         for function types.
15683         * c-tree.h (c_build_type_variant): Remove.
15684
15685 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
15686
15687         * genautomata.c (get_excl_set): Do work per element, not per char.
15688         (check_presence_pattern_sets): Similar.
15689         (check_absence_pattern_sets): Similar.
15690
15691 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
15692
15693         * genautomata.c (curr_state_pass_num): Delete.
15694         (min_issue_delay_pass_states): Delete.
15695         (min_issue_delay): Delete.
15696         (initiate_min_issue_delay_pass_states): Delete.
15697         (output_min_issue_delay_table): Compute min_issue_delay_vect
15698         using a breadth-first search variant.
15699         (output_tables): Don't call initiate_min_issue_delay_pass_states.
15700
15701 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
15702
15703         PR boostrap/44421
15704         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
15705         (df_byte_lr_bb_local_compute): Likewise.
15706
15707 2010-06-03  Jason Merrill  <jason@redhat.com>
15708
15709         Implement noexcept operator (5.3.7)
15710         * c-common.c (c_common_reswords): Add noexcept.
15711         * c-common.h (enum rid): Add RID_NOEXCEPT.
15712
15713 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
15714
15715         * config/darwin-driver.c (darwin_default_min_version): Use
15716         GCC-specific formats in diagnostics.
15717         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
15718         diagnostics.
15719         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
15720         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
15721         eval_spec_function, handle_braces, process_brace_body, main,
15722         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
15723         getenv_spec_function, compare_version_strings,
15724         version_compare_spec_function): Use GCC-specific formats in
15725         diagnostics.
15726
15727 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
15728
15729         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
15730         that operand 0 and operand 1 are equal.
15731         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
15732         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
15733         and operand 1 are equal.
15734         <default>: Ditto.  Remove ??? comment.
15735         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
15736         and operand 1 are equal.
15737         <default>: Ditto.  Remove ??? comment.
15738         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
15739         are equal.
15740         (*add<mode>_4) <default>: Ditto.
15741         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
15742
15743 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
15744
15745         * config/i386/i386-protos.h (ix86_print_operand): Declare.
15746         * config/i386/i386.c (ix86_print_operand): Make non-static.
15747         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
15748         * output.h (output_operand): Declare.
15749         * final.c (output_operand): Make non-static.
15750
15751 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
15752
15753         PR rtl-optimization/44013
15754         * sched-deps.c (add_dependence_list_and_free): Don't free lists
15755         when processing debug insns.
15756
15757         PR debug/41371
15758         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
15759         recursing.  Check that recursion is bounded.  Rename inner var
15760         to avoid hiding incoming argument.
15761
15762 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
15763
15764         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
15765         operands[2] == 255.
15766         (*addqi_3): Ditto.
15767         (*addqi_4): Ditto.
15768         (*addqi_5): Ditto.
15769         (*addqi_ext_1_rex64): Ditto.
15770         (*addqi_ext_1): Ditto.
15771
15772         (*addqi_4): Check for incdec_operand in QImode.
15773
15774         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
15775         using SWI mode iterator.
15776         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
15777         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
15778         mode iterator.
15779         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
15780         using SWI mode iterator.
15781
15782 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15783
15784         PR c/25880
15785         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
15786         * c-format.c (gcc_diag_flag_specs): Add hash.
15787         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
15788         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
15789         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
15790         pp_c_cv_qualifiers. Handle qualifiers spelling here.
15791         (pp_c_type_qualifier_list): Call the function above.
15792         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
15793         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
15794         (WARN_FOR_QUALIFIERS): New macro.
15795         (convert_for_assignment): Use it.
15796
15797 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
15798
15799         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
15800
15801 2010-06-04  Jan Hubicka  <jh@suse.cz>
15802
15803         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
15804         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
15805         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
15806         DF_BYTE_LR_OUT): Update for embedded bitmaps.
15807         * fwprop.c (single_def_use_enter_block): Likewise.
15808         * ddg.c (create_ddg_dep_from_intra_loop_link,
15809         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
15810         * loop-iv.c (latch_dominating_def): Likewise.
15811         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
15812         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
15813         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
15814         df_rd_transfer_function, df_rd_top_dump,
15815         df_rd_bottom_dump): Update.
15816         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
15817         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
15818         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
15819         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
15820         df_lr_verify_solution_start, df_lr_verify_solution_end,
15821         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
15822         df_live_free_bb_info, df_live_alloc, df_live_reset,
15823         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
15824         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
15825         df_live_verify_solution_start, df_live_verify_solution_end,
15826         df_live_verify_transfer_functions, df_chain_create_bb,
15827         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
15828         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
15829         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
15830         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
15831         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
15832         df_byte_lr_transfer_function, df_byte_lr_top_dump,
15833         df_byte_lr_bottom_dump, df_create_unused_note,
15834         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
15835         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
15836         df_md_transfer_function, df_md_init, df_md_confluence_0,
15837         df_md_confluence_n,
15838         df_md_top_dump, df_md_bottom_dump): Update.
15839         (struct df_lr_problem_data): Embedd bitmap headers.
15840
15841 2010-06-04  Jan Hubicka  <jh@suse.cz>
15842
15843         * dce.c (dce_process_block): Do not re-scan already marked
15844         instructions.
15845
15846 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
15847
15848         PR rtl-optimization/39871
15849         PR rtl-optimization/40615
15850         PR rtl-optimization/42500
15851         PR rtl-optimization/42502
15852         * ira.c (init_reg_equiv_memory_loc: New function.
15853         (ira): Call it twice.
15854         * reload.h (calculate_elim_costs_all_insns): Declare.
15855         * ira-costs.c: Include "reload.h".
15856         (regno_equiv_gains): New static variable.
15857         (init_costs): Allocate it.
15858         (finish_costs): Free it.
15859         (ira_costs): Call calculate_elim_costs_all_insns.
15860         (find_costs_and_classes): Take estimated elimination costs
15861         into account.
15862         (ira_adjust_equiv_reg_cost): New function.
15863         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
15864         * reload1.c (init_eliminable_invariants, free_reg_equiv,
15865         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
15866         (elim_bb): New static variable.
15867         (reload): Move code out of here into init_eliminable_invariants and
15868         free_reg_equiv.  Call them.
15869         (calculate_elim_costs_all_insns): New function.
15870         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
15871         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
15872         but call note_reg_elim_costly if we turned a valid memory address
15873         into an invalid one.
15874         * Makefile.in (ira-costs.o): Depend on reload.h.
15875
15876 2010-06-04  Julian Brown  <julian@codesourcery.com>
15877
15878         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
15879         for pool ranges.
15880
15881 2010-06-04  Richard Guenther  <rguenther@suse.de>
15882
15883         PR lto/41584
15884         * cgraph.h (struct varpool_node): Add lto_file_data field.
15885         * lto-cgraph.c (input_varpool_node): Initialize it.
15886
15887 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
15888
15889         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
15890         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
15891         predicate in "type" attribute calculation.
15892         (*addsi_1_zext): Ditto.
15893         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
15894         (*addsi_2_zext): Ditto.
15895         (*add<mode>_3): Ditto.
15896         (*addsi_3_zext): Ditto.
15897         (*add<mode>_5): Ditto.
15898
15899 2010-06-03  Jan Hubicka  <jh@suse.cz>
15900
15901         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
15902         of bitmap_bit_p.
15903         * cfganal.c (compute_dominance_frontiers_1): Likewise.
15904
15905 2010-06-03  Jan Hubicka  <jh@suse.cz>
15906
15907         * df-problems.c (df_create_unused_note, df_note_bb_compute):
15908         micro-optimize the checks when to add new note.
15909
15910 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
15911
15912         * final.c (output_asm_insn): Call
15913         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
15914         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
15915         (output_address): Call targetm.asm_out.print_operand_address.
15916         Update comments.
15917         * target.h (struct gcc_target): Add print_operand,
15918         print_operand_address, and print_operand_punct_valid_p fields.
15919         * targhooks.h (default_print_operand): Declare.
15920         (default_print_operand_address): Declare.
15921         (default_print_operand_punct_valid_p): Declare.
15922         * targhooks.c (default_print_operand): Define.
15923         (default_print_operand_address): Define.
15924         (default_print_operand_punct_valid_p): Define.
15925         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
15926         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
15927         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
15928         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
15929         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
15930         * vmsdbgout.c (addr_const_to_string): Update comment.
15931         * config/i386/i386.c (print_operand): Rename to...
15932         (ix86_print_operand): ...this.  Make static.
15933         (print_operand_address): Rename to...
15934         (ix86_print_operand_address): ...this.  Make static.  Call
15935         ix86_print_operand instead of PRINT_OPERAND.
15936         (ix86_print_operand_punct_valid_p): New function.
15937         (TARGET_PRINT_OPERAND): Define.
15938         (TARGET_PRINT_OPERAND_ADDRESS): Define.
15939         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
15940         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
15941         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
15942         (PRINT_OPERAND): Delete.
15943         (PRINT_OPERAND_ADDRESS): Delete.
15944         * config/i386/i386-protos.h (print_operand): Delete prototype.
15945         (print_operand_address): Delete prototype.
15946
15947 2010-06-03  Richard Guenther  <rguenther@suse.de>
15948
15949         PR tree-optimization/44403
15950         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
15951         Preserve pointer qualifiers.
15952         (vect_create_data_ref_ptr): Likewise.
15953
15954 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
15955
15956         PR c++/44294
15957         * defaults.h (MAX_FIXED_MODE_SIZE): New.
15958
15959         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
15960
15961 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
15962
15963         PR debug/44375
15964         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
15965         return false if merging the bbs would lead to goto_locus
15966         location being lost from the IL.
15967
15968 2010-06-03  Jan Hubicka  <jh@suse.cz>
15969             Jakub Jelinek  <jakub@redhat.com>
15970
15971         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
15972         set->regs[i] is NULL or has just one entry.
15973
15974 2010-06-03  Jan Hubicka  <jh@suse.cz>
15975
15976         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
15977         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
15978
15979 2010-06-03  Paul Brook  <paul@codesourcery.com>
15980
15981         * config/arm/arm.c (FL_TUNE): Define.
15982         (arm_default_cpu, arm_cpu_select): Remove.
15983         (all_cores): Populate core field.
15984         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
15985         (arm_find_cpu): New function.
15986         (arm_handle_option): Lookup cpu/architecture names.
15987         (arm_override_options): Cleanup mcpu/march/mtune handling.
15988         (arm_file_start): Ditto.
15989
15990 2010-06-03  Alan Modra  <amodra@gmail.com>
15991
15992         PR target/44169
15993         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
15994         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
15995         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
15996         (rs6000_emit_load_toc_table): Likewise.
15997
15998 2010-06-02  Jan Hubicka  <jh@suse.cz>
15999
16000         * passes.c (init_optimization_passes): Put ipa reference
16001         after ipa pure-const.
16002
16003 2010-06-02  Jan Hubicka  <jh@suse.cz>
16004
16005         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
16006         calls_read_all and calls_write_all.
16007         (get_reference_optimization_summary): Fix formatting.
16008         (is_proper_for_analysis): Check that decl is not readonly.
16009         (propagate_bits): Check CONST/PURE/noreturn flags.
16010         (ipa_init): Move all_module_statics to optimization_summary_obstack.
16011         (analyze_function): Ignore indirect edges.
16012         (copy_global_bitmap): For all module statics, do nothing.
16013         (generate_summary): Do not print calls_read_all/calls_write_all.
16014         (read_write_all_from_decl): Take node as argument; check
16015         cgraph_node_cannot_return.
16016         (propagate): Reorganize read_all/write_all computation;
16017         check indirect edges; check ecf flags; use all_module_statics
16018         in the results; do not free all_module_statics.
16019         (stream_out_bitmap): Handle all_module_statics.
16020         (ipa_reference_write_optimization_summary): Likewise; use
16021         varpool/cgraph encoders to get boundaries.
16022         (ipa_reference_read_optimization_summary): Read in all_module_statics;
16023         use it when possible.
16024
16025 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
16026
16027         PR target/44218
16028         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
16029         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
16030
16031         * doc/extend.texi (powerpc builtins): Document vec_recip,
16032         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
16033
16034         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
16035         (rs6000_emit_swrsqrt): Ditto.
16036         (rs6000_emit_swdivsf): Delete.
16037         (rs6000_emit_swdivdf): Ditto.
16038         (rs6000_emit_swrsqrtsf): Ditto.
16039
16040         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
16041         describe the reciprocal estimate support for each type.
16042         (recip_options): Map -mrecip=<opt> into option bits.
16043         (gen_2arg_fn_t): New typedef for binary rtx gen function.
16044         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
16045         reciprocal estimate instructions.
16046         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
16047         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
16048         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
16049         cost information if -mdebug=cost or -mdebug=reg.
16050         (rs6000_override_options): Set -mrecip-precision for power6, and
16051         power7 machines.  If -mvsx or -mdfp, enable various options that
16052         came in previous instruction set ISAs, unless the option was
16053         explicitly disabled by the command line option.  Parse
16054         -mrecip=<opt> options.
16055         (rs6000_builtin_vectorized_function): Add support for vectorizing
16056         the reciprocal estimate builtins and expansions.
16057         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
16058         (bdesc_2arg): Add reciprocal estimate builtins.
16059         (bdesc_1arg): Add reciprocal square root estimate builtins.
16060         (rs6000_expand_builtin): Rewrite to use a switch statement,
16061         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
16062         (rs6000_init_builtins): Create declarations for reciprocal
16063         estimate builtins.
16064         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
16065         sized, prefer traditional floating point registers, if integer
16066         vector types, prefer altivec registers.  Don't actually look at
16067         the memory address any more.
16068         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
16069         builtins.
16070         (rs6000_load_constant_and_splat): New helper function to load up
16071         the constant for reciprocal estimate instructions.
16072         (rs6000_emit_madd): New helper function for generating
16073         multiply/add type instructions, based on the current switches.
16074         (rs6000_emit_msub): Ditto.
16075         (rs6000_emit_mnsub): Ditto.
16076         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
16077         replace a divide with a reciprocal estimate and fixup, adding
16078         support for machines with high precision and vectors.
16079         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
16080         low precision machines.
16081         (rs6000_emit_swdiv): New common function to be called to replace a
16082         division with reciprocal estimate and fixup.
16083         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
16084         for double and vector types.  Add support for high precision machines.
16085
16086         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
16087         the reciprocal estimate instructions can be generated.
16088         (TARGET_FRE): Ditto.
16089         (TARGET_FRSQRTES): Ditto.
16090         (TARGET_FRSQRTE): Ditto.
16091         (RS6000_RECIP_*): New macros for reciprocal estimate support.
16092
16093         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
16094         square root estimate on vectors.
16095         (re<mode>2): New insn for reciprocal division estimate on vectors.
16096
16097         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
16098         New builtin.
16099         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
16100         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
16101         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
16102         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
16103         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
16104         (RS6000_BUILTIN_RSQRT): Ditto.
16105         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
16106         floating point builtin.
16107
16108         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
16109         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
16110         __RECIP_PRECISION__ based on the command line switches.
16111         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
16112
16113         * config/rs6000/rs6000.opt (-mrecip): Document add support for
16114         replacing division instructions with reciprocal estimate and fixup.
16115         (-mrecip=<opt>): New option.
16116         (-mrecip-precision): Ditto.
16117
16118         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
16119         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
16120         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
16121         precision scalar.
16122
16123         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
16124         (UNSPEC_VREFP): Ditto.
16125         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
16126         conterparts with regard to support of -mno-fused-madd and -ffast-math.
16127         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
16128         reciprocal estimate instructions to be generated.
16129         (altivec_vrefp): Ditto.
16130
16131         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
16132         estimate support.
16133         (rreg): New mode attribute for reciprocal estimate support.
16134         (recip<mode>3): New insn for division using reciprocal estimate
16135         and fixup builtins.
16136         (divide define_split): New define_split to convert floating point
16137         division to use reciprocal estimate if the user used the
16138         appropriate options and the split is run when we can add new
16139         pseudo registers for the fixup.
16140         (rsqrt<mode>2): New insn for reciprocal square root support.
16141         (recipsf3): Move into recip<mode>3.
16142         (recipdf3): Ditto.
16143         (fres): Use TARGET_FRES.
16144         (rsqrtsf2): Move into rsqrt<mode>2.
16145         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
16146         (copysignsf3): Add support for VSX.
16147         (fred): Use TARGET_FRE.
16148         (fred_fpr): Ditto.
16149         (rsqrtdf_internal1): New function for frsqrte instruciton.
16150
16151         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
16152         (vec_rsqrt): Ditto.
16153
16154 2010-06-03  Richard Guenther  <rguenther@suse.de>
16155
16156         PR middle-end/44291
16157         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
16158         (set_user_assembler_libfunc): Likewise.
16159
16160 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
16161
16162         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
16163         defaults.h.
16164         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
16165         to defaults.h
16166         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
16167         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
16168         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
16169         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
16170         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
16171         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
16172         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
16173         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
16174         * defaults.h: Updated for above mentioned changes.
16175
16176 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
16177
16178         * c-common.c: Remove header include of tm_p.h.
16179         * Makefile.in (c-common.o): Remove TM_P_H dependency.
16180
16181 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
16182
16183         * tree.h (struct tree_decl_map): New type.
16184         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
16185         (tree_decl_map_hash): New prototype.
16186         (debug_expr_for_decl, value_expr_for_decl): Change into
16187         tree_decl_map hashtab from tree_map.
16188         (init_ttree): Adjust initialization.
16189         (tree_decl_map_hash): New function.
16190         (decl_debug_expr_lookup, decl_debug_expr_insert,
16191         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
16192
16193 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16194
16195         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
16196         linker emulations.
16197         * configure: Regenerate.
16198         * config.in: Regenerate.
16199
16200         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
16201         (X86_64_EMULATION): Define.
16202         (TARGET_LD_EMULATION): Use them.
16203
16204         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
16205         (SPARC64_EMULATION): Define.
16206         (LINK_ARCH_SPEC): Use them.
16207
16208 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
16209
16210         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
16211         smallest_mode_for_size for computing the precision types of new
16212         graphite IVs.  Do not call lang_hooks.types.type_for_size.
16213
16214 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
16215
16216         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
16217         information.
16218         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
16219
16220 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
16221
16222         PR middle-end/44363
16223         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
16224         return false instead.
16225
16226 2010-06-02  Jan Hubicka  <jh@suse.cz>
16227
16228         PR middle-end/44295
16229         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
16230         create new cgraph node to check callee.
16231
16232 2010-06-02  Richard Guenther  <rguenther@suse.de>
16233
16234         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
16235
16236 2010-06-02  Richard Guenther  <rguenther@suse.de>
16237
16238         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
16239         (lto_wrapper_cleanup): ... this.  Do not exit.
16240         (fatal): Adjust.  Exit here.
16241         (fatal_perror): Likewise.
16242         (fatal_signal): New function.
16243         (main): Set up signal handlers to cleanup temporary files.
16244         * Makefile.in (lto-wrapper.o): Adjust dependencies.
16245
16246 2010-06-02  Richard Guenther  <rguenther@suse.de>
16247
16248         PR tree-optimization/44377
16249         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
16250
16251 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16252
16253         * config/s390/2097.md (z10_fhex): Remove insn reservation.
16254         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
16255         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
16256         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
16257         instruction.
16258         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
16259
16260 2010-06-02  Jan Hubicka  <jh@suse.cz>
16261
16262         * bitmap.c (bitmap_descriptor): Add search_iter.
16263         (bitmap_find_bit): Increment it.
16264         (print_statistics): Print it.
16265
16266 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
16267
16268         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
16269         instead of gimple_build_call_vec.  Delete unnecessary local variable.
16270
16271 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
16272
16273         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
16274         change from yesterday.
16275
16276 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
16277
16278         * c-ada-spec.c: Clean up redundant includes.
16279
16280 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
16281
16282         * gimplify.c: Do not include except.h and optabs.h.
16283         (gimplify_body): Do not initialize RTL profiling.
16284         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
16285         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
16286         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
16287         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
16288         langhooks.h.
16289
16290         * tree-pretty-print.h: Include pretty-print.h.
16291         * gimple-pretty-print.h: Include pretty-print.h.
16292
16293         * tree-pretty-print.c: Do not include diagnostic.h.
16294         * tree-vrp.c: Likewise.
16295         * tree-tailcall.c: Likewise
16296         * tree-scalar-evolution.c: Likewise
16297         * tree-ssa-dse.c: Likewise
16298         * tree-chrec.c: Likewise
16299         * tree-ssa-sccvn.c: Likewise
16300         * tree-ssa-copyrename.c: Likewise
16301         * tree-nomudflap.c: Likewise
16302         * tree-call-cdce.c: Likewise
16303         * tree-stdarg.c: Likewise
16304         * tree-ssa-math-opts.c: Likewise
16305         * tree-nrv.c: Likewise
16306         * tree-ssa-sink.c: Likewise
16307         * tree-browser.c: Likewise
16308         * tree-ssa-loop-ivcanon.c: Likewise
16309         * tree-ssa-loop.c: Likewise
16310         * tree-parloops.c: Likewise
16311         * tree-ssa-address.c: Likewise
16312         * tree-ssa-ifcombine.c: Likewise
16313         * tree-if-conv.c: Likewise
16314         * tree-data-ref.c: Likewise
16315         * tree-affine.c: Likewise
16316         * tree-ssa-phiopt.c: Likewise
16317         * tree-ssa-coalesce.c: Likewise
16318         * tree-ssa-pre.c: Likewise
16319         * tree-ssa-live.c: Likewise
16320         * tree-predcom.c: Likewise
16321         * tree-ssa-forwprop.c: Likewise
16322         * tree-ssa-dce.c: Likewise
16323         * tree-ssa-ter.c: Likewise
16324         * tree-ssa-loop-prefetch.c: Likewise
16325         * tree-optimize.c: Likewise
16326         * tree-ssa-phiprop.c: Likewise
16327         * tree-object-size.c: Likewise
16328         * tree-outof-ssa.c: Likewise
16329         * tree-ssa-structalias.c: Likewise
16330         * tree-switch-conversion.c: Likewise
16331         * tree-ssa-reassoc.c: Likewise
16332         * tree-ssa-operands.c: Likewise
16333         * tree-vectorizer.c: Likewise
16334         * tree-vect-data-refs.c: Likewise
16335         * tree-vect-generic.c: Likewise
16336         * tree-vect-stmts.c: Likewise
16337         * tree-vect-patterns.c: Likewise
16338         * tree-vect-slp.c: Likewise
16339         * tree-vect-loop.c: Likewise
16340         * tree-ssa-loop-ivopts.c: Likewise
16341         * tree-ssa-loop-im.c: Likewise
16342         * tree-ssa-loop-niter.c: Likewise
16343         * tree-ssa-loop-unswitch.c: Likewise
16344         * tree-ssa-loop-manip.c: Likewise
16345         * tree-ssa-loop-ch.c: Likewise
16346         * tree-dump.c: Likewise
16347         * tree-complex.c: Likewise
16348
16349         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
16350         * tree-ssa-uninit.c: Likewise
16351         * tree-ssa-threadupdate.c: Likewise
16352         * tree-ssa-uncprop.c: Likewise
16353         * tree-ssa-ccp.c: Likewise
16354         * tree-ssa-dom.c: Likewise
16355         * tree-ssa-propagate.c: Likewise
16356         * tree-ssa-alias.c: Likewise
16357         * tree-dfa.c: Likewise
16358         * tree-cfgcleanup.c: Likewise
16359         * tree-sra.c: Likewise
16360         * tree-ssa-copy.c: Likewise
16361         * tree-ssa.c: Likewise
16362         * tree-profile.c: Likewise
16363         * tree-cfg.c: Likewise
16364         * tree-ssa-threadedge.c: Likewise
16365         * tree-vect-loop-manip.c: Likewise
16366
16367         * tree-inline.c: Do not include diagnostic.h and expr.h.
16368         Include rtl.h.
16369         (copy_decl_for_dup_finish): Do not use NULL_RTX.
16370
16371         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
16372         * tree-loop-distribution.c: Likewise.
16373
16374 2010-06-01  Jan Hubicka  <jh@suse.cz>
16375
16376         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
16377
16378 2010-06-01  Jan Hubicka  <jh@suse.cz>
16379
16380         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
16381         remove return value.
16382         (split_bbs_on_noreturn_calls) .... here.
16383         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
16384         * tree-flow.h (fixup_noreturn_call): New.
16385
16386 2010-06-01  Jan Hubicka  <jh@suse.cz>
16387
16388         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
16389
16390 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
16391
16392         * tree.h (build_nt_call_list): Delete.
16393         * tree.c (build_nt_call_list): Delete.
16394
16395 2010-06-01  Jan Hubicka  <jh@suse.cz>
16396
16397         * fwprop.c: Make emit-rtl.h include last.
16398         * rtlanal.c: Include emit-rtl.h.
16399         * genautomata.c: Output emit-rtl include into insn-automata.c
16400         * df-scan.c: Include emit-rtl.h.
16401         * haifa-sched.c: Indlude emit-rtl.h.
16402         * mode-switching.c: Indlude emit-rtl.h.
16403         * graph.c: Indlude emit-rtl.h.
16404         * sel-sched.c: Include emit-rtl.h.
16405         * sel-sched-ir.c: Include emit-rtl.h.
16406         * ira-build.c: Include emit-rtl.h.
16407         * emit-rtl.c (first_insn, last_insn): Remove defines.
16408         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
16409         Move to emit-rtl.h.
16410         (set_new_first_and_last_insn, get_last_insn_anywhere,
16411         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
16412         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
16413         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
16414         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
16415         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
16416         Use accessor functions.
16417         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
16418          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
16419         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
16420         mem_expr_equal_p): Move here from rtl.h.
16421         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
16422         Move here from emit-rtl.c; make inline.
16423         * cfglayout.h: Include emit-rtl.h.
16424         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
16425          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
16426         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
16427         mem_expr_equal_p, get_insns, set_first-insn,
16428         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
16429         * reg-stack.c: Include emit-rtl.h.
16430         * dce.c: Likewise.
16431
16432 2010-06-01  Jan Hubicka  <jh@suse.cz>
16433
16434         * cgraph.h (tree_function_versioning): Update prototype.
16435         (cgraph_function_versioning): Update prototype.
16436         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
16437         bitmap.
16438         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
16439         (cgraph_materialize_clone, save_inline_function_body): Update use of
16440         tree_function_versioning.
16441         * tree-inline.c (copy_bb): Look for previous copied block to link
16442         after; fix debug output.
16443         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
16444         (copy_body): Likewise.
16445         (expand_call_inline): Update use of copy_body.
16446         (tree_function_versioning): Update use of copy body; accept
16447         blocks_to_copy and new_entry.
16448
16449 2010-06-01  Jan Hubicka  <jh@suse.cz>
16450
16451         * gegenrtl.c: Remove unnecesary prototypes.
16452         (gendecl): Remove.
16453         (gendef): Produce static inline.
16454         (gencode): Remove.
16455         (main): Do not decode parameters; generate header only.
16456         * Makefile.in (genrtl.c): Remove.
16457
16458 2010-06-01  Jan Hubicka  <jh@suse.cz>
16459
16460         * tree-switch-conversion.c (build_one_array): Make it readonly.
16461
16462 2010-06-01  Richard Guenther  <rguenther@suse.de>
16463
16464         * optabs.c (init_optabs): Guard all accesses to reinit.
16465         * ipa-pure-const.c (propagate): Fix another typo.
16466         * opts.c (common_handle_option): Split assignment to bool.
16467         * c-opts.c (c_common_handle_option): Likewise.
16468
16469 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
16470             Matthew Gingell  <gingell@adacore.com>
16471
16472         * doc/invoke.texi: Mention -fdump-ada-spec.
16473         * tree-dump.c (dump_files): Add ada-spec.
16474         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
16475         * tree-pass.h (tree_dump_index): Add TDI_ada.
16476         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
16477         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
16478         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
16479         * c-decl.c: Include c-ada-spec.h.
16480         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
16481         functions.
16482         (c_write_global_declarations): Add handling of -fdump-ada-spec.
16483         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
16484         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
16485         * c-ada-spec.h, c-ada-spec.c: New files.
16486
16487 2010-06-01  Richard Guenther  <rguenther@suse.de>
16488
16489         PR lto/43853
16490         * ipa-pure-const.c (get_function_state): Hand back varying state
16491         if we do not have one.
16492         (has_function_state): New function.
16493         (duplicate_node_data): Adjust.
16494         (remove_node_data): Likewise.
16495         (pure_const_write_summary): Likewise.
16496         (propagate): Likewise.  Fix typo.
16497
16498 2010-06-01  Jan Hubicka  <jh@suse.cz>
16499
16500         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
16501         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
16502         (execute_all_ipa_transforms): Do not play with the states.
16503
16504 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
16505
16506         * config/arm/t-linux-androideabi: New.
16507         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
16508
16509 2010-06-01  Jan Hubicka  <jh@suse.cz>
16510
16511         * tree-inline.c (estimate_num_insns): For stdarg functions look
16512         into call statement to count cost of argument passing.
16513
16514 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
16515
16516         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
16517         argument for fprintf.
16518         (ix86_output_addr_diff_elt): Likewise.
16519         (x86_function_profiler): Likewise.
16520         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
16521         (LPREFIX): Likewise.
16522         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
16523
16524 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
16525
16526         PR target/44338
16527         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
16528         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
16529         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
16530         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
16531         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
16532         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
16533         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
16534         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
16535         TARGET_FUSED_MADD.
16536
16537 2010-05-31  Jan Hubicka  <jh@suse.cz>
16538
16539         * tree.h (tree_range_check_failed): Declare noreturn.
16540
16541 2010-05-31  Jan Hubicka  <jh@suse.cz>
16542
16543         * gimple.c (gimple_call_builtin_p): New function.
16544         * gimple.h (gimple_call_builtin_p): Declare.
16545         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
16546         to exit.
16547         (execute_warn_function_return): BUILT_IN_RETURN is return.
16548         (split_critical_edges): Return edges are not critical.
16549         (is_ctrl_altering_stmt): Builtin_in_return is altering.
16550         (gimple_verify_flow_info): Handle built_in_return.
16551         (execute_warn_function_return): Handle built_in_return.
16552         * ipa-pure-const.c (check_call): Ignore builtin_return.
16553
16554 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
16555
16556         PR middle-end/44337
16557         * expr.c (expand_assignment): Don't store anything for out-of-bounds
16558         array accesses with non-MEM.
16559
16560         PR tree-optimization/44182
16561         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
16562         newly needs to end a bb is followed by debug stmts, instead return
16563         true from the function at the end.
16564         (maybe_move_debug_stmts_to_successors): New function.
16565         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
16566
16567 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
16568
16569         PR target/44161
16570         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
16571
16572 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
16573
16574         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
16575         for nested functions in non-optimized compilation.
16576
16577 2010-05-31  Richard Guenther  <rguenther@suse.de>
16578
16579         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
16580
16581 2010-05-30  Jan Hubicka  <jh@suse.cz>
16582
16583         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
16584
16585 2010-05-30  Richard Guenther  <rguenther@suse.de>
16586
16587         PR lto/42975
16588         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
16589         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
16590         no longer needed.
16591
16592 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
16593
16594         * config/darwin.c (output_objc_section_asm_op): Add comment.
16595         (name_needs_quotes): Add '_' to list of valid comment chars.
16596         (machopic_output_function_base_name): Remove unneeded quotes.
16597         (darwin_encode_section_info): Adjust asm whitespace.
16598         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
16599         (ASM_OUTPUT_LOCAL): Ditto.
16600         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
16601         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
16602         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
16603
16604 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
16605
16606         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
16607         RS6000_OUTPUT_BASENAME unconditionally.
16608         (rs6000_output_function_epilogue): Likewise.
16609
16610 2010-05-30  Jan Hubicka  <jh@suse.cz>
16611
16612         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
16613         nodes.
16614
16615 2010-05-30  Richard Guenther  <rguenther@suse.de>
16616
16617         * tree-cfg.c (verify_gimple_assign_single): Implement
16618         verification for COND_EXPR rhs.
16619
16620 2010-05-30  Jan Hubicka  <jh@suse.cz>
16621
16622         * cgraph.h (cgraph_dump_file): Declare.
16623         * cgraphunit.c (cgraph_dump_file): Export.
16624         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
16625
16626 2010-05-30  Jan Hubicka  <jh@suse.cz>
16627
16628         * dwarf2out.c (reference_to_unused,
16629         premark_types_used_by_global_vars_helper): Avoid creation of new
16630         varpool nodes.
16631
16632 2010-05-30  Jan Hubicka  <jh@suse.cz>
16633
16634         * cgraph.h (cgraph_node_cannot_return,
16635         cgraph_edge_cannot_lead_to_return): New functions.
16636         * cgraph.c (cgraph_node_cannot_return,
16637         cgraph_edge_cannot_lead_to_return): Use them.
16638         * ipa-pure-const.c (pure_const_names): New static var.
16639         (check_call): Handle calls not leading to return.
16640         (pure_const_read_summary): Dump info read.
16641         (propagate): Dump info about propagation process; ignore side effects
16642         of functions not leading to exit; fix handling of pure functions.
16643
16644 2010-05-30  Jan Hubicka  <jh@suse.cz>
16645
16646         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
16647         for tail call epilogues.
16648
16649 2010-05-30  Jan Hubicka  <jh@suse.cz>
16650
16651         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
16652         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
16653         dump files.
16654
16655 2010-05-29  Jan Hubicka  <jh@suse.cz>
16656
16657         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
16658         node; remove references in node we no longer keep in cgrpah but need
16659         body of.
16660
16661 2010-05-29  Jan Hubicka  <jh@suse.cz>
16662
16663         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
16664
16665 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16666
16667         PR target/44165
16668         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
16669
16670 2010-05-29  Jan Hubicka  <jh@suse.cz>
16671
16672         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
16673         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
16674         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
16675         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
16676         debug_names_replaced_by, debug_update_ssa): Likewise.
16677         * sbitmap.c (debug_sbitmap): Likewise.
16678         * genrecog.c (debug_decision, debug_decision_list): Likewise.
16679         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
16680         debug_tree_chain): Likewise.
16681         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
16682         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
16683         * optabs.c (debug_optab_libfuncs): Likewise.
16684         (verify_loop_closed_ssa): Likewise.
16685         * value-prof.c (verify_histograms): Likewise.
16686         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
16687         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
16688         * cfghooks.c (verify_flow_info): Likewise.
16689         * fold-const.c (debug_fold_checksum): Likewise.
16690         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
16691         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
16692         Likewise.
16693         * omega.c (debug_omega_problem): Likewise.
16694         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
16695         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
16696         * dominance.c (verify_dominators, debug_dominance_info,
16697         debug_dominance_tree): Likewise.
16698         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
16699         * df_regno_debug, df_ref_debug,
16700         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
16701         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
16702         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
16703         * sel-sched.c (debug_state): Likewise.
16704         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
16705         Likewise.
16706         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
16707         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
16708         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
16709         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
16710         Likewise.
16711         * c-pretty-print.c (debug_c_tree): Likewise.
16712         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
16713         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
16714         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
16715         * ebitmap.c (debug_ebitmap): Likewise.
16716         * function.c (debug_find_var_in_block_tree): Likewise.
16717         * print-rtl.c (debug_rtx): Likewise.
16718         (debug_rtx_count): Likewise.
16719         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
16720         * stor-layout.c (debug_rli): Likewise.
16721         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
16722         * tree-data-ref.c (debug_data_references,
16723         debug_data_dependence_relations, debug_data_reference,
16724         debug_data_dependence_relation, debug_rdg_vertex,
16725         debug_rdg_component, debug_rdg): Likewise.
16726         * tree-affine.c (debug_aff): Likewise.
16727         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
16728         Likewise.
16729         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
16730         * emit-rtl.c (verify_rtl_sharing): Likewise.
16731         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
16732         debug_value_expressions): Likewise.
16733         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
16734         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
16735         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
16736         * cfglayout.c (verify_insn_chain): Likewise.
16737         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
16738         debug_clast_stmt, debug_generated_program): Likewise.
16739         * ggc-page.c (debug_print_page_list): Likewise.
16740         * tree-ssa-ter.c (debug_ter): Likewise.
16741         * graphite-dependences.c (debug_pddr): Likewise.
16742         * sched-deps.c (debug_ds): Likewise.
16743         * tree-ssa.c (verify_ssa): Likewise.
16744         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
16745         debug_scattering_functions, debug_iteration_domains, debug_pdr,
16746         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
16747         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
16748         * tree-inline.c (debug_find_tree): Likewise.
16749         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
16750         debug_ppl_powerset_matrix): Likewise.
16751         * var-tracking.c (debug_dv): Likewise.
16752         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
16753         * cfgloop.c (verify_loop_structure): Likewise.
16754         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
16755         * c-common.c (verify_sequence_points): Likewise.
16756         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
16757         debug_candidates, debug_rgn_dependencies): Likewise.
16758         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
16759         * debug_constraint_graph, debug_solution_for_var,
16760         debug_sa_points_to_info): Likewise.
16761         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
16762         Likewie.
16763         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
16764         debug_loops, debug_loop, debug_loop_num): Likewise.
16765         * passes.c (debug_pass): Likewise.
16766         (dump_properties): Likewise; add cfglayout property.
16767         (debug_properties): Likewise.
16768         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
16769         * varpool.c (debug_varpool): Likewise.
16770         * regcprop.c (debug_value_data): Likewise.
16771         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
16772         debug_immediate_uses_for): Likewise.
16773
16774 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
16775
16776         PR bootstrap/44315
16777         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
16778         Filter out insn-flags.h.
16779
16780 2010-05-29  Jan Hubicka  <jh@suse.cz>
16781
16782         * cgraph.h (struct varpool_node_set_def,
16783         struct cgraph_node_set_def): Remove unused AUX pointer.
16784         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
16785         VEC_empty macro.
16786
16787 2010-05-29  Jan Hubicka  <jh@suse.cz>
16788
16789         PR middle-end/44324
16790         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
16791
16792 2010-05-29  Richard Guenther  <rguenther@suse.de>
16793
16794         * lto-streamer.c (cached_bp): New global variable.
16795         (bitpack_create): Return the cached bitpack, if available.
16796         (bitpack_delete): Clear and cache the bitpack, if appropriate.
16797         (bp_pack_value): Remove redundant asserts.
16798
16799 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
16800
16801         PR middle-end/44306
16802         * tree-if-conv.c (is_true_predicate): New.
16803         (is_predicated): Use is_true_predicate.
16804         (add_to_predicate_list): Same.  Do not use unshare_expr.
16805         (add_to_dst_predicate_list): Same.
16806
16807 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
16808
16809         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
16810         field on edges.
16811         (predicate_bbs): Same.
16812         (clean_predicate_lists): Same.
16813         (find_phi_replacement_condition): Do not AND the predicate from
16814         edge->aux.
16815
16816 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
16817
16818         PR bootstrap/44315
16819         * Makefile.in (build/gencondmd.o): Add a missing `\'.
16820
16821 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16822
16823         PR target/44261
16824         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
16825         (negdf2): Adjust expander pattern and use negdf2_slow.
16826         (negsf2): Likewise.
16827
16828 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
16829
16830         * basic-block.h (struct control_flow_graph): Move last_label_uid field
16831         up.
16832         * df.h (struct df_base_ref): Move regno field up.
16833         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
16834         * expr.h (struct separate_ops): Move location field up.
16835         * optabs.h (struct optab_d): Move libcall_basename field down.
16836         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
16837         * config/i386/i386.h (struct machine_function): Convert call_abi field
16838         into a bitfield.  Move cfa field to the end of the structure.
16839
16840 2010-05-29  Jan Hubicka  <jh@suse.cz>
16841
16842         * varpool.c (varpool_get_node): Fix lookup.
16843
16844 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
16845
16846         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
16847         RTL specific prototypes with #ifdef RTX_CODE.
16848         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
16849         * config/spu/t-spu-elf: Fix dependencies.
16850
16851         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
16852
16853 2010-05-29  Mike Stump  <mikestump@comcast.net>
16854
16855         PR bootstrap/44315
16856         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
16857         TM_H when building to avoid dependency loops.
16858
16859 2010-05-29  Jan Hubicka  <jh@suse.cz>
16860
16861         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
16862         refs and body; not the whole node for masters of materialized clones.
16863
16864 2010-05-29  Mike Stump  <mikestump@comcast.net>
16865
16866         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
16867
16868 2010-05-29  Jan Hubicka  <jh@suse.cz>
16869
16870         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
16871         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
16872         use of clone_function_name.
16873         * cgraph.h (cgraph_create_virtual_clone,
16874         cgraph_function_versioning): update prototypes.
16875         (clone_function_name): Declare.
16876         * ipa-cp.c (ipcp_insert_stage): Update call of
16877         cgraph_create_virtual_clone.
16878         * omp-low.c (create_omp_child_function_name): Use
16879         cgraph_create_virtual_clone.
16880         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
16881         (cgraph_function_versioning): Take SUFFIX argument; produce new name
16882         and make decl local.
16883
16884 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
16885
16886         * vec.h: Include statistics.h
16887         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
16888         with VEC_H.
16889
16890 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
16891
16892         * c-lex.c: Do not include c-tree.h.
16893         * c-pretty-print.c: Likewise.
16894         * c-opts.c: Likewise.
16895         * c-gimplify.c: Likewise.
16896         * c-common.c: Likewise.
16897         * c-dump.c: Likewise.  Include c-common.h.
16898
16899 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
16900
16901         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
16902         before including diagnostic-core.h.
16903         (c_cpp_error): New prototype moved from c-tree.h.
16904         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
16905         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
16906         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
16907         (c_cpp_error): Prototype moved to c-common.h.
16908         * Makefile.in: Update dependency for C_COMMON_H.
16909
16910 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
16911
16912         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
16913         * c-common.c (c_register_addr_space): Remove here.
16914         * c-decl.c (c_register_addr_space): Re-add here.
16915
16916 2010-05-28  Mike Stump  <mikestump@comcast.net>
16917
16918         * config/darwin-c.c: Remove c-tree.h include.
16919
16920 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
16921
16922         * gcc.c: Include diagnostic.h.
16923         (error_count): Remove.  All users changed to use errorcount.
16924         (programname): Remove.  All users changed to use progname.
16925         (fancy_abort, internal_error, fatal_error, error, warning, inform,
16926         fnotice): Remove.
16927         (execute): Don't include "Internal error" and bug reporting
16928         information in argument of internal_error call.
16929         (process_command): Don't increment error_count after calling
16930         perror_with_name.
16931         (input_filename): Rename to gcc_input_filename.  All users
16932         changed.
16933         (main): Call diagnostic_initialize.  Register delete_temp_files
16934         with atexit.  Use seen_error to test for errors.
16935         * gcc.h: Include diagnostic-core.h.
16936         (fatal_error, error, warning): Remove.
16937         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
16938         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
16939         (gcc.o): Update dependencies.
16940
16941 2010-05-28  Jeff Law  <law@redhat.com>
16942
16943         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
16944         functions.
16945         * ira.h (ira_bad_reload_regno): Declare
16946         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
16947
16948         * ira-color.c (update_curr_costs): Free updated hard reg costs.
16949         (ira_reassign_conflict_allocnos): Remove bogus asserts.
16950         (allocno_reload_assign): Likewise.
16951
16952 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
16953
16954         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
16955         build1_stat.
16956
16957 2010-05-28  Richard Guenther  <rguenther@suse.de>
16958
16959         PR lto/44312
16960         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
16961         Stream fixed-point constants mode.
16962         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
16963         and TYPE_PRECISION.
16964         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
16965         Stream fixed-point constants mode.
16966         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
16967         and TYPE_PRECISION.
16968
16969 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
16970
16971         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
16972         only place it was called from.
16973         (number_of_latch_executions): Do not return chrec_dont_know when the
16974         may_be_zero is a runtime condition: instead, return a COND_EXPR
16975         including the may_be_zero condition.
16976         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
16977         of nb_iterations.
16978         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
16979         COND_EXPRs.
16980
16981 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
16982
16983         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
16984         generate COND_EXPRs for degenerate_phi_result.
16985
16986 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
16987
16988         PR middle-end/44293
16989         * tree-if-conv.c (if_convertible_loop_p): Check the
16990         if-convertibility of phi nodes in non predicated BBs.
16991
16992 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
16993
16994         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
16995
16996 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
16997
16998         PR driver/15303
16999         * gcc.c (inform, warning, inform): New functions.
17000         (fatal_ice): Rename to internal_error; change cmsgid parameter to
17001         gmsgid.  All callers changed.
17002         (notice): Rename to fnotice; add parameter fp.  All callers changed.
17003         (fatal_error): Rename to fatal_signal.  All users changed.
17004         (fatal): Rename to fatal_error; change cmsgid parameter to
17005         gmsgid.  All callers changed.
17006         (process_command): Use warning instead of error for warnings.
17007         (end_going_arg): Don't use _() around argument of error.
17008         (do_spec_1): Use inform for message from %n specs.  Use warning
17009         instead of error for warnings.
17010         (main): Use inform for comparison messages.  Use warning for
17011         message about unused linker input.
17012         (error): Increment error_count.  Print "error: ".
17013         * gcc.h (fatal): Change to fatal_error.
17014         (warning): Declare.
17015         * config/darwin-driver.c (darwin_default_min_version): Use warning
17016         instead of fprintf for warnings.
17017         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
17018
17019 2010-05-28  Julian Brown  <julian@codesourcery.com>
17020
17021         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
17022         (*thumb2_addsi3_compare0_scratch): New.
17023         * config/arm/constraints.md (Pv): New.
17024         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
17025         for ARM mode only.
17026         (*addsi3_compare0_scratch): Likewise.
17027
17028 2010-05-28  Jan Hubicka  <jh@suse.cz>
17029
17030         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
17031         check.
17032         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
17033         only on local statics.
17034
17035 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
17036
17037         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
17038
17039 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17040
17041         PR bootstrap/44314
17042         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
17043         (OPTION_GLIBC): Define.
17044
17045 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
17046
17047         PR debug/41048
17048         * dwarf2out.c (double_int_type_size_in_bits): New function.
17049         (round_up_to_align): Change first argument and return value to
17050         double_int.
17051         (field_byte_offset): Work internally on double_ints.
17052
17053         PR target/43636
17054         * builtins.c (expand_movstr): Use a temporary pseudo instead
17055         of target even when target is not NULL and not const0_rtx, but
17056         fails movstr predicate.
17057         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
17058
17059 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
17060
17061         * final.c (rest_of_clean_state): Use %m in errors instead of
17062         strerror (errno).
17063         * gengtype.c (read_input_list, close_output_files): Use xstrerror
17064         instead of strerror.
17065         * toplev.c (process_options): Use %m in errors instead of strerror
17066         (errno).
17067         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
17068         (errno).
17069
17070 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
17071
17072         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
17073         (ix86_canonical_va_list_type): Make static.  Add declaration.
17074         (ix86_enum_va_list): Make static.  Reindent.
17075         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
17076         (ix86_canonical_va_list_type): Ditto.
17077         (ix86_enum_va_list): Ditto.
17078
17079 2010-05-28  Richard Guenther  <rguenther@suse.de>
17080
17081         * lto-wrapper.c (run_gcc): With -save-temps generate a
17082         user-visible ltrans filename.  Fixup ltrans unit numbering.
17083
17084 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
17085
17086         * c-common.c (c_common_nodes_and_builtins): Replace use
17087         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
17088         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
17089         to ix86_enum_va_list.
17090         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
17091         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
17092         (TARGET_ENUM_VA_LIST_P): Add hook description.
17093         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
17094         * target.h (gcc_target): Add enum_va_list hook.
17095
17096         PR bootstrap/44299
17097         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
17098         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
17099         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
17100
17101 2010-05-28  Alan Modra  <amodra@gmail.com>
17102
17103         PR target/44266
17104         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
17105         emit_library_call machinery to set up __tls_get_addr calls.
17106
17107 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17108
17109         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
17110
17111 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
17112
17113         Revert fix for PR c++/44188
17114         * c-common.c (is_typedef_decl): Revert the moving of  this
17115         definition ...
17116         * tree.c (is_typedef_decl): ... here.
17117         (typdef_variant_p): Revert the moving of this  definition
17118         here from cp/tree.c.
17119         * c-common.h (is_typedef_decl): Revert the moving of this
17120         declaration ...
17121         * tree.h (is_typedef_decl): ... here.
17122         (typedef_variant_p): Revert the moving of this  declaration here
17123         from cp/cp-tree.h
17124         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
17125         (gen_tagged_type_die): Revert the splitting out of ...
17126         (gen_type_die_with_usage): ... this function. Revert the anonymous
17127         tagged type handling.
17128         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
17129         typedefs naming anonymous tagged types.
17130
17131 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
17132
17133         * config/rs6000/rs6000-modes.def (PSImode): Delete.
17134
17135 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
17136
17137         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
17138         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
17139         throughout.
17140         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
17141         "xer" to "ca".
17142         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
17143         XER_REGS to CA_REGS throughout.
17144         * config/rs6000/rs6000.h: Same.
17145         (ADDITIONAL_REGISTER_NAMES): Add "xer".
17146         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
17147         that mode_iterator "P" is the size for arithmetic carries as well.
17148         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
17149
17150 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
17151
17152         PR bootstrap/44255
17153         * combine.c (struct rtx_subst_pair): Define unconditionally.
17154         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
17155         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
17156         Call make_compound_operation on pair->to.
17157         (propagate_for_debug): Don't call make_compound_operation here.
17158         Always use simplify_replace_fn_rtx.
17159
17160 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
17161
17162         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
17163         * config/xtensa/xtensa.c (override_options): Check
17164           TARGET_FORCE_NO_PIC and set flag_pic.
17165         * config/xtensa/xtensa.opt: Document -mforce-no-pic
17166
17167 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
17168
17169         PR bootstrap/44299
17170         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
17171         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
17172
17173 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
17174
17175         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
17176         toplev.h.
17177         * diagnostic.c: Don't include toplev.h.
17178         (progname): Define.  Moved from toplev.c.
17179         (seen_error): New function.
17180         * diagnostic.h: Include diagnostic-core.h.
17181         (diagnostic_t, emit_diagnostic): Don't declare here.
17182         * toplev.c (progname): Move to toplev.c.
17183         (emit_debug_global_declarations, compile_file, finalize,
17184         do_compile, toplev_main): Use seen_error.
17185         * toplev.h: Include diagnostic-core.h.
17186         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
17187         internal_error, warning, warning_at, error, error_n, error_at,
17188         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
17189         verbatim, fnotice, progname): Move to diagnostic-core.h.
17190         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
17191         (expand_builtin_expect): Use seen_error.
17192         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
17193         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
17194         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
17195         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
17196         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
17197         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
17198         errorcount for errors.
17199         * c-opts.c (c_common_finish): Use seen_error.
17200         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
17201         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
17202         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
17203         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
17204         (get_coverage_counts): Use seen_error.
17205         * dwarf2out.c (dwarf2out_finish): Use seen_error.
17206         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
17207         gimplify_body): Use seen_error.
17208         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
17209         * ipa-pure-const.c (gate_pure_const): Use seen_error.
17210         * ipa-reference.c (gate_reference): Use seen_error.
17211         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
17212         * lambda-code.c: Include diagnostic-core.h instead of
17213         diagnostic.h.
17214         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
17215         * lto-compress.c: Include diagnostic-core.h instead of
17216         diagnostic.h.
17217         * lto-section-in.c: Include diagnostic-core.h instead of
17218         diagnostic.h.
17219         * lto-streamer-out.c: Include diagnostic-core.h instead of
17220         diagnostic.h.
17221         * lto-streamer.c: Include diagnostic-core.h instead of
17222         diagnostic.h.
17223         (gate_lto_out): Use seen_error.
17224         * matrix-reorg.c: Include diagnostic-core.h instead of
17225         diagnostic.h.
17226         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
17227         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
17228         (gate_expand_omp, lower_omp_1): Use seen_error.
17229         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
17230         (rest_of_decl_compilation, rest_of_type_compilation,
17231         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
17232         * tree-cfg.c (label_to_block_fn): Use seen_error.
17233         * tree-inline.c (optimize_inline_calls): Use seen_error.
17234         * tree-mudflap.c (mudflap_finish_file): Use
17235         seen_error.
17236         * tree-optimize.c (gate_all_optimizations,
17237         gate_all_early_local_passes, gate_all_early_optimizations): Use
17238         seen_error.
17239         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
17240         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
17241         (varpool_remove_unreferenced_decls,
17242         varpool_assemble_pending_decls): Use seen_error.
17243         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
17244         (TOPLEV_H, DIAGNOSTIC_H): Update.
17245         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
17246         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
17247         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
17248         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
17249         coverage.o, lambda-code.o): Update dependencies.
17250
17251 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
17252
17253         PR c++/44188
17254         * c-common.c (is_typedef_decl): Move this definition ...
17255         * tree.c (is_typedef_decl): ... here.
17256         (typdef_variant_p): Move definition here from cp/tree.c.
17257         * c-common.h (is_typedef_decl): Move this declaration ...
17258         * tree.h (is_typedef_decl): ... here.
17259         (typedef_variant_p): Move declaration here from cp/cp-tree.h
17260         * dwarf2out.c (is_naming_typedef_decl): New function.
17261         (gen_tagged_type_die): Split out of ...
17262         (gen_type_die_with_usage): ... this function. When an anonymous
17263         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
17264         is emitted for the typedef.
17265         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
17266         anonymous tagged types.
17267
17268 2010-05-27  Jason Merrill  <jason@redhat.com>
17269
17270         * print-tree.c (debug_vec_tree): New fn.
17271         (print_vec_tree): New fn.
17272         * tree.h: Declare them.
17273         * gdbinit.in (pvt): New command.
17274
17275         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
17276
17277         * gdbinit.in (pdd): New command.
17278
17279 2010-05-27  Jan Hubicka  <jh@suse.cz>
17280
17281         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
17282         (update_caller_keys): Return early if there are no callers;
17283         only update fibheap when decresing the key.
17284         (update_callee_keys): Avoid recursion.
17285         (decide_inlining_of_small_functions): When badness does not match;
17286         re-insert into fibheap.
17287
17288 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
17289
17290         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
17291         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
17292         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
17293         (ALL_HOST_OBJS): Now a union of the above two.
17294         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
17295         all files in ALL_HOST_FRONTEND_OBJS.
17296         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
17297
17298         * c-common.c: Pretend to be a backend file by undefining
17299         IN_GCC_FRONTEND (still need rtl.h here).
17300
17301 2010-05-27  Jan Hubicka  <jh@suse.cz>
17302
17303         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
17304         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
17305
17306 2010-05-27  Jan Hubicka  <jh@suse.cz>
17307
17308         * sched-ebb.c: Rename struct deps to struct deps_desc.
17309         * ddg.c: Likewise.
17310         * sel-sched-ir.c: Likewise.
17311         * sched-deps.c: Likewise.
17312         * sched-int.h: Likewise.
17313         * sched-rgn.c: Likewise.
17314
17315 2010-05-27  Jon Beniston  <jon@beniston.com>
17316
17317         PR 43726
17318         * config/lm32/lm32.h: Remove definition of
17319         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
17320
17321 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
17322
17323         PR lto/44230
17324         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
17325
17326 2010-05-27  Richard Guenther  <rguenther@suse.de>
17327
17328         PR tree-optimization/44284
17329         * tree-vect-stmts.c (vectorizable_assignment): Handle
17330         sign-changing conversions as simple copy.
17331
17332 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17333
17334         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
17335         Bionic C library.
17336         (__gthread_active_p): Check for pthread_create if compiling against
17337         Bionic C library.
17338
17339 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17340
17341         Support compilation for Android platform.  Reimplement -mandroid.
17342
17343         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
17344         (*android*): Set ANDROID_DEFAULT.
17345         (arm*-*-linux*): Include linux-android.h.
17346         (arm*-*-eabi*): Don't include previous -mandroid implementation.
17347         * config/arm/eabi.h: Remove, move Android-specific parts ...
17348         * config/linux-android.h: ... here.  New file.
17349         * config/arm/eabi.opt: Rename to ...
17350         * config/linux-android.opt: ... this.
17351         (mandroid): Allow -mno-android option.  Initialize based on
17352         ANDROID_DEFAULT.
17353         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
17354         Move logic to corresponding LINUX_TARGET_* macros.
17355         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
17356         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
17357         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
17358         Android definitions.
17359         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
17360         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
17361         Document.
17362
17363 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17364
17365         Add support for Bionic C library
17366
17367         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
17368         macro.
17369         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
17370         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
17371
17372         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
17373         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
17374         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
17375         to support multiple C libraries.  Handle Bionic.
17376         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
17377         (BIONIC_DYNAMIC_LINKER64): Define.
17378         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
17379         Update.
17380         (TARGET_HAS_SINCOS): Enable for Bionic.
17381
17382         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
17383         the last option specified on command line take effect.
17384         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
17385         (mbionic): New.
17386         (mglibc, muclibc): Update.
17387
17388         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
17389         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
17390         DEFAULT_LIBC.
17391
17392         * doc/invoke.texi (-mglibc, -muclibc): Update.
17393         (-mbionic): Document.
17394
17395 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17396
17397         * c-common.h (c_register_addr_space): Add prototype.
17398         (ADDR_SPACE_KEYWORD): Remove.
17399         * c-common.c (c_register_addr_space): New function.
17400         (c_addr_space_name): Reimplement.
17401         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
17402
17403         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
17404         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
17405
17406         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
17407         Remove TARGET_ADDR_SPACE_KEYWORDS.
17408
17409 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
17410
17411         * input.c: New file.
17412         * input.h (main_input_filename): Move declaration to toplev.h.
17413         * toplev.c (input_location, line_table): Move to input.c
17414         * toplev.h (main_input_filename): Move declaration from input.h.
17415         * tree.c (expand_location): Move to input.c.
17416         * Makefile.in (OBJS-common): Add input.o.
17417         (input.o): Add dependencies.
17418
17419 2010-05-27  Richard Guenther  <rguenther@suse.de>
17420
17421         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
17422         for non-existant files.
17423         (fork_execute): Mark args_name file as deleted.
17424
17425 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
17426
17427         PR bootstrp/44287
17428         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
17429         (narrow_signed_type): Likewise.
17430
17431 2010-05-26  Jan Hubicka  <jh@suse.cz>
17432
17433         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
17434         edge only when checking is enabled; check using former_clone_of;
17435         check inline clones too.
17436         (cgraph_materialize_clone): Record former_clone_of pointer.
17437         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
17438         combining redirections; dump args_to_skip bitmap
17439         (cgraph_materialize_all_clones): Do no redirection here.
17440         * ipa-inline.c (inline_transform): Do redirection here.
17441         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
17442         cheking only).
17443
17444 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
17445
17446         * config/avr/avr-c.c: Do not include regs.h.
17447         Include cpplib.h for cpp_define and tree.h for c-common.h.
17448         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
17449         * config/avr/t-avr: Fix dependencies for avr-c.o.
17450
17451 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
17452
17453         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
17454         string instead of SYMBOL_REF rtx.
17455         * rtl.h (set_stack_check_libfunc): Move prototype from here...
17456         * libfuncs.h: ...to here.  Adjust for explow.c change.
17457
17458 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
17459
17460         * pretty-print.c: Don't include ggc.h.
17461         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
17462         (identifier_to_locale): Use them for allocation.
17463         * pretty-print.h (identifier_to_locale_alloc,
17464         identifier_to_locale_free): Declare.
17465         * toplev.c (alloc_for_identifier_to_locale): New.
17466         (general_init): Set identifier_to_locale_alloc and
17467         identifier_to_locale_free.
17468         * Makefile.in (pretty-print.o): Update dependencies.
17469
17470 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
17471
17472         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
17473         pointer types if they have different alignment or mode.
17474
17475 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
17476
17477         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
17478         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
17479         * config/sparc/sparc-protos.h (function_value): Remove declaration.
17480         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
17481         sparc_function_value_regno_p): New functions.
17482         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17483         TARGET_FUNCTION_VALUE_REGNO_P): Define.
17484         (function_value): Rename to...
17485         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
17486         argument to 'outgoing'.
17487         (function_arg_record_value, function_arg_union_value,
17488         function_arg_vector_value): Update comment.
17489
17490 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
17491
17492         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
17493         (fde_needed_for_eh_p): New predicate.
17494         (output_call_frame_info): Use it throughout to decide whether FDEs
17495         are needed for EH purpose.
17496         (dwarf2out_begin_prologue): Reorder assignments.
17497
17498 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
17499
17500         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
17501         special case loop->header.
17502         (is_predicated): New.
17503         (if_convertible_loop_p): Call it.
17504
17505 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
17506
17507         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
17508         iterator in parameter.  Do not generate code during the analysis.
17509         (tree_if_convert_cond_stmt): Removed.
17510         (tree_if_convert_stmt): Removed.
17511         (predicate_bbs): New.
17512         (if_convertible_loop_p): Call predicate_bbs.
17513         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
17514         now contains all the analysis part.
17515
17516 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
17517
17518         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
17519         statements in the analysis part.
17520         (tree_if_convert_stmt): Update comment.
17521         (remove_conditions_and_labels): New.
17522         (combine_blocks): Call remove_conditions_and_labels.
17523         (tree_if_conversion): Update comment.
17524
17525 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
17526
17527         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
17528         than 2 predecessors or more than 2 successors.
17529
17530 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
17531
17532         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
17533         of loops in which the data dependence analysis fails.
17534
17535 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
17536
17537         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
17538         CDI_POST_DOMINATORS.
17539         (tree_if_conversion): Same.
17540
17541 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
17542
17543         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
17544
17545 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
17546
17547         * tree-if-conv.c: Update copyright years.  Fix comments.
17548         Fix indentation.
17549
17550 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
17551
17552         * builtin-types.def (BT_INT128): New primitive type.
17553         (BT_UINT128): Likewise.
17554         * c-common.c (c_common_r): Add __int128 keyword.
17555         (c_common_type_for_size): Handle __int128.
17556         (c_common_type_for_mode): Likewise.
17557         (c_common_signed_or_unsigned_type): Likewise.
17558         (c_common_nodes_and_builtins): Add builtin type
17559         if target supports 128-bit integer scalar.
17560         * c-common.h (enum rid): Add RID_INT128.
17561         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
17562         if target supports 128-bit integer scalar.
17563         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
17564         (finish_declspecs): Likewise.
17565         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
17566         (c_token_starts_declspecs): Likewise.
17567         (c_parser_declspecs): Likewise.
17568         (c_parser_attributes): Likewise.
17569         (c_parser_objc_selector): Likewise.
17570         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
17571         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
17572         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
17573         * tree.c (make_or_reuse_type): Likewise.
17574         (make_unsigned_type): Likewise.
17575         (build_common_tree_nodes_2): Likewise.
17576         * tree.h (enum integer_type_kind): Add itk_int128 and
17577         itk_unsigned_int128.
17578         (int128_integer_type_node): New define.
17579         (int128_unsigned_type_node): New define.
17580         * doc/extend.texi: Add documentation about __int128 type.
17581
17582 2010-05-26  Richard Guenther  <rguenther@suse.de>
17583
17584         * tree-ssa-sccvn.c (copy_nary): Adjust.
17585         (copy_phis): Rename to ...
17586         (copy_phi): ... this.  Adjust.
17587         (copy_references): Rename to ...
17588         (copy_reference): ... this.  Adjust.
17589         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
17590         result into the valid table.
17591
17592 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
17593
17594         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
17595         insn-config.h, insn-codes.h, recog.h, and optabs.h.
17596
17597 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
17598
17599         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
17600
17601 2010-05-26  Richard Guenther  <rguenther@suse.de>
17602
17603         * opts.c (common_handle_option): Handle OPT_Ofast.
17604
17605 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
17606
17607         * diagnostic.c: Don't include opts.h.
17608         (permissive_error_option): Define.
17609         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
17610         for classify_diagnostic.  Don't use memset for
17611         classify_diagnostic.  Initialize new and recently added fields.
17612         (diagnostic_classify_diagnostic): Use context->n_opts instead of
17613         N_OPTS.
17614         (diagnostic_report_diagnostic): Pass context parameter to
17615         diagnostic_report_warnings_p.  Use option_enabled and option_name
17616         hooks from context.
17617         (emit_diagnostic): Use permissive_error_option.
17618         (permerror): Likewise.
17619         * diagnostic.h: Don't include options.h.
17620         (struct diagnostic_context): Add n_opts, opt_permissive,
17621         inhibit_warnings, warn_system_headers, option_enabled and
17622         option_name fields.  Change classify_diagnostic to a pointer.
17623         * opts-diagnostic.h: New file.
17624         * opts.c: Include opts-diagnostic.h.
17625         (common_handle_option): Set global_dc fields for -Wfatal-errors,
17626         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
17627         (option_name): New function.
17628         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
17629         (c_common_handle_option): Set global_dc->permissive for
17630         -fpermissive.
17631         * c-common.c (c_cpp_error): Save and restore
17632         global_dc->warn_system_headers, not variable warn_system_headers.
17633         * toplev.c: Include opts-diagnostic.h.
17634         (general_init): Update call to diagnostic_initialize.  Set
17635         global_dc->show_column, global_dc->option_enabled and
17636         global_dc->option_name.
17637         (process_options): Don't set global_dc fields here.
17638         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
17639         (diagnostic.o, opts.o, toplev.o): Update dependencies.
17640
17641 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
17642
17643         * config/picochip/picochip.md (movsi): Split a movsi from a
17644         const after reload.
17645
17646 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
17647
17648         * ggc-zone.c: Update copyright year.
17649         (poison_region): Mark memory for Valgrind as undefined before
17650         memset () call and inaccessible afterwards.
17651         (ggc_pch_total_size): Change type of i to int.
17652
17653 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
17654
17655         * ggc-common.c (ggc_free_overhead): Allow empty slot.
17656
17657 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
17658
17659         * ggc-common.c: Update copyright year.
17660         (ggc_rlimit_bound): Remove prototype.  Compile only if
17661         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
17662         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
17663         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
17664         (ggc_min_heapsize_heuristic): Likewise.
17665
17666 2010-05-26  Richard Guenther  <rguenther@suse.de>
17667
17668         PR rtl-optimization/44164
17669         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
17670         no-common access-path disambiguation.
17671         (indirect_ref_may_alias_decl_p): Adjust.
17672         (indirect_refs_may_alias_p): Likewise.
17673         (refs_may_alias_p_1): Likewise.
17674
17675 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
17676
17677         * c-typeck.c: Do not include expr.h.
17678
17679 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
17680
17681         * rtl.h (decl_default_tls_model): Move prototype from here...
17682         * output.h: ...to here.
17683         * c-decl.c: Do not include rtl.h.
17684         * c-pragma.c: Likewise.
17685         * c-parser.c: Likewise.
17686         * c-gimplify.c: Likewise.  And also not hard-reg-set.
17687         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
17688         FIXME note for it.  Add a FIXME note for expr.h.
17689         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
17690         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
17691         defined.
17692
17693 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
17694
17695         PR target/44199
17696         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
17697         or total_size is larger than red zone size for non-V4 ABI, emit a
17698         stack_tie resp. frame_tie insn before stack pointer restore.
17699         * config/rs6000/rs6000.md (frame_tie): New insn.
17700
17701 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
17702
17703         * function.h (struct function): Add can_throw_non_call_exceptions bit.
17704         * lto-streamer-in.c (input_function): Stream it in.
17705         * lto-streamer-out.c (output_function): Stream it out.
17706         * function.c (allocate_struct_function): Set it.
17707         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
17708         for flag_non_call_exceptions.
17709         * cfgbuild.c (control_flow_insn_p): Likewise.
17710         (make_edges): Likewise.
17711         * cfgexpand.c (expand_stack_alignment): Likewise.
17712         * combine.c (distribute_notes): Likewise.
17713         * cse.c (cse_extended_basic_block): Likewise.
17714         * except.c (insn_could_throw_p): Likewise.
17715         * gcse.c (simple_mem): Likewise.
17716         * ipa-pure-const.c (check_call): Likewise.
17717         (check_stmt ): Likewise.
17718         * lower-subreg.c (lower-subreg.c): Likewise.
17719         * optabs.c (emit_libcall_block): Likewise.
17720         (prepare_cmp_insn): Likewise.
17721         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
17722         * postreload.c (rest_of_handle_postreload): Likewise.
17723         * reload1.c (reload_as_needed): Likewise.
17724         (emit_input_reload_insns): Likewise.
17725         (emit_output_reload_insns): Likewise.
17726         (fixup_abnormal_edges): Likewise.
17727         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
17728         * store-motion.c (find_moveable_store): Likewise.
17729         * tree-eh.c (stmt_could_throw_p): Likewise.
17730         (tree_could_throw_p): Likewise.
17731         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
17732         * config/arm/arm.c (arm_expand_prologue): Likewise.
17733         (thumb1_expand_prologue): Likewise.
17734         * config/rx/rx.md (cbranchsf4): Likewise.
17735         (cmpsf): Likewise.
17736         * config/s390/s390.c (s390_emit_prologue): Likewise.
17737         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
17738         (inline_forbidden_into_p): New predicate.
17739         (expand_call_inline): Use it to forbid inlining.
17740         (tree_can_inline_p): Likewise.
17741
17742 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
17743
17744         * config/i386/i386-c.c: Do not include rtl.h.
17745         * config/i386/t-i386: Update dependencies.
17746
17747 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
17748
17749         * attribs.c: Do not include rtl.h.
17750         * Makefile.in: Update dependencies.
17751
17752 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
17753
17754         * double-int.h (double_int_and): New.
17755         * combine.c (try_combine): Clean up, use double_int_* and
17756         immed_double_int_const functions.
17757
17758 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17759
17760         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
17761         stderr to /dev/null instead of grep -q.
17762         * configure: Regenerate.
17763
17764 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
17765
17766         * Makefile.in (EXCEPT_H): Fix typo.
17767
17768 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
17769
17770         * ira-build.c (update_conflict_hard_reg_costs): New.
17771         (ira_build): Call update_conflict_hard_reg_costs.
17772
17773 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
17774
17775         PR debug/41371
17776         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
17777         ENABLE_CHECKING.
17778         (intersect_loc_chains): Walk the s2var's loc_chain together
17779         with s1node chain as long as the locations are equal, don't
17780         call find_loc_in_1pdv in that case.
17781
17782         PR debug/42801
17783         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
17784         (copy_bind_expr): ... instead of here.
17785         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
17786         if the block hasn't been remapped.
17787         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
17788         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
17789
17790 2010-05-25  Richard Guenther  <rguenther@suse.de>
17791
17792         PR middle-end/44069
17793         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
17794         out-of-bounds array accesses.
17795
17796 2010-05-25  Richard Guenther  <rguenther@suse.de>
17797
17798         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
17799         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
17800         (run_gcc): Re-organize to make cleanup easier.
17801
17802 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17803
17804         * config/s390/s390.c (optimization_options): Fix and move the
17805         flag_prefetch_loop_arrays override ...
17806         (override_options): ... here.
17807
17808 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
17809
17810         * diagnostic.c: Don't include plugin.h.
17811         (diagnostic_report_diagnostic): Don't handle plugins specially
17812         here.  Pass context to internal_error callback.
17813         * diagnostic.h (struct diagnostic_context): Add context parameter
17814         to internal_error callback.
17815         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
17816         * plugin.h (struct diagnostic_context): Declare.
17817         (warn_if_plugins, plugins_internal_error_function): Declare.
17818         * toplev.c (general_init): Set global_dc->internal_error.
17819         * Makefile.in (diagnostic.o): Update dependencies.
17820
17821 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
17822
17823         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
17824         * config/rs6000/t-darwin64: New.
17825         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
17826         build crt2.
17827
17828 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
17829
17830         PR 44203
17831         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
17832         match the original (and intended) behaviour before r159557.  This
17833         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
17834         in two ways.
17835
17836 2010-05-25  Richard Guenther  <rguenther@suse.de>
17837
17838         * doc/invoke.texi: Document -Ofast.
17839         * target.h (struct gcc_target): Add handle_ofast.
17840         * target-def.h (TARGET_HANDLE_OFAST): Add.
17841         (TARGET_INITIALIZER): Adjust.
17842         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
17843         * common.opt (Ofast): Add.
17844
17845 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
17846
17847         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
17848         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
17849
17850 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
17851
17852         PR target/43610
17853         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
17854         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
17855         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
17856         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
17857
17858 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
17859
17860         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
17861         DW_OP_minus with negated offset instead of DW_OP_plus.
17862         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
17863
17864 2010-05-25  Wei Guozhi  <carrot@google.com>
17865
17866         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
17867         tst instruction and a new alternative.
17868         * config/arm/constraints.md (Pu): New constraint.
17869
17870 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
17871
17872         * function.c (assign_stack_local_1): Initialize variable
17873         to avoid warning when bootstrapping at -O3.
17874
17875 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
17876
17877         * configure.ac (all_lang_makefiles): Remove everything related to it.
17878         * configure: Regenerate.
17879         * Makefile.in: Fix reference to ada Make-lang.in.
17880         Remove support for LANG_MAKEFILES.
17881
17882 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
17883             Sandra Loosemore  <sandra@codesourcery.com>
17884
17885         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
17886         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
17887         description.  Add arm_neon_fp16_ok.
17888         (Add Options): Add arm_neon and arm_neon_fp16.
17889
17890 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
17891
17892         * diagnostic.c: Don't include flags.h.
17893         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
17894         context parameters.  Check flags in the context passed as a parameter.
17895         (diagnostic_build_prefix): Add context parameter.  Check
17896         show_column flag in context.
17897         (diagnostic_action_after_output): Check fatal_errors flag in context.
17898         (diagnostic_report_current_module): Check show_column flag in context.
17899         (default_diagnostic_starter): Update call to
17900         diagnostic_build_prefix.
17901         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
17902         (emit_diagnostic): Pass context to permissive_error_kind.
17903         (permerror): Pass context to permissive_error_kind.
17904         * diagnostic.h (struct diagnostic_context): Add show_column,
17905         pedantic_errors, permissive and fatal_errors fields.
17906         (diagnostic_build_prefix): Update prototype.
17907         * langhooks.c
17908         * toplev.c (process_options): Set flags in global_dc from
17909         flag_show_column, flag_pedantic_errors, flag_permissive,
17910         flag_fatal_errors.
17911         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
17912         to diagnostic_build_prefix.
17913         * Makefile.in (diagnostic.o): Update dependencies.
17914
17915 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
17916
17917         * config/i386/ia32intrin.h (__crc32q): Define only if
17918         __SSE4_2__ is defined.
17919
17920 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
17921
17922         PR target/44132
17923         PR middle-end/43602
17924         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
17925         DECL_VISIBILITY_SPECIFIED.
17926         (emutls_decl): Set DECL_PRESERVE_P and copy
17927         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
17928         (emutls_finalize_control_var): New callback.
17929         (emutls_finish): Finalize emutls control variables.
17930         * toplev.c (compile_file): Move the call to emutls_finish ()
17931         before varpool_assemble_pending_decls ().
17932
17933 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
17934
17935         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
17936         added to the preprocessor condition.
17937
17938 2010-05-24  Paul Brook  <paul@codesourcery.com>
17939
17940         * gengtype-lex.l: Add HARD_REG_SET.
17941         * expr.c (expand_expr_real_1): Record writes to hard registers.
17942         * function.c (rtl_data): Add asm_clobbers.
17943         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
17944         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
17945         Use crtl->asm_clobbers.
17946
17947 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17948
17949         * doc/makefile.texi (Makefile): Mention stages 'profile'
17950         and 'feedback' for profiledbootstrap.
17951
17952 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
17953
17954         PR target/44245
17955         * config/i386/i386.c (def_builtin): Properly check
17956         OPTION_MASK_ISA_64BIT.
17957
17958 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
17959
17960         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
17961         typedefs with different but compatible types.  Allow duplicate
17962         typedefs with the same type except for pedantic non-C1X, but give
17963         warning for variably modified types.
17964         * c-typeck.c (tagged_types_tu_compatible_p,
17965         function_types_compatible_p, type_lists_compatible_p,
17966         comptypes_internal): Add parameter different_types_p; set
17967         *different_types_p for different but compatible types.  All
17968         callers changed.
17969         (comptypes_check_different_types): New.
17970         * c-tree.h (comptypes_check_different_types): Declare.
17971
17972 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
17973
17974         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
17975         * jump.c: Include basic-block.h.
17976         * profile.c: Likewise.
17977         * tree-profile.c: Likewise.
17978         * coverage.c: Likewise.
17979         * basic-block.h (optimize_function_for_size_p): Move to function.h.
17980         (optimize_function_for_speed_p): Likewise.
17981         * function.h (optimize_function_for_size_p,
17982         optimize_function_for_speed_p): Moved here from basic-block.h.
17983         * Makefile.in: Update dependencies.
17984
17985 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17986
17987         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
17988         before calling make; allow override through $MAKE.
17989         * doc/invoke.texi (Optimize Options): Document override.
17990
17991 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
17992
17993         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
17994         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
17995         (rs6000_mode_dependent_address_ptr): Make static.
17996         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
17997         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
17998         Remove.
17999
18000 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
18001
18002         PR target/43869
18003         * config/i386/i386.c: Make sure that the correct regparm is passed.
18004
18005 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
18006
18007         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
18008         * sbitmap.c: ...to here to internalize sbitmap element access.
18009         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
18010         Explain why basic-block.h is included.
18011         * function.h: Include tm.h for CUMULATIVE_ARGS.
18012         * Makefile.in: Update dependencies.
18013
18014 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
18015
18016         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
18017         New core types.
18018         * sbitmap.h (struct sbitmap_def): Do not typedef here.
18019         * sbitmap.c: Include sbitmap.h.
18020         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
18021         hard-reg-set.h.  Split everything related to regsets out from here...
18022         * regset.h: ...to here.  New file.
18023         * df.h: Include regset.h and sbitmap.h.
18024         * tree-flow.h: Likewise.
18025         * cfgloop.h: Likewise.
18026         * except.h: Do not include sbitmap.h.  Include hashtab.h.
18027         * cgraph.h: Include vec.h and function.h.
18028         * reload.h (struct insn_chain): Change types of live_throughout
18029         and dead_or_set from regset_head to bitmap_head.
18030         (compute_use_by_pseudos): Be defined also if regset.h is not included.
18031         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
18032         spilled_regs from regset_head to bitmap_head to avoid dependency
18033         in regset.h.
18034         * sel-sched-ir.h: Include regset.h.
18035         * reload.c: Include df.h before reload.h.
18036         * caller-save.c: Likewise.
18037         * reload1.c: Likewise.
18038         * ira.c: Likewise.
18039         (mark_elimination): Update type of r to bitmap, consistent with
18040         DF_LR_IN.
18041         * dominance.c: Include bitmap.h.
18042         * modulo-sched.c: Include df.h.
18043         * cfganal.c: Include bitmap.h and sbitmap.h.
18044         * cfgbuild.c: Include sbitmap.h.
18045         * lcm.c: Include sbitmap.h.
18046         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
18047         * domwalk.c: Include sbitmap.h, exclude ggc.h.
18048         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
18049         * cselib.c: Include bitmap.h.
18050         * tree-optimize.c: Include regset.h.
18051         * stmt.c: Include bitmap.h.
18052         * Makefile.in: Update dependencies.
18053
18054 2010-05-22  Jan Hubicka  <jh@suse.cz>
18055
18056         * cgraph.h (struct varpool_node): Add same_comdat_group.
18057         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
18058         pointer.
18059         (output_varpool): Update call of lto_output_varpool_node.
18060         (input_varpool): Read same_comdat_group pointer.
18061         (input_varpool_1): Fixup same_comdat_group pointer.
18062         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
18063         group is needed, all are.
18064         * varpool.c (varpool_remove_node): Remove node from same comdat group
18065         linklist too.
18066         (varpool_analyze_pending_decls): Walk same comdat groups.
18067
18068 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
18069
18070         * rtl.h (union rtunion_def): Remove rt_bit member.
18071         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
18072         * print-rtl (print_rtx): Do not print the member.
18073         * gengtype.c (adjust_field_rtx_def): Do not handle it.
18074         * gengenrtl.c (type_from_format): Likewise.
18075         (accessor_from_format): Likewise.
18076
18077 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
18078
18079         * dbgcnt.c: Include toplev.h instead of errors.h.
18080         * ira-emit.c: Don't include errors.h.
18081         * ira.c: Include toplev.h instead of errors.h.
18082         * lto-compress.c: Include toplev.h instead of errors.h.
18083         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
18084         ira.o, dbgcnt.o): Update dependencies.
18085
18086 2010-05-22  Richard Guenther  <rguenther@suse.de>
18087
18088         * gimple.c (gimple_types_compatible_p): Check type qualifications
18089         before merging pointer to complete and pointer to incomplete type.
18090         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
18091         we use our own resolution algorithm.  The gold linker plugin
18092         doesn't do the job we want it to do here.
18093
18094 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
18095
18096         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
18097         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
18098         (sparc_mode_dependent_address_p): New function.
18099
18100 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
18101
18102         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
18103
18104         * timevar.c: Do not include any core headers.
18105         (timevar_print): De-i18n-ize.
18106         (print_time): Likewise.
18107         * timevar.h (timevar_push, timevar_pop): Make inline functions.
18108
18109 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
18110
18111         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
18112         langhooks-def.h.
18113         (diagnostic_initialize): Initialize x_data not last_function.
18114         (diagnostic_report_current_function): Move to tree-diagnostic.c.
18115         (default_diagnostic_starter): Call
18116         diagnostic_report_current_module not
18117         diagnostic_report_current_function.
18118         (diagnostic_report_diagnostic): Initialize x_data not
18119         abstract_origin.
18120         (verbatim): Likewise.
18121         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
18122         x_data.
18123         (struct diagnostic_context): Change last_function to x_data.
18124         (diagnostic_auxiliary_data): Replace with
18125         diagnostic_context_auxiliary_data and
18126         diagnostic_info_auxiliary_data.
18127         (diagnostic_last_function_changed, diagnostic_set_last_function,
18128         diagnostic_report_current_function): Move to tree-diagnostic.h.
18129         (print_declaration, dump_generic_node, print_generic_stmt,
18130         print_generic_stmt_indented, print_generic_expr,
18131         print_generic_decl, debug_c_tree, dump_omp_clauses,
18132         print_call_name, debug_generic_expr, debug_generic_stmt,
18133         debug_tree_chain, default_tree_printer): Move to
18134         tree-pretty-print.h.
18135         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
18136         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
18137         gimple-pretty-print.h.
18138         * pretty-print.c: Don't include tree.h
18139         (pp_base_format): Don't handle %K here.
18140         (pp_base_tree_identifier): Move to tree-pretty-print.c.
18141         * pretty-print.h (text_info): Change abstract_origin to x_data.
18142         (pp_tree_identifier, pp_unsupported_tree,
18143         pp_base_tree_identifier): Move to tree-pretty-print.h.
18144         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
18145         tree-pretty-print.h: New files.
18146         * tree-pretty-print.c: Include tree-pretty-print.h.
18147         (percent_K_format): New.  Moved from pretty-print.c.
18148         (pp_base_tree_identifier): Move from pretty-print.c.
18149         * c-objc-common.c: Include tree-pretty-print.h.
18150         (c_tree_printer): Handle %K here.
18151         * langhooks.c: Include tree-diagnostic.h.
18152         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
18153         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
18154         (default_tree_printer): Handle %K using percent_K_format.
18155         (general_init): Use default_tree_diagnostic_starter.
18156         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
18157         (free_lang_data): Use default_tree_diagnostic_starter.
18158         * c-pretty-print.c: Include tree-pretty-print.h.
18159         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
18160         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
18161         * dwarf2out.c: Include tree-pretty-print.h.
18162         * except.c: Include tree-pretty-print.h.
18163         * gimple-pretty-print.c: Include tree-pretty-print.h and
18164         gimple-pretty-print.h.
18165         * gimplify.c: Include tree-pretty-print.h.
18166         * graphite-poly.c: Include tree-pretty-print.h and
18167         gimple-pretty-print.h.
18168         * ipa-cp.c: Include tree-pretty-print.h.
18169         * ipa-inline.c: Include gimple-pretty-print.h.
18170         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
18171         * ipa-pure-const.c: Include gimple-pretty-print.h.
18172         * ipa-struct-reorg.c: Include tree-pretty-print.h and
18173         gimple-pretty-print.h.
18174         * ipa-type-escape.c: Include tree-pretty-print.h.
18175         * print-rtl.c: Include tree-pretty-print.h.
18176         * print-tree.c: Include gimple-pretty-print.h.
18177         * sese.c: Include tree-pretty-print.h.
18178         * tree-affine.c: Include tree-pretty-print.h.
18179         * tree-browser.c: Include tree-pretty-print.h.
18180         * tree-call-cdce.c: Include gimple-pretty-print.h.
18181         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
18182         * tree-chrec.c: Include tree-pretty-print.h.
18183         * tree-data-ref.c: Include tree-pretty-print.h and
18184         gimple-pretty-print.h.
18185         * tree-dfa.c: Include tree-pretty-print.h.
18186         * tree-if-conv.c: Include tree-pretty-print.h and
18187         gimple-pretty-print.h.
18188         * tree-inline.c: Include tree-pretty-print.h.
18189         * tree-into-ssa.c: Include tree-pretty-print.h and
18190         gimple-pretty-print.h.
18191         * tree-nrv.c: Include tree-pretty-print.h.
18192         * tree-object-size.c: Include tree-pretty-print.h and
18193         gimple-pretty-print.h.
18194         * tree-outof-ssa.c: Include tree-pretty-print.h and
18195         gimple-pretty-print.h.
18196         * tree-parloops.c: Include tree-pretty-print.h and
18197         gimple-pretty-print.h.
18198         * tree-predcom.c: Include tree-pretty-print.h and
18199         gimple-pretty-print.h.
18200         * tree-scalar-evolution.c: Include tree-pretty-print.h and
18201         gimple-pretty-print.h.
18202         * tree-sra.c: Include tree-pretty-print.h.
18203         * tree-ssa-address.c: Include tree-pretty-print.h.
18204         * tree-ssa-alias.c: Include tree-pretty-print.h.
18205         * tree-ssa-ccp.c: Include tree-pretty-print.h and
18206         gimple-pretty-print.h.
18207         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
18208         * tree-ssa-copy.c: Include tree-pretty-print.h and
18209         gimple-pretty-print.h.
18210         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
18211         * tree-ssa-dce.c: Include tree-pretty-print.h and
18212         gimple-pretty-print.h.
18213         * tree-ssa-dom.c: Include tree-pretty-print.h and
18214         gimple-pretty-print.h.
18215         * tree-ssa-dse.c: Include gimple-pretty-print.h.
18216         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
18217         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
18218         * tree-ssa-live.c: Include tree-pretty-print.h and
18219         gimple-pretty-print.h.
18220         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
18221         gimple-pretty-print.h.
18222         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
18223         gimple-pretty-print.h.
18224         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
18225         gimple-pretty-print.h.
18226         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
18227         gimple-pretty-print.h.
18228         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
18229         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
18230         * tree-ssa-operands.c: Include tree-pretty-print.h and
18231         gimple-pretty-print.h.
18232         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
18233         gimple-pretty-print.h.
18234         * tree-ssa-pre.c: Include tree-pretty-print.h and
18235         gimple-pretty-print.h.
18236         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
18237         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
18238         gimple-pretty-print.h.
18239         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
18240         gimple-pretty-print.h.
18241         * tree-ssa-sink.c: Include gimple-pretty-print.h.
18242         * tree-ssa-ter.c: Include tree-pretty-print.h and
18243         gimple-pretty-print.h.
18244         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
18245         * tree-ssa.c: Include tree-pretty-print.h and
18246         gimple-pretty-print.h.
18247         * tree-stdarg.c: Include gimple-pretty-print.h.
18248         * tree-switch-conversion.c: Include gimple-pretty-print.h.
18249         * tree-tailcall.c: Include tree-pretty-print.h and
18250         gimple-pretty-print.h.
18251         * tree-vect-data-refs.c: Include tree-pretty-print.h and
18252         gimple-pretty-print.h.
18253         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
18254         gimple-pretty-print.h.
18255         * tree-vect-loop.c: Include tree-pretty-print.h and
18256         gimple-pretty-print.h.
18257         * tree-vect-patterns.c: Include gimple-pretty-print.h.
18258         * tree-vect-slp.c: Include tree-pretty-print.h and
18259         gimple-pretty-print.h.
18260         * tree-vect-stmts.c: Include tree-pretty-print.h and
18261         gimple-pretty-print.h.
18262         * tree-vectorizer.c: Include tree-pretty-print.h.
18263         * tree-vrp.c: Include tree-pretty-print.h and
18264         gimple-pretty-print.h.
18265         * value-prof.c: Include tree-pretty-print.h and
18266         gimple-pretty-print.h.
18267         * var-tracking.c: Include tree-pretty-print.h.
18268         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
18269         (tree-diagnostic.o): New dependencies.
18270         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
18271         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
18272         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
18273         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
18274         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
18275         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
18276         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
18277         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
18278         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
18279         tree-ssa-address.o, tree-ssa-loop-niter.o,
18280         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
18281         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
18282         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
18283         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
18284         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
18285         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
18286         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
18287         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
18288         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
18289         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
18290         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
18291         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
18292         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
18293         tree-switch-conversion.o, var-tracking.o, value-prof.o,
18294         cfgexpand.o, pretty-print.o): Update dependencies.
18295
18296 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
18297
18298         * tree-ssa-structalias.c: Remove tm_p.h from include.
18299
18300 2010-05-21  Jeff Law  <law@redhat.com>
18301
18302         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
18303
18304 2010-05-21  Jason Merrill  <jason@redhat.com>
18305
18306         * tree-eh.c (cleanup_is_dead_in): New.
18307         (lower_try_finally): Don't generate a dead cleanup region.
18308         (lower_cleanup): Likewise.
18309
18310 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
18311
18312         PR debug/44223
18313         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
18314         unchain each use from the cyclic next_regno_use chain first.
18315
18316 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
18317
18318         * real: Do not include gmp.h, mpfr.h, and mpc.h.
18319         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
18320         (real_value_negate, real_value_abs): New prototypes.
18321         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
18322         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
18323         new include file for interface between MPFR and REAL_VALUE_TYPE.
18324         * real.c: Include realmpfr.h.
18325         (real_arithmetic2): Remove legacy function.
18326         (real_value_negate): New.
18327         (real_value_abs): New.
18328         (mfpr_from_real, real_from_mpfr): Move from here...
18329         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
18330         * builtins.c: Include realmpfr.h.
18331         * fold-const.c: Include realmpfr.h.
18332         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
18333         (fold_negate_const): Likewise.
18334         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
18335         * toplev.c: Include realmpfr.h.
18336         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
18337         and real_value_negate.
18338         * fixed-value.c (check_real_for_fixed_mode): Likewise.
18339         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
18340         (vfp3_const_double_index): Likewise.
18341         (arm_print_operand): Likewise.
18342         * Makefile.in: Update dependencies.
18343
18344 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18345
18346         * config/s390/s390.c (override_options): Increase the default
18347         of max-completely-peel-times.
18348
18349 2010-05-21  Julian Brown  <julian@codesourcery.com>
18350             Mark Mitchell  <mark@codesourcery.com>
18351
18352         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
18353         sibling calls for Thumb-1.
18354         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
18355         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
18356         Thumb-2.
18357         (*call_insn, *call_value_insn): Don't use for Thumb-2.
18358         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
18359         for Thumb-2.
18360         (return): New expander.
18361         (*arm_return): New name for ARM return insn.
18362         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
18363
18364 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
18365
18366         * config.gcc (sparc64-*-rtems*): New target.
18367
18368 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
18369
18370         * tree.c (build_function_decl_skip_args): Fix grammar.
18371         (build_function_type_list_1): Fix typos, adjust formatting.
18372
18373 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
18374
18375         * tree.h: Include real.h and fixed-value.h as basic datatypes.
18376         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
18377         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
18378         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
18379         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
18380         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
18381         tree-pretty-print.c, tree-loop-distribution.c,
18382         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
18383         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
18384         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
18385         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
18386         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
18387         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
18388         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
18389         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
18390         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
18391         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
18392         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
18393         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
18394         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
18395         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
18396         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
18397         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
18398         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
18399         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
18400         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
18401         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
18402         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
18403         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
18404         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
18405         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
18406         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
18407         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
18408         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
18409         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
18410         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
18411         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
18412         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
18413         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
18414         config/score/score7.c, config/score/score.c, config/arm/arm.c,
18415         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
18416         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
18417         config/bfin/bfin.c: Clean up redundant includes.
18418         * Makefile.in: Update accordingly.
18419
18420 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
18421
18422         PR middle-end/44204
18423         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
18424         statement has no arguments.
18425
18426 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
18427
18428         PR/44139
18429         * varasm.c (emutls_decl): Merge attributes to new decl.
18430
18431 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
18432
18433         PR middle-end/44101
18434         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
18435         around the uniquized constructor if its type requires a conversion.
18436
18437 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
18438
18439         PR debug/44205
18440         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
18441         at -O0 goto_locus of any of the incoming edges differs from
18442         goto_locus of outgoing edge, or gimple_location of any of the
18443         labels differs.
18444
18445 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
18446
18447         * ira.c (ira_non_ordered_class_hard_regs): Define.
18448         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
18449         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
18450         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
18451         cost of unaligned hard regs when allocating multi-reg pseudos.
18452
18453 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
18454
18455         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
18456         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
18457         for TARGET_NO_FLOAT.
18458         * config/mips/mips.c (mips_file_start): Expand conditional expression
18459         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
18460         (mips_override_options): Move -mno-float override -msoft-float and
18461         -mhard-float.
18462         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
18463         Condition(TARGET_SUPPORTS_NO_FLOAT).
18464         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
18465         __mips_no_float here.
18466         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
18467         (TARGET_SUPPORTS_NO_FLOAT): Define.
18468         * config/mips/sdemtk.opt: Delete.
18469
18470 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
18471
18472         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
18473
18474 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
18475
18476         PR target/43733
18477         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
18478         * configure: Regenerate.
18479         * config.in: Regenerate.
18480         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
18481         instead of sahf only for 64bit targets.
18482
18483 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
18484
18485         PR debug/44178
18486         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
18487         setup_ref_regs for DEBUG_INSNs.
18488
18489 2010-05-20  Jan Hubicka  <jh@suse.cz>
18490
18491         PR middle-end/44197
18492         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
18493
18494 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
18495
18496         PR bootstrap/43870
18497         * df-scan.c (df_ref_compare): Stabilize sort.
18498
18499 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
18500
18501         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
18502         argument.  Don't use DW_OP_piece if offset is non-zero,
18503         put offset into second DW_OP_bit_piece argument.
18504         (dw_sra_loc_expr): Adjust callers.  For memory expressions
18505         compute offset.
18506
18507 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
18508
18509         PR target/44202
18510         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
18511         settings for 16-bit-constant "addo" alternative.
18512
18513 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
18514
18515         * config/mips/mips-dsp.md (add<DSPV:mode>3,
18516         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
18517
18518         PR target/43764
18519         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
18520         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
18521         Use it.
18522
18523 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
18524
18525         * diagnostic.c (FLOAT, FFS): Don't undefine.
18526         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
18527         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
18528         include ordering.
18529
18530 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
18531
18532         * combine.c (propagate_for_debug): Call make_compound_operation
18533         on the source value.
18534         (try_combine): When implementing a split chosen by find_split_point,
18535         either copy i2src or set it to null.  Assert that i2src is not null
18536         before substituting into CALL_INSN_FUNCTION_USAGE.
18537
18538 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
18539
18540         * double-int.h (double_int_ior): New function.
18541         * tree.h (build_int_cst_wide_type): Remove.
18542         * tree.c (build_int_cst_wide_type): Remove.
18543         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
18544         of build_int_cst_wide_type.
18545         * stor-layout.c (set_sizetype): (Ditto.).
18546         * dojump.c (do_jump): Use build_int_cstu instead of
18547         build_int_cst_wide_type.
18548
18549 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
18550
18551         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
18552         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
18553         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
18554         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
18555         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
18556         propagate the 'data' argument to copy_tree_r.
18557         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
18558         Propagate 'data' argument to walk_tree.
18559         (copy_if_shared): New function.
18560         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
18561         (unmark_visited): New function.
18562         (unshare_body): Call copy_if_shared instead of doing it manually.
18563         (unvisit_body): Call unmark_visited instead of doing it manually.
18564
18565 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
18566
18567         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
18568         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
18569         * hooks.c: Likewise.
18570         * target-def.h (TARGET_FOLD_BUILTIN): Define to
18571         hook_tree_tree_int_treep_bool_null.
18572         * target.h (struct gcc_target): Update signature of fold_builtin
18573         field.
18574         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
18575         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
18576         instead of the call expression.
18577         (fold_builtin_call_array): Pass n and argarray directly.
18578         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
18579         consing a list.
18580         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
18581         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
18582         `i' and use it in place of `arity'.
18583         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
18584         Dereference `args' directly.
18585         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
18586
18587 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18588
18589         * doc/sourcebuild.texi (Effective-Target Keywords): Document
18590         3dnow, sse3, sse2.
18591         (Directives): Document optional dg-require-effective-target
18592         selector.
18593
18594 2010-05-19  Richard Guenther  <rguenther@suse.de>
18595
18596         PR lto/44196
18597         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
18598
18599 2010-05-19  Richard Guenther  <rguenther@suse.de>
18600
18601         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
18602         * common.opt (fwhopr=): New.
18603         * opts.c (common_handle_option): Handle OPT_fwhopr.
18604         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
18605         * collect2.c (main): Match -fwhopr*.
18606         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
18607         Execute ltrans stage in parallel when jobs is bigger than 1.
18608
18609 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18610
18611         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
18612         pentiumpro on Solaris 8/x86 with Sun as.
18613         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
18614         hidden alias bug.
18615         (gcc_cv_as_ix86_quad): Check for .quad directive.
18616         * configure: Regenerate.
18617         * config.in: Regenerate.
18618         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
18619
18620 2010-05-19  Martin Jambor  <mjambor@suse.cz>
18621
18622         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
18623         also for indirect edges.  Actual printing moved...
18624         (ipa_print_node_jump_functions_for_edge): ...here.
18625         (ipa_compute_jump_functions): Renamed to
18626         ipa_compute_jump_functions_for_edge and made static.
18627         (ipa_compute_jump_functions): New function.
18628         (make_edge_direct_to_target): Check if the number of arguments on
18629         the newly direct edge is the same as the number of parametrs of
18630         the callee.
18631         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
18632         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
18633         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
18634         analysis functions unconditionally, call the new
18635         ipa_analyze_params_uses on the node instead of every edge.
18636
18637 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
18638
18639         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
18640         to tree.
18641         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
18642         also checks for a constant int vs.  non-constant but
18643         loop-invariant steps.
18644         (find_or_create_group): Change the sort algorithm to only consider
18645         steps that are constant ints.
18646         (idx_analyze_ref): Adopt code to handle a tree instead of a
18647         HOST_WIDE_INT for step.
18648         (gather_memory_references_ref): Handle tree instead of int and be
18649         prepared to see a NULL_TREE.
18650         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
18651         prefetches if the step cannot be calculated at compile time.
18652         (issue_prefetch_ref): Issue prefetches for non-constant but
18653         loop-invariant steps.
18654
18655 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
18656
18657         Revert:
18658         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
18659
18660         * tree.h (build_call_list): Remove.
18661         * tree.c (build_call_list): Remove.
18662
18663 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
18664
18665         * tree.h (build_call_list): Remove.
18666         * tree.c (build_call_list): Remove.
18667
18668 2010-05-18  Jan Hubicka  <jh@suse.cz>
18669
18670         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
18671
18672 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
18673
18674         PR rtl-optimization/43332
18675         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
18676
18677 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
18678
18679         * tree.h (build_int_cstu): Implement as static inline.
18680         * tree.c (build_int_cstu): Remove function.
18681         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
18682         sign extended.
18683
18684 2010-05-18  Richard Guenther  <rguenther@suse.de>
18685
18686         PR lto/44143
18687         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
18688         (debug): Initialize from -save-temps.
18689         (collect_execute): Print command-line when verbose.
18690         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
18691         for ltrans invocation.  Produce -dumpbase flag again.
18692         (process_args): Remove.
18693         (main): Simplify.
18694         * collect2.c (maybe_run_lto_and_relink): Only pass object
18695         files to lto-wrapper.
18696         * gcc.c (LINK_COMMAND_SPEC): Likewise.
18697
18698 2010-05-18  Jan Hubicka  <jh@suse.cz>
18699
18700         * opts.c (decode_options): Do not disable whopr at ipa_cp.
18701         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
18702
18703 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
18704
18705         PR lto/44184
18706         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
18707         in a GIMPLE_ASM.
18708         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
18709         in a GIMPLE_ASM.
18710
18711 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
18712
18713         PR debug/41371
18714         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
18715         rtx_equal_p inline.
18716
18717 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
18718
18719         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
18720         lto-macho as lto_binary_reader.
18721
18722         * darwin.c (darwin_asm_named_section): Do not add assembler comment
18723         after .section directive; just print it before the directive instead.
18724
18725 2010-05-17  Jan Hubicka  <jh@suse.cz>
18726
18727         * cgraph.c (cgraph_create_virtual_clone): Only check
18728         versionable_function_p when not in wpa and checking is enabled.
18729         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
18730         there are no more functions to materialize.
18731
18732 2010-05-17  Jan Hubicka  <jh@suse.cz>
18733
18734         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
18735         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
18736         New functions.
18737         (output_cgraph): Call output_cgraph_opt_summary.
18738         (input_cgrpah): Call input_cgraph_opt_summary.
18739         (output_cgraph_opt_summary_p, output_node_opt_summary,
18740         input_node_opt_summary, input_cgraph_opt_section): New functions.
18741         * lto-section-in.c (lto_section_name): Add cgraphopt.
18742         * tree-inline.c (tree_function_versioning): Handle parm_num.
18743         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
18744         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
18745
18746 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
18747
18748         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
18749         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
18750         the insn to prefetch ratio heuristic to loops with known trip count.
18751
18752 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
18753
18754         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
18755         (schedule_prefetches): Do not generate a prefetch if the unroll factor
18756         is far from what is required by the prefetch.
18757
18758 2010-05-17  Jan Hubicka  <jh@suse.cz>
18759
18760         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
18761         (ipcp_estimate_growth): Likewise.
18762         (ipcp_const_param_count): Likewise.
18763         (ipcp_insert_stage): Likewise.
18764         * ipa-prop.c (visit_load_for_mod_analysis): New function.
18765         (visit_store_addr_for_mod_analysis): Set used flag.
18766         (ipa_detect_param_modifications): Set used flag for SSE params;
18767         update use of walk_stmt_load_store_addr_ops.
18768         (ipa_print_node_params): Print used flag.
18769         (ipa_write_node_info): Stream used flag.
18770         (ipa_read_node_info): Likewise.
18771         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
18772         (ipa_is_param_used): New function.
18773         (lto_ipa_fixup_call_notes): Remove unused declaration.
18774
18775 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18776
18777         PR target/44074
18778         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
18779         * configure: Regenerate.
18780         * config.in: Regenerate.
18781         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
18782         !HAVE_AS_IX86_REP_LOCK_PREFIX.
18783         Don't emit whitespace.
18784         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
18785         (*rep_movsi): Likewise.
18786         (*rep_movsi_rex64): Likewise.
18787         (*rep_movqi): Likewise.
18788         (*rep_movqi_rex64): Likewise.
18789         (*rep_stosdi_rex64): Likewise.
18790         (*rep_stossi): Likewise.
18791         (*rep_stossi_rex64): Likewise.
18792         (*rep_stosqi): Likewise.
18793         (*rep_stosqi_rex64): Likewise.
18794         (*cmpstrnqi_nz_1): Use {%;} after repz.
18795         (*cmpstrnqi_nz_rex_1): Likewise.
18796         (*cmpstrnqi_1): Likewise.
18797         (*cmpstrnqi_rex_1): Likewise.
18798         (*strlenqi_1): Use {%;} after repnz.
18799         (*strlenqi_rex_1): Likewise.
18800         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
18801         (*sync_compare_and_swap<mode>): Likewise.
18802         (sync_double_compare_and_swap<mode>): Likewise.
18803         (*sync_double_compare_and_swapdi_pic): Likewise.
18804         (sync_old_add<mode>): Likewise.
18805         (sync_add<mode>): Likewise.
18806         (sync_sub<mode>): Likewise.
18807         (sync_<code><mode>): Likewise.
18808
18809 2010-05-17  Martin Jambor  <mjambor@suse.cz>
18810
18811         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
18812         otr_token and polymorphic.
18813         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
18814         (cgraph_clone_edge): Copy the above fields.
18815         * tree.c (get_binfo_at_offset): New function.
18816         * tree.h (get_binfo_at_offset): Declare.
18817         * ipa-prop.h (enum jump_func_type): Added known_type jump function
18818         type, reordered items, updated comments.
18819         (union jump_func_value): Added base_type field, reordered fields.
18820         (enum ipa_lattice_type): Moved down in the file.
18821         (struct ipa_param_descriptor): New field polymorphic.
18822         (ipa_is_param_polymorphic): New function.
18823         * ipa-prop.c: Include gimple.h and gimple-fold.h.
18824         (ipa_print_node_jump_functions): Print known type jump functions.
18825         (compute_complex_pass_through): Renamed to...
18826         (compute_complex_assign_jump_func): this.
18827         (compute_complex_ancestor_jump_func): New function.
18828         (compute_known_type_jump_func): Likewise.
18829         (compute_scalar_jump_functions): Create known type and complex ancestor
18830         jump functions.
18831         (ipa_note_param_call): New parameter polymorphic, set the corresponding
18832         flag in the call note accordingly.
18833         (ipa_analyze_call_uses): Renamed to...
18834         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
18835         variable var only in the block where it is used.
18836         (ipa_analyze_virtual_call_uses): New function.
18837         (ipa_analyze_call_uses): Likewise.
18838         (combine_known_type_and_ancestor_jfs): Likewise.
18839         (update_jump_functions_after_inlining): Implemented handling of a
18840         number of new jump function types combination.
18841         (print_edge_addition_message): Removed.
18842         (make_edge_direct_to_target): New function.
18843         (try_make_edge_direct_simple_call): Likewise.
18844         (try_make_edge_direct_virtual_call): Likewise.
18845         (update_call_notes_after_inlining): Renamed to...
18846         (update_indirect_edges_after_inlining): this.  Moved edge creation for
18847         indirect calls to try_make_edge_direct_simple_call, also calls
18848         try_make_edge_direct_virtual_call for virtual calls.
18849         (ipa_print_node_params): Changed the header message.
18850         (ipa_write_jump_function): Stream also known type jump functions.
18851         (ipa_read_jump_function): Likewise.
18852         (ipa_write_indirect_edge_info): Stream new fields in
18853         cgraph_indirect_call_info.
18854         (ipa_read_indirect_edge_info): Likewise.
18855         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
18856         GIMPLE_FOLD_H.
18857
18858 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18859
18860         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
18861
18862 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
18863
18864         * tree.h (CALL_EXPR_ARGS): Delete.
18865         (call_expr_arglist): Delete.
18866         * tree.c (call_expr_arglist): Delete.
18867         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
18868         targetm.fold_builtin.
18869         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
18870         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
18871         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
18872         arglist parameter.  Use CALL_EXPR_ARG.
18873         (picochip_expand_builtin_3op): Likewise.
18874         (picochip_expand_builtin_2opvoid): Likewise.
18875         (picochip_expand_array_get): Likewise.
18876         (picochip_expand_array_put): Likewise.
18877         (picochip_expand_array_testport): Likewise.
18878         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
18879         rather than arglist.
18880         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
18881         CALL_EXPR_ARGS.
18882         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
18883         than TREE_VALUE and TREE_CHAIN.
18884         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
18885         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
18886         the arglist.
18887
18888 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
18889
18890         PR bootstrap/42347
18891         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
18892         to have no fallthru edge.
18893
18894         PR middle-end/44102
18895         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
18896         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
18897         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
18898         add BARRIER after previous bb if needed.
18899
18900 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
18901
18902         * tree.c (build_function_type_list_1): Remove bogus assert condition.
18903
18904 2010-05-17  Alan Modra  <amodra@gmail.com>
18905
18906         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
18907         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
18908         with copy_reg rtx param.
18909         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
18910         Correct cases where code for ABI_V4 did not initialise the reg
18911         used to access frame.  Also leave frame_reg_rtx as sp for large
18912         frames that save no regs.
18913
18914 2010-05-17  Martin Jambor  <mjambor@suse.cz>
18915
18916         PR middle-end/44133
18917         * tree-sra.c (create_access_replacement): New parameter rename, mark
18918         the replaement for renaming only when it is true.
18919         (get_access_replacement): Pass true in the rename parameter of
18920         create_access_replacement.
18921         (get_unrenamed_access_replacement): New function.
18922         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
18923         replacement declaration from it.
18924
18925 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
18926
18927         * function.c (try_fit_stack_local, add_frame_space): New static
18928         functions.
18929         (assign_stack_local_1): Use them.  Look for opportunities to use
18930         space previously wasted on alignment.
18931         * function.h (struct frame_space): New.
18932         (struct rtl_data): Add FRAME_SPACE_LIST member.
18933         * reload1.c (something_was_spilled): New static variable.
18934         (alter_reg): Set it.
18935         (reload): Test it in addition to testing if the frame size changed.
18936
18937 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
18938
18939         * config/s390/s390.c: Define sane prefetch settings and activate
18940         flag_prefetch_loop_arrays on -O3.
18941         * config/s390/s390.h: Declare that read can use write prefetch.
18942
18943 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
18944
18945         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
18946         build.
18947
18948 2010-05-16  Jan Hubicka  <jh@suse.cz>
18949
18950         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
18951         function body; do not check stdarg field of struct function.
18952
18953 2010-05-16  Jan Hubicka  <jh@suse.cz>
18954
18955         * cgraph.c (dump_cgraph_node): Dump versionable flag.
18956         * cgraph.h (cgraph_local_info): Add versionable flag.
18957         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
18958         (ipcp_versionable_function_p): Use it.
18959         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
18960         versionable flag.
18961
18962 2010-05-16  Jan Hubicka  <jh@suse.cz>
18963
18964         * cgraph.c (cgraph_clone_node): Take decl argument and insert
18965         clone into hash when it is different from orig.
18966         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
18967         * cgraph.h (cgraph_clone_node): Update prototype.
18968         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
18969         (lto_cgraph_encoder_delete): Delete body map.
18970         (lto_cgraph_encoder_size): Move to header.
18971         (lto_cgraph_encoder_encode_body_p,
18972         lto_set_cgraph_encoder_encode_body): New.
18973         (lto_output_node): Do not take written_decls argument; output clone_of
18974         pointer.
18975         (add_node_to): Add include_body_argument; call
18976         lto_set_cgraph_encoder_encode_body on master of the clone.
18977         (add_references): Update use of add_node_to.
18978         (compute_ltrans_boundary): Likewise.
18979         (output_cgraph): Do not create written_decls bitmap.
18980         (input_node): Take nodes argument; stream in clone_of correctly.
18981         (input_cgraph_1): Update use of input_node.
18982         * lto-streamer-out.c (lto_output): Use encoder info to decide
18983         what bodies to output.
18984         * ipa-inline.c (cgraph_clone_inlined_nodes,
18985         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
18986         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
18987         (lto_cgraph_encoder_size): Define here.
18988         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
18989         Declare.
18990
18991 2010-05-16  Richard Guenther  <rguenther@suse.de>
18992
18993         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
18994         -fipa-type-escape.
18995         * ipa-type-escape.c (gate_type_escape_vars): Run when
18996         -fipa-struct-reorg runs.
18997         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
18998         * common.opt (fipa-type-escape): Remove.
18999
19000 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
19001
19002         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
19003         (decode_options): Likewise.
19004         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
19005
19006 2010-05-16  Jan Hubicka  <jh@suse.cz>
19007
19008         * ipa.c (function_and_variable_visibility): Also bring local all
19009         aliases.
19010
19011 2010-05-16  Richard Guenther  <rguenther@suse.de>
19012
19013         * alias.c (nonoverlapping_memrefs_p): Remove use of
19014         IPA type-escape information.
19015
19016 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
19017
19018         * c-common.c (c_common_reswords): Add _Static_assert for C.
19019         * c-parser.c (c_token_starts_declaration,
19020         c_parser_next_token_starts_declaration,
19021         c_parser_static_assert_declaration_no_semi,
19022         c_parser_static_assert_declaration): New.
19023         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
19024         Handle static assertions if static_assert_ok.
19025         (c_parser_external_declaration, c_parser_declaration_or_fndef,
19026         c_parser_compound_statement_nostart, c_parser_label,
19027         c_parser_for_statement, c_parser_objc_methodprotolist,
19028         c_parser_omp_for_loop): All callers of
19029         c_parser_declaration_or_fndef changed.
19030         (c_parser_struct_declaration): Handle static assertions.
19031         (c_parser_compound_statement_nostart): Use
19032         c_parser_next_token_starts_declaration and
19033         c_token_starts_declaration to detect start of declarations.
19034         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
19035         Likewise.
19036
19037 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
19038
19039         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
19040         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
19041         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
19042         TARGET_FUNCTION_VALUE_REGNO_P): Define.
19043         (mmix_function_outgoing_value): Rename to...
19044         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
19045         (mmix_function_value_regno_p): Make static.
19046         (mmix_libcall_value): New function.
19047         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
19048         mmix_function_value_regno_p): Remove declaration.
19049
19050 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
19051
19052         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
19053         BUILT_IN_ALLOCA if stack checking is enabled.
19054
19055 2010-05-16  Richard Guenther  <rguenther@suse.de>
19056
19057         * var-tracking.c (vars_copy_1): Inline ...
19058         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
19059         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
19060         (variable_merge_over_cur): Adjust.  Merge asserts.
19061         (variable_merge_over_src): Likewise.
19062         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
19063         (variable_post_merge_new_vals): Merge asserts.
19064         (variable_post_merge_perm_vals): Likewise.
19065         (find_mem_expr_in_1pdv): Likewise.
19066         (dataflow_set_different_value): Remove.
19067         (onepart_variable_different_p): Merge asserts.
19068         (variable_different_p): Likewise.
19069         (dataflow_set_different_1): Inline ...
19070         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
19071         (emit_notes_for_differences_1): Merge asserts.
19072
19073 2010-05-16  Richard Guenther  <rguenther@suse.de>
19074
19075         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
19076         * optabs.c (libfunc_decl_hash): Likewise.
19077         * varasm.c (emutls_decl): Likewise.
19078
19079 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
19080
19081         * c-decl.c: Don't include gimple.h.
19082         (merge_decls): Do not copy gimple_body.
19083
19084 2010-05-15  Jason Merrill  <jason@redhat.com>
19085
19086         * c.opt: Add -fnothrow-opt.
19087
19088 2010-05-15  Jan Hubicka  <jh@suse.cz>
19089
19090         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
19091         analyzed.
19092         * passes.c (ipa_write_summaries): Write all analyzed nodes.
19093
19094 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
19095
19096         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
19097         * Makefile.in: Add it.
19098         Fix all other Makefile dependencies for changes below.
19099         * tree.h: Include it instead of defining VEC primitives here.
19100         * gimple.h: Likewise.
19101         * rtl.h: Likewise.
19102         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
19103         * except.h: Include vecir.h, break dependence on tree.h.
19104
19105         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
19106         Move from here...
19107         * tree-iterator.c: ...to here.
19108         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
19109
19110         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
19111         tm_p.h.
19112         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
19113         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
19114         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
19115         tree-mudflap.h, and target.h.
19116         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
19117         predict.h, tree-inline.h, gimple.h, and langhooks.h.
19118         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
19119         Add FIXME for why gimple.h is still included (should be unnecessary
19120         since GCC 4.5 gimplification unit-at-a-time).
19121         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
19122         * c-pragma.c: Add FIXME for why function.h needs to be included just
19123         for cfun, at front-end level.
19124         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
19125         Do not include ggc.h, but include vecprim.h for VEC(char).
19126         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
19127         Explain why target.h is included.
19128         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
19129         Explain why gimple.h is included.
19130         * c-ppoutput.c: Do not include tm.h.
19131         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
19132         * c-parses.c: Explain why rtl.h is included, and that this (and only
19133         this) is also why tm.h must be included.
19134         Do not include except.h.
19135         * c-lang.c: Do not include ggc.h.
19136
19137 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
19138
19139         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
19140
19141 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
19142
19143         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
19144         unions by default if those structs and unions have no tags.  Do
19145         not condition anonymous struct and unions handling on flag_iso.
19146         Allow anonymous structs and unions for C1X.
19147         (finish_struct): Do not diagnose lack of named fields when
19148         anonymous structs and unions present for C1X.  Accept flexible
19149         array members in structure with anonymous structs or unions but no
19150         directly named fields.
19151         * doc/extend.texi (Unnamed Fields): Update.
19152
19153 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
19154
19155         * gimple.h (compare_field_offset): Rename into...
19156         (gimple_compare_field_offset): ...this.
19157         * gimple.c (compare_field_offset): Rename into...
19158         (gimple_compare_field_offset): ...this.  Compare the full access if
19159         the offset is self-referential.
19160         (gimple_types_compatible_p): Adjust for above renaming.
19161         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
19162         DECL_NONADDRESSABLE_P flag of fields before merging them.
19163
19164 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
19165
19166         * tree.h (ctor_to_list): Delete.
19167         * tree.c (ctor_to_list): Delete.
19168
19169 2010-05-15  Jan Hubicka  <jh@suse.cz>
19170
19171         * ipa-reference.c: Include toplev.h
19172         (is_proper_for_analysis): Only add to all_module_statics
19173         if it is allocated.
19174         (write_node_summary_p, stream_out_bitmap,
19175         ipa_reference_write_optimization_summary,
19176         ipa_reference_read_optimization_summary): New.
19177         (struct ipa_opt_pass_d pass_ipa_reference): Add
19178         optimization summary streaming.
19179         * lto-cgraph.c (referenced_from_this_partition_p,
19180         reachable_from_this_partition_p): New functions.
19181         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
19182         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
19183         * opts.c (decode_options): Enable ipa_reference.
19184         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
19185         * lto-streamer.h (referenced_from_this_partition_p,
19186         reachable_from_this_partition_p): Declare.
19187
19188 2010-05-15  Richard Guenther  <rguenther@suse.de>
19189
19190         PR tree-optimization/44038
19191         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
19192         taking the address of a V_C_E of a constant.
19193
19194 2010-05-14  Jan Hubicka  <jh@suse.cz>
19195
19196         * tree.h (memory_identifier_string): Remove.
19197         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
19198         (ipa_reference_global_vars_info_d): Remove statics_not_read and
19199         statics_not_written.
19200         (ipa_reference_optimization_summary_d): New structure.
19201         (ipa_reference_optimization_summary_t): New type and vector.
19202         (ipa_reference_vars_info_d): Embedd structures instead of using
19203         pointers.
19204         (reference_vars_to_consider): Remove out of GGC space.
19205         (module_statics_escape): Remove.
19206         (global_info_obstack): Rename to ...
19207         (optimization_summary_obstack): ... this one.
19208         (initialization_status_t): Remove.
19209         (memory_identifier_string): Remove.
19210         (get_reference_vars_info): Fix indenting.
19211         (set_reference_vars_info): Likewise.
19212         (get_reference_optimization_summary): New.
19213         (set_reference_optimization_summary): New.
19214         (get_global_reference_vars_info): Remove.
19215         (ipa_reference_get_read_global): Remove.
19216         (ipa_reference_get_written_global): Remove.
19217         (ipa_reference_get_not_read_global): Update.
19218         (ipa_reference_get_not_written_global): Update.
19219         (is_proper_for_analysis): Outlaw addressable.
19220         (propagate_bits): Update for new datastructures.
19221         (analyze_variable): Remove.
19222         (init_function_info): Update for new datastructures.
19223         (clean_function_local_data): Remove.
19224         (clean_function): Remove.
19225         (copy_global_bitmap): Use optimizations_summary_obstack.
19226         (duplicate_node_data): Duplicate optimization summary only.
19227         (remove_node_data): Remove optimization summary only.
19228         (generate_summary): Do not analyze variables; do not compute
19229         module_statics_escape; do not prune solutions by it.
19230         (read_write_all_from_decl): Fix typos in comments.
19231         (propagate): Doscover readonly and nonaddressable first;
19232         update for new datastructures; share global bitmaps.
19233         * ipa-reference.h (ipa_reference_get_read_global,
19234         ipa_reference_get_written_global): Remove.
19235         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
19236         * Makefile.in: Remove ipa-refereference from GT files.
19237
19238 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
19239
19240         PR debug/44112
19241         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
19242         for all SYMBOL_REF_DECLs.
19243
19244 2010-05-14  Jan Hubicka  <jh@suse.cz>
19245
19246         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
19247         (varpool_all_refs_explicit_p): New inline function.
19248         * ipa-reference.c: Update comment.
19249         (module_statics_written): Remove.
19250         (get_static_decl): Remove.
19251         (ipa_init): Do not initialize module_statics_written.
19252         (analyze_function): Likewise.
19253         (generate_summary): Likewise; do not compute module_statics_readonly
19254         and do not update variable flags.
19255         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
19256         * ipa.c: Inlucde flags.h
19257         (cgraph_local_node_p): New.
19258         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
19259         promote functions to local.
19260         (ipa_discover_readonly_nonaddressable_vars): New function.
19261         (function_and_variable_visibility): Use cgraph_local_node_p.
19262         * varpool.c (varpool_finalize_decl): Set force_output for
19263         DECL_PRESERVE_P vars.
19264
19265 2010-05-14  Jan Hubicka  <jh@suse.cz>
19266
19267         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
19268
19269 2010-05-14  Richard Guenther  <rguenther@suse.de>
19270
19271         PR tree-optimization/44119
19272         * tree-ssa-pre.c (eliminate): Properly mark replacement of
19273         a PHI node necessary.
19274
19275 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
19276
19277         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
19278
19279 2010-05-14  Jason Merrill  <jason@redhat.com>
19280
19281         PR c++/44127
19282         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
19283         (gimple_call_set_nothrow): New.
19284         * gimple.c (gimple_build_call_from_tree): Call it.
19285         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
19286
19287         PR c++/44127
19288         * gimplify.c (gimplify_seq_add_stmt): No longer static.
19289         * gimple.h: Declare it.
19290         * gimple.c (gimple_build_eh_filter): No ops.
19291
19292 2010-05-14  Jan Hubicka  <jh@suse.cz>
19293
19294         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
19295         nodes already in queue.
19296         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
19297         re-enqueueing node.
19298
19299 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
19300
19301         PR debug/44136
19302         * cfgexpand.c (expand_debug_expr): If non-memory op0
19303         has BLKmode, return NULL.
19304
19305 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
19306
19307         * config.gcc: Add support for --with-cpu option for bdver1.
19308         * config/i386/i386.h (TARGET_BDVER1): New macro.
19309         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
19310         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
19311         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
19312         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
19313         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
19314         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
19315         (processor_type): Add PROCESSOR_BDVER1.
19316         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
19317         processor_type in config/i386/i386.h.
19318         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
19319         movaps <reg, reg> instead of movapd <reg, reg> when replacing
19320         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
19321         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
19322         to emit packed xor instead of packed double/packed integer
19323         xor for SSE and AVX when moving a zero value.
19324         * config/i386/sse.md: Add check for
19325         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
19326         movapd/movdqa for SSE and AVX.
19327         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
19328         single logical operations i.e and, or and xor instead of packed double
19329         logical operations for SSE and AVX.
19330         * config/i386/i386-c.c (ix86_target_macros_internal):
19331         Add PROCESSOR_BDVER1.
19332         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
19333         (has_fma4, has_xop): New.
19334         * config/i386/i386.c (bdver1_cost): New variable.
19335         (m_BDVER1): New macro.
19336         (m_AMD_MULTIPLE): Add m_BDVER1.
19337         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
19338         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
19339         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
19340         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
19341         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
19342         x86_tune_sse_partial_reg_dependency,
19343         x86_tune_sse_unaligned_load_optimal,
19344         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
19345         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
19346         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
19347         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
19348         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
19349         Enable/disable for bdver1.
19350         (processor_target_table): Add bdver1_cost.
19351         (cpu_names): Add bdver1.
19352         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
19353          processor_alias_table.
19354         (ix86_expand_vector_move_misalign): Change.
19355         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
19356         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
19357         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
19358         of movupd/movdqu for SSE and AVX.
19359         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
19360         (ix86_tune_adjust_cost): Add code for bdver1.
19361         (standard_sse_constant_opcode): Add check for
19362         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
19363         of packed double xor for SSE and AVX.
19364
19365 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
19366
19367         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
19368         result to unsigned.
19369
19370 2010-05-14  Tristan Gingold  <gingold@adacore.com>
19371
19372         * toplev.c (default_debug_hooks): Remove this variable.
19373         (process_options): Remove assignments to default_debug_hooks.
19374
19375 2010-05-14  Martin Jambor  <mjambor@suse.cz>
19376
19377         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
19378         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
19379         * langhooks.h (struct lang_hooks_for_decls): Removed field
19380         fold_obj_type_ref.
19381         * tree.c (free_lang_data): Remove assignment to
19382         lang_hooks.fold_obj_type_ref.
19383         * tree.def (OBJ_TYPE_REF): Update comment.
19384
19385 2010-05-14  Richard Guenther  <rguenther@suse.de>
19386
19387         PR tree-optimization/44124
19388         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
19389
19390 2010-05-14  Alan Modra  <amodra@gmail.com>
19391
19392         PR target/44075
19393         * config/rs6000/rs6000.c (struct machine_function): Reorder
19394         fields for better packing.  Add lr_save_state.
19395         (rs6000_ra_ever_killed): Return lr_save_state if set.
19396         (rs6000_emit_eh_reg_restore): Set lr_save_state.
19397
19398 2010-05-13  Jan Hubicka  <jh@suse.cz>
19399
19400         * varpool.c (decide_is_variable_needed): Drop code checking
19401         TREE_SYMBOL_REFERENCED.
19402
19403 2010-05-13  Jan Hubicka  <jh@suse.cz>
19404
19405         * final.c (output_addr_const): Do not call mark_decl_referenced.
19406         * cgraphunit.c (process_function_and_variable_attributes): Use
19407         mark_needed_node dirrectly.
19408         (assemble_thunk): Do not call mark_decl_referenced.
19409
19410 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
19411
19412         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
19413
19414 2010-05-13  Jeff Law  <law@redhat.com>
19415
19416         * ira-conflicts.c (print_allocno_conflicts): New function broken out
19417         from...
19418         (print_conflicts): Call print_allocno_conflicts.
19419
19420 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
19421
19422         PR debug/44104
19423         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
19424         if it is NULL.
19425
19426 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
19427
19428         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
19429         t-mingw-w64 or t-mingw-w32 for multilib configuration.
19430         * config/i386/t-mingw-w32: New.
19431         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
19432
19433 2010-05-13  Martin Jambor  <mjambor@suse.cz>
19434
19435         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
19436         gimple-fold.c).
19437         * gimple-fold.c (get_base_binfo_for_type): New function.
19438         (gimple_get_relevant_ref_binfo): Likewise.
19439         (gimple_fold_obj_type_ref_known_binfo): Likewise.
19440         (gimple_fold_obj_type_ref): Likewise.
19441         (fold_gimple_call): Simplify condition for folding virtual calls
19442         and call gimple_fold_obj_type_ref.
19443         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
19444         (gimple_fold_obj_type_ref_known_binfo): Likewise.
19445
19446 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
19447
19448         * config/rs6000/rs6000-protos.h
19449         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
19450         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
19451         (rs6000_debug_mode_dependent_address)
19452         (rs6000_mode_dependent_address_ptr): Likewise.
19453
19454 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
19455
19456         PR debug/43983
19457         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
19458         by SRA.
19459         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
19460         * tree-sra.c (create_access_replacement): Call unshare_expr before
19461         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
19462         * dwarf2out.c: Include tree-flow.h.
19463         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
19464         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
19465         Handle DW_OP_bit_piece.
19466         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
19467         construct_piece_list, adjust_piece_list): New functions.
19468         (add_var_loc_to_decl): Handle SRA optimized variables.
19469         Adjust for var_loc_note to loc field renaming.
19470         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
19471         in VAR_LOCATION note.
19472         (new_loc_descr_op_bit_piece): New function.
19473         (dw_sra_loc_expr): New function.
19474         (dw_loc_list): Use it.  Don't handle the last range after the
19475         loop, handle it inside of the loop.  Adjust for var_loc_note
19476         to loc field renaming.
19477         (add_location_or_const_value_attribute): Only special case
19478         single entry loc lists if loc is NOTE_P.  Adjust for
19479         var_loc_note to loc field renaming.
19480         (dwarf2out_var_location): Don't set newloc->var_loc_note
19481         and newloc->next here.
19482
19483 2010-05-12  Jan Hubicka  <jh@suse.cz>
19484
19485         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
19486         flag.
19487         * cgraph.h (cgraph_only_called_directly_p,
19488         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
19489         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
19490         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
19491         (assemble
19492         * ipa.c (cgraph_remove_unreachable_nodes): Use
19493         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
19494         flags.
19495         * tree-inline.c (copy_bb): Check address_taken flag.
19496         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
19497         externally_visible flag.
19498
19499 2010-05-12  Jason Merrill  <jason@redhat.com>
19500
19501         PR bootstrap/44048
19502         PR target/44099
19503         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
19504         * sdbout.c (plain_type_1): Likewise.
19505         * dwarf2out.c (is_base_type): Likewise.
19506         (gen_type_die_with_usage): Likewise.  Generate
19507         DW_TAG_unspecified_type for any LANG_TYPE.
19508
19509 2010-05-12  Jan Hubicka  <jh@suse.cz>
19510
19511         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
19512         indrect edges too.
19513         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
19514         (cgraph_clone_edge): Update.
19515         (cgraph_node_remove_callees): Remove indirect calls too.
19516         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
19517         (cgraph_create_indirect_edge): Update prototype.
19518         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
19519         is_proper_for_analysis.
19520         (add_new_function, visited_nodes, function_insertion_hook_holder,
19521         get_local_reference_vars_info, mark_address_taken, mark_address,
19522         mark_load, mark_store, check_asm_memory_clobber, check_call,
19523         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
19524         (ipa_init): Do not initialize visited_nodes;
19525         function_insertion_hook_holder.
19526         (analyze_variable): Rewrite.
19527         (analyze_function): Rewrite.
19528         (copy_local_bitmap): Remove.
19529         (duplicate_node_dat): Do not duplicate local info.
19530         (generate_summary): Simplify to only walk cgraph.
19531         (write_node_summary_p, ipa_reference_write_summary,
19532         ipa_reference_read_summary): Remove.
19533         (propagate): Do not remove function insertion;
19534         generate summary.
19535         (pass_ipa_reference): NULLify summary handling fields.
19536         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
19537         (input_edge): Input ecf_flags.
19538         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
19539         (update_indirect_edges_after_inlining): Ignore edges with unknown
19540         param.
19541
19542 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
19543
19544         * implicit-zee.c: New file.
19545         * tree-pass.h (pass_implicit_zee): Declare.
19546         * passes.c (init_optimization_passes): Add zee pass.
19547         * common.opt (fzee): New flag.
19548         * timevar.def (TV_ZEE): Define.
19549         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
19550         and beyond.
19551         * Makefile.in (implicit-zee.o): Add new build file.
19552
19553 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
19554             Nathan Froyd  <froydnj@codesourcery.com>
19555
19556         * c-common.c (sync_resolve_params): Remove write-only variable.
19557
19558 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
19559
19560         * target.h (struct gcc_target): Add mode_dependent_address_p field.
19561         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
19562         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
19563         * targhooks.c (default_mode_dependent_address_p): New function.
19564         * targhooks.h (default_mode_dependent_address_p): Declare function.
19565         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
19566         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
19567         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
19568         target hook. Change return type to bool.
19569         * recog.h (mode_dependent_address_p): Change return type to bool.
19570
19571 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
19572             Nathan Froyd  <froydnj@codesourcery.com>
19573
19574         * tree-mudflap.c (build_function_type_0, build_function_type_1,
19575         build_function_type_2, build_function_type_3): Remove.
19576         (mudflap_init): Use build_function_type_list.
19577
19578 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
19579             Nathan Froyd  <froydnj@codesourcery.com>
19580
19581         * coverage.c (build_fn_info_value): Call build_constructor instead of
19582         build_constructor_from_list.
19583         (build_ctr_info_value): Likewise.
19584         (build_gcov_info): Likewise.
19585
19586 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
19587
19588         * tree.c (build_constructor): Compute TREE_CONSTANT for the
19589         resultant constructor.
19590         (build_constructor_single): Don't set TREE_CONSTANT.
19591         (build_constructor_from_list): Don't compute TREE_CONSTANT.
19592
19593 2010-05-12  Jan Hubicka  <jh@suse.cz>
19594
19595         * cgraph.h (struct varpool_node): Add aux.
19596         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
19597         * varpool.c (varpool_remove_node): Do not remove initializer.
19598         (varpool_reset_queue): Export.
19599         (varpool_finalize_decl): Volatile vars are forced to be output.
19600         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
19601         replaced decl.
19602         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
19603         process_references, varpool_can_remove_if_no_refs): New functions.
19604         (cgraph_remove_unreachable_nodes): Handle variables too.
19605
19606 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
19607
19608         PR target/44088
19609         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
19610
19611 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
19612
19613         PR middle-end/44085
19614         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
19615         change value of ORT_TASK.
19616         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
19617         (omp_notice_threadprivate_variable): New function.
19618         (omp_notice_variable): Call it for threadprivate variables.
19619         If enclosing ctx is a task, print enclosing task rather than
19620         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
19621         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
19622         if task has untied clause.
19623
19624         PR debug/42278
19625         * dwarf2out.c (base_type_die): Don't add name attribute here.
19626         (modified_type_die): Instead of sizetype use
19627         its underlying original type.  If a DW_TAG_base_type doesn't
19628         have name added, add __unknown__.
19629         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
19630         always call force_type_die instead.
19631
19632 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
19633
19634         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
19635         for __stack_chk_guard.
19636
19637 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
19638
19639         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
19640         don't call start_source_file debug hook here...
19641         (finish_options): ... but here, after outputting predefined and
19642         command line defines and undefs.
19643
19644         PR middle-end/44071
19645         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
19646         no fallthru edge.
19647         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
19648         optimizing away empty bb with no successors, move over its
19649         footer chain to fallthru predecessor.
19650         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
19651         (rtl_split_edge): For asm goto call patch_jump_insn even if
19652         splitting fallthru edge.
19653
19654         PR c++/44059
19655         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
19656         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
19657         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
19658         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
19659         on DW.ref.* decls.
19660
19661         PR c++/44062
19662         * c-parser.c (c_parser_expression): Mark LHS of a comma
19663         expression as read if it is a decl, handled component or
19664         COMPOUND_EXPR with that on the RHS.
19665         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
19666         if it is a decl or handled component.
19667
19668 2010-05-11  Jan Hubicka  <jh@suse.cz>
19669
19670         * lto-symtab.c (lto_symtab_free): New function.
19671         * lto-streamer.h (lto_symtab_free): Declare.
19672
19673 2010-05-11  Jan Hubicka  <jh@suse.cz>
19674
19675         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
19676         that if function is needed it is reachable.
19677         (lto_output_node): See if it the function is reachable or referenced.
19678         (output_cgraph): Update call of lto_output_node.
19679         * lto-streamer.h (reachable_from_other_partition_p): Declare.
19680
19681 2010-05-11  Jan Hubicka  <jh@suse.cz>
19682
19683         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
19684         Mark as used.
19685
19686 2010-05-11  Jan Hubicka  <jh@suse.cz>
19687
19688         PR tree-optimize/44063
19689         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
19690         queue.
19691         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
19692         limits.
19693         (estimate_function_body_sizes): Compute sizes even when disregarding.
19694
19695 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
19696
19697         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
19698
19699 2010-05-11  Jan Hubicka  <jh@suse.cz>
19700
19701         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
19702         into every boundary.
19703
19704 2010-05-11  Jan Hubicka  <jh@suse.cz>
19705
19706         * matrix-reorg.c (matrix_reorg): Rebuild edges.
19707
19708 2010-05-11  Jan Hubicka  <jh@suse.cz>
19709
19710         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
19711         lto_streamer_cache_delete): Put nodes into heap.
19712         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
19713         heap.
19714
19715 2010-05-11  Jan Hubicka  <jh@suse.cz>
19716
19717         * cgraphbuild.c (cgraph_rebuild_references): New.
19718         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
19719         out extern inlines.
19720         * cgraph.h (cgraph_rebuild_references): Declare.
19721         * tree-inline.c (tree_function_versioning): Use it.
19722         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
19723
19724 2010-05-11  Jan Hubicka  <jh@suse.cz>
19725
19726         * cgraph.c: Include ipa-utils.h
19727         (cgraph_create_virtual_clone): Update references.
19728         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
19729
19730 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
19731
19732         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
19733         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
19734         cache size.
19735
19736 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
19737
19738         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
19739
19740 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
19741
19742         * gcc.c (execute): For -### don't quote arguments that
19743         contain just alphanumerics and _/-. characters.
19744         * doc/invoke.texi: Document that change for -###.
19745
19746         PR debug/44023
19747         * df-problems.c (struct dead_debug): Add to_rescan field.
19748         (dead_debug_init): Clear to_rescan field.
19749         (dead_debug_finish): Rescan all debug insns in to_rescan
19750         bitmap and free the bitmap.
19751         (dead_debug_insert_before): Instead of rescanning debug insns
19752         immediately queue their rescanning until dead_debug_finish.
19753         (df_note_bb_compute): After dead_debug_add do continue instead
19754         of break.
19755
19756 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
19757
19758         PR debug/44028
19759         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
19760         clear also INSN_REG_USE_LIST.
19761
19762 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19763
19764         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
19765
19766 2010-05-10  Jan Hubicka  <jh@suse.cz>
19767
19768         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
19769         commited change.
19770
19771 2010-05-10  Jan Hubicka  <jh@suse.cz>
19772
19773         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
19774         Allocate encoders.
19775         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
19776         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
19777         (lto_streamer_cache_create): Init alloc pool.
19778         (lto_streamer_cache_delete): Free alloc pool.
19779         * lto-streamer.h: Include alloc pool.
19780         (lto_streamer_cache_d): Use alloc pool.
19781         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
19782
19783 2010-05-10  Jan Hubicka  <jh@suse.cz>
19784
19785         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
19786         * cgraphbuild.c: Include except.h
19787         (record_type_list, record_eh_tables): New function.
19788         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
19789
19790 2010-05-10  Jan Hubicka  <jh@suse.cz>
19791
19792         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
19793         __frame_dummy_init_array_entry, force_to_data): Attribute as used
19794         rather than unused.
19795
19796 2010-05-10  Michael Matz  <matz@suse.de>
19797
19798         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
19799         (can_reassociate_p): Use FLOAT_TYPE_P.
19800         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
19801         (vect_force_simple_reduction): ... this.
19802         * tree-parloops.c (gather_scalar_reductions): Use
19803         vect_force_simple_reduction.
19804         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
19805         vect_is_simple_reduction, add modify argument, if true rewrite
19806         "a-b" into "a+(-b)".
19807         (vect_is_simple_reduction, vect_force_simple_reduction): New
19808         functions.
19809         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
19810
19811 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
19812             Vladimir Makarov  <vmakarov@redhat.com>
19813
19814         PR rtl-optimization/44012
19815         * ira-build.c (remove_unnecessary_allocnos): Nullify
19816         regno_allocno_map of the removed allocno.
19817
19818 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19819
19820         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
19821         to /dev/null.
19822         * configure: Regenerate.
19823
19824 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19825
19826         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
19827         unused.
19828         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
19829         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
19830         support in Sun ld.
19831         * configure: Regenerate.
19832
19833 2010-05-10  Richard Guenther  <rguenther@suse.de>
19834
19835         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
19836         marked if the entry identifier is marked.
19837
19838 2010-05-10  Richard Guenther  <rguenther@suse.de>
19839
19840         * c-common.c (struct c_common_attributes): Add fnspec attribute.
19841         (handle_fnspec_attribute): New function.
19842         * gimple.h (gimple_call_return_flags): Declare.
19843         (gimple_call_arg_flags): Likewise.
19844         * gimple.c (gimple_call_arg_flags): New function.
19845         (gimple_call_return_flags): Likewise.
19846         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
19847         New argument flags.
19848         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
19849         return value flags.
19850         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
19851         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
19852         main work to ...
19853         (make_heapvar_for): ... this new function.
19854         (handle_rhs_call): Handle fnspec attribute argument specifiers.
19855         (handle_lhs_call): Likewise.
19856         (find_func_aliases): Adjust.
19857
19858 2010-05-10  Richard Guenther  <rguenther@suse.de>
19859
19860         PR tree-optimization/44050
19861         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
19862
19863 2010-05-10  Wei Guozhi  <carrot@google.com>
19864
19865         PR target/42879
19866         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
19867
19868 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
19869
19870         PR c/10676
19871         * c-typeck.c (lookup_field): Take a type directly.  Update
19872         recursive calls.
19873         (build_component_ref): Update call to lookup_field.
19874         (set_init_label): Use lookup_field to find initialized field.
19875         Handle returned list of fields like a sequence of designators.
19876
19877 2010-05-09  Richard Guenther  <rguenther@suse.de>
19878
19879         PR middle-end/44024
19880         * fold-const.c (tree_single_nonzero_warnv_p): Properly
19881         handle &FUNCTION_DECL.
19882
19883 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
19884
19885         PR c/4784
19886         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
19887         structures and unions recursively.
19888         (detect_field_duplicates): Move duplicate detection with a hash to
19889         detect_field_duplicates_hash.  Always use a hash if anonymous
19890         structures or unions are present.
19891         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
19892         give errors.
19893
19894 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
19895
19896         PR target/44046
19897         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
19898         detect Atom, Core 2 and Core i7.
19899
19900 2010-05-09  Richard Guenther  <rguenther@suse.de>
19901
19902         * gcc.c (store_arg): Handle temporary file deletion for
19903         joined arguments.
19904
19905 2010-05-09  Richard Guenther  <rguenther@suse.de>
19906
19907         PR middle-end/44043
19908         * ipa-inline.c (estimate_function_body_sizes): Return after
19909         disregarding inline limits.
19910
19911 2010-05-09  Richard Guenther  <rguenther@suse.de>
19912
19913         * gcc.c (store_arg): Revert last change.
19914
19915 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
19916
19917         PR middle-end/28685
19918         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
19919         (optimize_ops_list): Call it.
19920
19921 2010-05-08  Richard Guenther  <rguenther@suse.de>
19922
19923         PR tree-optimization/44030
19924         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
19925         NECESSARY flag if we propagate from a inserted expression.
19926
19927 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
19928
19929         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
19930         domain types as equal if they are both PLACEHOLDER_EXPRs.
19931
19932 2010-05-08  Richard Guenther  <rguenther@suse.de>
19933
19934         * lto-wrapper.c (run_gcc): Remove linker output from
19935         command line for LTRANS invocation.
19936
19937 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
19938
19939         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
19940         lto-macho as lto_binary_reader.
19941         * target.h (struct gcc_target): New hooks lto_start and lto_end.
19942         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
19943         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
19944         in lto_start and lto_end calls.
19945         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
19946         magic numbers.
19947         (scan_prog_file): Update is_elf_or_coff call.
19948         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
19949
19950         * collect2.c (main): Fix enum comparison.
19951
19952         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
19953         Add prototypes.
19954         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
19955         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
19956         and TARGET_ASM_LTO_END.
19957         * darwin.c: Include obstack.h and lto-streamer.h.
19958         (lto_section_names_offset, lto_section_names_obstack,
19959         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
19960         global variables.
19961         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
19962         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
19963         to a temporary file.
19964         (darwin_asm_lto_end): New function.  Restore asm_out_file.
19965         (darwin_asm_named_section): For LTO sections, replace the name with
19966         the offset of the section name in a string table, and build this
19967         table.
19968         (darwin_file_start): Initialize global vars for LTO support.
19969         (darwin_file_end): If output to asm_out_file was redirected, append it
19970         to the proper asm_out_file here.  Add the section names section.
19971
19972 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
19973
19974         * c-pragma.c (pending_weak_d, pending_weak): New.
19975         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
19976         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
19977         handle_pragma_weak): Update the uses of pending_weaks.
19978
19979 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19980
19981         PR documentation/44016
19982         * doc/standards.texi (Standards): Link to unversioned
19983         cxx0x_status.html page.
19984
19985 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
19986
19987         PR target/43708
19988         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
19989         in addition to TREE_USED, to avoid "set but unused" warnings.
19990
19991 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
19992
19993         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
19994         (is_loop_prefetching_profitable): Do not insert prefetches
19995         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
19996         times the prefetch ahead distance.
19997
19998 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
19999
20000         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
20001         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
20002         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
20003         the unroll_factor.
20004
20005 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
20006
20007         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
20008         a diagnostic info when the insn-to-mem ratio is too small.
20009
20010 2010-05-07  Richard Guenther  <rguenther@suse.de>
20011
20012         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
20013         the linker plugin.
20014         (store_arg): Queue temp_filename for deletion instead of
20015         the whole argument.
20016
20017 2010-05-07  Richard Guenther  <rguenther@suse.de>
20018
20019         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
20020         (run_gcc): Handle LTRANS phase invocation.
20021         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
20022
20023 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
20024
20025         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
20026         this is also meaningful on PARM_DECLs and RESULT_DECLs.
20027
20028 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20029
20030         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
20031
20032 2010-05-07  Richard Guenther  <rguenther@suse.de>
20033
20034         PR tree-optimization/44020
20035         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
20036         code when PRE is not yet initialized.
20037
20038 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20039
20040         * config/mips/dbxmdebug.h: Remove.
20041         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
20042
20043 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
20044
20045         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
20046         with null pointer and also warn about ordered comparison of zero with
20047         pointer if -Wextra.
20048
20049 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
20050
20051         * graphite-blocking.c
20052         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
20053         * graphite-clast-to-gimple.c
20054         (clast_to_gcc_expression): Same.
20055         (precision_for_value): Same.
20056         (precision_for_interval): Same.
20057         (gcc_type_for_interval): Same.
20058         (graphite_create_new_guard): Same.
20059         (compute_bounds_for_level): Same.
20060         (graphite_create_new_loop_guard): Same.
20061         * graphite-interchange.c
20062         (build_linearized_memory_access): Same.
20063         (pdr_stride_in_loop): Same.
20064         (memory_strides_in_loop_1): Same.
20065         (memory_strides_in_loop): Same.
20066         (extend_scattering): Same.
20067         (psct_scattering_dim_for_loop_depth): Same.
20068         (pbb_number_of_iterations): Same.
20069         * graphite-poly.h
20070         (debug_iteration_domains): Same.
20071         * graphite-ppl.c
20072         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
20073         (ppl_set_inhomogeneous_gmp): Same.
20074         (ppl_strip_loop): Same.
20075         (ppl_lexico_compare_linear_expressions): Same.
20076         (ppl_read_polyhedron_matrix): Same.
20077         (ppl_max_for_le_pointset): Same.
20078         * graphite-ppl.h
20079         (ppl_read_polyhedron_matrix): Same.
20080         (tree_int_to_gmp): Same.
20081         (gmp_cst_to_tree): Same.
20082         (ppl_set_inhomogeneous): Same.
20083         (ppl_set_inhomogeneous_tree): Same.
20084         (ppl_set_coef): Same.
20085         (ppl_set_coef_tree): Same.
20086         * graphite-sese-to-poly.c
20087         (build_pbb_scattering_polyhedrons): Same.
20088         (build_scop_scattering): Same.
20089         (scan_tree_for_params_right_scev): Same.
20090         (scan_tree_for_params): Same.
20091         (find_params_in_bb): Same.
20092         (find_scop_parameters): Same.
20093         (add_upper_bounds_from_estimated_nit): Same.
20094         (build_loop_iteration_domains): Same.
20095         (add_condition_to_domain): Same.
20096         (pdr_add_memory_accesses): Same.
20097
20098 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
20099
20100         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
20101         CLooG's value_* macros to their respective mpz_* counterparts.
20102         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
20103         (graphite_create_new_loop_guard): Same.
20104         * graphite-interchange.c (build_linearized_memory_access): Same.
20105         (pdr_stride_in_loop): Same.
20106         (memory_strides_in_loop_1): Same.
20107         (1st_interchange_profitable_p): Same.
20108         * graphite-poly.c (extend_scattering): Same.
20109         (psct_scattering_dim_for_loop_depth): Same.
20110         (pbb_number_of_iterations): Same.
20111         (pbb_number_of_iterations_at_time): Same.
20112         * graphite-poly.h (new_1st_loop): Same.
20113         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
20114         (oppose_constraint): Same.
20115         (insert_constraint_into_matrix): Same.
20116         (ppl_set_inhomogeneous_gmp): Same.
20117         (ppl_set_coef_gmp): Same.
20118         (ppl_strip_loop): Same.
20119         (ppl_lexico_compare_linear_expressions): Same.
20120         (ppl_max_for_le_pointset): Same.
20121         (ppl_min_for_le_pointset): Same.
20122         (ppl_build_realtion): Same.
20123         * graphite-ppl.h (gmp_cst_to_tree): Same.
20124         (ppl_set_inhomogeneous): Same.
20125         (ppl_set_inhomogeneous_tree): Same.
20126         (ppl_set_coef): Same.
20127         (ppl_set_coef_tree): Same.
20128         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
20129         (build_scop_scattering): Same.
20130         (add_value_to_dim): Same.
20131         (scan_tree_for_params_right_scev): Same.
20132         (scan_tree_for_params_int): Same.
20133         (scan_tree_for_params): Same.
20134         (find_params_in_bb): Same.
20135         (find_scop_parameters): Same.
20136         (add_upper_bounds_from_estimated_nit): Same.
20137         (build_loop_iteration_domains): Same.
20138         (create_linear_expr_from_tree): Same.
20139         (add_condition_to_domain): Same.
20140         (pdr_add_memory_accesses): Same.
20141
20142 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
20143             Jason Merrill  <jason@redhat.com>
20144
20145         * c-common.c (c_common_reswords): Add nullptr.
20146         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
20147         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
20148         (gen_type_die_with_usage): Likewise.
20149         * dbxout.c (dbxout_type): Likewise.
20150         * sdbout.c (plain_type_1): Likewise.
20151
20152 2010-05-06  Jason Merrill  <jason@redhat.com>
20153
20154         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
20155         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
20156         ret appropriately.
20157         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
20158
20159         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
20160         stripping WITH_SIZE_EXPR.
20161         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
20162         change.
20163
20164 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20165
20166         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
20167         list of obsolete configurations.
20168         Disabled check for obsolete configurations.
20169         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
20170         Removed support for previous versions.
20171         * config/mips/iris.h: Removed.
20172         * config/mips/iris5.h: Removed.
20173         * config/mips/iris6.h: Merged old iris.h contents.
20174         (TARGET_IRIX): Removed.
20175         (DRIVER_SELF_SPECS): Removed mabi=32.
20176         (IDENT_ASM_OP): Removed undef.
20177         (STARTFILE_SPEC): Removed mabi=32.
20178         (ENDFILE_SPEC): Likewise.
20179         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
20180         (MACHINE_TYPE): Update for IRIX 6.5.
20181         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
20182         TARGET_IRIX by TARGET_IRIX6.
20183         (mips_file_start): Likewise.
20184         (mips_output_external): Remove IRIX 5/6 O32 support.
20185         (mips_output_function_prologue): Likewise.
20186         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
20187         TARGET_IRIX6.
20188         (TARGET_CPU_CPP_BUILTINS): Likewise.
20189         (TARGET_IRIX): Removed.
20190         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
20191         (MULTILIB_DIRNAMES): Removed 32.
20192         (MULTILIB_OSDIRNAMES): Removed ../lib.
20193         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
20194         (Specific, mips-sgi-irix5): Document removal.
20195         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
20196         Remove references to older IRIX 6 releases and the O32 ABI.
20197
20198 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
20199
20200         PR bootstrap/43994
20201         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
20202         instead of DF_REF_REAL_REG.
20203
20204 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
20205
20206         PR target/43888
20207         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
20208         handling to still return true for x64 targets.
20209
20210 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
20211
20212         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
20213
20214 2010-05-06  Jan Hubicka  <jh@suse.cz>
20215
20216         PR tree-optimization/43791
20217         * ipa-inline.c (update_caller_keys): Remove bogus
20218         disregard_inline_limits check.
20219
20220 2010-05-06  Michael Matz  <matz@suse.de>
20221
20222         PR tree-optimization/43984
20223         * tree-ssa-pre.c (inserted_phi_names): Remove.
20224         (inserted_exprs): Change to bitmap.
20225         (create_expression_by_pieces): Set bits, don't append to vector.
20226         (insert_into_preds_of_block): Don't handle inserted_phi_names.
20227         (eliminate): Don't look at inserted_phi_names, remove deleted
20228         insns from inserted_exprs.
20229         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
20230         (init_pre, fini_pre): Allocate and free bitmaps.
20231         (execute_pre): Insert insns on edges before elimination.
20232
20233 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
20234
20235         * tree.c (initializer_zerop): Handle STRING_CST.
20236
20237 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20238
20239         PR 40989
20240         * doc/invoke.texi (Wimplicit): Document as C only.
20241         * opts.c (common_handle_option): Add argument kind.
20242         (handle_option): Rename as read_cmdline_option. Factor out code to...
20243         (handle_option): ... here. New.
20244         (handle_options): Rename as read_cmdline_options.
20245         (decode_options): Update call.
20246         (set_option): Use option index instead of option pointer. Classify
20247         diagnostics correctly.
20248         (enable_warning_as_error): Call handle_option.
20249         * opts.h (set_option): Update declaration.
20250         (handle_option): Declare.
20251         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
20252         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
20253         * c-opts.c (set_Wimplicit): Delete.
20254         (c_family_lang_mask): New static constant.
20255         (c_common_handle_option): Add argument kind. Use handle_option
20256         instead of set_Wimplicit.
20257         (c_common_post_options): warn_implicit and warn_implicit_int
20258         are disabled by default.
20259         * c-common.c (warn_implicit): Do not define here.
20260         * c-common.h (warn_implicit): Do not declare here.
20261         (c_common_handle_option): Update declaration.
20262         * lto-opts.c (lto_reissue_options): Update call to set_option.
20263
20264 2010-05-06  Richard Guenther  <rguenther@suse.de>
20265
20266         PR tree-optimization/43571
20267         * domwalk.c (walk_dominator_tree): Walk the dominator
20268         sons in more optimal order.
20269
20270 2010-05-06  Richard Guenther  <rguenther@suse.de>
20271
20272         PR tree-optimization/43934
20273         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
20274         (stmt_cost): Likewise.
20275         (extract_true_false_args_from_phi): New helper.
20276         (determine_max_movement): For PHI nodes verify we can hoist them
20277         and compute their cost.
20278         (determine_invariantness_stmt): Handle PHI nodes.
20279         (move_computations_stmt): Likewise.  Hoist PHI nodes in
20280         if-converted form using COND_EXPRs.
20281         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
20282         (tree_ssa_lim): Likewise.
20283         * tree-flow.h (tree_ssa_lim): Adjust prototype.
20284         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
20285
20286 2010-05-06  Richard Guenther  <rguenther@suse.de>
20287
20288         PR tree-optimization/43987
20289         * tree-ssa-structalias.c (could_have_pointers): For possibly
20290         address-taken variables force pointers to be recorded.
20291         (create_variable_info_for_1): Likewise.
20292         (push_fields_onto_fieldstack): Pass in wheter all fields
20293         must have pointers.
20294         (find_func_aliases): Query types instead of vars whether
20295         they contain pointers where appropriate.
20296
20297 2010-05-06  Jan Hubicka  <jh@suse.cz>
20298
20299         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
20300         (record_reference, mark_address, mark_load, mark_store): Record
20301         references.
20302         (record_references_in_initializer): Update call of record_references.
20303         (rebuild_cgraph_edges): Remove all references before rebuiding.
20304         * cgraph.c (cgraph_create_node): Clear ref list.
20305         (cgraph_remove_node): Remove references.
20306         (dump_cgraph_node): Dump references.
20307         (cgraph_clone_node): Clone references.
20308         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
20309         (struct cgraph_node, varpool_node): Add ref_lst.
20310         * ipa-ref.c: New file.
20311         * ipa-ref.h: New file.
20312         * ipa-ref-inline.h: New file.
20313         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
20314         (referenced_from_other_partition_p): New function.
20315         (lto_output_varpool_node): Take set arugment; call
20316         referenced_from_other_partition.
20317         (lto_output_ref): New.
20318         (add_references): New.
20319         (output_refs): New.
20320         (output_cgraph): Compute boundary based on references; output refs.
20321         (output_varpool): Accept cgraph_node_set argument.
20322         (input_ref): New.
20323         (input_refs): New.
20324         (input_cgraph): Call input_refs.
20325         * lto-section-in.c (lto_section_name): Add refs.
20326         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
20327         (ipa-ref.o): New file.
20328         * varpool.c (varpool_node): Clear ipa ref list.
20329         (varpool_remove_node): Remove references.
20330         (dump_varpool_node): Dump references.
20331         (varpool_assemble_decl): Only compile finalized ones.
20332         (varpool_extra_name_alias): Initialize ref list.
20333         * lto-streamer.c (lto-get_section_name): Add .refs section.
20334         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
20335         (referenced_from_other_partition_p): Declared.
20336
20337 2010-05-06  Ira Rosen  <irar@il.ibm.com>
20338
20339         PR tree-optimization/43901
20340         * tree-vect-stmts.c (vectorizable_call): Assert that vector
20341         type is not NULL if it's transformation phase, and return
20342         FALSE if it's analysis.
20343         (vectorizable_conversion, vectorizable_operation,
20344         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
20345
20346 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
20347
20348         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
20349         Delete.
20350         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
20351         New define.
20352         * config/mips/mips-protos.h
20353         (mips_small_register_classes_for_mode_p): Delete prototype.
20354
20355 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
20356
20357         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
20358         * config/arm/arm.c (multiple_operation_profitable_p,
20359         compute_offset_order): New static functions.
20360         (load_multiple_sequence, store_multiple_sequence): Use them.
20361         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
20362         memory offsets, not register numbers.
20363         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
20364
20365 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
20366
20367         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
20368         (get_pending_sizes, put_pending_size, put_pending_sizes):
20369         Update the uses of pending_sizes.
20370         * c-decl.c (store_parm_decls): Likewise.
20371         * c-tree.h (struct c_arg_info): Likewise.
20372         * tree.h: Update the prototype for get_pending_sizes and
20373         put_pending_sizes.
20374
20375 2010-05-05  Jason Merrill  <jason@redhat.com>
20376
20377         PR debug/43370
20378         * c-common.c (handle_aligned_attribute): Respect
20379         ATTR_FLAG_TYPE_IN_PLACE.
20380
20381         PR testsuite/43758
20382         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
20383         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
20384         (TARGET_INITIALIZER): Use it.
20385         * c-common.c (attribute_takes_identifier_p): Call it.
20386         * c-common.h: Update prototype.
20387         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
20388         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
20389
20390 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
20391
20392         PR debug/43950
20393         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
20394         DW_ID_down_case for Fortran compilation units.
20395
20396 2010-05-05  Jan Hubicka  <jh@suse.cz>
20397
20398         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
20399         handle aliases.
20400
20401 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
20402
20403         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
20404         a variable-sized RESULT_DECL.
20405
20406 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
20407
20408         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
20409
20410 2010-05-05  Jason Merrill  <jason@redhat.com>
20411
20412         PR c++/43787
20413         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
20414         returns GS_OK.
20415         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
20416
20417 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
20418             Jakub Jelinek  <jakub@redhat.com>
20419
20420         PR debug/43478
20421         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
20422         (dead_debug_init, dead_debug_finish): New functions.
20423         (dead_debug_add, dead_debug_insert_before): Likewise.
20424         (df_note_bb_compute): Initialize a dead_debug object, add dead
20425         debug uses to it, insert debug bind insns before death insns,
20426         reset debug insns that refer to pending uses at the end.
20427         * rtl.h (make_debug_expr_from_rtl): New prototype.
20428         * varasm.c (make_debug_expr_from_rtl): New function.
20429
20430 2010-05-05  Jan Hubicka  <jh@suse.cz>
20431
20432         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
20433         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
20434         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
20435         lto_varpool_encoder_deref, lto_varpool_encoder_size,
20436         lto_varpool_encoder_encode_initializer_p,
20437         lto_set_varpool_encoder_encode_initializer): New functions.
20438         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
20439         call output_varpool.
20440         (input_varpool_node): Do not always set analyzed.
20441         (input_cgraph_1): Return vector of cgraph nodes.
20442         (input_varpool_1): Return vector of varpools.
20443         (input_cgraph): Free the vectors.
20444         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
20445         output only initializers needed.
20446         (lto_output): Only call output_cgraph.
20447         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
20448         * lto-section-out.c (lto_new_out_decl_state): Initialize
20449         state->varpool_node_encoder.
20450         * lto-streamer.h (lto_varpool_encoder_d): New.
20451         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
20452         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
20453         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
20454         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
20455         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
20456         Declare.
20457         (output_varpool, input_varpool): Remove declarations.
20458
20459 2010-05-05  Jan Hubicka  <jh@suse.cz>
20460
20461         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
20462         with body can prevail.
20463
20464 2010-05-05  Jan Hubicka  <jh@suse.cz>
20465
20466         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
20467         size.
20468
20469 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
20470
20471         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
20472
20473         * gengtype.h (erro_at_line): Constify pos argument.
20474
20475         * gengtype.c: Include hashtab.h.
20476         (enum gc_used): Document GC_MAYBE_POINTED_TO.
20477         (error_at_line): Constify pos argument.
20478         (do_typedef): Initialize p->opt field.
20479         (get_file_gtfilename): Fix comment typo.
20480         (struct walk_type_data): Constify line field.
20481         (get_output_file_for_structure): New function.
20482         (write_local_func_for_structure): Constify orig_s argument.
20483         Use get_output_file_for_structure.
20484         (write_func_for_structure): Use get_output_file_for_structure.
20485         (INDENT): New define.
20486         (dump_pair, dump_type, dump_type_list, dump_typekind)
20487         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
20488         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
20489         functions.
20490         (seen_types): New variable.
20491         (main): New variable do_dump.  Process "-d" command line option.
20492         Call dump_everything if dump requested.
20493
20494 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
20495
20496         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
20497         in a temporary instead of invoking the macro multiple times.
20498         (track_expr_p): Likewise.
20499
20500 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
20501
20502         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
20503         per new semantics.
20504         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
20505         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
20506         conditions for printing notes.
20507         * common.opt (-Wcoverage-mismatch): Allow negative, default to
20508         true, update documentation.
20509         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
20510
20511 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
20512
20513         PR c/43981
20514         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
20515         on dimen.
20516
20517 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
20518
20519         PR target/43799
20520         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
20521         (*sse_prologue_save_insn1): Likewise.
20522         (SSE prologue save splitter): Likewise.
20523
20524 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
20525
20526         * tree.c (free_lang_data_in_one_sizepos): New inline function.
20527         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
20528         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
20529         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
20530         all decls.  Call it on DECL_FIELD_OFFSET of fields.
20531         (find_decls_types_r): Follow DECL_VALUE_EXPR.
20532         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
20533
20534 2010-05-04  Martin Jambor  <mjambor@suse.cz>
20535
20536         * tree-sra.c (build_access_from_expr_1): The first parameter type
20537         changed to simple tree.
20538         (build_access_from_expr): Likewise, gsi parameter was eliminated.
20539         (scan_assign_result): Renamed to assignment_mod_result, enum elements
20540         renamed as well.
20541         (build_accesses_from_assign): Removed all parameters except for a
20542         simple gimple statement.  Now returns a simple bool.
20543         (scan_function): All non-analysis parts moved to separate functions
20544         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
20545         parameters and updated both callers.
20546         (sra_modify_expr): Removed parameter data.
20547         (sra_modify_function_body): New function.
20548         (perform_intra_sra): Call sra_modify_function_body to modify the
20549         function body.
20550         (replace_removed_params_ssa_names): Parameter data changed into
20551         adjustments vector.
20552         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
20553         changed the parameter dont_convert to convert with the opposite
20554         meaning.
20555         (sra_ipa_modify_assign): Parameter data changed into adjustments
20556         vector, return value changed to bool.
20557         (ipa_sra_modify_function_body): New function.
20558         (sra_ipa_reset_debug_stmts): Updated a comment.
20559         (modify_function): Use ipa_sra_modify_function_body to modify function
20560         body.
20561
20562 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
20563
20564         PR middle-end/43671
20565         * alias.c (true_dependence): Handle the same VALUE in x and mem.
20566         (canon_true_dependence): Likewise.
20567         (write_dependence_p): Likewise.
20568
20569 2010-05-04  Jan Hubicka  <jh@suse.cz>
20570
20571         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
20572         * cgraphbuild.c: Include ipa-utils.h
20573         (record_reference_ctx): New struct.
20574         (record_reference): Simplify to work on initializers; not statements.
20575         (mark_address, mark_load, mark_store): New.
20576         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
20577         walk PHI nodes too.
20578         (record_references_in_initializer): Update use of record_reference.
20579         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
20580         walk PHI nodes too.
20581
20582 2010-05-04  Jan Hubicka  <jh@suse.cz>
20583
20584         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
20585         node will be removed anyway.
20586         (lto_varpool_replace_node): Allow also unanalyzed nodes;
20587         relink aliases of node into prevailing node.
20588         * varpool.c (varpool_remove_node): Remove aliases properly;
20589         when removing node, remove all its aliases too; remove DECL_INITIAL
20590         of removed node; ggc_free the varpool node.
20591
20592 2010-05-04  Richard Guenther  <rguenther@suse.de>
20593
20594         PR tree-optimization/43879
20595         * tree-ssa-structalias.c (alias_get_name): Use
20596         DECL_ASSEMBLER_NAME if available.
20597         (create_function_info_for): Return the varinfo node.
20598         (ipa_pta_execute): Associate same-body aliases and extra names
20599         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
20600
20601 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
20602
20603         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
20604
20605 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
20606
20607         PR bootstrap/43964
20608         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
20609         only if HONOR_REG_ALLOC_ORDER is not defined.
20610
20611 2010-05-04  Richard Guenther  <rguenther@suse.de>
20612
20613         PR tree-optimization/43949
20614         * tree-vrp.c (extract_range_from_binary_expr): Only handle
20615         TRUNC_MOD_EXPR.
20616
20617 2010-04-26  Jason Merrill  <jason@redhat.com>
20618
20619         * c.opt (-fstrict-enums): New.
20620         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
20621
20622 2010-05-03  David Ung  <davidu@mips.com>
20623             James E. Wilson  <wilson@codesourcery.com>
20624
20625         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
20626         emit the trap instruction before the divide for TUNE_74K.
20627
20628 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
20629
20630         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
20631         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
20632         based on the above, for new target hook.
20633
20634         * hooks.c (hook_bool_mode_true): New generic hook.
20635         * hooks.h (hook_bool_mode_true): Add prototype.
20636
20637         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
20638         target hook.
20639         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
20640         target hook, set to hook_bool_mode_false.
20641         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
20642         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
20643         with targetm.small_register_classes_for_mode_p.
20644         (find_reusable_reload): Likewise.
20645         (combine_reloads): Likewise.
20646         * reload1.c (reload_as_needed): Likewise.
20647         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
20648         * ifcvt.c (noce_process_if_block, check_cond_move_block,
20649         dead_or_predicable): Likewise.
20650         * regmove.c (optimize_reg_copy_1): Likewise.
20651         * calls.c (prepare_call_address): Likewise.
20652         (precompute_register_parameters): Likewise.
20653
20654         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
20655         hook definition.
20656         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
20657         implementation of the hook that considers all register classes
20658         small except for SH64.
20659         (sh_override_options): Use the new hook.
20660         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
20661         Add prototype.
20662
20663         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
20664         hook definition.
20665         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
20666         implementation of the hook that considers all register classes
20667         small for THUMB1.
20668         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
20669         Add prototype.
20670
20671         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
20672         hook definition.
20673         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
20674         implementation of the hook that considers all register classes
20675         small for MIPS16.
20676         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
20677         Add prototype.
20678
20679         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
20680         hook definition.
20681         * config/m32c/m32c.h: Likewise.
20682         * config/pdp11/pdp11.h: Likewise.
20683         * config/avr/avr.h: Likewise.
20684         * config/xtensa/xtensa.h: Likewise.
20685         * config/m68hc11/m68hc11.h: Likewise.
20686         * config/mn10300/mn10300.h: Likewise.
20687         * config/mcore/mcore.h: Likewise.
20688         * config/h8300/h8300.h: Likewise.
20689         * config/bfin/bfin.h: Likewise.
20690
20691         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
20692         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
20693
20694 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
20695
20696         * double-int.h (tree_to_double_int): Remove macro.
20697         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
20698         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
20699         (tree_to_double_int): New function.
20700         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
20701         Move ...
20702         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
20703
20704 2010-05-03  Richard Guenther  <rguenther@suse.de>
20705
20706         PR tree-optimization/43971
20707         * tree-ssa-structalias.c (get_constraint_for_1): Fix
20708         constraints in the !flag_delete_null_pointer_checks case.
20709
20710 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
20711
20712         PR debug/43972
20713         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
20714         result mode matches original rtl mode.
20715
20716 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
20717
20718         PR target/43888
20719         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
20720
20721 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
20722
20723         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
20724         when processing flag options.
20725
20726 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
20727
20728         * gcov-iov.c (main): Change format string placeholder
20729         from %#08x to 0x%08x.
20730         * genchecksum.c (dosum): Change format string placeholder
20731         from %#02x to 0x%02x.
20732
20733 2010-05-02  Richard Guenther  <rguenther@suse.de>
20734
20735         PR tree-optimization/43879
20736         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
20737
20738 2010-05-02  Bruno Haible  <bruno@clisp.org>
20739
20740         * doc/extend.texi (Function Attributes): Fix a typo.
20741
20742 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
20743
20744         Revert:
20745         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
20746         placeholder from 0x%x to %#x.
20747         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
20748         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
20749         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
20750         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
20751         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
20752         * config/i386/i386.c (ix86_target_string): Ditto.
20753         * config/i386/i386.c (output_pic_addr_const): Ditto.
20754         (print_operand): Ditto.
20755
20756 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
20757
20758         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
20759         placeholder from 0x%x to %#x.
20760         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
20761         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
20762         (ASM_OUTPUT_DEBUG_DATA): Ditto.
20763         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
20764         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
20765         * optc-gen.awk: Ditto.
20766         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
20767         (HOST_WIDE_INT_PRINT_HEX): Ditto.
20768         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
20769         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
20770
20771 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
20772
20773         * target.h (struct calls): Add function_value_regno_p field.
20774         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
20775         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
20776         * targhooks.c (default_function_value_regno_p): New function.
20777         * targhooks.h (default_function_value_regno_p): Declare function.
20778         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
20779         * builtins.c. (apply_result_size): (Ditto.).
20780         * combine.c. (likely_spilled_retval_p): (Ditto.).
20781         * mode-switching.c. Include 'target.h'.
20782         (create_pre_exit): Use function_value_regno_p hook.
20783         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
20784         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
20785         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
20786
20787         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
20788         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
20789         (ix86_function_value_regno_p): Declare as static, change argument
20790         type to const unsigned int.
20791         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
20792
20793 2010-05-01  Richard Guenther  <rguenther@suse.de>
20794
20795         PR tree-optimization/43949
20796         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
20797         types.
20798         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
20799
20800 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
20801
20802         * rtl.h (CONST_DOUBLE_P): Define.
20803         (rtx_to_double_int): Declare.
20804         * emit-rtl.c (rtx_to_double_int): New function.
20805         * dwarf2out.c (insert_double): New function.
20806         (loc_descriptor, add_const_value_attribute): Clean up, use
20807         rtx_to_double_int and insert_double functions.
20808
20809 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
20810
20811         * doc/extend.texi (Inline): Add missing return keyword to examples.
20812         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
20813         "command-line".
20814
20815 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
20816
20817         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
20818         the variable part of the offset as well.  Use highest_pow2_factor for
20819         all alignment checks.
20820
20821 2010-04-30  Richard Guenther  <rguenther@suse.de>
20822
20823         PR tree-optimization/43879
20824         * tree-ssa-structalias.c (type_could_have_pointers): Functions
20825         can have pointers.
20826
20827 2010-04-30  Jan Hubicka  <jh@suse.cz>
20828
20829         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
20830         varpool.
20831         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
20832
20833 2010-04-30  Jan Hubicka  <jh@suse.cz>
20834
20835         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
20836         New.
20837         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
20838         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
20839         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
20840         cgraph_node_set_needs_ltrans_p): Remove.
20841
20842 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
20843
20844         * sdbout.c: Include vec.h, do not include varray.h.
20845         (deferred_global_decls, sdbout_global_decl,
20846         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
20847         * toplev.c: Do not include varray.h.
20848         (dump_memory_report): Do not dump VARRAY statistics.
20849         * gengtype.c (open_base_file): Ignore varray.h.
20850         * Makefile.in: Update for abovementioned changes.
20851         Remove all traces of varray.c and varray.h.
20852         * varray.c: Remove file.
20853         * varray.h: Remove file.
20854
20855 2010-04-30  Jan Hubicka  <jh@suse.cz>
20856
20857         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
20858         references.
20859
20860 2010-04-30  Jan Hubicka  <jh@suse.cz>
20861
20862         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
20863         needed.
20864
20865 2010-04-30  Richard Guenther  <rguenther@suse.de>
20866
20867         * tree-ssa-structalias.c (get_constraint_for_1): Generate
20868         constraints for CONSTRUCTOR.
20869
20870 2010-04-30  Richard Guenther  <rguenther@suse.de>
20871
20872         PR lto/43946
20873         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
20874         first after all lowering passes.
20875
20876 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
20877
20878         * toplev.c: Include varray.h for statistics dumping.
20879         * tree.h: Do not declare varray_head_tag.
20880         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
20881         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
20882         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
20883         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
20884         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
20885         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
20886         c-common.c, c-common.h, reg-stack.c, basic-block.h,
20887         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
20888         include varray.h.
20889         * Makefile.in: Update for abovementioned changes.
20890
20891 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
20892
20893         PR debug/43942
20894         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
20895
20896 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
20897
20898         * config/picochip/picochip.c (picochip_legitimize_address): Define.
20899         Use this function to do machine-specific conversion.
20900         (picochip_legitimize_reload_address): Likewise.
20901         (picochip_legitimate_address_p): Check valid base register only if
20902         strict.
20903         (picochip_check_conditional_copy): Check for modw only if opnd is
20904         register.
20905         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
20906         to call the function in c.
20907         * config/picochip/picochip-protos.h
20908         (picochip_legitimize_reload_address): Define.
20909         * config/picochip/picochip.md (supported_compare1): Define.
20910
20911 2010-04-30  Jan Hubicka  <jh@suse.cz>
20912
20913         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
20914         (cgraph_global_info): Remove inlined.
20915         (LTO_cgraph_tag_names): Remove.
20916         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
20917         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
20918         simplify cgraph tags and document.
20919         (lto_output_node): Use only LTO_cgraph_unavail_node and
20920         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
20921         for_functions_valid, global info, process and output flags.
20922         (input_overwrite_node): Initialize estimated stack size and
20923         estimated growth.  Do not read flags we no longer store.
20924         (input_node): Likewise do not read info no longer stored.
20925         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
20926         flag.
20927
20928 2010-04-30  Richard Guenther  <rguenther@suse.de>
20929
20930         PR tree-optimization/43879
20931         * tree-ssa-structalias.c (get_constraint_for_1): Properly
20932         handle non-zero initializers.
20933
20934 2010-04-30  Richard Guenther  <rguenther@suse.de>
20935
20936         * builtins.c (fold_builtin_1): Delete free (0).
20937
20938 2010-04-29  Jan Hubicka  <jh@suse.cz>
20939
20940         * gengtype.c (open_base_files): Add lto-streamer.h
20941         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
20942         (pass_ipa_cp): GGC collect.
20943         * toplev. (compile_file): Do not output symbols.
20944         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
20945         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
20946         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
20947         * lto-section-in.c: Include ggc.h
20948         (lto_new_in_decl_state): Alloc in GGC.
20949         (lto_delete_in_decl_state): Likewise.
20950         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
20951         Collect.
20952
20953 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
20954
20955         PR target/42895
20956         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
20957         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
20958         (HONOR_REG_ALLOC_ORDER): Describe new macro.
20959         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
20960         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
20961         account only if HONOR_REG_ALLOC_ORDER is not defined.
20962         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
20963         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
20964
20965 2010-04-29  Jon Grant  <04@jguk.org>
20966
20967         * collect2.c (vflag): Change type from int to bool.
20968         (debug): Likewise.
20969         (helpflag): New global bool.
20970         (main): Set vflag and debug with boolean, not integer truth values.
20971         Accept new "--help" option and output usage text if found.
20972         * collect2.h (vflag): Update prototype.
20973         (debug): Likewise.
20974
20975 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
20976
20977         PR bootstrap/43936
20978         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
20979
20980 2010-04-29  Richard Guenther  <rguenther@suse.de>
20981
20982         PR bootstrap/43935
20983         * plugin.h (invoke_plugin_callbacks): Annotate arguments
20984         with ATTRIBUTE_UNUSED.
20985
20986 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
20987
20988         PR target/43921
20989         * config/i386/i386.c (get_some_local_dynamic_name): Replace
20990         INSN_P with NONDEBUG_INSN_P.
20991         (distance_non_agu_define): Likewise.
20992         (distance_agu_use): Likewise.
20993
20994 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
20995
20996         From Dominique d'Humieres  <dominiq@lps.ens.fr>
20997         PR bootstrap/43858
20998         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
20999         test_set.
21000
21001 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
21002
21003         * plugin.h (invoke_plugin_callbacks): New inline function.
21004         * plugin.c (flag_plugin_added): New global flag.
21005         (add_new_plugin): Initialize above flag.
21006         (invoke_plugin_callbacks): Rename to ...
21007         (invoke_plugin_callbacks_full): ... this.
21008
21009 2010-04-28  Jan Hubicka  <jh@suse.cz>
21010
21011         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
21012         (lto_varpool_replace_node): New.
21013         (lto_symtab_resolve_symbols): Resolve varpool nodes.
21014         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
21015         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
21016         * cgraph.h (varpool_node_ptr): New type.
21017         (varpool_node_ptr): New vector.
21018         (varpool_node_set_def): New structure.
21019         (varpool_node_set): New type.
21020         (varpool_node_set): New vector.
21021         (varpool_node_set_element_def): New structure.
21022         (varpool_node_set_element, const_varpool_node_set_element): New types.
21023         (varpool_node_set_iterator): New type.
21024         (varpool_node): Add prev pointers, add used_from_other_partition,
21025         in_other_partition.
21026         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
21027         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
21028         varpool_get_node, varpool_remove_node): Declare.
21029         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
21030         varpool_node_set_size): New inlines.
21031         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
21032         * tree-pass.h (varpool_node_set_def): Forward declare.
21033         (ipa_opt_pass_d): Summary writting takes vnode sets too.
21034         (ipa_write_optimization_summaries): Update prototype.
21035         * ipa-cp.c (ipcp_write_summary): Update.
21036         * ipa-reference.c (ipa_reference_write_summary): Update.
21037         * lto-cgraph.c (lto_output_varpool_node): New static function.
21038         (output_varpool): New function.
21039         (input_varpool_node): New static function.
21040         (input_varpool_1): New function.
21041         (input_cgraph): Input varpool.
21042         * ipa-pure-const.c (pure_const_write_summary): Update.
21043         * lto-streamer-out.c (lto_output): Update, output varpool too.
21044         (write_global_stream): Kill WPA hack.
21045         (produce_asm_for_decls): Update.
21046         (output_alias_pair_p): Handle variables.
21047         (output_unreferenced_globals): Output only needed partition of varpool.
21048         * ipa-inline.c (inline_write_summary): Update.
21049         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
21050         cgraph.
21051         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
21052         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
21053         varpool_node_set_new, varpool_node_set_add,
21054         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
21055         debug_varpool_node_set): New functions.
21056         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
21057         (execute_one_pass): Process new decls too.
21058         (ipa_write_summaries_2): Pass around vsets.
21059         (ipa_write_summaries_1): Likewise.
21060         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
21061         to add.
21062         (ipa_write_optimization_summaries_1): Pass around vsets.
21063         (ipa_write_optimization_summaries): Likewise.
21064         * varpool.c (varpool_get_node): New.
21065         (varpool_node): Update doubly linked lists.
21066         (varpool_remove_node): New.
21067         (dump_varpool_node): More dumping.
21068         (varpool_enqueue_needed_node): Update doubly linked lists.
21069         (decide_is_variable_needed): Kill ltrans hack.
21070         (varpool_finalize_decl): Kill lto hack.
21071         (varpool_assemble_decl): Skip decls in other partitions.
21072         (varpool_assemble_pending_decls): Update doubly linkes lists.
21073         (varpool_empty_needed_queue): Likewise.
21074         (varpool_extra_name_alias): Likewise.
21075         * lto-streamer.c (lto_get_section_name): Add vars section.
21076         * lto-streamer.h (lto_section_type): Update.
21077         (output_varpool, input_varpool): Declare.
21078
21079 2010-04-28  Mike Stump  <mikestump@comcast.net>
21080
21081         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
21082
21083 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
21084
21085         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
21086         record or union type with RECORD_OR_UNION_TYPE_P predicate.
21087         (lto_input_ts_type_tree_pointers): Likewise.
21088         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
21089         (lto_output_ts_type_tree_pointers): Likewise.
21090
21091 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
21092
21093         Uniquization of constants at the Tree level
21094         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
21095         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
21096         bit to the end.
21097         (tree_output_constant_def): Declare.
21098         * gimplify.c (gimplify_init_constructor): When using block copy, first
21099         uniquize the constant constructor on the RHS.
21100         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
21101         DECL_IN_CONSTANT_POOL flag.
21102         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
21103         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
21104         constant pool.
21105         (assemble_variable): Deal with symbols belonging to the tree constant
21106         pool.
21107         (get_constant_section): Add ALIGN parameter and simplify.
21108         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
21109         (assemble_constant_contents): Use the expression of the VAR_DECL.
21110         (output_constant_def_contents): Use the alignment of the VAR_DECL.
21111         (tree_output_constant_def): New global function.
21112         (mark_constant): Use the expression of the VAR_DECL.
21113         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
21114         its expression.
21115         (output_object_block): Likewise and assemble the expression.
21116
21117 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
21118
21119         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
21120         hash_tree, eq_tree): New tree hash table.
21121         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
21122         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
21123         lto_orig_address_remove): Reimplement.
21124
21125 2010-04-28  Xinliang David Li  <davidxl@google.com>
21126
21127         PR c/42643
21128         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
21129         (compute_uninit_opnds_pos): New function.
21130         (is_non_loop_exit_postdominating): New function.
21131         (compute_control_dep_chain): New function.
21132         (find_pdom): New function.
21133         (convert_control_dep_chain_into_preds): New function.
21134         (find_predicates): New function.
21135         (find_control_equiv_block): New function.
21136         (collect_phi_def_edges): New function.
21137         (find_def_preds): New function.
21138         (find_dom): New function.
21139         (dump_predicates): New function.
21140         (get_cmp_code): New function.
21141         (is_value_included_in): New function.
21142         (find_matching_predicate_in_rest_chains): New function.
21143         (use_pred_not_overlap_with_undef_path_pred): New function.
21144         (is_use_properly_guarded): New function.
21145         (normalize_cond_1): New function.
21146         (is_and_or_or): New function.
21147         (normalize_cond): New function.
21148         (is_gcond_subset_of): New function.
21149         (is_subset_of_any): New function.
21150         (is_or_set_subset_of): New function.
21151         (is_and_set_subset_of): New function.
21152         (is_norm_cond_subset_of): New function.
21153         (is_pred_expr_subset_of): New function.
21154         (is_pred_chain_subset_of): New function.
21155         (is_included_in): New function.
21156         (is_superset_of): New function.
21157         (find_uninit_use): New function.
21158         (warn_uninitialized_phi): New function.
21159         (compute_possibly_undefined_names): New function.
21160         (ssa_undefined_value_p): New function.
21161         (execute_late_warn_uninitialized): New function.
21162         * tree-ssa.c (ssa_undefined_value_p): Removed.
21163         (warn_uninit): Changed to extern.
21164         (warn_uninitialized_phi): Removed.
21165         (warn_uninitialized_vars): Changed to extern.
21166         (execute_late_warn_uninitialized): Removed
21167         * tree-flow.h: Add new prototypes.
21168         * timevar.def: Add new time variable.
21169         * Makefile.in: Add new build file.
21170
21171 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
21172
21173         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
21174         type if available.
21175
21176 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21177
21178         PR target/22224
21179         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
21180
21181 2010-04-28  Martin Jambor  <mjambor@suse.cz>
21182
21183         * cgraph.h (struct cgraph_node): New field indirect_calls.
21184         (struct cgraph_indirect_call_info): New type.
21185         (struct cgraph_edge): Removed field indirect_call. New fields
21186         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
21187         (cgraph_create_indirect_edge): Declare.
21188         (cgraph_make_edge_direct): Likewise.
21189         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
21190         * ipa-prop.h (struct ipa_param_call_note): Removed.
21191         (struct ipa_node_params): Removed field param_calls.
21192         (ipa_create_all_structures_for_iinln): Declare.
21193         * cgraph.c: Described indirect edges and uids in initial comment.
21194         (cgraph_add_edge_to_call_site_hash): New function.
21195         (cgraph_edge): Search also among the indirect edges, use
21196         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
21197         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
21198         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
21199         site hash.
21200         (initialize_inline_failed): Assign a reason to indirect edges.
21201         (cgraph_create_edge_1): New function.
21202         (cgraph_create_edge): Moved some functionality to
21203         cgraph_create_edge_1.
21204         (cgraph_create_indirect_edge): New function.
21205         (cgraph_edge_remove_callee): Add an assert checking for
21206         non-indirectness.
21207         (cgraph_edge_remove_caller): Special-case indirect edges.
21208         (cgraph_remove_edge): Likewise.
21209         (cgraph_set_edge_callee): New function.
21210         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
21211         (cgraph_make_edge_direct): New function.
21212         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
21213         the declaration of the call statement matches.
21214         (cgraph_node_remove_callees): Special-case indirect edges.
21215         (cgraph_clone_edge): Likewise.
21216         (cgraph_clone_node): Clone also the indirect edges.
21217         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
21218         indirect_call, dump count of indirect_calls edges.
21219         * ipa-prop.c (iinlining_processed_edges): New variable.
21220         (ipa_note_param_call): Create indirect edges instead of
21221         creating notes.  New parameter node.
21222         (ipa_analyze_call_uses): New parameter node, pass it on to
21223         ipa_note_param_call.
21224         (ipa_analyze_stmt_uses): Likewise.
21225         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
21226         (print_edge_addition_message): Work on edges rather than on notes.
21227         (update_call_notes_after_inlining): Likewise, renamed to
21228         update_indirect_edges_after_inlining.
21229         (ipa_create_all_structures_for_iinln): New function.
21230         (ipa_free_node_params_substructures): Do not free notes.
21231         (ipa_edge_duplication_hook): Propagate bits within
21232         iinlining_processed_edges bitmap.
21233         (ipa_node_duplication_hook): Do not duplicate notes.
21234         (free_all_ipa_structures_after_ipa_cp): Renamed to
21235         ipa_free_all_structures_after_ipa_cp.
21236         (free_all_ipa_structures_after_iinln): Renamed to
21237         ipa_free_all_structures_after_iinln.
21238         (ipa_write_param_call_note): Removed.
21239         (ipa_read_param_call_note): Removed.
21240         (ipa_write_indirect_edge_info): New function.
21241         (ipa_read_indirect_edge_info): Likewise.
21242         (ipa_write_node_info): Do not stream notes, do stream information
21243         in indirect edges.
21244         (ipa_read_node_info): Likewise.
21245         (lto_ipa_fixup_call_notes): Removed.
21246         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
21247         * ipa-inline.c (pass_ipa_inline): Likewise.
21248         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
21249         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
21250         * tree-inline.c (copy_bb): Removed an unnecessary double check for
21251         is_gimple_call.
21252         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
21253         edges.
21254         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
21255         (output_cgraph): Stream also indirect edges.
21256         (lto_output_edge): Added capability to stream indirect edges.
21257         (input_edge): Likewise.
21258         (input_cgraph_1): Likewise.
21259         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
21260         of indirect edges.
21261
21262 2010-04-28  Richard Guenther  <rguenther@suse.de>
21263
21264         PR tree-optimization/43879
21265         PR tree-optimization/43909
21266         * tree-ssa-structalias.c (struct variable_info): Add
21267         only_restrict_pointers flag.
21268         (new_var_info): Initialize it.  Increment stats.total_vars here.
21269         (create_function_info_for): Do not increment stats.total_vars here.
21270         (get_function_part_constraint): Fix build with C++.
21271         (insert_into_field_list): Remove.
21272         (push_fields_onto_fieldstack): Properly merge fields.
21273         (create_variable_info_for): Split and simplify.
21274         (create_variable_info_for_1): New piece.
21275         (intra_create_variable_infos): Properly make restrict constraints
21276         from parameters.
21277
21278 2010-04-28  Richard Guenther  <rguenther@suse.de>
21279
21280         PR c++/43880
21281         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
21282
21283 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21284             Jan Hubicka  <hubicka@ucw.cz>
21285
21286         * doc/invoke.texi (-Wsuggest-attribute=const,
21287         -Wsuggest-attribute=pure): Document.
21288         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
21289         (function_always_visible_to_compiler_p,
21290         suggest_attribute, warn_function_pure, warn_function_const):
21291         New functions.
21292         (check_call): Improve debug info.
21293         (analyze_function): Do not check availability.
21294         (add_new_function): Check availability.
21295         (propagate): Output warnings.
21296         (skip_function_for_local_pure_const): New function.
21297         (local_pure_const): Use it; output warnings.
21298         * common.opt (Wsuggest-attribute=const,
21299         Wsuggest-attribute=pure): New.
21300
21301 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
21302
21303         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
21304         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
21305         or DW_CFA_def_cfa_offset{,_sf}.
21306
21307 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
21308
21309         * tree.h: Fix truncated long macros.
21310
21311 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
21312
21313         * collect2.c (TARGET_64BIT): Redefine to target's default.
21314         * tlink.c: Likewise.
21315         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
21316         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
21317         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
21318         for underscoring __USER_LABEL_PREFIX__.
21319         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
21320         (SUB_LINK_ENTRY32): New.
21321         (SUB_LINK_ENTRY64): New.
21322         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
21323         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
21324         (SUB_LINK_ENTRY64): New.
21325         (SUB_LINK_ENTRY): New.
21326         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
21327         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
21328         x64 target is choosen.
21329         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
21330         * configure: Regenerated.
21331         * configure.ac (leading-mingw64-underscores): Option added.
21332
21333 2010-04-27  Jan Hubicka  <jh@suse.cz>
21334
21335         * doc/invoke.texi (-fipa-profile): Document.
21336         * opts.c (decode_options): Enable ipa-profile at -O1.
21337         * timevar.def (TV_IPA_PROFILE): Define.
21338         * common.opt (fipa-profile): Add.
21339         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
21340         flag for clones.
21341         (cgraph_propagate_frequency): Handle only local ones.
21342         * tree-pass.h (pass_ipa_profile): Declare.
21343         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
21344         (pass_ipa_profile): Use TV_IPA_PROFILE.
21345         * ipa.c (ipa_profile): New function.
21346         (gate_ipa_profile): Likewise.
21347         (pass_ipa_profile): New global variable.
21348         * passes.c (pass_ipa_profile): New.
21349
21350 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
21351
21352         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
21353
21354 2010-04-27  Martin Jambor  <mjambor@suse.cz>
21355
21356         PR middle-end/43812
21357         * ipa.c (dissolve_same_comdat_group_list): New function.
21358         (function_and_variable_visibility): Call
21359         dissolve_same_comdat_group_list when comdat group contains external or
21360         newly local nodes.
21361         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
21362         lists are circular and that they contain only DECL_ONE_ONLY nodes.
21363
21364 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
21365
21366         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
21367         (const_hash_1) <VECTOR_CST>: New case.
21368         (compare_constant) <VECTOR_CST>: Likewise.
21369         <ADDR_EXPR>: Deal with LABEL_REFs.
21370         (copy_constant) <VECTOR_CST>: New case.
21371
21372 2010-04-27  Jan Hubicka  <jh@suse.cz>
21373
21374         * cgraph.c (cgraph_propagate_frequency): New function.
21375         * cgraph.h (cgraph_propagate_frequency): Declare.
21376         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
21377         cgraph_propagate_frequency.
21378
21379 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
21380
21381         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
21382
21383 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
21384
21385         PR target/40657
21386         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
21387         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
21388         here to determine which regs to push and how much stack to reserve.
21389
21390 2010-04-27  Jie Zhang  <jie@codesourcery.com>
21391
21392         * doc/gimple.texi (gimple_statement_with_ops): Remove
21393         addresses_taken field.
21394         (gimple_statement_with_memory_ops): Likewise.
21395
21396 2010-04-27  Jan Hubicka  <jh@suse.cz>
21397
21398         * tree-inline.c (eni_inlining_weights): Remove.
21399         (estimate_num_insns): Special case more builtins.
21400
21401 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
21402
21403         PR c/32207
21404         * c-typeck.c (build_binary_op): Move forward check for comparison
21405         pointer with null pointer constant and adjust the diagnostic message.
21406
21407 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
21408
21409         PR lto/42776
21410         * configure.ac (gcc_cv_as_section_has_align): Set if installed
21411         binutils supports extended .section directive needed by LTO, or
21412         warn if older binutils found.
21413         (LTO_BINARY_READER): New AC_SUBST'd variable.
21414         (LTO_USE_LIBELF): Likewise.
21415         * config.gcc (lto_binary_reader): New target-specific configure
21416         variable.
21417         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
21418         (LTO_USE_LIBELF): Likewise.
21419         * configure: Regenerate.
21420
21421         * collect2.c (is_elf): Rename from this ...
21422         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
21423          object files in addition to ELF-formatted ones.
21424         (scan_prog_file): Caller updated.  Also allow for LTO info marker
21425         symbol to be prefixed or not by an extra underscore.
21426
21427         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
21428         * config/i386/winnt.c: Also #include lto-streamer.h
21429         (i386_pe_asm_named_section): Specify 1-byte section alignment for
21430         LTO named sections.
21431         (i386_pe_asm_output_aligned_decl_common): Add comment.
21432         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
21433
21434 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
21435
21436         PR target/43889
21437         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
21438         Add missing earlyclobber for second alternative.
21439
21440 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
21441
21442         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
21443         bits for artificial defs at the top of the block.
21444         * fwprop.c (single_def_use_enter_block): Don't call it.
21445
21446 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
21447
21448         PR 43715
21449         * configure.ac: Use "$gcc_cv_nm -g" on darwin
21450         instead of "$gcc_cv_objdump -T".
21451         Use "-undefined dynamic_lookup" on darwin.
21452         * configure: Regenerate.
21453
21454 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
21455
21456         PR c/43893
21457         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
21458
21459 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
21460
21461         * c-parser.c (struct c_token): Move location field up.
21462         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
21463         (struct c_declspecs): Convert typespec_word, storage_class, and
21464         default_int_p into bitfields.
21465         (struct c_declarator): Move loc field up.
21466
21467 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
21468
21469         * cfgloop.h (struct loop): Move can_be_parallel field up.
21470         * ipa-prop.h (struct ip_node_params): Move bitfields up.
21471         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
21472         down.
21473         (struct iv_cand): Convert pos field into a bitfield.
21474         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
21475         field up.
21476         (struct _stmt_vec_info): Shuffle fields for better packing.
21477
21478 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
21479
21480         * varasm.c (IN_NAMED_SECTION): Remove guard.
21481         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
21482         (IN_NAMED_SECTION_P): ...this.
21483         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
21484         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
21485
21486 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
21487
21488         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
21489         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
21490         of shadowing it.  Fix comments.
21491
21492 2010-04-26  Jan Hubicka  <jh@suse.cz>
21493
21494         * cgraph.c (cgraph_create_node): Set node frequency to normal.
21495         (cgraph_clone_node): Copy function frequency.
21496         * cgraph.h (node_frequency): New enum
21497         (struct cgraph_node): Add.
21498         * final.c (rest_of_clean_state): Update.
21499         * lto-cgraph.c (lto_output_node): Output node frequency.
21500         (input_overwrite_node): Input node frequency.
21501         * tre-ssa-loop-ivopts (computation_cost): Update.
21502         * lto-streamer-out.c (output_function): Do not output function
21503         frequency.
21504         * predict.c (maybe_hot_frequency_p): Update and handle functions
21505         executed once.
21506         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
21507         attribute lookup.
21508         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
21509         (compute_function_frequency): Set noreturn functions to be executed
21510         once.
21511         (choose_function_section): Update.
21512         * lto-streamer-in.c (input_function): Do not input function frequency.
21513         * function.c (allocate_struct_function): Do not initialize function
21514         frequency.
21515         * function.h (function_frequency): Remove.
21516         (struct function): Remove function frequency.
21517         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
21518         (try_update): Update.
21519         * tree-inline.c (initialize_cfun): Do not update function frequency.
21520         * passes.c (pass_init_dump_file): Update.
21521         * i386.c (ix86_compute_frame_layout): Update.
21522         (ix86_pad_returns): Update.
21523
21524 2010-04-26  Jie Zhang  <jie@codesourcery.com>
21525
21526         PR tree-optimization/43833
21527         * tree-vrp.c (range_int_cst_p): New.
21528         (range_int_cst_singleton_p): New.
21529         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
21530         when both operands are constants.  Use range_int_cst_p in
21531         BIT_IOR_EXPR case.
21532
21533 2010-04-26  Jan Hubicka  <jh@suse.cz>
21534
21535         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
21536
21537 2010-04-26  Richard Guenther  <rguenther@suse.de>
21538
21539         PR lto/43080
21540         * gimple.c (gimple_decl_printable_name): Deal gracefully
21541         with a NULL DECL_NAME.
21542
21543 2010-04-26  Richard Guenther  <rguenther@suse.de>
21544
21545         PR lto/42425
21546         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
21547         if emitting debug information and it is either a function
21548         or a namespace decl.
21549
21550 2010-04-26  Ira Rosen  <irar@il.ibm.com>
21551
21552         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
21553         determine if the statement is vectorizable, and a macro to access it.
21554         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
21555         Skip statements that can't be vectorized. If the analysis fails,
21556         mark the statement as unvectorizable if vectorizing basic block.
21557         (vect_compute_data_refs_alignment): Likewise.
21558         (vect_verify_datarefs_alignment): Skip statements marked as
21559         unvectorizable. Add print.
21560         (vect_analyze_group_access): Skip statements that can't be
21561         vectorized. If the analysis fails, mark the statement as
21562         unvectorizable if vectorizing basic block.
21563         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
21564         * tree-vect-stmts.c (vectorizable_store): Fix the number of
21565         generated stmts for SLP.
21566         (new_stmt_vec_info): Initialize the new field.
21567         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
21568         statements marked as unvectorizable.
21569
21570 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
21571
21572         * c-common.c (flag_isoc1x): New.
21573         (flag_isoc99): Update comment.
21574         * c-common.h (flag_isoc1x): New.
21575         (flag_isoc99): Update comment.
21576         * c-cppbuiltin.c (builtin_define_float_constants): Also define
21577         __<type>_DECIMAL_DIG__.
21578         * c-opts.c (set_std_c1x): New.
21579         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
21580         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
21581         * c.opt (-std=c1x, -std=gnu1x): New options.
21582         * doc/cpp.texi: Mention -std=c1x.
21583         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
21584         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
21585         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
21586         * doc/standards.texi: Mention C1X.
21587         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
21588         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
21589         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
21590         Define for C1X.
21591
21592 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
21593
21594         * config/i386/gmon-sol2.c (_mcleanup): Change format string
21595         placeholder from 0x%x to %#x.
21596         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
21597         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
21598         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
21599         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
21600         * config/i386/i386.c (ix86_target_string): Ditto.
21601         (output_pic_addr_const): Ditto.
21602         (print_operand): Ditto.
21603
21604 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
21605
21606         * combine.c (find_split_point): Add third argument.  Use it
21607         to find nested multiply-accumulate instructions.  Adjust calls.
21608         (try_combine): Adjust call to find_split_point.
21609
21610 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
21611
21612         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
21613
21614 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
21615
21616         PR tree-optimization/41442
21617         * fold-const.c (merge_truthop_with_opposite_arm): New function.
21618         (fold_binary_loc): Call it.
21619
21620 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21621
21622         * toplev.c (general_init): Set default for fdiagnostics-show-option.
21623         * opts.c (common_handle_option): Allow disabling it.
21624         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
21625
21626 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
21627
21628         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
21629         between modes if both types are integral.
21630
21631 2010-04-23  Richard Guenther  <rguenther@suse.de>
21632
21633         PR tree-optimization/43572
21634         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
21635
21636 2010-04-23  Richard Guenther  <rguenther@suse.de>
21637
21638         PR lto/43455
21639         * tree-inline.c (tree_can_inline_p): Also check compatibility
21640         of return types.
21641
21642 2010-04-23  Martin Jambor  <mjambor@suse.cz>
21643
21644         PR tree-optimization/43846
21645         * tree-sra.c (struct access): New flag grp_assignment_read.
21646         (build_accesses_from_assign): Set grp_assignment_read.
21647         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
21648         (enum mark_read_status): New type.
21649         (analyze_access_subtree): Propagate grp_assignment_read, create
21650         accesses also if both direct_read and root->grp_assignment_read.
21651
21652 2010-04-23  Martin Jambor  <mjambor@suse.cz>
21653
21654         PR middle-end/43835
21655         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
21656         function does not have type attributes.
21657
21658 2010-04-23  Richard Guenther  <rguenther@suse.de>
21659
21660         PR lto/42653
21661         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
21662         of FUNCTION_DECLs.
21663
21664 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
21665
21666         * sese.h (create_if_region_on_edge): Remove.
21667
21668         * sese.c (create_if_region_on_edge): Make static.
21669
21670         * tree-inline.c: Do not include ggc.h.
21671
21672         * expr.c: Do not include ggc.h.
21673
21674         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
21675         dependencies.
21676
21677 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
21678
21679         PR target/43744
21680         * config/sh/sh.c (find_barrier): Don't emit a constant pool
21681         in the middle of insns for casesi_worker_2.
21682
21683 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
21684
21685         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
21686
21687 2010-04-22  Ira Rosen  <irar@il.ibm.com>
21688
21689         PR tree-optimization/43842
21690         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
21691         loop unrolling in update of exit phis. Fix comment.
21692         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
21693         least two reduction statements in the loop before starting SLP
21694         analysis.
21695
21696 2010-04-22  Nick Clifton  <nickc@redhat.com>
21697
21698         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
21699
21700 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
21701
21702         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
21703         to simplify a + ~a.
21704
21705 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
21706
21707         * tree-parloops.c (loop_parallel_p): New argument
21708         parloop_obstack.  Pass it down.
21709         (parallelize_loops): New variable parloop_obstack.  Initialize it,
21710         pass it down, free it.
21711
21712         * tree-loop-linear.c (linear_transform_loops): Pass down
21713         lambda_obstack.
21714
21715         * tree-data-ref.h (lambda_compute_access_matrices): New argument
21716         of type struct obstack *.
21717
21718         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
21719         scratch_obstack.  Initialize it, pass down, free it.
21720
21721         * lambda.h (lambda_loop_new): Remove.
21722         (lambda_matrix_new, lambda_matrix_inverse)
21723         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
21724         argument of type struct obstack *.
21725
21726         * lambda-trans.c (lambda_trans_matrix_new): New argument
21727         lambda_obstack.  Pass it down, use obstack allocation for ret.
21728         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
21729         it down.
21730
21731         * lambda-mat.c (lambda_matrix_get_column)
21732         (lambda_matrix_project_to_null): Remove.
21733         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
21734         allocation for mat.
21735         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
21736         lambda_obstack.
21737
21738         * lambda-code.c (lambda_loop_new): New function.
21739         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
21740         (lambda_compute_auxillary_space, lambda_compute_target_space)
21741         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
21742         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
21743         (build_access_matrix): New argument lambda_obstack.  Use obstack
21744         allocation for am.
21745         (lambda_compute_step_signs, lambda_compute_access_matrices): New
21746         argument lambda_obstack.  Pass it down.
21747
21748 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
21749
21750         * optabs.h (expand_widening_mult): Declare.
21751
21752 2010-04-22  Richard Guenther  <rguenther@suse.de>
21753
21754         PR tree-optimization/43845
21755         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
21756         lookup the CALL_EXPR function and arguments.
21757
21758 2010-04-22  Nick Clifton  <nickc@redhat.com>
21759
21760         * config/stormy16/stormy16.c
21761         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
21762         * config/stormy16/stormy16.h: Tidy up formatting.
21763         (DONT_USE_BUILTIN_SETJMP): Remove definition.
21764         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
21765         (ineqbranchsi): Delete pattern.
21766         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
21767         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
21768         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
21769         stormy16-lib2-ucmpsi2.c.
21770
21771 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
21772
21773         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
21774         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
21775         extra set merge_set_noclobber, and use it to relax the final test
21776         slightly.
21777         * df.h (df_simulate_find_noclobber_defs): Declare.
21778         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
21779         conditional defs.
21780         (df_simulate_find_noclobber_defs): New function.
21781
21782 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
21783
21784         * config/i386/i386.md: Use {} around multi-line preparation statements.
21785
21786 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
21787
21788         * c-tree.h (push_init_level, pop_init_level, set_init_index)
21789         (process_init_element): New argument of type struct obstack *.
21790
21791         * c-typeck.c (push_init_level, pop_init_level, set_designator)
21792         (set_init_index, set_init_label, set_nonincremental_init)
21793         (set_nonincremental_init_from_string, find_init_member)
21794         (output_init_element, output_pending_init_elements)
21795         (process_init_element): New argument braced_init_obstack.  Pass it
21796         down.
21797         (push_range_stack, add_pending_init): New argument
21798         braced_init_obstack.  Use obstack allocation.
21799
21800         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
21801         braced_init_obstack.  Pass it down.
21802         (c_parser_braced_init): New variables ret, braced_init_obstack.
21803         Initialize obstack, pass it down and finally free it.
21804
21805 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
21806
21807         PR middle-end/29274
21808         * tree-pass.h (pass_optimize_widening_mul): Declare.
21809         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
21810         gate_optimize_widening_mul): New static functions.
21811         (pass_optimize_widening_mul): New.
21812         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
21813         <case MULT_EXPR>: Remove support for widening multiplies.
21814         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
21815         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
21816         simplify_gen_unary rather than directly building extensions.
21817         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
21818         WIDEN_MULT_EXPR.
21819         * expmed.c (expand_widening_mult): New function.
21820         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
21821
21822 2010-04-21  Jan Hubicka  <jh@suse.cz>
21823
21824         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
21825         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
21826         * lto-wpa-fixup.c: Remove.
21827         * Makefile.in (lto-wpa-fixup.o): Remove.
21828         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
21829         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
21830         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
21831
21832 2010-04-21  Jan Hubicka  <jh@suse.cz>
21833
21834         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
21835         add write_optimization_summary, read_optimization_summary.
21836         (ipa_write_summaries_of_cgraph_node_set): Remove.
21837         (ipa_write_optimization_summaries): Declare.
21838         (ipa_read_optimization_summaries): Declare.
21839         * ipa-cp.c (pass_ipa_cp): Update.
21840         * ipa-reference.c (pass_ipa_reference): Update.
21841         * ipa-pure-const.c (pass_ipa_pure_const): Update.
21842         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
21843         Update.
21844         * ipa-inline.c (pass_ipa_inline): Update.
21845         * ipa.c (pass_ipa_whole_program): Update.
21846         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
21847         * passes.c (ipa_write_summaries_1): Do not test wpa.
21848         (ipa_write_optimization_summaries_1): New.
21849         (ipa_write_optimization_summaries): New.
21850         (ipa_read_summaries): Do not test ltrans.
21851         (ipa_read_optimization_summaries_1): New.
21852         (ipa_read_optimization_summaries): New.
21853
21854 2010-04-21  Jan Hubicka  <jh@suse.cz>
21855
21856         * lto-cgraph.c (lto_output_node): Do not output comdat groups
21857         for boundary nodes.
21858         (output_cgraph): Do not arrange comdat groups for boundary nodes.
21859
21860 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
21861
21862         PR debug/40040
21863         * dwarf2out.c (add_name_and_src_coords_attributes): Add
21864         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
21865
21866 2010-04-21  Jan Hubicka  <jh@suse.cz>
21867
21868         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
21869
21870 2010-04-21  Jan Hubicka  <jh@suse.cz>
21871
21872         * varpool.c (decide_is_variable_needed): Variable is always needed
21873         during ltrans.
21874
21875 2010-04-21  Jan Hubicka  <jh@suse.cz>
21876
21877         * opts.c (decode_options): Enable pure-const pass for whopr.
21878
21879 2010-04-21  Jan Hubicka  <jh@suse.cz>
21880
21881         * cgraph.c (dump_cgraph_node): Dump also assembler name.
21882         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
21883         at WPA dumping.
21884         (cgraph_decide_inlining): Do not expect callee to be removed in all
21885         cases.
21886
21887 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
21888
21889         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
21890
21891 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
21892
21893         * config/i386/i386.md (x86_shrd): Add athlon_decode and
21894         amdfam10_decode attributes.
21895
21896 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
21897
21898         PR middle-end/43570
21899         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
21900         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
21901         (lower_copyprivate_clauses): Use private var in outer
21902         context instead of original var.  Make sure the types
21903         are correct for VLAs.
21904
21905 2010-04-21  Richard Guenther  <rguenther@suse.de>
21906
21907         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
21908         to non-pointer objects.
21909
21910 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
21911
21912         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
21913         last chain entry if it starts with the still current label.
21914         (add_location_or_const_value_attribute): Check that
21915         loc_list->first->next is NULL instead of comparing ->first with ->last.
21916         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
21917         to add_var_loc_to_decl.
21918
21919         * dwarf2out.c (output_call_frame_info): For dw_cie_version
21920         >= 4 add also address size and segment size fields into CIE header.
21921
21922         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
21923         long as address size is the same as sizeof (void *) and
21924         segment size is 0.
21925         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
21926         address size or segment size is unexpected, return DW_EH_PE_omit.
21927         (classify_object_over_fdes): If get_cie_encoding returned
21928         DW_EH_PE_omit, return -1.
21929         (init_object): If classify_object_over_fdes returned -1,
21930         pretend there were no FDEs at all.
21931
21932 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
21933
21934         * config/i386/i386.md (bswap<mode>2): Macroize expander from
21935         bswap{si,di}2 using SWI48 mode iterator.
21936         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
21937         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
21938         set modrm attribute of bswap insn to 0 and remove length attribute.
21939         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
21940         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
21941         set mode attribute to <MODE> and remove length attribute.
21942
21943 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
21944
21945         PR rtl-optimization/43520
21946         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
21947         zero available registers.
21948
21949 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21950
21951         * builtins.c (fold_builtin_cproj): Fold more cases.
21952
21953 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21954
21955         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
21956         (fold_builtin_1): Fold builtin cproj.
21957         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
21958         Use ATTR_CONST_NOTHROW_LIST.
21959
21960 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
21961
21962         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
21963         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
21964         ffsi2_no_cmove for !TARGET_CMOVE.
21965         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
21966         (ffssi2): Remove expander.
21967         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
21968         mode iterator.
21969         (ctz<mode>2): Ditto from ctz{si,di}2.
21970         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
21971         mode iterator.
21972         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
21973         mode iterator.
21974
21975 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
21976
21977         * dwarf2out.c (AT_linkage_name): Define.
21978         (clone_as_declaration): Handle DW_AT_linkage_name.
21979         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
21980         of DW_AT_MIPS_linkage_name.
21981         (move_linkage_attr): Likewise.
21982         (dwarf2out_finish): Likewise.
21983
21984 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
21985
21986         PR middle-end/41952
21987         * fold-const.c (fold_comparison): New folding rule.
21988
21989 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
21990
21991         * double-int.h (double_int_setbit): Declare.
21992         * double-int.c (double_int_setbit): New function.
21993         * rtl.h (immed_double_int_const): Declare.
21994         * emit-rtl.c (immed_double_int_const): New function.
21995         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
21996         and immed_double_int_const functions.
21997         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
21998         expand_copysign_bit): (Ditto.).
21999         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
22000         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
22001         * dojump.c (prefer_and_bit_test): (Ditto.).
22002         * expr.c (convert_modes, reduce_to_bit_field_precision,
22003         const_vector_from_tree): (Ditto.).
22004         * expmed.c (mask_rtx, lshift_value): (Ditto.).
22005
22006 2010-04-20  Jan Hubicka  <jh@suse.cz>
22007
22008         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
22009         (dump_cgraph_node): Dump new flags.
22010         * cgraph.h (struct cgraph_node): Add flags
22011         reachable_from_other_partition and in_other_partition.
22012         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
22013         other partition can not be removed.
22014         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
22015         the other partition must be output; silence sanity checking on
22016         leaking functions bodies from other paritition.
22017         * lto-cgraph.c (reachable_from_other_partition_p): New function.
22018         (lto_output_node): Output new flags; do not sanity check that inline
22019         clones are output; drop lto_forced_extern_inline_p code; do not mock
22020         visibility flags at partition boundaries.
22021         (add_node_to): New function.
22022         (output_cgraph): Use it to sort functions so masters appear before
22023         clones.
22024         (input_overwrite_node): Input new flags.
22025         * passes.c (ipa_write_summaries): Do not call
22026         lto_new_extern_inline_states.
22027         * lto-section-out.c (forced_extern_inline,
22028         lto_new_extern_inline_states lto_delete_extern_inline_states,
22029         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
22030         * lto-streamer.h (lto_new_extern_inline_states,
22031         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
22032         lto_forced_extern_inline_p): Kill.
22033
22034 2010-04-20  Richard Guenther  <rguenther@suse.de>
22035
22036         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
22037         from vars that can have pointers.
22038         (process_constraint): Dump useless constraints.
22039
22040 2010-04-20  Richard Guenther  <rguenther@suse.de>
22041
22042         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
22043         (dump_sa_points_to_info): Remove asserts.
22044         (init_base_vars): nothing_id isn't an escape point nor does it
22045         have pointers.
22046
22047 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
22048
22049         * tree.h (TYPE_REF_IS_RVALUE): Define.
22050         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
22051         should_move_die_to_comdat, prune_unused_types_walk): Handle
22052         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
22053         (modified_type_die, gen_reference_type_die): Emit
22054         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
22055         if TYPE_REF_IS_RVALUE and -gdwarf-4.
22056
22057 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22058
22059         PR target/43635
22060         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
22061         calls for -fpic -m31 if they have been sibcall optimized.
22062
22063 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
22064
22065         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
22066         ar.lc fixed and call-used.
22067
22068         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
22069
22070 2010-04-19  Jan Hubicka  <jh@suse.cz>
22071
22072         * opts.c (decode_options): Disable whpr incompatible passes.
22073         * lto/lto.c (lto_1_to_1_map): Skip clones.
22074         (read_cgraph_and_symbols): Do not mark everything as needed.
22075         (do_whole_program_analysis): Do map only after optimizing;
22076         set proper cgraph_state; use passmanager.
22077
22078 2010-04-19  DJ Delorie  <dj@redhat.com>
22079
22080         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
22081         POINTER_PLUS_EXPR and fix them.
22082
22083 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
22084
22085         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
22086         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
22087         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
22088         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
22089         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
22090         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
22091         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
22092         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
22093         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
22094         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
22095         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
22096
22097 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
22098
22099         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
22100         (check_cond_move_block): Likewise.
22101         (cond_move_process_if_block): Likewise.
22102         (noce_find_if_block): Improve formatting.
22103         (find_if_header): Pass 0 to memset and tweak conditions.
22104         (cond_exec_find_if_block): Fix long lines and tweak conditions.
22105
22106 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
22107
22108         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
22109         for -gdwarf-4.
22110
22111         PR middle-end/43337
22112         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
22113         with non-local decl doesn't need chain.
22114
22115 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
22116
22117         * ira-color.c (allocno_reload_assign): Avoid accumulating
22118         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
22119
22120 2010-04-19  Martin Jambor  <mjambor@suse.cz>
22121
22122         * gimple.h (create_tmp_reg): Declare.
22123         * gimplify.c (create_tmp_reg): New function.
22124         (gimplify_return_expr): Use create_tmp_reg.
22125         (gimplify_omp_atomic): Likewise.
22126         (gimple_regimplify_operands): Likewise.
22127         * tree-dfa.c (make_rename_temp): Likewise.
22128         * tree-predcom.c (predcom_tmp_var): Likewise.
22129         (reassociate_to_the_same_stmt): Likewise.
22130         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
22131         (get_replaced_param_substitute): Likewise.
22132         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
22133         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
22134         * tree-ssa-pre.c (get_representative_for): Likewise.
22135         (create_expression_by_pieces): Likewise.
22136         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
22137         (create_tailcall_accumulator): Likewise.
22138
22139 2010-04-19  Martin Jambor  <mjambor@suse.cz>
22140
22141         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
22142         new_stmt.
22143         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
22144
22145 2010-04-19  Richard Guenther  <rguenther@suse.de>
22146
22147         PR tree-optimization/43796
22148         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
22149         from SCEV in the lattice.
22150         (vrp_visit_phi_node): Dump change.
22151
22152 2010-04-19  Richard Guenther  <rguenther@suse.de>
22153
22154         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
22155         * configure: Re-generated.
22156
22157 2010-04-19  Richard Guenther  <rguenther@suse.de>
22158
22159         PR tree-optimization/43783
22160         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
22161         constant ARRAY_REF operands two and three if possible.
22162
22163 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
22164
22165         PR target/43766
22166         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
22167
22168 2010-04-19  Jie Zhang  <jie@codesourcery.com>
22169
22170         PR target/43662
22171         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
22172
22173 2010-04-19  Ira Rosen  <irar@il.ibm.com>
22174
22175         PR tree-optimization/37027
22176         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
22177         and macro to access it.
22178         (vectorizable_reduction): Add argument.
22179         (vect_get_slp_defs): Likewise.
22180         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
22181         statements for possible use in SLP.
22182         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
22183         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
22184         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
22185         add new argument.
22186         (vectorizable_reduction): Likewise.
22187         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
22188         vect_get_slp_defs.
22189         (vectorizable_type_demotion, vectorizable_type_promotion,
22190         vectorizable_store): Likewise.
22191         (vect_analyze_stmt): Update call to vectorizable_reduction.
22192         (vect_transform_stmt): Likewise.
22193         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
22194         (vect_build_slp_tree): Fix indentation. Check that there are no loads
22195         from different interleaving chains in same node.
22196         (vect_slp_rearrange_stmts): New function.
22197         (vect_supported_load_permutation_p): Allow load permutations for
22198         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
22199         inside SLP nodes if necessary.
22200         (vect_analyze_slp_instance): Handle reductions.
22201         (vect_analyze_slp): Try to build SLP instances originating from groups
22202         of reductions.
22203         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
22204         (vect_get_constant_vectors): Create initial vectors for reductions
22205         according to reduction code. Add new argument.
22206         (vect_get_slp_defs): Add new argument, pass it to
22207         vect_get_constant_vectors.
22208         (vect_schedule_slp_instance): Remove SLP tree root statements.
22209
22210 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
22211
22212         * tree.h (ENUM_IS_SCOPED): Define.
22213         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
22214         for ENUM_IS_SCOPED enums.
22215
22216 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
22217
22218         * fold-const.c (fold_comparison): Use ssizetype.
22219         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
22220         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
22221         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
22222         * tree-object-size.c (compute_object_sizes): Use size_type_node.
22223
22224         * tree.h (initialize_sizetypes): Remove parameter.
22225         (build_common_tree_nodes): Remove second parameter.
22226         * stor-layout.c (initialize_sizetypes): Remove parameter.
22227         Always create an unsigned type.
22228         (set_sizetype): Assert that the passed type is unsigned and simplify.
22229         * tree.c (build_common_tree_nodes): Remove second parameter.
22230         Adjust call to initialize_sizetypes.
22231         * c-decl.c (c_init_decl_processing): Remove second argument in call to
22232         build_common_tree_nodes.
22233
22234 2010-04-18  Matthias Klose  <doko@ubuntu.com>
22235
22236         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
22237
22238 2010-04-18  Ira Rosen  <irar@il.ibm.com>
22239
22240         PR tree-optimization/43771
22241         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
22242         load permutation doesn't have gaps.
22243
22244 2010-04-18  Jan Hubicka  <jh@suse.cz>
22245
22246         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
22247         (sse_prologue_save_insn expander): Use new pattern.
22248         (sse_prologue_save_insn1): New pattern and splitter.
22249         (sse_prologue_save_insn): Update to deal also with 64bit aligned
22250         blocks.
22251         * i386.c (setup_incoming_varargs_64): Do not compute jump
22252         destination here.
22253         (ix86_gimplify_va_arg): Update alignment needed.
22254         (ix86_local_alignment): Do not align all local arrays to 128bit.
22255
22256 2010-04-17  Jan Hubicka  <jh@suse.cz>
22257
22258         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
22259
22260 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
22261
22262         * arm.md (negdi2): Remove redundant code to force values into a
22263         register.
22264
22265 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
22266
22267         * arm/bpabi.S: Add EABI alignment attributes to objects.
22268         * arm/bpabi-v6m.S: Likewise.
22269         * arm/crti.asm: Likewise.
22270         * arm/crtn.asm: Likewise.
22271         * arm/lib1funcs.asm: Likewise.
22272         * arm/libunwind.S: Likewise.
22273
22274 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
22275
22276         * arm-protos.h (tune_params): New structure.
22277         * arm.c (current_tune): New variable.
22278         (arm_constant_limit): Delete.
22279         (struct processors): Add pointer to the tune parameters.
22280         (arm_slowmul_tune): New tuning option.
22281         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
22282         (all_cores): Adjust to pick up the tuning model.
22283         (arm_constant_limit): New function.
22284         (arm_override_options): Select the appropriate tuning model.  Delete
22285         initialization of arm_const_limit.
22286         (arm_split_constant): Use the new constant-limit model.
22287         (arm_rtx_costs): Pick up the current tuning model.
22288         * arm.md (is_strongarm, is_xscale): Delete.
22289         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
22290         for Xscale variant architectures.
22291         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
22292
22293 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22294
22295         * config/arm/arm.c (arm_gen_constant): Remove unused variable
22296         can_shift.
22297         (arm_rtx_costs_1): Remove unused variable extra_cost.
22298         (arm_unwind_emit_set): Use variable offset.
22299         (thumb1_output_casesi): Remove unused variable flags.
22300
22301 2010-04-16  Jeff Law  <law@redhat.com>
22302
22303         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
22304         needing assignment rather than doing a two-phase assignment.  Remove
22305         unused variable 'm'.
22306
22307 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
22308
22309         PR bootstrap/43767
22310         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
22311
22312 2010-04-16  Doug Kwan  <dougkwan@google.com>
22313
22314         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
22315         (next_operand_entry_id): New static variable.
22316         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
22317         (add_to_ops_vec): Assigned unique ID to operand entry.
22318         (struct oecount_s): New field ID.
22319         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
22320         (undistribute_ops_list): Assign unique IDs to oecounts.
22321         (init_reassoc): reset next_operand_entry_id.
22322
22323 2010-04-16  Doug Kwan  <dougkwan@google.com>
22324
22325         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
22326         missing left parenthesis.
22327
22328 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
22329
22330         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
22331         *btdi_rex64 using SWI48 mode iterator.
22332         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
22333         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
22334         *jcc_btdi_mask_rex64.
22335
22336 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
22337
22338         * double-int.h (tree_to_double_int): Convert to macro.
22339         * double-int.c (tree_to_double_int): Remove.
22340
22341 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
22342
22343         PR debug/43762
22344         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
22345         with want_address 2 and in case a single element list might be
22346         possible, call it again with want_address 0.
22347
22348 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
22349
22350         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
22351         case 'W' print operands for HI mode.
22352         * config/h8300/h8300.h (Y0, Y2) : New constraints.
22353         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
22354         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
22355         * config/h8300/predicate.md (bit_register_indirect_operand): New.
22356
22357         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
22358
22359         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
22360         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
22361         #xx:3 and #xx:4 mode.
22362
22363         * config/h8300/h8300.md (inverted load with HImode dest): Add
22364         support for H8300SX.
22365
22366         * config/h8300/predicate.md (bit_operand): Allow immediate values that
22367         satisfy 'U' constraint.
22368
22369 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22370
22371         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
22372         * configure: Regenerate.
22373         * config.in: Regenerate.
22374         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
22375         works.
22376
22377 2010-04-16  Richard Guenther  <rguenther@suse.de>
22378
22379         * tree.h (struct tree_decl_minimal): Move pt_uid ...
22380         (struct tree_decl_common): ... here.
22381         (DECL_PT_UID): Adjust.
22382         (SET_DECL_PT_UID): Likewise.
22383         (DECL_PT_UID_SET_P): Likewise.
22384
22385 2010-04-16  Richard Guenther  <rguenther@suse.de>
22386
22387         PR tree-optimization/43572
22388         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
22389         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
22390         * tree-flow.h (is_call_clobbered): Remove.
22391         * tree-flow-inline.h (is_call_clobbered): Likewise.
22392         * tree-dfa.c (dump_variable): Do not dump call clobber state.
22393         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
22394         (execute_return_slot_opt): Adjust.
22395         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
22396         check for call clobbered vars here.
22397         (find_tail_calls): Move tailcall verification to the
22398         proper place.
22399
22400 2010-04-16  Diego Novillo  <dnovillo@google.com>
22401
22402         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
22403
22404 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
22405
22406         PR target/40603
22407         * config/arm/arm.md (cbranchqi4): New pattern.
22408         * config/arm/predicates.md (const0_operand,
22409         cbranchqi4_comparison_operator): New predicates.
22410
22411 2010-04-16  Richard Guenther  <rguenther@suse.de>
22412
22413         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
22414         (dump_gimple_stmt): Likewise.
22415
22416 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
22417
22418         * recog.h (struct recog_data): New field is_operator.
22419         (struct insn_operand_data): New field is_operator.
22420         * recog.c (extract_insn): Set recog_data.is_operator.
22421         * genoutput.c (output_operand_data): Emit code to set the
22422         is_operator field.
22423         * reload.c (find_reloads): Use it rather than testing for an
22424         empty constraint string.
22425
22426         PR target/41514
22427         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
22428         If the previous insn is a cbranchsi4_insn with the same arguments,
22429         omit the compare instruction.
22430
22431         * config/arm/arm.md (addsi3_cbranch): If destination is a high
22432         register, inputs must be low registers and we need a low register
22433         scratch.  Handle alternative 2 like alternative 3.
22434
22435 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
22436
22437         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
22438         don't call get_addr on both.  If one expression is a VALUE and
22439         the other a REG, check VALUE's locs if the REG isn't among them.
22440
22441 2010-04-16  Christian Bruel  <christian.bruel@st.com>
22442
22443         * config/sh/sh.h (sh_frame_pointer_required): New function.
22444         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
22445         (flag_omit_frame_pointer) Set.
22446         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
22447         (rounded_frame_size): Adjust size with outgoing_args_size.
22448         (sh_set_return_address): Must return from stack pointer.
22449         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
22450         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
22451         (ACCUMULATE_OUTGOING_ARGS): Define.
22452         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
22453         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
22454
22455 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
22456
22457         PR target/43471
22458         * config/sh/sh.c (sh_legitimize_reload_address): Use
22459         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
22460         Remove a unneeded check for offset_base.
22461
22462 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
22463
22464         * configure: Regenerated.
22465
22466 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22467
22468         * config/s390/s390.c (s390_call_save_register_used): Switch back
22469         to HARD_REGNO_NREGS.
22470
22471 2010-04-15  Richard Guenther  <rguenther@suse.de>
22472
22473         * alias.c (alias_set_subset_of): Handle alias-set zero
22474         child properly.
22475
22476 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
22477             Julian Brown  <julian@codesourcery.com>
22478
22479         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
22480         alternatives according to use of high and low regs.
22481         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
22482         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
22483         optimizing for size on Thumb-2.
22484
22485 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
22486
22487         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
22488
22489 2010-04-15  Richard Guenther  <rguenther@suse.de>
22490
22491         * tree-ssa-structalias.c (struct variable_info): Add
22492         is_fn_info flag.
22493         (new_var_info): Initialize it.
22494         (dump_constraints): Support printing last added constraints.
22495         (debug_constraints): Adjust.
22496         (dump_constraint_graph): Likewise.
22497         (make_heapvar_for): Check for NULL cfun.
22498         (get_function_part_constraint): New function.
22499         (get_fi_for_callee): Likewise.
22500         (find_func_aliases): Properly implement IPA PTA constraints.
22501         (process_ipa_clobber): New function.
22502         (find_func_clobbers): Likewise.
22503         (insert_into_field_list_sorted): Remove.
22504         (create_function_info_for): Properly allocate vars for IPA mode.
22505         Do not use insert_into_field_list_sorted.
22506         (create_variable_info_for): Properly generate constraints for
22507         global vars in IPA mode.
22508         (dump_solution_for_var): Always dump the solution.
22509         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
22510         (find_what_var_points_to): Adjust.
22511         (pt_solution_set): Change.
22512         (pt_solution_ior_into): New function.
22513         (pt_solution_empty_p): Export.
22514         (pt_solution_includes_global): Adjust.
22515         (pt_solution_includes_1): Likewise.
22516         (pt_solutions_intersect_1): Likewise.
22517         (dump_sa_points_to_info): Check some invariants.
22518         (solve_constraints): Move constraint dumping ...
22519         (compute_points_to_sets): ... here.
22520         (ipa_pta_execute): ... and here.
22521         (compute_may_aliases): Do not re-compute points-to info
22522         locally if IPA info is available.
22523         (ipa_escaped_pt): New global var.
22524         (ipa_pta_execute): Properly implement IPA PTA.
22525         * tree-into-ssa.c (dump_decl_set): Support dumping
22526         decls not in referenced-vars.
22527         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
22528         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
22529         (dump_points_to_solution): Likewise.
22530         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
22531         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
22532         (remap_gimple_stmt): Reset call clobber/use information if necessary.
22533         (copy_decl_to_var): Copy DECL_PT_UID.
22534         (copy_result_decl_to_var): Likewise.
22535         * tree.c (make_node_stat): Initialize DECL_PT_UID.
22536         (copy_node_stat): Copy it.
22537         * tree.h (DECL_PT_UID): New macro.
22538         (SET_DECL_PT_UID): Likewise.
22539         (DECL_PT_UID_SET_P): Likewise.
22540         (struct tree_decl_minimal): Add pt_uid member.
22541         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
22542         (pt_solution_empty_p): Declare.
22543         (pt_solution_set): Adjust.
22544         (ipa_escaped_pt): Declare.
22545         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
22546         * gimple-pretty-print.c (pp_points_to_solution): New function.
22547         (dump_gimple_call): Dump call clobber/use information.
22548         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
22549         * tree-pass.h (TDF_ALIAS): New dump option.
22550         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
22551         * doc/invoke.texi (-fipa-pta): Update documentation.
22552
22553 2010-04-15  Richard Guenther  <rguenther@suse.de>
22554
22555         * Makefile.in (OBJS-common): Add gimple-fold.o.
22556         (gimple-fold.o): New rule.
22557         * tree.h (maybe_fold_offset_to_reference,
22558         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
22559         prototypes ...
22560         * gimple.h: ... here.
22561         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
22562         may_propagate_address_into_dereference): Move prototypes ...
22563         * gimple.h: ... here.
22564         * tree-ssa-ccp.c (get_symbol_constant_value,
22565         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
22566         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
22567         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
22568         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
22569         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
22570         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
22571         gimplify_and_update_call_from_tree): Move ...
22572         * gimple-fold.c: ... here.  New file.
22573         (ccp_fold_builtin): Rename to ...
22574         (gimple_fold_builtin): ... this.
22575         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
22576
22577 2010-04-15  Richard Guenther  <rguenther@suse.de>
22578
22579         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
22580         fit_double_type, force_fit_type_double, add_double_with_sign,
22581         neg_double, mul_double_with_sign, lshift_double, rshift_double,
22582         lrotate_double, rrotate_double, div_and_round_double): Move ...
22583         * double-int.c: ... here.
22584         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
22585         add_double, neg_double, mul_double_with_sign, mul_double,
22586         lshift_double, rshift_double, lrotate_double, rrotate_double,
22587         div_and_round_double): Move prototypes ...
22588         * double-int.h: ... here.
22589
22590 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
22591
22592         PR target/43742
22593         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
22594         matching constraints to ensure inputs match the output.
22595
22596 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
22597
22598         PR target/43742
22599         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
22600         in an input-only operand.
22601
22602 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
22603
22604         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
22605         (double_int_not, double_int_lshift, double_int_rshift): Declare.
22606         (double_int_negative_p): Convert to static inline function.
22607         * double-int.c (double_int_lshift, double_int_lshift): New functions.
22608         (double_int_negative_p): Remove.
22609         * tree.h (lshift_double, rshift_double):
22610         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
22611         * fold-const.c (fold_convert_const_int_from_real,
22612         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
22613         (lshift_double): Change type of arith argument to bool.
22614         (rshift_double): Change type of arith argument to bool. Correct
22615         comment.
22616         * expmed.c (mask_rtx, lshift_value): (Ditto.).
22617
22618 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
22619
22620         PR target/21803
22621         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
22622         at the start and end of the then/else blocks, and omit them from the
22623         conversion.
22624         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
22625         argument; all callers changed.  Pass zero to old_insns_match_p instead.
22626         (flow_find_head_matching_sequence): New function.
22627         (old_insns_match_p): Check REG_EH_REGION notes for calls.
22628         * basic-block.h (flow_find_cross_jump,
22629         flow_find_head_matching_sequence): Declare functions.
22630
22631 2010-04-14  Jason Merrill  <jason@redhat.com>
22632
22633         PR c++/36625
22634         * c-common.c (attribute_takes_identifier_p): New fn.
22635         * c-common.h: Declare it.
22636
22637 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
22638
22639         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
22640         splitter condition.
22641         (*udivmod<mode>4): Ditto.
22642
22643 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
22644
22645         * config/i386/i386.md (maxmin_int): Rename code attribute from
22646         maxminiprefix and update all users.
22647         (maxmin_float): Ditto from maxminfprefix.
22648         (logic): Ditto from logicprefix.
22649         (absneg_mnemonic): Ditto from absnegprefix.
22650         * config/i386/mmx.md: Update all users of maxminiprefix,
22651         maxminfprefix and logicprefix for rename.
22652         * config/i386/sse.md: Ditto.
22653         * config/i386/sync.md (sync_<code><mode>): Update for
22654         logicprefix rename.
22655
22656 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22657
22658         PR 42966
22659         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
22660         warnings converted to errors.
22661
22662 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
22663
22664         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
22665         used insn_type variable.
22666         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
22667         to avoid set-but-not-used warning.
22668
22669 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
22670
22671         * df-core.c (df_ref_debug): Change format string placeholder
22672         from 0x%x to %#x.
22673         * dwarf2asm.c (dw2_asm_output_data_raw,
22674         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
22675         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
22676         * dwarf2out.c (output_cfi, output_cfi_directive,
22677         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
22678         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
22679         Ditto.
22680         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
22681         * print-rtl.c (print_rtx): Ditto.
22682
22683 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
22684
22685         PR middle-end/42694
22686         * builtins.c (expand_builtin_pow_root): New function to expand pow
22687         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
22688         series of sqrt and cbrt calls under -ffast-math.
22689         (expand_builtin_pow): Call it.
22690
22691 2010-04-14  Michael Matz  <matz@suse.de>
22692
22693         PR tree-optimization/42963
22694         * tree-cfg.c (touched_switch_bbs): New static variable.
22695         (group_case_labels_stmt): New function broken out from ...
22696         (group_case_labels): ... here, use the above.
22697         (start_recording_case_labels): Allocate touched_switch_bbs.
22698         (end_recording_case_labels): Deallocate it, call
22699         group_case_labels_stmt.
22700         (gimple_redirect_edge_and_branch): Remember index of affected BB.
22701
22702 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
22703
22704         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
22705         from insn template.
22706
22707 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
22708
22709         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
22710
22711 2010-04-13  Jan Hubicka  <jh@suse.cz>
22712
22713         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
22714         of optimized out static functions.
22715         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
22716         cost computation.  Also sanity check for overflows.
22717         (update_caller_keys): Update cgraph_edge_badness call; properly
22718         update fibheap and sanity check that it is up to date.
22719         (add_new_edges_to_heap): Update cgraph_edge_badness.
22720         (cgraph_decide_inlining_of_small_function): Likewise;
22721         add sanity checking that badness in heap is up to date;
22722         improve dumping of reason; Update badness of calls to the
22723         offline copy of function currently inlined; dump badness
22724         of functions not inlined because of unit growth limits.
22725
22726 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
22727
22728         PR middle-end/32628
22729         * c-common.c (pointer_int_sum): Disregard overflow that occured only
22730         because of sign-extension change when converting to sizetype here...
22731         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
22732
22733         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
22734         the folding to constants.  Remove redundant final conversion.
22735         (fold_binary) <associate>: Do not associate if the re-association of
22736         constants alone overflows.
22737         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
22738         to the end of the list.
22739         (multiple_of_p) <COND_EXPR>: New case.
22740
22741 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22742
22743         * opt-functions.awk (opt_sanitized_name): New.
22744         (opt_enum): New.
22745         * optc-gen.awk: Use it
22746         * opth-gen.awk: Use it.
22747
22748 2010-04-13  Martin Jambor  <mjambor@suse.cz>
22749
22750         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
22751         (sra_modify_assign): Delete stmts loading dead data even if racc has no
22752         children.  Call replace_uses_with_default_def_ssa_name to handle
22753         SSA_NAES on lhs.
22754
22755 2010-04-13  Michael Matz  <matz@suse.de>
22756
22757         PR middle-end/43730
22758         * builtins.c (expand_builtin_interclass_mathfn): Also create
22759         a register if the predicate doesn't match.
22760
22761 2010-04-13  Diego Novillo  <dnovillo@google.com>
22762
22763         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
22764         * c-pch.c: Include timevar.h.
22765         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
22766         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
22767         * ggc-common.c: Include timevar.h.
22768         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
22769         * timevar.def (TV_PCH_SAVE): Define.
22770         (TV_PCH_CPP_SAVE): Define.
22771         (TV_PCH_PTR_REALLOC): Define.
22772         (TV_PCH_PTR_SORT): Define.
22773         (TV_PCH_RESTORE): Define.
22774         (TV_PCH_CPP_RESTORE): Define.
22775
22776 2010-04-13  Michael Matz  <matz@suse.de>
22777
22778         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
22779         into MINUS_EXPRs.
22780         (can_reassociate_p): New function.
22781         (break_up_subtract_bb, reassociate_bb): Use it.
22782
22783 2010-04-13  Richard Guenther  <rguenther@suse.de>
22784
22785         PR bootstrap/43737
22786         * builtins.c (c_readstr): Fix assert.
22787
22788 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
22789
22790         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
22791         when generating cltd insn.
22792
22793         (*ashl<mode>3_1): Remove special handling for register operand 2.
22794         (*ashlsi3_1_zext): Ditto.
22795         (*ashlhi3_1): Ditto.
22796         (*ashlhi3_1_lea): Ditto.
22797         (*ashlqi3_1): Ditto.
22798         (*ashlqi3_1_lea): Ditto.
22799         (*<shiftrt_insn><mode>3_1): Ditto.
22800         (*<shiftrt_insn>si3_1_zext): Ditto.
22801         (*<shiftrt_insn>qi3_1_slp): Ditto.
22802         (*<rotate_insn><mode>3_1): Ditto.
22803         (*<rotate_insn>si3_1_zext): Ditto.
22804         (*<rotate_insn>qi3_1_slp): Ditto.
22805
22806 2010-04-13  Richard Guenther  <rguenther@suse.de>
22807
22808         * tree-ssa-structalias.c (callused_id): Remove.
22809         (call_stmt_vars): New.
22810         (get_call_vi): Likewise.
22811         (lookup_call_use_vi): Likewise.
22812         (lookup_call_clobber_vi): Likewise.
22813         (get_call_use_vi): Likewise.
22814         (get_call_clobber_vi): Likewise.
22815         (make_transitive_closure_constraints): Likewise.
22816         (handle_const_call): Adjust to do per-call call-used handling.
22817         (handle_pure_call): Likewise.
22818         (find_what_var_points_to): Remove general callused handling.
22819         (init_base_vars): Likewise.
22820         (init_alias_vars): Initialize call_stmt_vars.
22821         (compute_points_to_sets): Process call-used and call-clobbered
22822         vars for call statements.
22823         (delete_points_to_sets): Free call_stmt_vars.
22824
22825 2010-04-13  Richard Guenther  <rguenther@suse.de>
22826
22827         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
22828         Only add RW dependence for dependence distance zero.
22829         Adjust maximal vectorization factor according to dependences.
22830         Move alignment handling ...
22831         (vect_find_same_alignment_drs): ... here.  New function.
22832         (vect_analyze_data_ref_dependences): Adjust.
22833         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
22834         (vect_analyze_data_refs): Adjust minimal vectorization factor
22835         according to data references.
22836         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
22837         dependences before determining the vectorization factor.
22838         Analyze alignment after determining the vectorization factor.
22839         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
22840         dependences before alignment.
22841         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
22842         Adjust prototype.
22843         (vect_analyze_data_refs): Likewise.
22844         (MAX_VECTORIZATION_FACTOR): New define.
22845
22846 2010-04-13  Duncan Sands  <baldrick@free.fr>
22847
22848         * except.h (lang_eh_type_covers): Remove.
22849         * except.c (lang_eh_type_covers): Likewise.
22850
22851 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22852             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22853
22854         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
22855         * config/s390/s390.c: Replace UNTIS_PER_WORD with
22856         UNITS_PER_LONG where it is ABI relevant.
22857         (s390_return_addr_rtx): Likewise.
22858         (s390_back_chain_rtx): Likewise.
22859         (s390_frame_area): Likewise.
22860         (s390_frame_info): Likewise.
22861         (s390_initial_elimination_offset): Likewise.
22862         (save_gprs): Likewise.
22863         (s390_emit_prologue): Likewise.
22864         (s390_emit_epilogue): Likewise.
22865         (s390_function_arg_advance): Likewise.
22866         (s390_function_arg): Likewise.
22867         (s390_va_start): Likewise.
22868         (s390_gimplify_va_arg): Likewise.
22869         (s390_function_profiler): Likewise.
22870         (s390_optimize_prologue): Likewise.
22871         (s390_rtx_costs): Likewise.
22872         (s390_secondary_reload): Likewise.
22873         (s390_promote_function_mode): Likewise.
22874         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
22875         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
22876         registers available.
22877         (s390_unwind_word_mode): New function.
22878         (s390_function_value): Split 64 bit values into register pair if
22879         used as return value.
22880         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
22881         function call parameters.  Handle parallels.
22882         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
22883         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
22884         (DWARF_CIE_DATA_ALIGNMENT): New macro.
22885         (s390_expand_setmem): Remove unused variable src_addr.
22886         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
22887         deal with 64 bit registers.
22888         * config/s390/s390.h: Define __zarch__ predefined macro.
22889         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
22890         (UNITS_PER_LONG): New macro.
22891         * libjava/include/s390-signal.h: Define extended ucontext
22892         structure containing the upper halfs of the 64 bit registers.
22893
22894 2010-04-13  Simon Baldwin  <simonb@google.com>
22895
22896         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
22897
22898 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
22899
22900         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
22901         rvalue on the RHS if the LHS is of a non-renamable type.
22902         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
22903
22904 2010-04-13  Matthias Klose  <doko@ubuntu.com>
22905
22906         * gcc.c (cc1_options): Handle -iplugindir before processing
22907         the cc1 spec. Only add -iplugindir once.
22908         (cpp_unique_options): Add -iplugindir option if -fplugin* options
22909         found.
22910         * common.opt (iplugindir): Remove `Separate' property, initialize.
22911         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
22912         option.
22913         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
22914         (distclean): Remove plugin dir.
22915         * doc/invoke.texi: Document -iplugindir.
22916
22917 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
22918
22919         * doc/plugins.texi (Loading Plugins): Document short
22920         -fplugin=foo option.
22921         (Plugin API): Mention default_plugin_dir_name function.
22922
22923         * gcc.c (find_file_spec_function): Add new declaration.
22924         (static_spec_func): Use it for "find-file".
22925         (find_file_spec_function): Add new function.
22926         (cc1_options): Add -iplugindir option if -fplugin* options found.
22927
22928         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
22929
22930         * plugin.c (add_new_plugin): Updated comment, and handle short
22931         plugin name.
22932         (default_plugin_dir_name): Added new function.
22933
22934         * common.opt (iplugindir): New option to set the plugin directory.
22935
22936 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
22937
22938         * config/i386/i386.md (any_rotate): New code iterator.
22939         (rotate_insn): New code attribute.
22940         (rotate): Ditto.
22941         (SWIM124): New mode iterator.
22942         (<rotate_insn>ti3): New expander.
22943         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
22944         any_rotate code iterator.
22945         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
22946         using any_rotate code iterator and SWIM124 mode iterator.
22947         (ix86_rotlti3): New insn_and_split pattern.
22948         (ix86_rotrti3): Ditto.
22949         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
22950         ix86_rotl{di,ti}3 patterns.
22951         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
22952         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
22953         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
22954         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
22955         code iterator and SWI mode iterator.
22956         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
22957         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
22958         code iterator.
22959         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
22960         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
22961         (bswap rotatert splitter): Add splitter.
22962         (bswap splitter): Macroize splitter using any_rotate code iterator.
22963         Add insn predicate to split only for TARGET_USE_XCHGB or when
22964         optimizing function for size.
22965
22966 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
22967
22968         * config/pa/pa.c (emit_move_sequence): Remove use of
22969         deleted variable flag_argument_noalias.
22970
22971 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22972
22973         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
22974         configurations.
22975         Add to unsupported targets list.
22976         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
22977         sparc*-sun-solaris2.[567]* from target lists.
22978         * configure: Regenerate.
22979         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
22980         removal.
22981         Remove Solaris 7 patch references.
22982         (Specific, sparc-sun-solaris2.7): Removed.
22983         (sparc-sun-solaris2*): Update Solaris 7 example.
22984         (sparc64-*-solaris2*): Likewise.
22985
22986 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22987
22988         * config.build (alpha*-dec-osf4*): Remove.
22989         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
22990         of obsolete configurations.
22991         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
22992         support.
22993         * config/alpha/t-osf4: Renamed to ...
22994         * config/alpha/t-osf5: ... this.
22995         * config/alpha/osf.h: Renamed to ...
22996         * config/alpha/osf5.h: ... this.
22997         Merged old osf5.h contents.
22998         Update comments.
22999         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
23000         (EXTRA_SPECS): Removed.
23001         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
23002         reflect removal of Tru64 UNIX V4.0/V5.0 support.
23003         Document that.
23004
23005 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23006
23007         * doc/contrib.texi (Contributors, Rainer Orth): Update.
23008
23009 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
23010
23011         PR/43702
23012         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
23013         __thiscall convention.
23014
23015 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
23016
23017         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
23018         orig_base.
23019         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
23020
23021 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
23022
23023         * function.c (assign_parms_initialize_all): Add unused attribute
23024         to fntype.
23025
23026 2010-04-12  Richard Guenther  <rguenther@suse.de>
23027
23028         * gsstruct.def (GSS_CALL): New.
23029         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
23030         * gimple.h: Include tree-ssa-alias.h.
23031         (struct gimple_statement_call): New.
23032         (union gimple_statement_struct_d): Add gimple_call member.
23033         (gimple_call_reset_alias_info): Declare.
23034         (gimple_call_use_set): New function.
23035         (gimple_call_clobber_set): Likewise.
23036         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
23037         * gimple.c (gimple_call_reset_alias_info): New function.
23038         (gimple_build_call_1): Call it.
23039         * lto-streamer-in.c (input_gimple_stmt): Likewise.
23040         * tree-inline.c (remap_gimple_stmt): Likewise.
23041         (expand_call_inline): Remove callused handling.
23042         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
23043         * tree-dfa.c (dump_variable): Likewise.
23044         * tree-parloops.c (parallelize_loops): Likewise.
23045         * tree-ssa.c (init_tree_ssa): Likewise.
23046         (delete_tree_ssa): Likewise.
23047         * tree-flow-inline.h (is_call_used): Remove.
23048         * tree-flow.h (struct gimple_df): Remove callused member.
23049         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
23050         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
23051         (ref_maybe_used_by_call_p_1): Simplify.
23052         (call_may_clobber_ref_p_1): Likewise.
23053         * tree-ssa-structalias.c (compute_points_to_sets): Set
23054         the call stmt used and clobbered sets.
23055         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
23056         (find_tail_calls): Verify the tail call.
23057
23058 2010-04-12  Richard Guenther  <rguenther@suse.de>
23059
23060         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
23061         single-iteration always-inline inlining.
23062         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
23063         (cgraph_decide_inlining): Do not handle always-inline specially.
23064         (try_inline): Remove always-inline cycle detection special case.
23065         Do not recurse on always-inlines.
23066         (cgraph_early_inlining): Do not iterate if not optimizing.
23067         (cgraph_gate_early_inlining): remove.
23068         (pass_early_inline): Run unconditionally.
23069         (gate_cgraph_decide_inlining): New function.
23070         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
23071         not inlining or optimizing.
23072         (cgraph_decide_inlining_of_small_functions): Also consider
23073         always-inline functions.
23074         (cgraph_default_inline_p): Return true for nodes which should
23075         disregard inline limits.
23076         (estimate_function_body_sizes): Assume zero size and time for
23077         nodes which are marked as disregarding inline limits.
23078         (cgraph_decide_recursive_inlining): Do not perform recursive
23079         inlining on always-inline nodes.
23080
23081 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
23082
23083         PR bootstrap/43699
23084         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
23085         for exprs satisfying handled_component_p.
23086
23087 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
23088
23089         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
23090         non-constant aggregate elements.
23091
23092         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
23093         is a real initialization.
23094
23095 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
23096
23097         PR c/36774
23098         * c-decl.c (start_function): Move forward check for nested function.
23099
23100 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
23101
23102         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
23103         * config/sh/sh.c: Include reload.h.
23104         (sh_legitimize_reload_address): New.
23105         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
23106         sh_legitimize_reload_address.
23107
23108 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
23109
23110         * config/sh/sh.md (*movqi_pop): New insn pattern.
23111         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
23112
23113 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
23114
23115         * config/i386/i386.md (any_shiftrt): New code iterator.
23116         (shiftrt_insn): New code attribute.
23117         (shiftrt): Ditto.
23118         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
23119         using any_shiftrt code iterator.
23120         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
23121         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
23122         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
23123         pattern from corresponding peephole2 patterns.
23124         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
23125         using any_shiftrt code iterator.
23126         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
23127         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
23128         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
23129         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
23130         *{ashr,lshr}<mode>3_cmp_zext.
23131         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
23132
23133 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
23134
23135         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
23136         scratch register.
23137         (*lshr<mode>3_cconly): Ditto.
23138
23139 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
23140
23141         * config/i386/i386.md (lshr<mode>3): Macroize expander from
23142         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
23143         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
23144         pattern from *lshr{di,ti}3_1 and corresponding splitters using
23145         DWI mode iterator.
23146         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
23147         from corresponding peephole2 patterns.
23148         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
23149         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
23150         and *lshrdi3_1_rex64 using SWI mode iterator.
23151         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
23152         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
23153         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
23154         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
23155         and *lshrdi3_cmp_rex64 using SWI mode iterator.
23156         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
23157         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
23158         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
23159         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
23160         SWI mode iterator.
23161
23162 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
23163
23164         * config/i386/i386.md (ashr<mode>3): Macroize expander from
23165         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
23166         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
23167         pattern from *ashr{di,ti}3_1 and corresponding splitters using
23168         DWI mode iterator.
23169         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
23170         from corresponding peephole2 patterns.
23171         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
23172         (ashrsi3_cvt): Rename from ashrsi3_31.
23173         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
23174         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
23175         and x86_64_shift_adj_3 using SWI48 mode iterator.
23176         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
23177         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
23178         and *ashrdi3_1_rex64 using SWI mode iterator.
23179         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
23180         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
23181         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
23182         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
23183         and *ashrdi3_cmp_rex64 using SWI mode iterator.
23184         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
23185         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
23186         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
23187         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
23188         SWI mode iterator.
23189         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
23190         * config/i386/i386.c (ix86_split_ashr): Update for renamed
23191         x86_shift<mode>_adj_3 expanders.
23192
23193 2010-04-10  Wei Guozhi  <carrot@google.com>
23194
23195         PR target/42601
23196         * config/arm/arm.c (arm_pic_static_addr): New function.
23197         (legitimize_pic_address): Call arm_pic_static_addr when it detects
23198         a static symbol.
23199         (arm_output_addr_const_extra): Output expression for new pattern.
23200         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
23201
23202 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
23203
23204         * ira-costs.c (record_reg_classes): Ignore alternatives that are
23205         not enabled.
23206
23207         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
23208         * web.c: Include "insn-config.h" and "recog.h".
23209         (union_match_dups): New function.
23210         (web_main): Call it.
23211         (union_defs): Don't try to recognize match_dups.
23212
23213         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
23214         if doing so would replace the entire pattern.
23215
23216 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
23217
23218         PR target/43707
23219         PR target/43709
23220         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
23221         and splitter pattern.  Change splitter operand 1 predicate to
23222         nonmemory_operand.
23223
23224 2010-04-09  Martin Jambor  <mjambor@suse.cz>
23225
23226         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
23227         lattices are addresses of CONST_DECLs with the same initial value.
23228         (ipcp_print_all_lattices): Print values of CONST_DECLs.
23229         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
23230
23231 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
23232             Bernd Schmidt  <bernds@codesourcery.com>
23233
23234         * loop-invariant.c (replace_uses): New static function.
23235         (move_invariant_reg): Use it to ensure we can replace the uses.
23236
23237 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
23238
23239         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
23240         function template.
23241         (picochip_override_options): Enable section anchors only above -O1.
23242         (picochip_reorg): Fixed a couple of build warnings.
23243
23244 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23245
23246         * configure.ac (plugin -rdynamic test): Log result.
23247         * configure: Regenerate.
23248         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
23249         (RDYNAMIC_SPEC): Define.
23250         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
23251
23252 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23253
23254         * configure.ac: Determine Sun ld version numbers.
23255         (comdat_group): Restrict GNU ld version checks to gld.
23256         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
23257         (enable_comdat): Support --enable-comdat.
23258         * configure: Regenerate.
23259         * doc/install.texi (Configuration): Document --enable-comdat.
23260
23261 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23262
23263         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
23264         * config/sol2-gld.h: ... here.
23265         * config.gcc (sparc*-*-solaris2*): Reflect this.
23266         (i[34567]86-*-solaris2*): Use it.
23267
23268 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
23269
23270         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
23271         setup_clocks_p.
23272         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
23273
23274 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23275
23276         PR 42965
23277         * diagnostic.c (diagnostic_initialize): Initialize
23278         some_warnings_are_errors.
23279         (diagnostic_finish): New.
23280         (diagnostic_action_after_output): Call it before exiting.
23281         (diagnostic_report_diagnostic): Do not print message here. Set
23282         some_warnings_are_errors.
23283         * diagnostic.h (diagnostic_context): Delete
23284         issue_warnings_are_errors_message. Add some_warnings_are_errors.
23285         (diagnostic_finish): Declare.
23286         * toplev.c (toplev_main): Call it before exit.
23287
23288 2010-04-09  Jason Merrill  <jason@redhat.com>
23289
23290         PR c++/42623
23291         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
23292         for incomplete type.
23293
23294         PR c++/41788
23295         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
23296         based on a warning flag.
23297
23298 2010-04-09  Richard Guenther  <rguenther@suse.de>
23299
23300         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
23301
23302 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
23303
23304         PR bootstrap/43684
23305         * varasm.c (default_assemble_visibility): Wrap vars that are
23306         set, but unused, by targets without GAS.
23307         * config/rs6000/rs6000.c (paired_emit_vector_compare):
23308         Remove set, but unused, vars.
23309         (rs6000_legitimize_tls_address): Likewise.
23310         (altivec_expand_dst_builtin): Likewise.
23311         * config/darwin.c (machopic_classify_symbol): Likewise.
23312         (machopic_indirection_name): Likewise.
23313
23314 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
23315
23316         * config/i386/i386.md (DWI): New mode iterator.
23317         (S): New mode attribute.
23318         (shift_operand): Ditto.
23319         (shift_immediate_operand): Ditto.
23320         (ashl_input_operand): Ditto.
23321         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
23322         using SDWIM mode iterator.
23323         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
23324         pattern from *ashl{di,ti}3_1 and corresponding splitters using
23325         DWI mode iterator.
23326         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
23327         from corresponding peephole2 patterns.
23328         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
23329         and x86_64_shift_adj_1 using SWI48 mode iterator.
23330         (x86_shift<mode>_adj_2): Ditto.
23331         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
23332         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
23333         using SWI48 mode iterator.
23334         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
23335         *ashldi3_cmp_rex64 using SWI mode iterator.
23336         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
23337         *ashldi3_cconly_rex64 using SWI mode iterator.
23338         * config/i386/i386.c (ix86_split_ashl): Update for renamed
23339         x86_shift<mode>_adj_{1,2}.
23340         (ix86_split_ashr): Ditto.
23341         (ix86_split_lshr): Ditto.
23342
23343 2010-04-09  Richard Guenther  <rguenther@suse.de>
23344
23345         * target.h (builtin_conversion): Pass in input and output types.
23346         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
23347         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
23348         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
23349         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
23350
23351         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
23352         Handle AVX modes.
23353         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
23354
23355 2010-04-09  Richard Guenther  <rguenther@suse.de>
23356
23357         PR target/43152
23358         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
23359
23360 2010-04-09  Richard Guenther  <rguenther@suse.de>
23361
23362         * tree-vectorizer.h (struct _stmt_vec_info): Document
23363         that vectype is the type of the LHS.
23364         (supportable_widening_operation, supportable_narrowing_operation):
23365         Get both input and output vector types as arguments.
23366         (vect_is_simple_use_1): Declare.
23367         (get_same_sized_vectype): Likewise.
23368         * tree-vect-loop.c (vect_determine_vectorization_factor):
23369         Set STMT_VINFO_VECTYPE to the vector type of the def.
23370         (vectorizable_reduction): Adjust.
23371         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
23372         Adjust.  Specify the output vector type.
23373         (vect_pattern_recog_1): Adjust.
23374         * tree-vect-stmts.c (get_same_sized_vectype): New function.
23375         (vectorizable_call): Adjust.
23376         (vectorizable_conversion): Likewise.
23377         (vectorizable_operation): Likewise.
23378         (vectorizable_type_demotion): Likewise.
23379         (vectorizable_type_promotion): Likewise.
23380         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
23381         the def.
23382         (vect_is_simple_use_1): New function.
23383         (supportable_widening_operation): Get both input and output
23384         vector types.
23385         (supportable_narrowing_operation): Likewise.
23386         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
23387
23388 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
23389
23390         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
23391         __thiscall and _thiscall as predefined macros.
23392         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
23393         thiscall attribute handling.
23394         (ix86_comp_type_attributes): Likewise.
23395         (ix86_function_regparm): Likewise.
23396         (ix86_return_pops_args): Likewise.
23397         (init_cumulative_args): Likewise.
23398         (find_drap_reg): Likewise.
23399         (ix86_static_chain): Likewise.
23400         (x86_this_parameter): Likewise.
23401         (x86_output_mi_thunk): Likewise.
23402         (ix86_attribute_table): Add description for thiscall attribute.
23403         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
23404         * doc/extend.texi: Add documentation for thiscall.
23405
23406 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23407
23408         PR c++/28584
23409         * c.opt (Wint-to-pointer-cast): Available in C++.
23410         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
23411
23412 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
23413
23414         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
23415         * calls.c (expand_call): Pass the function type to aggregate_value_p.
23416         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
23417         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
23418         function type instead.  Reorder and simplify checks.
23419
23420         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
23421
23422 2010-04-08  Jing Yu  <jingyu@google.com>
23423             Zdenek Dvorak  <ook@ucw.cz>
23424
23425         PR tree-optimization/42720
23426         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
23427         loop unswitch conditions here from ...
23428         (tree_unswitch_single_loop): ... here.
23429
23430 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
23431
23432         * tree-if-conv.c: Fix comments and simplify logic.
23433
23434 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
23435
23436         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
23437         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
23438         (main_tree_if_conversion): Update call to tree_if_conversion.
23439
23440 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23441
23442         PR 42485
23443         * doc/invoke.texi (-b,-V): Delete.
23444         * doc/tm.texi: Do not mention -b.
23445         * gcc.c (display_help): Delete -b and -V.
23446         (process_command): Delete -b and -V.
23447         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
23448
23449 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
23450             Wolfgang Gellerich  <gellerich@de.ibm.com>
23451
23452         Implement target hook for loop unrolling
23453         * target.h (loop_unroll_adjust): Add a new target hook function.
23454         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
23455         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
23456         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
23457         (s390_loop_unroll_adjust): Implement the new target hook for s390.
23458         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
23459         target hook.
23460         (decide_unroll_stupid): Likewise.
23461
23462 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23463
23464         PR target/43643
23465         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
23466
23467 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23468
23469         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
23470         (Specific, *-*-solaris2*): Likewise.
23471         Don't prefer Sun as over GNU as.
23472
23473 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
23474
23475         * config/s390/s390.c (override_options): Adjust the z10 defaults
23476         for max-unroll-times, max-completely-peeled-insns
23477         and max-completely-peel-times.
23478
23479 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23480
23481         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
23482         instructions for z10.
23483         (s390_expand_setmem): Likewise.
23484         (s390_expand_cmpmem): Likewise.
23485
23486 2010-04-08  Richard Guenther  <rguenther@suse.de>
23487
23488         PR tree-optimization/43679
23489         * tree-ssa-pre.c (eliminate): Only propagate copies.
23490
23491 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
23492
23493         PR bootstrap/43681
23494         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
23495         set but not used variable warning.
23496
23497 2010-04-08  Wei Guozhi  <carrot@google.com>
23498
23499         PR target/41653
23500         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
23501         (arm_size_rtx_costs): Call the new function when optimized for size.
23502
23503 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
23504
23505         PR debug/43670
23506         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
23507         op0 is not a MEM, just return NULL instead of assertion
23508         failure.
23509         (discover_nonconstant_array_refs): Don't walk debug stmts.
23510
23511 2010-04-08  Doug Kwan  <dougkwan@google.com>
23512
23513         * configure.ac: Recognize gold and do not use its version number
23514         to test ld features.
23515         * configure: Regenerate.
23516
23517 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
23518
23519         PR middle-end/40815
23520         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
23521         (negate_value): Move code to push elements to broken_up_substracts ...
23522         (eliminate_plus_minus_pair): ... here.  Push operands that have no
23523         negative pair to plus_negates.
23524         (repropagate_negates, init_reassoc, fini_reassoc): Update.
23525
23526 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23527
23528         * doc/install.texi (Configuration): Move description of
23529         --enable-lto, --with-libelf*, --enable-gold from Java section to
23530         general section.
23531
23532         * doc/generic.texi (Working with declarations)
23533         (Function Properties, C and C++ Trees): Fix typos.
23534         * doc/sourcebuild.texi (Top Level): Likewise.
23535
23536 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
23537
23538         PR c/18624
23539         * tree.h (DECL_READ_P): Define.
23540         (struct tree_decl_common): Add decl_read_flag.
23541         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
23542         a set but not used warning.
23543         (merge_decls): Merge DECL_READ_P flag.
23544         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
23545         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
23546         * c-common.c (handle_used_attribute, handle_unused_attribute):
23547         Likewise.
23548         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
23549         New prototypes.
23550         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
23551         New functions.
23552         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
23553         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
23554         c_parser_binary_expression, c_parser_cast_expression,
23555         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
23556         Call default_function_array_read_conversion instead of
23557         default_function_array_conversion where needed.
23558         (c_parser_unary_expression, c_parser_conditional_expression,
23559         c_parser_postfix_expression_after_primary, c_parser_initelt):
23560         Likewise.  Call mark_exp_read where needed.
23561         (c_parser_statement_after_labels, c_parser_asm_operands,
23562         c_parser_typeof_specifier, c_parser_sizeof_expression,
23563         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
23564         where needed.
23565         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
23566         New.
23567         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
23568         (warn_unused_but_set_parameter): Default to warn_unused
23569         && extra_warnings.
23570         * doc/invoke.texi: Document -Wunused-but-set-variable and
23571         -Wunused-but-set-parameter.
23572
23573         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
23574         used count variable.
23575         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
23576         when operandN variables aren't used in the body of the expander
23577         or splitter.
23578         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
23579         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
23580         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
23581         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
23582         FOR_EACH_IMM_USE_ON_STMT): Likewise.
23583         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
23584         * tree.c (PROCESS_ARG): Likewise.
23585
23586 2010-04-07  Simon Baldwin  <simonb@google.com>
23587
23588         * diagnostic.h (diagnostic_override_option_index): New macro to
23589         set a diagnostic's option_index.
23590         * c-tree.h (c_cpp_error): Add warning reason argument.
23591         * opts.c (_warning_as_error_callback): New.
23592         (register_warning_as_error_callback): Store callback for
23593         warnings enabled via enable_warning_as_error.
23594         (enable_warning_as_error): Call callback, minor code tidy.
23595         * opts.h (register_warning_as_error_callback): Declare.
23596         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
23597         response to -Werror=.
23598         (c_common_init_options): Register warning_as_error_callback in opts.c.
23599         * common.opt: Add -Wno-cpp option.
23600         * c-common.c (struct reason_option_codes_t): Map cpp warning
23601         reason codes to gcc option indexes.
23602         * (c_option_controlling_cpp_error): New function, lookup the gcc
23603         option index for a cpp warning reason code.
23604         * (c_cpp_error): Add warning reason argument, call
23605         c_option_controlling_cpp_error for diagnostic_override_option_index.
23606         * doc/invoke.texi: Document -Wno-cpp.
23607
23608 2010-04-07  Richard Guenther  <rguenther@suse.de>
23609
23610         * ipa-reference.c (mark_load): Use get_base_address.
23611         (mark_store): Likewise.
23612
23613         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
23614         inserting GIMPLE_NOPs into the IL.
23615         * tree-ssa-structalias.c (get_constraint_for_component_ref):
23616         Explicitly strip handled components and indirect references.
23617
23618         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
23619         folding address expressions.
23620         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
23621         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
23622         operand_equal_p to compare decls.
23623         (ptr_deref_may_alias_decl_p): Likewise.
23624         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
23625         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
23626         Handle reversed comparison ops.
23627         * tree-sra.c (asm_visit_addr): Use get_base_address.
23628         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
23629         * ipa-reference.c (mark_address): Use get_base_address.
23630
23631 2010-04-07  Richard Guenther  <rguenther@suse.de>
23632
23633         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
23634         Propagate constants everywhere.
23635
23636 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
23637
23638         PR debug/43516
23639         * tree.c (MAX_INT_CACHED_PREC): Define.
23640         (nonstandard_integer_type_cache): New array.
23641         (build_nonstandard_integer_type): Cache results for precision
23642         <= MAX_INT_CACHED_PREC.
23643
23644 2010-04-07  Richard Guenther  <rguenther@suse.de>
23645
23646         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
23647         -fargument-noalias-global, -fargument-noalias-anything): Remove.
23648         * common.opt: Likewise.
23649         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
23650         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
23651         (nonoverlapping_memrefs_p): Likewise.
23652         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
23653         * opts.c (common_handle_option): Handle OPT_fargument_alias,
23654         OPT_fargument_noalias, OPT_fargument_noalias_anything and
23655         OPT_fargument_noalias_global for backward compatibility.
23656
23657 2010-04-07  Richard Guenther  <rguenther@suse.de>
23658
23659         PR tree-optimization/43270
23660         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
23661         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
23662         * tree-ssa-pre.c (phi_translate_1): Adjust.
23663         (fully_constant_expression): Split out vn_reference handling to ...
23664         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
23665         Fold reads from constant strings.
23666         (vn_reference_lookup): Handle fully constant references.
23667         (vn_reference_lookup_pieces): Likewise.
23668         * Makefile.in (expmed.o-warn): Add -Wno-error.
23669
23670 2010-04-07  Martin Jambor  <mjambor@suse.cz>
23671
23672         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
23673
23674 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
23675
23676         PR driver/41594
23677         * gcc.c: Add -static-libstdc++ to list of recognized options.
23678
23679 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23680
23681         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
23682
23683 2010-04-07  Richard Guenther  <rguenther@suse.de>
23684
23685         PR middle-end/42617
23686         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
23687         bases build simple mem attributes to retain points-to information.
23688
23689 2010-04-07  Richard Guenther  <rguenther@suse.de>
23690
23691         PR middle-end/42617
23692         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
23693         preserve points-to related information.
23694
23695 2010-04-07  Richard Guenther  <rguenther@suse.de>
23696
23697         PR middle-end/42617
23698         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
23699         discard plain indirect references.
23700         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
23701         * tree.c (tree_nop_conversion): Likewise.
23702
23703 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
23704
23705         PR debug/43628
23706         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
23707
23708 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
23709
23710         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
23711         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
23712
23713 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
23714
23715         * tree-if-conv.c: Fix indentation and comments.
23716
23717 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
23718
23719         * tree-if-conv.c: Sort static functions in topological order.
23720
23721 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
23722
23723         * tree-if-conv.c: Fix indentation and comments.
23724
23725 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
23726
23727         PR middle-end/43519
23728         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
23729         lang_hooks.types.type_for_size instead of
23730         build_nonstandard_integer_type.
23731         When converting an unsigned type to signed, double its precision.
23732         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
23733         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
23734         (graphite_create_new_loop_guard): When ub + 1 wraps around,
23735         use lb <= ub.
23736
23737 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
23738
23739         PR middle-end/43519
23740         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
23741         POINTER_PLUS_EXPR for pointer types.
23742
23743 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
23744
23745         PR middle-end/43519
23746         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
23747         * graphite-clast-to-gimple.c: Include langhooks.h.
23748         (max_signed_precision_type): New.
23749         (max_precision_type): Takes two types as arguments.
23750         (precision_for_value): New.
23751         (precision_for_interval): New.
23752         (gcc_type_for_interval): New.
23753         (gcc_type_for_value): New.
23754         (gcc_type_for_clast_term): New.
23755         (gcc_type_for_clast_red): New.
23756         (gcc_type_for_clast_bin): New.
23757         (gcc_type_for_clast_expr): Split up into several functions.
23758         (gcc_type_for_clast_eq): Rewritten.
23759         (compute_bounds_for_level): New.
23760         (compute_type_for_level_1): New.
23761         (compute_type_for_level): New.
23762         (gcc_type_for_cloog_iv): Removed.
23763         (gcc_type_for_iv_of_clast_loop): Rewritten.
23764         (graphite_create_new_loop): Compute the lower and upper bound types
23765         with gcc_type_for_clast_expr.
23766         (graphite_create_new_loop_guard): Same.
23767         (find_cloog_iv_in_expr): Removed.
23768         (compute_cloog_iv_types_1): Removed.
23769         (compute_cloog_iv_types): Removed.
23770         (gloog): Do not call compute_cloog_iv_types.
23771         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
23772         GBB_CLOOG_IV_TYPES.
23773         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
23774         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
23775         (GBB_CLOOG_IV_TYPES): Removed.
23776
23777 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
23778
23779         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
23780         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
23781         (detect_commutative_reduction): Same.
23782
23783 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
23784
23785         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
23786         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
23787         argument.
23788         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
23789         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
23790         (rewrite_commutative_reductions_out_of_ssa): Same.
23791         * passes.c (execute_function_todo): Call verify_ssa for every pass
23792         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
23793         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
23794         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
23795         with an extra argument.
23796         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
23797         verify_ssa only when the extra argument is true.
23798         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
23799         with an extra argument.
23800         (tree_transform_and_unroll_loop): Same.
23801
23802 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
23803
23804         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
23805         for all the passes of the LNO having LOOP_CLOSED_SSA.
23806         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
23807         * tree-loop-distribution.c (pass_loop_distribution): Same.
23808         * tree-pass.h (TODO_verify_loops): Removed.
23809         * tree-ssa-loop.c (pass_tree_loop_init): Same.
23810         (pass_lim): Same.
23811         (pass_tree_unswitch): Same.
23812         (pass_predcom): Same.
23813         (pass_vectorize): Same.
23814         (pass_linear_transform): Same.
23815         (pass_graphite_transforms): Same.
23816         (pass_iv_canon): Same.
23817         (pass_complete_unroll): Same.
23818         (pass_complete_unrolli): Same.
23819         (pass_parallelize_loops): Same.
23820         (pass_loop_prefetch): Same.
23821         (pass_iv_optimize): Same.
23822
23823 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
23824
23825         PR middle-end/32824
23826         * passes.c (init_optimization_passes): Move pass_lim before
23827         pass_copy_prop and pass_dce_loop.
23828
23829 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
23830
23831         PR target/43667
23832         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
23833         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
23834         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
23835         MULTI_* defines for 4 argument vpermil2p* builtins.
23836
23837 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
23838
23839         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
23840         * config/i386/i386.c (x86_maybe_negate_const_int): New.
23841         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
23842         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
23843         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
23844         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
23845         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
23846         Use x86_maybe_negate_const_int to output insn mnemonic.
23847         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
23848         check from instruction predicate.  Update comments.
23849         * config/i386/sync.md (sync_add<mode>): Use
23850         x86_maybe_negate_const_int to output insn mnemonic.
23851
23852 2010-04-06  Jan Hubicka  <jh@suse.cz>
23853
23854         PR tree-optimization/42906
23855         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
23856         IGNORE_SELF argument.  Set visited_control_parents for fully
23857         processed BBs.
23858         (find_obviously_necessary_stmts): Update call of
23859         mark_control_dependent_edges_necessary.
23860         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
23861
23862 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
23863
23864         * config/i386/i386.md: Remove comment about 'e' and 'E'
23865         operand modifier.
23866
23867 2010-04-06  Richard Guenther  <rguenther@suse.de>
23868
23869         PR tree-optimization/43627
23870         * tree-vrp.c (extract_range_from_unary_expr): Widenings
23871         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
23872         not varying.
23873
23874 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
23875
23876         * BASE-VER: Change to 4.6.0.
23877
23878         PR target/43638
23879         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
23880         handling.
23881
23882 2010-04-06  Richard Guenther  <rguenther@suse.de>
23883
23884         PR middle-end/43661
23885         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
23886
23887 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23888
23889         * doc/invoke.texi (Optimize Options): Document that LTO
23890         won't remove object access purely due to incompatible
23891         declarations.
23892
23893 2010-04-04  Matthias Klose  <doko@ubuntu.com>
23894
23895         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
23896         Initialize variable.
23897
23898 2010-04-03  Richard Guenther  <rguenther@suse.de>
23899
23900         PR middle-end/42509
23901         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
23902         require a non-NULL MEM_OFFSET.
23903
23904 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
23905
23906         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
23907         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
23908         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
23909         config/alpha/predicates.md, config/arm/arm.md,
23910         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
23911         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
23912         config/darwin9.h, config/darwin.c, config/darwin.h,
23913         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
23914         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
23915         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
23916         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
23917         config/mips/mips.md, config/mn10300/mn10300.c,
23918         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
23919         config/rs6000/aix.h, config/rs6000/dfp.md,
23920         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
23921         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
23922         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
23923         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
23924         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
23925         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
23926         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
23927         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
23928         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
23929         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
23930         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
23931         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
23932         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
23933         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
23934         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
23935         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
23936         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
23937         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
23938         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
23939         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
23940         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
23941         opt-functions.awk, opth-gen.awk, params.def, passes.c,
23942         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
23943         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
23944         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
23945         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
23946         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
23947         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
23948         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
23949         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
23950         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
23951         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
23952         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
23953         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
23954         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
23955         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
23956
23957 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23958
23959         PR other/43620
23960         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
23961         * aclocal.m4: Regenerate.
23962
23963 2010-04-02  Richard Guenther  <rguenther@suse.de>
23964
23965         PR tree-optimization/43629
23966         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
23967         if we have seen a constant value.
23968
23969 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
23970
23971         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
23972
23973 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
23974
23975         PR target/43469
23976         * arm.c (legitimize_tls_address): Adjust call to
23977         gen_tls_load_dot_plus_four.
23978         (arm_note_pic_base): New function.
23979         (arm_cannot_copy_insn_p): Use it.
23980         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
23981         constraint.
23982
23983 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23984
23985         PR bootstrap/43531
23986
23987         Revert:
23988         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23989
23990         * Makefile.in ($(out_object_file)): Depend on
23991         gt-$(basename $(notdir $(out_file))).h.
23992
23993 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
23994
23995         * config.gcc (lm32-*-rtems*): Add t-lm32.
23996
23997 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
23998
23999         * config.gcc: Add lm32-*-rtems*.
24000         * config/lm32/rtems.h: New file.
24001
24002 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
24003
24004         PR target/42609
24005         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
24006
24007 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
24008
24009         * dwarf2out.c (output_compilation_unit_header): For
24010         -gdwarf-4 use version 4 instead of version 3.
24011         (output_line_info): For version 4 and above emit additional
24012         maximum ops per insn header field.
24013         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
24014
24015         * dwarf2out.c (is_c_family, is_java): Remove.
24016         (lower_bound_default): New function.
24017         (add_bound_info, gen_descr_array_type_die): Use it.
24018
24019 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
24020
24021         PR debug/43325
24022         * dwarf2out.c (gen_variable_die): Allow debug info for variable
24023         re-declaration when it happens in a function.
24024
24025 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
24026
24027         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
24028         (cgraph_remove_function_insertion_hook): Same.
24029         (cgraph_call_function_insertion_hooks): Same.
24030
24031 2010-04-01  Richard Guenther  <rguenther@suse.de>
24032
24033         PR middle-end/43614
24034         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
24035         and TREE_THIS_VOLATILE.
24036         (copy_ref_info): Likewise.
24037         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
24038         * tree.c (build6_stat): Ignore side-effects of all but arg5
24039         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
24040         TARGET_MEM_REF.
24041
24042 2010-04-01  Richard Guenther  <rguenther@suse.de>
24043
24044         PR tree-optimization/43607
24045         * ipa-type-escape.c (check_call): Do not access non-existing
24046         arguments.
24047
24048 2010-04-01  Richard Guenther  <rguenther@suse.de>
24049
24050         PR middle-end/43602
24051         Revert
24052         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
24053                     Jack Howarth  <howarth@bromo.med.uc.edu>
24054
24055         * tree-profile.c (tree_init_ic_make_global_vars): Make static
24056         variables TLS.
24057
24058 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24059
24060         * doc/install.texi (Prerequisites): Document libelf usability on
24061         IRIX 5/6 and Solaris 2.
24062         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
24063         Update GNU as, GNU ld requirements.
24064         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
24065         Document Sun Studio compiler download.
24066         Update and simplify as, ld recommendations.
24067         (Specific, *-*-solaris2.7): Note obsoletion, removal.
24068
24069 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24070
24071         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
24072         with_tune_32 to pentium4.
24073
24074 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
24075
24076         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
24077
24078 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24079
24080         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
24081         obsoletion, removal.
24082         Update IDO URL.
24083         Document GNU as requirement.
24084         Update configure requirements.
24085         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
24086         Recomment IRIX 6.5.18+.
24087         Document IDF/IDL requirement.
24088         Document GNU as requirement.
24089         Document GNU ld bootstrap failure.
24090         Remove freeware.sgi.com reference.
24091
24092 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24093
24094         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
24095         UNIX V4.0, V5.0 obsoletion, removal.
24096         Remove --with-gc=simple reference.
24097         Update VM requirements during bootstrap.
24098         Remove -oldas bootstrap description.
24099         Update binutils reference.
24100         Remove comparison failure note.
24101
24102 2010-03-31  Richard Guenther  <rguenther@suse.de>
24103             Zdenek Dvorak  <ook@ucw.cz>
24104             Sebastian Pop  <sebastian.pop@amd.com>
24105
24106         PR middle-end/43464
24107         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
24108         with multiple arguments.
24109         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
24110
24111 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
24112
24113         * graphite-dependences.c (print_pddr): Call print_pdr with an
24114         extra argument.
24115         * graphite-poly.c (debug_pdr): Add an extra argument for the
24116         verbosity level.
24117         (print_pdr): Same.
24118         (print_pbb_domain): Same.
24119         (print_pbb): Same.
24120         (print_scop_context): Same.
24121         (print_scop): Same.
24122         (print_cloog): Same.
24123         (debug_pbb_domain): Same.
24124         (debug_pbb): Same.
24125         (print_pdrs): Same.
24126         (debug_pdrs): Same.
24127         (debug_scop_context): Same.
24128         (debug_scop): Same.
24129         (debug_cloog): Same.
24130         (print_scop_params): Same.
24131         (debug_scop_params): Same.
24132         (print_iteration_domain): Same.
24133         (print_iteration_domains): Same.
24134         (debug_iteration_domain): Same.
24135         (debug_iteration_domains): Same.
24136         (print_scattering_function): Same.
24137         (print_scattering_functions): Same.
24138         (debug_scattering_function): Same.
24139         (debug_scattering_functions): Same.
24140         * graphite-poly.h (debug_pdr): Update declaration.
24141         (print_pdr): Same.
24142         (print_pbb_domain): Same.
24143         (print_pbb): Same.
24144         (print_scop_context): Same.
24145         (print_scop): Same.
24146         (print_cloog): Same.
24147         (debug_pbb_domain): Same.
24148         (debug_pbb): Same.
24149         (print_pdrs): Same.
24150         (debug_pdrs): Same.
24151         (debug_scop_context): Same.
24152         (debug_scop): Same.
24153         (debug_cloog): Same.
24154         (print_scop_params): Same.
24155         (debug_scop_params): Same.
24156         (print_iteration_domain): Same.
24157         (print_iteration_domains): Same.
24158         (debug_iteration_domain): Same.
24159         (debug_iteration_domains): Same.
24160         (print_scattering_function): Same.
24161         (print_scattering_functions): Same.
24162         (debug_scattering_function): Same.
24163         (debug_scattering_functions): Same.
24164
24165 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
24166
24167         * graphite-poly.c (print_scattering_function_1): New.
24168         (print_scattering_function): Call it.
24169         (print_scop_params): Remove spaces at the end of lines.
24170         (print_cloog): New.
24171         (debug_cloog): New.
24172         * graphite-poly.h (print_cloog): Declared.
24173         (debug_cloog): Declared.
24174
24175 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
24176
24177         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
24178         in loop->header.
24179         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
24180         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
24181         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
24182         to switch between adding the IV bump in loop->latch or in loop->header.
24183
24184 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
24185
24186         * graphite-poly.c (print_scattering_function): Pretty print following
24187         the scoplib format.
24188         (print_pdr): Same.
24189         (print_pbb_domain): Same.
24190         (dump_gbb_cases): Same.
24191         (dump_gbb_conditions): Same.
24192         (print_pdrs): Same.
24193         (print_pbb): Same.
24194         (print_scop_params): Same.
24195         (print_scop_context): Same.
24196         (print_scop): Same.
24197         (print_pbb_body): New.
24198         (lst_indent_to): New.
24199         (print_lst): Start new lines with a #.
24200         * graphite-poly.h (pbb_bb): New.
24201         (pbb_index): Use pbb_bb.
24202         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
24203         disjuncts.
24204         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
24205
24206 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
24207
24208         * dwarf2out.c (size_of_die): For -gdwarf-4 use
24209         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
24210         and 0 instead of 1 for dw_val_class_flag.
24211         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
24212         dw_val_class_range_list, dw_val_class_loc_list,
24213         dw_val_class_lineptr and dw_val_class_macptr, use
24214         DW_FORM_flag_present for dw_val_class_flag and
24215         DW_FORM_exprloc for dw_val_class_loc.
24216         (output_die): For -gdwarf-4 print dw_val_class_loc
24217         size as uleb128 instead of 1 or 2 bytes and don't print
24218         anything for dw_val_class_flag.
24219
24220         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
24221         instead of cselib_lookup following by tweaking locs->setting_insn.
24222
24223         PR bootstrap/43596
24224         * cselib.c (cselib_process_insn): Clear cselib_current_insn
24225         even before returning from label, setjmp call or volatile asm
24226         handling.
24227
24228 2010-03-31  Richard Guenther  <rguenther@suse.de>
24229
24230         PR middle-end/43600
24231         * cgraphunit.c (cgraph_output_in_order): Do not allocate
24232         temporary data on stack.
24233
24234 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24235
24236         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
24237         (PUSHSECTION_ASM_OP): Remove.
24238         (POPSECTION_ASM_OP): Remove.
24239         (PUSHSECTION_FORMAT): Remove.
24240         * config/sol2.h (PUSHSECTION_FORMAT): Define.
24241         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
24242         * config/sol2.c (solaris_output_init_fini): Use it.
24243
24244 2010-03-31  Jie Zhang  <jie@codesourcery.com>
24245
24246         PR 43574
24247         * opt-functions.awk (var_type_struct): Use signed char type
24248         for simple variables.
24249
24250 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24251
24252         * config/sol2.c: Include output.h.
24253         (solaris_assemble_visibility): New function.
24254         * config/t-sol2 (sol2.o): Add output.h dependency.
24255         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
24256         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
24257         Redefine.
24258
24259 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
24260
24261         PR target/43580
24262         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
24263         V2SImode or XFmode on PRE_DEC.
24264
24265         PR debug/43557
24266         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
24267         BLKmode.
24268
24269 2010-03-31  Jie Zhang  <jie@codesourcery.com>
24270
24271         PR 43562
24272         * reload.h (caller_save_initialized_p): Declare.
24273         * toplev.c (backend_init_target): Don't call
24274         init_caller_save but set caller_save_initialized_p to false.
24275         * caller-save.c (caller_save_initialized_p): Define.
24276         (init_caller_save): Check caller_save_initialized_p.
24277         * ira.c (ira): Call init_caller_save if flag_caller_saves.
24278
24279 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24280
24281         PR target/39048
24282         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
24283         and soft-fp/t-softfp to tmake_file.
24284         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
24285         (LIBGCC2_TF_CEXT): Define.
24286         (TF_SIZE): Define.
24287
24288 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
24289
24290         PR debug/42977
24291         * cselib.c (n_useless_values): Document handling of debug locs.
24292         (n_useless_debug_values, n_debug_values): New variables.
24293         (new_elt_loc_list): Don't add to debug values, keep count.
24294         (promote_debug_loc): New.
24295         (cselib_reset_table): Zero new variables.
24296         (entry_and_rtx_equal_p): Promote debug locs.
24297         (discard_useless_locs): Increment n_useless_debug_values for
24298         debug values.
24299         (remove_useless_values): Adjust n_useless_values and n_debug_values
24300         with n_useless_debug_values.
24301         (add_mem_for_addr): Promote debug locs.
24302         (cselib_lookup_mem): Likewise.
24303         (cselib_lookup_addr): Renamed to...
24304         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
24305         (cselib_log_lookup): ... this.  Turn into...
24306         (cselib_lookup_addr): ... new wrapper.
24307         (cselib_lookup_from_insn): New.
24308         (cselib_invalidate_regno): Increment n_useless_debug_values for
24309         debug values.
24310         (cselib_invalidate_mem): Likewise.
24311         (cselib_process_insn): Take n_deleted and n_debug_values into
24312         account to guard remove_useless_value call.
24313         (cselib_finish): Zero n_useless_debug_values.
24314         * cselib.h (cselib_lookup_from_insn): Declare.
24315         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
24316         (sched_analyze_2): Likewise.
24317
24318 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
24319
24320         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
24321         functions.
24322         (adjust_mems): Replace narrowing SUBREG of expression containing
24323         just PLUS, MINUS, MULT and ASHIFT of registers and constants
24324         with operations in the narrower mode.
24325
24326         PR debug/43593
24327         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
24328         regs_invalidated_by_call instead all call_used_reg_set registers.
24329
24330 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
24331
24332         PR middle-end/43430
24333         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
24334         pointer comparisons with types_compatible_p.
24335         * tree-vect-stmts.c (vectorizable_call): Same.
24336         (vectorizable_condition): Same.
24337
24338 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24339
24340         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
24341         stack check if the mask would be zero.
24342
24343 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
24344             Jack Howarth  <howarth@bromo.med.uc.edu>
24345
24346         * tree-profile.c (tree_init_ic_make_global_vars): Make static
24347         variables TLS.
24348
24349 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
24350
24351         PR other/25232
24352         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
24353         and __unordtf2.
24354         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
24355         Include ___unordxf2 and ___unordtf2.
24356         * config/i386/libgcc-glibc.ver: Do not define inheritance from
24357         GCC_4.4.0 here.
24358
24359 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
24360
24361         * config/lm32/t-lm32: New file.
24362         * config.gcc: Use the above file when targetting lm32.
24363
24364 2010-03-28  Duncan Sands  <baldrick@free.fr>
24365
24366         * Makefile.in (PLUGIN_HEADERS): Add except.h.
24367
24368 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
24369
24370         PR middle-end/43431
24371         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
24372         Improve vectorization cost model diagnostic.
24373
24374 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
24375
24376         PR middle-end/43436
24377         * tree-vect-data-refs.c (vect_analyze_data_refs): When
24378         compute_data_dependences_for_loop returns false, early exit
24379         and output an extra diagnostic for the failed data reference
24380         analysis.
24381
24382 2010-03-29  Richard Guenther  <rguenther@suse.de>
24383
24384         PR tree-optimization/43560
24385         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
24386         (can_sm_ref_p): Treat stores to readonly locations as trapping.
24387
24388 2010-03-29  Jie Zhang  <jie@codesourcery.com>
24389
24390         PR 43564
24391         * toplev.c (process_options): Set optimization_default_node
24392         and optimization_current_node.
24393         * opts.c (decode_options): Don't set optimization_default_node
24394         and optimization_current_node.
24395
24396 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
24397
24398         * config/rtems.h: Abandon -qrtems_debug.
24399
24400 2010-03-28  Jan Hubicka  <jh@suse.cz>
24401
24402         PR tree-optimization/43505
24403         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
24404         map should not be copied.
24405
24406 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24407
24408         PR middle-end/41674
24409         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
24410         cdtors, set DECL_PRESERVE_P.
24411         * ipa.c (cgraph_externally_visible_p): Return true if declaration
24412         should be preseved.
24413
24414 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
24415
24416         PR tree-optimization/43528
24417         * stor-layout.c (place_field): Check that constant fits into
24418         unsigned HWI when skipping calculation of MS bitfield layout.
24419
24420 2010-03-27  Jan Hubicka  <jh@suse.cz>
24421
24422         PR middle-end/43391
24423         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
24424         notice_global_symbol work.
24425
24426 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
24427
24428         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
24429         instead of dwarf2out_decl.
24430         (struct var_loc_node): Remove section_label field.
24431         (dwarf2out_function_decl): New function.
24432         (dwarf2out_var_location): Don't set section_label field.
24433         (dwarf2out_begin_function): Don't empty decl_loc_table here.
24434
24435 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
24436
24437         PR tree-optimization/43544
24438         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
24439         First argument for builtin vectorized function hook is now a
24440         tree to be able to distinguish between machine specific and
24441         standard builtins.
24442         * targhooks.c (default_builtin_vectorized_function): Ditto.
24443         * targhooks.h (default_builtin_vectorized_function): Ditto.
24444         * target.h (struct gcc_target): Ditto.
24445         * tree-vect-stmts.c (vectorizable_function): Ditto.
24446         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
24447         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
24448         Ditto.
24449
24450 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
24451
24452         PR c/43381
24453         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
24454         nested binding iff it is a FUNCTION_DECL.
24455         (store_parm_decls_newstyle): Pass nested=true to bind for
24456         FUNCTION_DECLs amongst parameters.
24457
24458 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
24459
24460         * var-tracking.c (vt_expand_loc_callback): Don't run
24461         cselib_expand_value_rtx_cb in dummy mode if
24462         cselib_dummy_expand_value_rtx_cb returned false.
24463
24464         * var-tracking.c (emit_note_insn_var_location): For one part
24465         notes with offset 0, don't add EXPR_LIST around the location.
24466         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
24467         add_location_or_const_value_attribute): Adjust for that change.
24468
24469         PR debug/43540
24470         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
24471         into first operand and location into second.
24472         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
24473         dw_cfi_oprnd_loc for DW_CFA_expression.
24474         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
24475         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
24476         assume first argument is regnum and second argument is location.
24477
24478 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
24479
24480         PR target/42113
24481         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
24482         of scratch register to DImode.  Split to DImode comparison operator.
24483         Use SImode subreg of scratch register in the multiplication.
24484         (*cmp_sadd_sidi): Ditto.
24485         (*cmp_ssub_si): Ditto.
24486         (*cmp_ssub_sidi): Ditto.
24487
24488 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
24489
24490         PR target/43524
24491         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
24492         Remove invalid assert and wrong comment.
24493
24494 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
24495
24496         PR debug/43516
24497         * flags.h (final_insns_dump_p): New extern.
24498         * final.c (final_insns_dump_p): New variable.
24499         (rest_of_clean_state): Set it before -fdump-final-insns=
24500         dumping, clear afterwards.
24501         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
24502         MEM_ALIAS_SET on MEMs.
24503
24504 2010-03-26  David S. Miller  <davem@davemloft.net>
24505
24506         * configure.ac: Fix sparc GOTDATA_OP bug check.
24507         * configure: Rebuild.
24508
24509 2010-03-26  Alan Modra  <amodra@gmail.com>
24510
24511         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
24512
24513 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24514
24515         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
24516         TLS_SECTION_ASM_FLAG.
24517
24518 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
24519
24520         PR bootstrap/43511
24521         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
24522         Clear first_function_block_is_cold.
24523
24524         PR c/43385
24525         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
24526         argument if the argument is truth_value_p.
24527
24528 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
24529
24530         * config/rs6000/constraints.md: Update copyright year for my changes.
24531
24532         PR target/43484
24533         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
24534         used in reg+reg addressing, swap registers.
24535
24536 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
24537
24538         PR debug/43293
24539         * target.h (struct gcc_target): Add code_end hook.
24540         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
24541         if not yet defined.
24542         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
24543         * toplev.c (compile_file): Call targetm.asm_out.code_end
24544         hook before unwind info/debug info output.
24545         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
24546         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
24547         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
24548         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
24549         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
24550         * config/i386/i386.c (ix86_file_end): Renamed to...
24551         (ix86_code_end): ... this.  Make static.  Don't call
24552         file_end_indicate_exec_stack.  Emit unwind info using
24553         final_start_function/final_end_function.
24554         (darwin_x86_file_end): Remove.
24555         (TARGET_ASM_CODE_END): Define.
24556         * config/i386/i386.h (TARGET_ASM_FILE_END,
24557         NEED_INDICATE_EXEC_STACK): Don't define.
24558         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
24559         (TARGET_ASM_FILE_END): Define to darwin_file_end.
24560         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
24561         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
24562
24563         PR target/43498
24564         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
24565         at the beginning and final_end_function at the end.
24566         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
24567
24568 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24569
24570         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
24571         and Sun as TLS syntax.
24572         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
24573         * configure: Regenerate.
24574         * config.in: Regenerate.
24575         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
24576         (default_elf_asm_named_section): Use it.
24577         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
24578         (i386_output_dwarf_dtprel): Likewise.
24579         (output_addr_const_extra): Likewise.
24580         (output_pic_addr_const): Lowercase @GOTTPOFF.
24581         (output_addr_const_extra): Likewise.
24582         (output_pic_addr_const): Lowercase @GOTNTPOFF.
24583         (output_addr_const_extra): Likewise.
24584         (output_pic_addr_const): Lowercase @INDNTPOFF.
24585         (output_addr_const_extra): Likewise.
24586         (output_pic_addr_const): Lowercase @NTPOFF.
24587         (output_addr_const_extra): Likewise.
24588         (output_pic_addr_const): Lowercase @TPOFF.
24589         (output_addr_const_extra): Likewise.
24590         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
24591         (*tls_global_dynamic_64): Likewise.
24592         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
24593         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
24594
24595         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
24596         (ASM_OUTPUT_TLS_COMMON): Use it.
24597         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
24598
24599         PR target/38118
24600         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
24601         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
24602         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
24603         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
24604         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
24605         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
24606
24607 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24608
24609         * config/i386/i386.c (override_options): Don't accept
24610         -mtls-dialect=sun any longer.
24611         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
24612         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
24613         (*tls_local_dynamic_base_32_sun): Likewise.
24614         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
24615
24616 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
24617
24618         PR debug/43508
24619         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
24620         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
24621
24622         PR debug/43479
24623         * ira.c (adjust_cleared_regs): New function.
24624         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
24625
24626         PR debug/19192
24627         PR debug/43479
24628         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
24629         from gimple_block.
24630         * expr.c (expand_expr_real): Restore previous
24631         curr_insn_source_location and curr_insn_block after
24632         expand_expr_real_1 call.
24633         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
24634         instead of expand_expr_real_1.
24635
24636 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
24637
24638         PR rtl-optimization/43413
24639         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
24640         hard regs too.
24641
24642 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
24643
24644         PR target/43348
24645         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
24646         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
24647
24648 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
24649
24650         * config/i386/i386.c (ix86_target_string): Add -mfma.
24651         Fix a typo in comment.
24652
24653 2010-03-22  Mike Stump  <mikestump@comcast.net>
24654
24655         PR target/23071
24656         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
24657         Don't overly align based upon packed packed fields.
24658
24659 2010-03-22  Jason Merrill  <jason@redhat.com>
24660
24661         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
24662         Use () rather than [], and move before the element type.
24663
24664 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24665
24666         * doc/configfiles.texi (Configuration Files): Removed
24667         fixinc/Makefile*, intl/Makefile.*.
24668         * doc/makefile.texi: Fixed markup. Abstract from version
24669         control system used.
24670         (Makefile): Removed obsolete java/parse.y example.
24671         * doc/sourcebuild.texi: Likewise.
24672         (Top Level): Added config, gnattools, libdecnumber, libgcc,
24673         libgomp, libssp.  Removed fastjar.
24674         (Miscellaneous Docs): Clarify location.
24675         Added COPYING3, COPYING3.LIB.
24676         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
24677
24678 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24679
24680         PR target/38085
24681         * config/i386/i386.c (x86_function_profiler)
24682         [!NO_PROFILE_COUNTERS]: Fix typo.
24683         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
24684         instead of callq.
24685
24686 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
24687             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24688
24689         * doc/sourcebuild.texi (Test Directives): Split into six
24690         subsections, with most of the current text in new subsections
24691         Directives, Selectors, and Final Actions.
24692         (Directives): Split list of test directives into multiple
24693         subsubsections.
24694         (Selectors): Describe use and syntax of selectors.
24695         (Effective-Target Keywords): Describe all existing keywords.
24696         (Add Options): Describe features for dg-add-options.
24697         (Require Support): Describe variants of dg-require-support.
24698         (Final Actions): Describe commands to use in dg-final.
24699
24700 2010-03-22  Michael Matz  <matz@suse.de>
24701
24702         PR middle-end/43475
24703         * recog.c (validate_replace_rtx_group): Replace also in
24704         REG_EQUAL and REG_EQUIV notes.
24705
24706 2010-03-22  Richard Guenther  <rguenther@suse.de>
24707
24708         PR tree-optimization/43390
24709         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
24710         sure vector extracts are type correct.
24711
24712 2010-03-22  Richard Guenther  <rguenther@suse.de>
24713
24714         PR middle-end/40106
24715         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
24716         x * sqrt (x) even when optimizing for size if the target
24717         has native support for sqrt.
24718
24719 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
24720
24721         * varasm.c (make_decl_rtl_for_debug): Also clear
24722         flag_mudflap for the duration of make_decl_rtl call.
24723
24724         PR debug/43443
24725         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
24726         locs from preserved VALUEs.
24727
24728 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24729
24730         PR middle-end/42718
24731         * pa.md (movmemsi): Set align to one if zero.
24732         (movmemdi): Likewise.
24733
24734 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
24735
24736         PR target/42321
24737         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
24738         with their corresponding prologue pushes.
24739
24740 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
24741
24742         PR target/43156
24743         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
24744         at the begining or end.
24745         (spu_expand_epilogue): Likewise.
24746
24747 2010-03-20  Richard Guenther  <rguenther@suse.de>
24748
24749         PR rtl-optimization/43438
24750         * combine.c (make_extraction): Properly zero-/sign-extend an
24751         extraction of the low part of a CONST_INT.  Also handle
24752         CONST_DOUBLE.
24753
24754 2010-03-19  Mike Stump  <mikestump@comcast.net>
24755
24756         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
24757         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
24758         (override_options): Use SUBTARGET32_DEFAULT_CPU.
24759
24760 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
24761
24762         PR c/43211
24763         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
24764         an error.
24765
24766 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
24767
24768         PR rtl-optimization/42258
24769         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
24770         use that may match DEF.
24771
24772         PR target/40697
24773         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
24774         the cost of loading the constant rather than assuming
24775         COSTS_N_INSNS (1).
24776         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
24777         outer code is AND, do the same tests as the andsi3 expander and
24778         return COSTS_N_INSNS (1) if and is cheap.
24779
24780         * optabs.c (avoid_expensive_constant): Fix formatting.
24781
24782 2010-03-19  Michael Matz  <matz@suse.de>
24783
24784         PR c++/43116
24785         * attribs.c (decl_attributes): When rebuilding a function pointer
24786         type use the same qualifiers as the original pointer type.
24787
24788 2010-03-19  Martin Jambor  <mjambor@suse.cz>
24789
24790         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
24791         and is_gimple_ip_invariant_address.
24792
24793 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24794
24795         Revert
24796         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24797
24798         * config/arm/arm.c (arm_override_options): Turn off
24799         flag_dwarf2_cfi_asm for AAPCS variants.
24800
24801 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24802
24803         PR target/43399
24804         * config/arm/arm.c (emit_multi_reg_push): Update comments.
24805         Use PRE_MODIFY instead of PRE_DEC.
24806         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
24807         (vfp_emit_fstmd): Likewise.
24808
24809 2010-03-19  Michael Matz  <matz@suse.de>
24810
24811         PR target/43305
24812         * builtins.c (expand_builtin_interclass_mathfn,
24813         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
24814         if that fails.
24815
24816 2010-03-19  Richard Guenther  <rguenther@suse.de>
24817
24818         PR tree-optimization/43415
24819         * tree-ssa-pre.c (phi_translate): Split out worker to ...
24820         (phi_translate_1): ... this.
24821         (phi_translate): Move all caching here.  Cache all NARY
24822         and REFERENCE translations.
24823
24824 2010-03-19  David S. Miller  <davem@davemloft.net>
24825
24826         With help from Eric Botcazou.
24827         * config/sparc/sparc.c: Include dwarf2out.h.
24828         (emit_pic_helper): Delete.
24829         (pic_helper_symbol_name): Delete.
24830         (pic_helper_emitted_p): Delete.
24831         (pic_helper_needed): New.
24832         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
24833         (get_pc_thunk_name): New.
24834         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
24835         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
24836         Set pic_helper_needed to true.  Don't call emit_pic_helper.
24837         (sparc_expand_prologue): Update load_pic_register call.
24838         (sparc_output_mi_thunk): Likewise.
24839         (sparc_file_end): Emit a hidden comdat symbol for the PIC
24840         thunk if possible.  Output CFI information as needed.
24841
24842 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
24843             Jack Howarth  <howarth@bromo.med.uc.edu>
24844
24845         PR target/36399
24846         * config/i386/i386.h: Fix ABI on darwin x86-32.
24847
24848 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
24849
24850         * tree.h: Declare make_decl_rtl_for_debug.
24851         * varasm.c (make_decl_rtl_for_debug): New.
24852         * dwarf2out.c (rtl_for_decl_location): Call it.
24853         * cfgexpand.c (expand_debug_expr): Call it.
24854
24855 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
24856
24857         PR bootstrap/43399
24858         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
24859         mem_mode.
24860
24861         PR bootstrap/43403
24862         * var-tracking.c (vt_init_cfa_base): Do nothing if
24863         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
24864
24865 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
24866
24867         PR debug/42873
24868         * var-tracking.c (canonicalize_vars_star): New.
24869         (dataflow_post_merge_adjust): Use it.
24870
24871 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
24872
24873         PR debug/43058
24874         * var-tracking.c (non_suitable_const): New function.
24875         (add_uses): For DEBUG_INSNs with constants, don't record any
24876         value, instead just the constant value itself.
24877         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
24878         is not VAR_LOC_UNKNOWN_P, set var to the constant.
24879         (emit_notes_in_bb): Likewise.
24880         (emit_note_insn_var_location): For onepart variables if
24881         cur_loc is a VOIDmode constant, use DECL_MODE.
24882
24883 2010-03-18  Martin Jambor  <mjambor@suse.cz>
24884
24885         PR middle-end/42450
24886         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
24887         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
24888         all non-clones.  Moved call redirection...
24889         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
24890         (cgraph_materialize_all_clones): Dispose of all
24891         combined_args_to_skip bitmaps.
24892         (verify_cgraph_node): Do not check for edges pointing to wrong
24893         nodes in inline clones.
24894         * tree-inline.c (copy_bb): Call
24895         cgraph_redirect_edge_call_stmt_to_callee.
24896         * ipa.c (cgraph_remove_unreachable_nodes): Call
24897         cgraph_node_remove_callees even when there are used clones.
24898
24899 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
24900
24901         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
24902
24903 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
24904
24905         PR target/43383
24906         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
24907         for 32bit.
24908
24909 2010-03-18  Michael Matz  <matz@suse.de>
24910
24911         PR middle-end/43419
24912         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
24913         into sqrt(x) if we need to preserve signed zeros.
24914
24915 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
24916             Eric Botcazou  <ebotcazou@adacore.com>
24917
24918         PR rtl-optimization/43360
24919         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
24920         note if we don't know its invariant status.
24921
24922 2010-03-18  Michael Matz  <matz@suse.de>
24923
24924         PR tree-optimization/43402
24925         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
24926         PHI chains of ssa names registered for update.
24927
24928 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
24929
24930         PR target/42427
24931         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
24932         non-offsettable and pre_modify update addressing.
24933         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
24934         and "2" alternatives "#".
24935         (*movdd_softfloat32): Make all alternatives "#";
24936         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
24937         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
24938         (*movdf_softfloat32): Make all alternatives "#";
24939         (movdi): Use the new DIFD mode iterator to create a common splitter
24940         for movdi, movdf and movdd patterns.
24941
24942 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
24943
24944         * common.opt (dumpdir): Remove redundant tab.
24945
24946 2010-03-17  Martin Jambor  <mjambor@suse.cz>
24947
24948         PR tree-optimization/43347
24949         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
24950         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
24951
24952 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
24953
24954         PR rtl-optimization/42216
24955         * regrename.c (create_new_chain): New function, broken out from...
24956         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
24957         appending a use to an empty chain.
24958         (build_def_use): Remove previous changes that convert OP_INOUT to
24959         OP_OUT operands; instead detect the case where an OP_INOUT operand
24960         uses a previously untracked register and create an empty chain for it.
24961
24962 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24963
24964         * doc/extend.texi (Function Attributes): Rewrite unfinished
24965         sentence in ms_abi documentation.
24966
24967 2010-03-17  Alan Modra  <amodra@gmail.com>
24968
24969         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
24970         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
24971         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
24972         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
24973
24974 2010-03-16  Richard Henderson  <rth@redhat.com>
24975
24976         PR middle-end/43365
24977         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
24978         (lower_try_finally): Save and restore eh_seq around the expansion
24979         of the try-finally.
24980
24981 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
24982
24983         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
24984         statements before splitting block.
24985
24986 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24987
24988         * doc/sourcebuild.texi (Testsuites): Fix markup.
24989         Use pathnames relative to gcc/testsuite.
24990         (Test Directives): Move description of how timeout is determined.
24991         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
24992         (C Tests): Correct gcc.misc-tests directory.
24993         Framework tests now live in gcc.test-framework.
24994
24995 2010-03-16  Richard Guenther  <rguenther@suse.de>
24996
24997         PR middle-end/43379
24998         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
24999         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
25000
25001 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
25002             Alexandre Oliva  <aoliva@redhat.com>
25003
25004         PR tree-optimization/42917
25005         * lambda-code.c (remove_iv): Skip debug statements.
25006         (lambda_loopnest_to_gcc_loopnest): Likewise.
25007         (not_interesting_stmt): Debug statements are not interesting.
25008
25009 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
25010
25011         PR debug/43051
25012         PR debug/43092
25013         * cselib.c (cselib_preserve_constants,
25014         cfa_base_preserved_val): New static variables.
25015         (preserve_only_constants): New function.
25016         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
25017         clear its REG_VALUES.  If cselib_preserve_constants, don't
25018         empty the whole hash table, but preserve there VALUEs with constants,
25019         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
25020         (cselib_preserve_cfa_base_value): New function.
25021         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
25022         (cselib_init): Change argument to int bitfield.  Set
25023         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
25024         is in it.
25025         (cselib_finish): Clear cselib_preserve_constants and
25026         cfa_base_preserved_val.
25027         * cselib.h (enum cselib_record_what): New enum.
25028         (cselib_init): Change argument to int.
25029         (cselib_preserve_cfa_base_value): New prototype.
25030         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
25031         * dse.c (dse_step1): Likewise.
25032         * cfgcleanup.c (thread_jump): Likewise.
25033         * sched-deps.c (sched_analyze): Likewise.
25034         * gcse.c (local_cprop_pass): Likewise.
25035         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
25036         If FN is non-NULL, call the callback always and whenever it returns
25037         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
25038         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
25039         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
25040         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
25041         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
25042         * var-tracking.c: Include recog.h.
25043         (bb_stack_adjust_offset): Remove.
25044         (vt_stack_adjustments): Don't call it, instead just gather the
25045         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
25046         (adjust_stack_reference): Remove.
25047         (compute_cfa_pointer): New function.
25048         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
25049         (struct adjust_mem_data): New type.
25050         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
25051         functions.
25052         (get_address_mode): New function.
25053         (replace_expr_with_values): Use it.
25054         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
25055         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
25056         (adjust_sets): Remove.
25057         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
25058         Use get_address_mode.
25059         (get_adjusted_src): Remove.
25060         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
25061         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
25062         (add_with_sets): Don't call adjust_sets.
25063         (fp_setter, vt_init_cfa_base): New functions.
25064         (vt_initialize): Change return type to bool.  Move most of pool etc.
25065         initialization to the beginning of the function from end.  Pass
25066         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
25067         If !frame_pointer_needed, call vt_stack_adjustment before mos
25068         vector is filled, call vt_init_cfa_base if argp/framep has been
25069         eliminated to sp.  If frame_pointer_needed and argp/framep has
25070         been eliminated to hard frame pointer, set
25071         hard_frame_pointer_adjustment and call vt_init_cfa_base after
25072         encountering fp setter in the prologue.  For MO_ADJUST, call
25073         log_op_type before pusing the op into mos vector, not afterwards.
25074         Call adjust_insn before cselib_process_insn/add_with_sets,
25075         call cancel_changes (0) afterwards.
25076         (variable_tracking_main_1): Adjust for vt_initialize calling
25077         vt_stack_adjustments and returning whether it succeeded or not.
25078
25079 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
25080
25081         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
25082         debug statements.
25083
25084 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
25085
25086         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
25087         has been set.
25088         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
25089         drap_reg has not been set.
25090
25091 2010-03-15  Michael Matz  <matz@suse.de>
25092
25093         PR middle-end/43300
25094         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
25095         use it to expand block copies.
25096         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
25097         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
25098         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
25099
25100 2010-03-15  Richard Guenther  <rguenther@suse.de>
25101
25102         PR tree-optimization/43367
25103         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
25104         elimination check.
25105
25106 2010-03-15  Richard Guenther  <rguenther@suse.de>
25107
25108         PR tree-optimization/43317
25109         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
25110
25111 2010-03-15  Martin Jambor  <mjambor@suse.cz>
25112
25113         PR tree-optimization/43141
25114         * tree-sra.c (create_abstract_origin): New function.
25115         (modify_function): Call create_abstract_origin.
25116
25117 2010-03-15  Chris Demetriou  <cgd@google.com>
25118
25119         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
25120         wasn't copied.
25121
25122 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25123
25124         PR middle-end/43354
25125         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
25126         call insert_out_of_ssa_copy for default definitions.
25127
25128 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25129
25130         * graphite-clast-to-gimple.c (my_long_long): Defined.
25131         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
25132         * graphite-sese-to-poly.c (my_long_long): Defined.
25133         (scop_ivs_can_be_represented): Use it.
25134
25135 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25136
25137         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
25138         graphite-max-bbs-per-function, and loop-block-tile-size.
25139         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
25140         with "maximum".
25141         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
25142
25143 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25144
25145         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
25146         forward declaration.
25147         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
25148         (add_upper_bounds_from_estimated_nit): New.
25149         (build_loop_iteration_domains): Use it.
25150
25151 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25152
25153         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
25154
25155 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25156
25157         PR middle-end/43306
25158         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
25159         should be an INTEGER_CST.  Also handle CASE_CONVERT.
25160
25161 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25162
25163         * graphite.c (graphite_initialize): To bound the number of bbs per
25164         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
25165         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
25166         * doc/invoke.texi: Document it.
25167
25168 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25169
25170         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
25171         * graphite-sese-to-poly.h (build_poly_scop): Same.
25172
25173 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
25174
25175         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
25176         the number of parameters in the scop.  Use as an upper bound
25177         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
25178         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
25179         * doc/invoke.texi: Document it.
25180
25181 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
25182
25183         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
25184         * doc/c-tree.texi: Remove.
25185         * doc/generic.texi: Merge c-tree.texi here.
25186         * doc/gccint.texi (Trees): Remove menu entry.
25187         (c-tree.texi): Remove @include.
25188         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
25189         * doc/languages.texi (Reading RTL): Ditto.
25190
25191 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
25192
25193         PR target/42869
25194         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
25195
25196 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
25197
25198         PR middle-end/42431
25199         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
25200         code added to work around reload clobbering CONST insns.
25201
25202 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
25203
25204         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
25205         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
25206         (cselib_preserve_only_values): Remove retain argument, don't
25207         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
25208         * cselib.h (cselib_preserve_only_values): Remove retain argument.
25209         * var-tracking.c (micro_operation): Move insn field before union.
25210         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
25211         (struct variable_tracking_info_def): Remove n_mos field, change
25212         mos into a vector of micro_operations.
25213         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
25214         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
25215         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
25216         changing into a vector.
25217         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
25218         come before all other uops generated by add_stores.
25219         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
25220         argument removal.
25221         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
25222         a vector.  Run just one pass over the bbs instead of separate counting
25223         and computation phase.
25224         (vt_finalize): Free VTI (bb)->mos vector instead of array.
25225
25226         PR debug/43329
25227         * tree-inline.c (remap_decls): Put old_var rather than origin_var
25228         into *nonlocalized_list vector.
25229         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
25230         even if origin is non-NULL.
25231         (gen_variable_die): Likewise.
25232         (process_scope_var): Don't change origin.
25233         (gen_decl_die): Likewise.
25234         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
25235         before adding new edges instead of after it, fix moving over
25236         debug stmts.
25237
25238 2010-03-11  David S. Miller  <davem@davemloft.net>
25239
25240         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
25241         of four.
25242         * configure: Rebuild.
25243
25244 2010-03-11  Martin Jambor  <mjambor@suse.cz>
25245
25246         PR tree-optimization/43257
25247         * tree.c (assign_assembler_name_if_neeeded): New function.
25248         (free_lang_data_in_cgraph): Assembler name assignment moved to the
25249         above new function.
25250         * tree.h (assign_assembler_name_if_neeeded): Declare.
25251         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
25252         the function if needed.
25253
25254 2010-03-11  Chris Demetriou  <cgd@google.com>
25255
25256         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
25257         include/stdint-gcc.h, and include/stdint.h world-readable.
25258
25259 2010-03-11  Richard Guenther  <rguenther@suse.de>
25260
25261         PR tree-optimization/43255
25262         * tree-vrp.c (process_assert_insertions_for): Do not insert
25263         asserts for trivial conditions.
25264
25265 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25266
25267         PR tree-optimization/43280
25268         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
25269         generation.  Move calculation of size out of the if branch.
25270         (find_bswap): Modify compare number generation.
25271
25272 2010-03-11  Richard Guenther  <rguenther@suse.de>
25273
25274         PR lto/43200
25275         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
25276         (input_gimple_stmt): Fixup handled component types during
25277         operand read.  Also fix up decls in ADDR_EXPRs.
25278
25279 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
25280
25281         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
25282         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
25283
25284 2010-03-10  Jan Hubicka  <jh@suse.cz>
25285
25286         PR c/43288
25287         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
25288         * varasm.c (get_variable_section): Don't do that here...
25289         (make_decl_rtl): ... and here.
25290         (do_assemble_alias): Produce decl RTL.
25291         (assemble_alias): Likewise.
25292
25293 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
25294
25295         PR debug/43290
25296         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
25297         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
25298         of fde->vdrap_reg.
25299         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
25300         (based_loc_descr): Only express drap or vdrap regno based expressions
25301         using DW_OP_fbreg when not optimizing.
25302         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
25303         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
25304         REG_CFA_SET_VDRAP note.
25305
25306 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
25307
25308         PR tree-optimization/43236
25309         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
25310         error in calculation of base address in reverse iteration case.
25311         (generate_builtin): Take number of latch executions if the statement
25312         is in the latch.
25313
25314 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
25315
25316         PR middle-end/42859
25317         * tree-eh.c: Include pointer-set.h.
25318         (lower_eh_dispatch): Filter out duplicate case labels and
25319         remove the unneeded edge when the label is unused.  Return
25320         true when some edges are removed.
25321         (execute_lower_eh_dispatch): When any lowering resulted in
25322         removing an edge, also delete unreachable blocks.
25323
25324 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
25325
25326         PR bootstrap/43287
25327         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
25328         UNSPEC_MACHOPIC_OFFSET.
25329
25330 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
25331
25332         PR target/43294
25333         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
25334         (m68k_delegitimize_address): New function.
25335
25336 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
25337
25338         PR debug/43299
25339         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
25340
25341         PR debug/43299
25342         * var-tracking.c (adjust_sets): New function.
25343         (count_with_sets, add_with_sets): Use it.
25344         (get_adjusted_src): New inline function.
25345         (add_stores): Use it.
25346
25347         PR debug/43304
25348         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
25349         call cselib_dummy_expand_value_rtx_cb instead of
25350         cselib_expand_value_rtx_cb.
25351
25352         PR debug/43293
25353         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
25354         * config/i386/i386.c: Include debug.h and dwarf2out.h.
25355         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
25356         and .cfi_endproc around the pic thunks.
25357         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
25358         all queued unwind info register saves are saved before the call.
25359         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
25360         considered as sp-=4 for unwind info and the pop as sp+=4 which
25361         also clobbers dest, but doesn't actually restore it.
25362
25363         PR debug/43290
25364         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
25365         RTX_FRAME_RELATED_P.
25366
25367 2010-03-09  Jie Zhang  <jie@codesourcery.com>
25368
25369         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
25370         whitespaces in output template.
25371
25372 2010-03-09  Jie Zhang  <jie@codesourcery.com>
25373
25374         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
25375         out array boundary.
25376
25377 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
25378
25379         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
25380         builtins.exp in a separate job.
25381
25382 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25383
25384         * graphite-sese-to-poly.c (add_param_constraints): Use
25385         lower_bound_in_type and upper_bound_in_type.
25386
25387 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25388
25389         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
25390         instead of unsigned_type_node.
25391
25392 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25393             Reza Yazdani  <reza.yazdani@amd.com>
25394
25395         PR middle-end/43065
25396         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
25397         on pointer type parameters.
25398
25399 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
25400
25401         PR middle-end/42644
25402         PR middle-end/42130
25403         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
25404         handle conversions from pointer to integers.
25405         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
25406         induction variable, to be able to work with code generated by CLooG.
25407         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
25408         (build_poly_scop): Bail out if we cannot codegen a loop.
25409
25410 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
25411
25412         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
25413         code generation with gloog_error.
25414
25415 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25416
25417         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
25418         Call fold_convert on all the returned values.
25419         (expand_scalar_variables_expr): Pass to
25420         expand_scalar_variables_ssa_name the type of the resulting expression.
25421
25422 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25423
25424         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
25425         ppl_min_for_le_pointset.
25426         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
25427         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
25428
25429 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25430
25431         * graphite-dependences.c (map_into_dep_poly): Removed.
25432         (dependence_polyhedron_1): Use combine_context_id_scat.
25433
25434 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25435
25436         * graphite-poly.h (struct poly_scattering): Add layout documentation.
25437         (struct poly_bb): Same.
25438         (combine_context_id_scat): New.
25439
25440 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25441
25442         PR middle-end/42326
25443         * sese.c (name_defined_in_loop_p): Return false for default
25444         definitions.
25445
25446 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25447
25448         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
25449         and clean up the logic.
25450
25451 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
25452
25453         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
25454         early return.
25455
25456 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
25457
25458         * var-tracking.c (remove_cselib_value_chains): Define only for
25459         ENABLE_CHECKING.
25460         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
25461         delete_slot_part, emit_notes_for_differences_1): Don't call
25462         remove_cselib_value_chains here.
25463         (set_slot_part, emit_notes_for_differences_2): Don't call
25464         add_cselib_value_chains here.
25465         (preserved_values): New vector.
25466         (preserve_value): New function.
25467         (add_uses, add_stores, vt_add_function_parameters): Use it
25468         instead of cselib_preserve_value.
25469         (changed_values_stack): New vector.
25470         (check_changed_vars_0): New function.
25471         (check_changed_vars_1, check_changed_vars_2): Use it.
25472         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
25473         changed_values_stack VALUEs.
25474         (vt_emit_notes): For all preserved_values call
25475         add_cselib_value_chains.  If ENABLE_CHECKING call
25476         remove_cselib_value_chains before verifying value_chains is empty.
25477         Initialize and free changed_values_stack.
25478         (vt_initialize): Initialize preserved_values.
25479         (vt_finalize): Free preserved_values.
25480
25481 2010-03-08  Richard Guenther  <rguenther@suse.de>
25482
25483         PR tree-optimization/43269
25484         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
25485         region detection.
25486
25487 2010-03-08  Martin Jambor  <mjambor@suse.cz>
25488
25489         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
25490         (ipa_is_param_called): Removed.
25491         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
25492         (ipa_print_node_params): Do not print the called flag.
25493         (ipa_write_node_info): Do not stream the called flag.
25494         (ipa_read_node_info): Likewise.
25495
25496 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
25497
25498         PR debug/43176
25499         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
25500         * cselib.c (struct expand_value_data): Add dummy field.
25501         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
25502         dummy to false.
25503         (cselib_dummy_expand_value_rtx_cb): New function.
25504         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
25505         any rtl.
25506         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
25507         * var-tracking.c: Include pointer-set.h.
25508         (variable): Change n_var_parts to char from int.  Add
25509         cur_loc_changed and in_changed_variables fields.
25510         (variable_canonicalize): Remove.
25511         (shared_var_p): New inline function.
25512         (unshare_variable): Maintain cur_loc_changed and
25513         in_changed_variables fields.  If var was in changed_variables,
25514         replace it there with new_var.  Just copy cur_loc instead of
25515         resetting it to something else.
25516         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
25517         (dataflow_set_union): Don't call variable_canonicalize.
25518         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
25519         of their DEBUG_EXPR_TREE_DECLs.
25520         (canonicalize_loc_order_check): Verify that cur_loc is NULL
25521         and in_changed_variables and cur_loc_changed is false.
25522         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
25523         and cur_loc_changed.  Don't update cur_loc here.
25524         (variable_merge_over_src): Don't call variable_canonicalize.
25525         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
25526         removing loc that is equal to cur_loc, clear cur_loc,
25527         set cur_loc_changed and ensure variable_was_changed is called.
25528         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
25529         compare pointers in cur_loc check, if it is equal to loc,
25530         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
25531         (variable_different_p): Remove compare_current_location argument,
25532         don't compare cur_loc.
25533         (dataflow_set_different_1): Adjust variable_different_p caller.
25534         (variable_was_changed): If dv had some var in changed_variables
25535         already, reset in_changed_variables flag for it and propagate
25536         cur_loc_changed over to the new variable.  On empty var
25537         always set cur_loc_changed.  Set in_changed_variables on whatever
25538         var is added to changed_variables.
25539         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
25540         Use shared_var_p.  When removing loc that is equal to cur_loc,
25541         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
25542         end, don't set it to something else, just call variable_was_changed.
25543         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
25544         loc being removed, clear cur_loc and set cur_loc_changed.
25545         Set cur_loc_changed if all locations have been removed.
25546         (struct expand_loc_callback_data): New type.
25547         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
25548         allocated.  Always create SUBREGs if simplify_subreg failed.
25549         Prefer to use cur_loc, when that fails and still in
25550         changed_variables (and seen first time) recompute it.  Set
25551         cur_loc_changed of variables which had to change cur_loc and
25552         compute elcd->cur_loc_changed if any of the subexpressions used
25553         had to change cur_loc.
25554         (vt_expand_loc): Adjust to pass arguments in
25555         expand_loc_callback_data structure.
25556         (vt_expand_loc_dummy): New function.
25557         (emitted_notes): New variable.
25558         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
25559         that weren't used for any other decl in current
25560         emit_notes_for_changes call call vt_expand_loc_dummy to update
25561         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
25562         first loc_chain location if NULL before.  Always use just
25563         cur_loc instead of first loc_chain location.  When cur_loc_changed
25564         is false, when not --enable-checking=rtl just don't emit any note.
25565         When rtl checking, compute the note and assert it is the same
25566         as previous note.  Clear cur_loc_changed and in_changed_variables
25567         at the end before removing from changed_variables.
25568         (check_changed_vars_3): New function.
25569         (emit_notes_for_changes): Traverse changed_vars to call
25570         check_changed_vars_3 on each changed var.
25571         (emit_notes_for_differences_1): Clear cur_loc_changed and
25572         in_changed_variables.  Recompute cur_loc of new_var.
25573         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
25574         (vt_emit_notes): Initialize and destroy emitted_notes.
25575
25576 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
25577
25578         PR rtl-optimization/42220
25579         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
25580         Use verify_reg_tracked to determine if we should use OP_OUT rather
25581         than OP_INOUT.
25582         (build_def_use): If we see an in-out operand for a register that we
25583         know nothing about, treat is an output if possible, fail the block if
25584         not.
25585
25586 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
25587
25588         PR debug/42897
25589         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
25590         permanently.
25591
25592 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
25593
25594         PR debug/42897
25595         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
25596         uses of relevant DEFs that are dead outside the loop too.
25597
25598 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
25599
25600         * var-tracking.c (dataflow_set_merge): Swap src and src2.
25601         Reverted:
25602         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
25603         PR debug/41371
25604         * var-tracking.c (values_to_unmark): New variable.
25605         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
25606         values_to_unmark vector.  Moved body to...
25607         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
25608         instead queue it into values_to_unmark vector.
25609         (vt_find_locations): Free values_to_unmark vector.
25610
25611 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
25612
25613         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
25614         (site.exp): Export them when plugins are enabled.
25615
25616 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
25617
25618         PR middle-end/42326
25619         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
25620         that contain scevs.
25621         (chrec_fold_multiply): Same.
25622
25623 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
25624
25625         PR c/43248
25626         * c-decl.c (build_compound_literal): Return early if init is
25627         an error_mark_node.
25628
25629 2010-03-04  Martin Jambor  <mjambor@suse.cz>
25630
25631         PR tree-optimization/43164
25632         PR tree-optimization/43191
25633         * tree-sra.c (type_consists_of_records_p): Reject records with
25634         zero-size bit-fields at the end.
25635
25636 2010-03-04  Mike Stump  <mikestump@comcast.net>
25637
25638         * Makefile.in (TAGS): Remove *.y.
25639
25640 2010-03-04  Richard Guenther  <rguenther@suse.de>
25641
25642         PR tree-optimization/40761
25643         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
25644         in reverse order.
25645         (my_rev_post_order_compute): New function.
25646         (init_pre): Call it.
25647
25648 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
25649
25650         PR middle-end/43209
25651         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
25652         decrease the cost of an IV candidate when the cost is infinite.
25653
25654 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25655
25656         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
25657         Use '3DNow!' for the extension of that name, ensure normal space
25658         after the string.
25659         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
25660
25661 2010-03-03  Jeff Law  <law@redhat.com>
25662
25663         * PR middle-end/32693
25664         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
25665         than gen_rtx_SUBREG.
25666         (extract_bit_field_1): Likewise.
25667
25668 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
25669
25670         * doc/sourcebuild.texi (Test directives): Document that arguments
25671         include-opts and exclude-opts are now optional for dg-skip-if,
25672         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
25673
25674 2010-03-03  Jason Merrill  <jason@redhat.com>
25675
25676         PR c++/12909
25677         * cgraph.h (varpool_node): Add extra_name field.
25678         * varpool.c (varpool_extra_name_alias): New.
25679         (varpool_assemble_decl): Emit extra name aliases.
25680         (varpool_mark_needed_node): Look past an extra name alias.
25681         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
25682         * lto-streamer-in.c (lto_input_tree): Read it.
25683         * lto-streamer-out.c (output_unreferenced_globals): Write it.
25684
25685 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
25686
25687         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
25688         (sparc*-*-solaris2*): ...this.
25689
25690 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
25691
25692         PR debug/43229
25693         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
25694         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
25695         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
25696         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
25697
25698         PR debug/43237
25699         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
25700         fallthrough to default handling, just with want_address 0 instead of 2.
25701         For single element lists, add_AT_loc directly, otherwise create an
25702         artificial variable DIE and stick location list to it.
25703
25704         PR debug/43177
25705         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
25706         (VAL_EXPR_HAS_REVERSE): Define.
25707         (reverse_op): New function.
25708         (add_stores): For reversible operations add an extra MO_VAL_USE.
25709
25710 2010-03-02  Jason Merrill  <jason@redhat.com>
25711
25712         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
25713
25714 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
25715
25716         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
25717         (sparc64-*-linux*): Likewise.
25718         (sparc64-*-solaris2*): Include assembler files before linker ones.
25719         (sparc-*-solaris2*): Simplify and reorder to match previous case.
25720         * config/sparc/gas.h: Delete.
25721         * config/sparc/sol2-64.h: Add copyright notice.
25722         * config/sparc/sol2-gas-bi.h: Likewise.
25723         * config/sparc/sol2-gld.h: Likewise.
25724         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
25725         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
25726         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
25727         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
25728         (sparc_elf_asm_named_section): Rename into...
25729         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
25730
25731 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
25732
25733         * config/alpha/alpha.c (override_options): Fix -mtune error message.
25734
25735 2010-03-02  Jeff Law  <law@redhat.com>
25736
25737         PR middle-end/42431
25738         * reload1.c (rtx_p, substitute_stack): Declare.
25739         (substitute): Record addresses of changed rtxs.
25740         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
25741         Restore the original rtx when complete.
25742         (reload): Free subsitute_stack when complete.
25743
25744 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
25745
25746         * doc/gccint.texi (menu): Add Testsuites as a chapter.
25747         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
25748         new chapter.
25749         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
25750         LTO Testing, gcov Testing, profopt Testing, compat Testing,
25751         Torture Tests): Change from subsection to section.
25752
25753 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
25754             Steven Bosscher  <steven@gcc.gnu.org>
25755
25756         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
25757         instead of bb.
25758
25759 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
25760
25761         PR middle-end/42640
25762         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
25763         the assignment from the new induction variable to the assignment
25764         of the value from the original loop PHI function.
25765
25766 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
25767             Daniel Jacobowitz  <dan@codesourcery.com>
25768
25769         * doc/sourcebuild.texi (Test directives): Clarify options to
25770         dg-skip-if.
25771
25772 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25773
25774         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
25775         Disable cfi directives unless GCC and gas agree on using read-only
25776         .eh_frame sections for 64-bit.
25777         * configure: Regenerate.
25778
25779 2010-03-01  Richard Guenther  <rguenther@suse.de>
25780
25781         PR tree-optimization/43220
25782         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
25783         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
25784
25785 2010-03-01  Richard Guenther  <rguenther@suse.de>
25786             Martin Jambor  <mjambor@suse.cz>
25787
25788         PR middle-end/41250
25789         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
25790         gimplified parameters.
25791
25792 2010-03-01  Christian Bruel  <christian.bruel@st.com>
25793
25794         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
25795
25796 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
25797
25798         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
25799
25800 2010-03-01  Richard Guenther  <rguenther@suse.de>
25801
25802         PR middle-end/43213
25803         * expr.c (expand_assignment): Use the alias-oracle to tell
25804         if the rhs aliases the result decl.
25805
25806 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25807
25808         PR pch/14940
25809         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
25810         to sol_gt_pch_get_address.
25811         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
25812         64-bit, SPARC and x86.
25813         (sol_gt_pch_get_address): New function.
25814
25815 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
25816
25817         * toplev.h (inform_n, error_n): Declare.
25818         * diagnostic.c (inform_n, error_n): New function.
25819
25820 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
25821
25822         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
25823         has no rtl yet when processing local_decls, queue it and recheck
25824         if deferred stack allocation hasn't assigned it rtl.
25825
25826 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
25827
25828         * config/sh/sh.c (unspec_bbr_uid): New.
25829         (gen_block_redirect): Use it instead of INSN_UID.
25830         (gen_far_branch): Likewise.
25831
25832 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
25833
25834         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
25835         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
25836
25837 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25838
25839         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
25840         (Warning Options): -Wno-conversion-null is valid for
25841         Objective-C++ as well.
25842         * doc/tm.texi (Named Address Spaces): Likewise.
25843         * doc/plugins.texi (Plugins): Replace TABs with spaces.
25844         * doc/tree-ssa.texi (Tree SSA): Likewise.
25845
25846 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
25847
25848         PR bootstrap/43202
25849         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
25850         by default.  Don't set the default arch for
25851         i[34567]86-*-darwin*|x86_64-*-darwin*.
25852
25853 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
25854
25855         PR bootstrap/43202
25856         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
25857         default.  Set the default 32bit/64bit archs with $with_arch
25858         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
25859
25860 2010-02-27  Richard Guenther  <rguenther@suse.de>
25861
25862         PR tree-optimization/43186
25863         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
25864         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
25865         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
25866         unroller iterations.
25867
25868 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
25869
25870         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
25871         required and i[34567]86-*-* targets don't support 64bit ISA.
25872
25873 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
25874
25875         PR ada/43096
25876         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
25877         the same alias set.
25878
25879 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
25880
25881         * config.gcc: Set the default arch at least to Prescott for
25882         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
25883         if SSE math is enabled.
25884
25885 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25886
25887         * diagnostic.c (diagnostic_initialize): Update.
25888         (diagnostic_report_diagnostic): Test inhibit_notes_p for
25889         informative notes.
25890         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
25891         (diagnostic_inhibit_notes): New.
25892         * toplev.c (process_options): inhibit notes with -fcompare-debug.
25893
25894 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25895
25896         PR c/20631
25897         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
25898         * doc/standards.texi: Likewise.
25899         * doc/extend.texi: Likewise.
25900         * doc/trouble.texi: Likewise.
25901         * doc/cppopts.texi: Likewise.
25902         * doc/install.texi: Likewise.
25903         * c.opt (std=c90,std=gnu90): New options.
25904         * c-opts.c (c_common_handle_option): Handle them.
25905
25906 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25907
25908         PR c/24577
25909         * c-decl.c (undeclared_variable): Use an informative note.
25910
25911 2010-02-26  Richard Guenther  <rguenther@suse.de>
25912
25913         PR tree-optimization/43186
25914         * gimple.h (gimple_fold): Remove.
25915         * gimple.c (gimple_fold): Remove.  Inline into single user ...
25916         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
25917         Try harder for conditions.
25918
25919 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
25920
25921         PR debug/43190
25922         * function.c (used_types_insert): Don't skip through named pointer
25923         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
25924         and it is different from the main variant's type.
25925
25926 2010-02-26  Nick Clifton  <nickc@redhat.com>
25927
25928         * config/rx/rx.md (sminsi3): Remove bogus alternative.
25929
25930 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
25931
25932         * config.gcc: Support --with-fpmath=sse for x86.
25933
25934         * config/i386/ssemath.h: New.
25935
25936         * doc/install.texi (--with-fpmath=sse): Documented.
25937
25938 2010-02-26  Richard Guenther  <rguenther@suse.de>
25939
25940         PR tree-optimization/43188
25941         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
25942         vector types of over-aligned element type.
25943
25944 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
25945
25946         PR target/43175
25947         * config/i386/i386.c (expand_vec_perm_blend): Use correct
25948         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
25949
25950 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
25951
25952         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
25953
25954 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
25955
25956         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
25957         * var-tracking.c: Include diagnostic.h.
25958         (debug_dv): New function.
25959         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
25960
25961         PR debug/43160
25962         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
25963         (add_value_chain, add_value_chains, remove_value_chain,
25964         remove_value_chains): Handle DEBUG_EXPRs.
25965         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
25966
25967         PR debug/43161
25968         * regcprop.c (struct queued_debug_insn_change): New type.
25969         (struct value_data_entry): Add debug_insn_changes field.
25970         (struct value_data): Add n_debug_insn_changes field.
25971         (debug_insn_changes_pool): New variable.
25972         (free_debug_insn_changes, apply_debug_insn_changes,
25973         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
25974         (kill_value_one_regno): Call free_debug_insn_changes if needed.
25975         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
25976         fields.
25977         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
25978         changes for them.
25979         (copyprop_hardreg_forward_1): Don't call apply_change_group for
25980         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
25981         changes, call cprop_find_used_regs via note_stores.
25982         (copyprop_hardreg_forward): When copying vd from predecessor
25983         which has any queued DEBUG_INSN changes, make sure the pointers are
25984         cleared.  At the end call df_analyze and then if there are any
25985         DEBUG_INSN changes queued at the end of some basic block for still
25986         live registers, apply them.
25987         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
25988
25989 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
25990
25991         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
25992         (arm*-*-*): Ditto.
25993
25994 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
25995
25996         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
25997         targets.  Set the default with_cpu/with_arch from arch/cpu.
25998         Allow x86-64 and native for with_cpu/with_arch.
25999
26000 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
26001
26002         * ebitmap.c: Change calls to verify_popcount with calls to
26003         sbitmap_verify_popcount.
26004         (ebitmap_clear_bit): Fixed map->cacheindex test and
26005         map>cache update when bit clearing results in an empty
26006         element.
26007
26008 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
26009
26010         PR target/43154
26011         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
26012         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
26013         and support both V2DF and V2DI modes.
26014         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
26015         support both V2DF and V2DI modes.
26016         (general): Delete trailing whitespace from a few patterns.
26017
26018         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
26019         V2DF/V2DI interleave high/low builtins.
26020
26021         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
26022         new VSX builtins.
26023
26024         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
26025         interleave high/low functions.
26026
26027 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
26028
26029         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
26030         #pragma extern_prefix.
26031
26032 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
26033
26034         PR debug/43166
26035         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
26036         BLKmode, assert op0 is a MEM and just adjust its mode.
26037
26038         PR debug/43165
26039         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
26040         if bitpos isn't multiple of mode's bitsize.
26041
26042 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26043
26044         * c.opt (-ftemplate-depth=): New.
26045         (-ftemplate-depth-): Deprecate.
26046         * optc-gen.awk: Handle -ftemplate-depth=.
26047         * opth-gen.awk: Likewise.
26048         * c-opts.c (c_common_handle_option): Likewise.
26049         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
26050
26051 2010-02-24  Jason Merrill  <jason@redhat.com>
26052
26053         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
26054
26055 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26056
26057         * cfg.c (alloc_aux_for_block): Remove inline.
26058         (alloc_aux_for_edge): Likewise.
26059
26060 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26061
26062         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
26063
26064 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26065
26066         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
26067         * config/i386/sol2-gas.h: New file.
26068         * config.gcc (i[34567]86-*-solaris2*): Use it.
26069
26070 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26071
26072         PR c/43128
26073         * c-typeck.c (ep_convert_and_check): New.
26074         (build_conditional_expr): Use it.
26075         (build_binary_op): Likewise.
26076
26077 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
26078
26079         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
26080
26081         PR debug/43150
26082         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
26083         bounds even for -O+.
26084         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
26085         expr needs to have DECL_NAME set.
26086
26087 2010-02-24  Nick Clifton  <nickc@redhat.com>
26088
26089         * config/mep/mep.c: Include gimple.h.
26090         (mep_function_uses_sp): Delete unused function.
26091         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
26092         parameters.  Use unsigned integers to count args.  Return a
26093         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
26094
26095 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
26096
26097         PR target/43107
26098         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
26099         greater or equal to nelt instead of 2 * nelt.
26100         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
26101         with nelt - 1.
26102
26103 2010-02-23  Jason Merrill  <jason@redhat.com>
26104
26105         PR debug/42800
26106         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
26107         in cfun->local_decls even if they have register types.
26108
26109         PR c++/42837
26110         * stor-layout.c (place_field): Don't warn about unnecessary
26111         DECL_PACKED if the type is packed.
26112
26113 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
26114
26115         PR target/43139
26116         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
26117         GOTOFF relocs, even when the base reg isn't pic pointer.
26118
26119 2010-02-23  Michael Matz  <matz@suse.de>
26120
26121         PR debug/43077
26122         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
26123         (expand_gimple_basic_block): Generate and use debug temps if there
26124         are debug uses left after the last real use of TERed ssa names.
26125         Unlink debug immediate uses when they are expanded.
26126
26127 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26128
26129         PR 43123
26130         * config/i386/i386.c (override_options): Reorganise to provide
26131         better error messages.
26132
26133 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
26134
26135         PR middle-end/43083
26136         * graphite-scop-detection.c (create_single_exit_edge): Move
26137         the call to find_single_exit_edge to....
26138         (create_sese_edges): ...here.  Don't handle multiple edges
26139         exiting the function.
26140         (build_graphite_scops): Don't handle multiple edges
26141         exiting the function.
26142
26143 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
26144
26145         PR middle-end/43097
26146         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
26147         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
26148
26149 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
26150
26151         PR middle-end/43026
26152         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
26153
26154 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26155
26156         PR c++/43126
26157         * c-typeck.c (convert_arguments): Print declaration location.
26158         * c-common.c (validate_nargs): Rename as
26159         builtin_function_validate_nargs.
26160         (check_builtin_function_arguments): Update.
26161
26162 2010-02-22  Richard Guenther  <rguenther@suse.de>
26163
26164         PR lto/43045
26165         * tree-inline.c (declare_return_variable): Use the type of
26166         the call stmt lhs if available.
26167
26168 2010-02-22  Duncan Sands  <baldrick@free.fr>
26169
26170         * passes.c (register_pass): Always consider all pass lists when
26171         ref_pass_instance_number is zero.
26172
26173 2010-02-22  Richard Guenther  <rguenther@suse.de>
26174
26175         PR tree-optimization/42749
26176         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
26177         parameter.  Do arithmetic in the original type.
26178         (update_accumulator_with_ops): Likewise.
26179         (adjust_accumulator_values): Adjust.
26180
26181 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26182
26183         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
26184         (QI to BLKmode splitter): New splitter.
26185
26186 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
26187
26188         * config/i386/i386.c (initial_ix86_tune_features): Turn on
26189         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
26190
26191 2010-02-22  Richard Guenther  <rguenther@suse.de>
26192
26193         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
26194
26195 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
26196
26197         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
26198         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
26199         ($(T)crti.o, $(T)crtn.o): Remove rules.
26200
26201 2010-02-21  Tobias Burnus  <burnus@net-b.de>
26202
26203         PR fortran/35259
26204         * doc/invoke.texi (-fassociative-math): Document that this
26205         option is automatically enabled for Fortran.
26206
26207 2010-02-20  David S. Miller  <davem@davemloft.net>
26208
26209         * configure.ac: Test if linker and assembler properly support
26210         GOTDATA_OP relocations.
26211         * configure: Rebuild.
26212         * config.in: Likewise.
26213         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
26214         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
26215         (movsi_high_pic): Likewise.
26216         (movdi_lo_sum_pic): Likewise.
26217         (movdi_high_pic): Likewise.
26218         (movsi_pic_gotdata_op): New pattern.
26219         (movdi_pic_gotdata_op): Likewise.
26220         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
26221         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
26222
26223 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
26224
26225         PR target/43067
26226         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
26227         attribute to ssemul.
26228         (xop_mulv2div2di3_high): Ditto.
26229
26230 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26231
26232         PR c++/35669
26233         * c.opt (Wconversion-null): New option.
26234         * doc/invoke.texi (Wconversion-null): Document.
26235
26236 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26237
26238         * common.opt (Wlarger-than-): Add Undocumented.
26239
26240 2010-02-19  Mike Stump  <mikestump@comcast.net>
26241
26242         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
26243
26244 2010-02-19  Jason Merrill  <jason@redhat.com>
26245
26246         PR target/40332
26247         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
26248         * configure: Likewise.
26249
26250 2010-02-20  Alan Modra  <amodra@gmail.com>
26251
26252         PR middle-end/42344
26253         * cgraph.h (cgraph_make_decl_local): Declare.
26254         * cgraph.c (cgraph_make_decl_local): New function.
26255         (cgraph_make_node_local): Use it.
26256         * cgraphunit.c (cgraph_function_versioning): Likewise.
26257         * ipa.c (function_and_variable_visibility): Likewise.
26258
26259 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
26260
26261         PR bootstrap/43121
26262         * except.c (sjlj_emit_function_enter): Don't call
26263         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
26264         directly.
26265         * rtl.h (add_reg_br_prob_note): Remove prototype.
26266
26267 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26268
26269         PR 41779
26270         * c-common.c (conversion_warning): Remove widening conversions
26271         before checking the conversion of integers to reals.
26272
26273 2010-02-19  Mike Stump  <mikestump@comcast.net>
26274
26275         PR middle-end/43125
26276         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
26277
26278         PR objc/43061
26279         * cgraphunit.c (process_function_and_variable_attributes): Check
26280         DECL_PRESERVE_P instead of looking up attribute "used".
26281         * ipa-pure-const.c (check_decl): Likewise.
26282         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
26283         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
26284         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
26285         instead of attribute "used".
26286         * config/sol2-c.c (solaris_pragma_init): Likewise.
26287         (solaris_pragma_fini): Likewise.
26288
26289 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
26290
26291         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
26292         Use XCNEW instead of xcalloc.
26293         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
26294         XNEW instead of xmalloc.
26295         (get_fields): Use XNEWVEC instead of xmalloc.
26296
26297         PR debug/43084
26298         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
26299         populate vars array.
26300         (create_new_general_access): For debug stmts just reset value.
26301         (get_stmt_accesses): For accesses within debug stmts just record them
26302         using add_access_to_acc_sites instead of preventing the peeling or
26303         counting them as accesses.
26304
26305         PR middle-end/42233
26306         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
26307
26308 2010-02-19  Richard Guenther  <rguenther@suse.de>
26309
26310         PR tree-optimization/42916
26311         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
26312         instructions.
26313
26314 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
26315
26316         * configure.ac: Replace all uses of changequote in macro arguments
26317         with proper quoting.
26318
26319 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
26320
26321         PR middle-end/42233
26322         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
26323
26324 2010-02-19  Richard Guenther  <rguenther@suse.de>
26325
26326         PR tree-optimization/42944
26327         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
26328         test for aliasing with errno.
26329
26330 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
26331
26332         PR middle-end/42233
26333         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
26334         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
26335         * dojump.c: Include output.h.
26336         (inv): New inline function.
26337         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
26338         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
26339         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
26340         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
26341         argument, pass it down to other calls.
26342         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
26343         add REG_BR_PROB note to the conditional jump.
26344         * cfgexpand.c (add_reg_br_prob_note): Removed.
26345         (expand_gimple_cond): Don't call it, add the probability
26346         as last argument to jumpif_1/jumpifnot_1.
26347         * Makefile.in (dojump.o): Depend on output.h.
26348         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
26349         callers.
26350         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
26351         * stmt.c (do_jump_if_equal): Likewise.
26352         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
26353         * loop-unswitch.c (compare_and_jump_seq): Likewise.
26354         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
26355         Likewise.
26356         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
26357         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
26358         jumpifnot_1 callers.
26359         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
26360         callers.
26361         (store_expr): Adjust jumpifnot caller.
26362         (store_constructor): Adjust jumpif caller.
26363
26364         PR middle-end/42233
26365         * gimplify.c (gimple_boolify): For __builtin_expect call
26366         gimple_boolify also on its first argument.
26367
26368 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
26369
26370         * configure.ac (gnu-unique-object): Wrap regexps using [] in
26371         changequote block.
26372         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
26373         * configure: Regenerated.
26374
26375 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
26376
26377         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
26378         lang_hooks.types_compatible_p instead of comptypes.
26379
26380 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
26381
26382         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
26383         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
26384         if __prefer_thumb__ is defined.
26385
26386 2010-02-18  Martin Jambor  <mjambor@suse.cz>
26387
26388         PR tree-optimization/43066
26389         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
26390         array with zero-sized element type.
26391
26392 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
26393
26394         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
26395         rtx, allocate struct var_loc_node here and return it to the
26396         caller, and only if it is actually needed.
26397         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
26398         move it earlier and return immediately if it returns NULL.
26399
26400 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
26401
26402         * config/sparc/gas.h: New file.  Restore
26403         TARGET_ASM_NAMED_SECTION to its ELF default.
26404         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
26405         check !HAVE_GNU_AS.
26406         * config/sparc/sparc.c (sparc_elf_asm_named_section):
26407         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
26408         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
26409         after sparc/sysv4.h.
26410
26411 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
26412
26413         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
26414
26415 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
26416
26417         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
26418         patterns from predicated pattern.
26419
26420 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
26421
26422         PR target/43103
26423         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
26424         for insn mnemonic suffix.
26425
26426 2010-02-17  Richard Guenther  <rguenther@suse.de>
26427
26428         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
26429         to loop PHI nodes.
26430
26431 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
26432
26433         PR debug/42918
26434         * caller-save.c (save_call_clobbered_regs): If BB ends with
26435         a DEBUG_INSN, move any notes in between last real insn and the last
26436         DEBUG_INSN after the last DEBUG_INSN.
26437
26438 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
26439
26440         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
26441         Fix return type.  Fix argument type.  Explain meaning of return value.
26442
26443 2010-02-16  Richard Guenther  <rguenther@suse.de>
26444
26445         PR tree-optimization/41043
26446         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
26447         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
26448         statements ...
26449         (vrp_visit_phi_node): ... but only for loop PHI nodes.
26450
26451 2010-02-16  Ira Rosen  <irar@il.ibm.com>
26452
26453         PR tree-optimization/43074
26454         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
26455         * tree-vect-loop.c (vect_analyze_loop_operations): Add
26456         vectorizable cycles in hybrid SLP check.
26457         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
26458
26459 2010-02-16  Richard Guenther  <rguenther@suse.de>
26460
26461         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
26462         (true_dependence): If memrefs_conflict_p computes must-alias
26463         trust it.  Move TBAA check after offset-based disambiguation.
26464         (canon_true_dependence): Likewise.
26465
26466 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
26467
26468         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
26469         * doc/invoke.texi: Document it.
26470         * var-tracking.c: Include toplev.h and params.h.
26471         (vt_find_locations): Return bool indicating success.  Compute
26472         hash sizes unconditionally.  Check new parameter, report.
26473         (variable_tracking_main_1): Check vt_find_locations results and
26474         retry.  Renamed from...
26475         (variable_tracking_main): ... this.  New wrapper to preserve
26476         flag_var_tracking_assignments.
26477         * Makefile.in (var-tracking.o): Adjust dependencies.
26478
26479 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
26480             Jakub Jelinek  <jakub@redhat.com>
26481
26482         PR target/42854
26483         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
26484         if weak_import attribute is present.
26485         * config/darwin.c (machopic_select_section): Likewise.
26486
26487 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
26488
26489         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
26490         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
26491         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
26492         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
26493
26494         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
26495         types.
26496
26497         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
26498         Fix argument types.
26499
26500         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
26501         Rewrite text to refer to the names.
26502
26503 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
26504
26505         * config/i386/i386-builtin-types.def
26506         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
26507         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
26508         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
26509         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
26510         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
26511         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
26512         IX86_BUILTIN_VPERMIL2PS256.
26513         (MULTI_ARG_4_DF2_DI_I): Defined.
26514         (MULTI_ARG_4_DF2_DI_I1): Defined.
26515         (MULTI_ARG_4_SF2_SI_I): Defined.
26516         (MULTI_ARG_4_SF2_SI_I1): Defined.
26517         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
26518         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
26519         __builtin_ia32_vpermil2ps256.
26520         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
26521         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
26522         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
26523         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
26524         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
26525         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
26526         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
26527         CODE_FOR_xop_vpermil2v8sf3.
26528         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
26529         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
26530         * config/i386/xopintrin.h (_mm_permute2_pd): New.
26531         (_mm256_permute2_pd): New.
26532         (_mm_permute2_ps): New.
26533         (_mm256_permute2_ps): New.
26534
26535 2010-02-15  Nick Clifton  <nickc@redhat.com>
26536
26537         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
26538         boolean parameters.  Use emit_jump_insn when emitting a pop
26539         instruction containing a return insn.
26540         (push): Use 'true' rather than '1' as second parameter to F.
26541         (h8300_expand_prologue): Likewise.
26542         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
26543         (h8300_expand_epilogue): Likewise.
26544
26545 2010-02-15  Richard Guenther  <rguenther@suse.de>
26546
26547         PR middle-end/43068
26548         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
26549         if that is zero.
26550
26551 2010-02-15  Nick Clifton  <nickc@redhat.com>
26552
26553         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
26554         delta.
26555
26556 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
26557
26558         * intl.c (fake_ngettext): New function.
26559         * intl.h (fake_ngettext): Declare.
26560         (ngettext): Define macro.
26561         * collect2.c (notice_translated): New function.
26562         (main): Use notice_translated and ngettext.
26563         * collect2.h (notice_translated): Declare.
26564
26565 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
26566
26567         * reorg.c (delete_computation): Comment fixes.
26568         * caller-save.c (setup_save_areas): Idem.
26569         * sel-sched-dump.c (dump_lv_set): Idem.
26570         * rtl.def: Idem.
26571
26572 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26573
26574         * config/s390/s390.c (s390_sched_init): New function.
26575         (TARGET_SCHED_INIT): Target hook defined.
26576
26577 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
26578             Jack Howarth  <howarth@bromo.med.uc.edu>
26579             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
26580
26581         PR target/42982
26582         Partial revert of unintended change in fix for PR41605.
26583         * config/darwin.h: Fix typo.
26584         * config/darwin9.h: Same.
26585
26586 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
26587
26588         * c-pch.c (pch_init): Clear v.
26589
26590 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
26591
26592         PR middle-end/42930
26593         * graphite-scop-detection.c (graphite_can_represent_scev): Call
26594         graphite_can_represent_init for MULT_EXPR.
26595
26596 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
26597
26598         PR middle-end/42914
26599         PR middle-end/42530
26600         * graphite-sese-to-poly.c (remove_phi): New.
26601         (translate_scalar_reduction_to_array): Call remove_phi.
26602
26603 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
26604
26605         PR middle-end/42771
26606         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
26607         * graphite-clast-to-gimple.h (gloog): Update declaration.
26608         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
26609         * graphite-poly.h (struct poly_bb): Add missing comments.
26610         (struct scop): Add poly_scop_p field.
26611         (POLY_SCOP_P): New.
26612         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
26613         * graphite.c (graphite_transform_loops): Build the polyhedral
26614         representation for each scop before code generation.
26615         * sese.c (rename_variables_in_operand): Removed.
26616         (rename_variables_in_expr): Return the renamed expression.
26617         (rename_sese_parameters): New.
26618         * sese.h (rename_sese_parameters): Declared.
26619
26620 2010-02-11  Richard Guenther  <rguenther@suse.de>
26621
26622         PR tree-optimization/42998
26623         * tree-ssa-pre.c (create_expression_by_pieces): Treat
26624         POINTER_PLUS_EXPR properly.
26625
26626 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
26627             Changpeng Fang  <changpeng.fang@amd.com>
26628
26629         PR middle-end/40886
26630         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
26631         the cost of an IV candidate when the IV is used in a test against zero.
26632
26633         * gcc.dg/tree-ssa/ivopts-3.c: New.
26634
26635 2010-02-11  Richard Guenther  <rguenther@suse.de>
26636
26637         PR lto/41664
26638         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
26639         pointer-vs-decl case by swapping refs.  Handle some cases
26640         of pointer-vs-decl disambiguations more conservatively.
26641         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
26642         to false after expanding.
26643
26644 2010-02-11  Richard Guenther  <rguenther@suse.de>
26645
26646         PR driver/43021
26647         * gcc.c (process_command): Handle LTO file@offset case more
26648         appropriately.
26649
26650 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
26651
26652         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
26653         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
26654         of DEBUG_INSNs.
26655         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
26656
26657         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
26658         if MEM's mode size isn't DWARF2_ADDR_SIZE.
26659         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
26660         Optimize eq/ne comparisons when both arguments are known to be
26661         zero-extended.
26662         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
26663         Don't mask operands unnecessarily if they are known to be already
26664         zero-extended.
26665
26666 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
26667
26668         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
26669         instead of loop.
26670
26671 2010-02-10  Richard Guenther  <rguenther@suse.de>
26672
26673         PR tree-optimization/43017
26674         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
26675         for wrapping signed arithmetic.
26676
26677 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
26678
26679         PR debug/43010
26680         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
26681         if no debug info should be emitted for it.
26682
26683 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
26684
26685         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
26686         note when flag_exceptions is set.
26687
26688 2010-02-10  Duncan Sands  <baldrick@free.fr>
26689
26690         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
26691
26692 2010-02-10  Richard Guenther  <rguenther@suse.de>
26693
26694         PR c/43007
26695         * tree.c (get_unwidened): Handle constants.
26696         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
26697
26698 2010-02-10  Martin Jambor  <mjambor@suse.cz>
26699
26700         PR lto/42985
26701         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
26702         check for variable argument counts independently.
26703
26704 2010-02-10  Christian Bruel  <christian.bruel@st.com>
26705
26706         PR target/42841
26707         * config/sh/sh.c (find_barrier): Increase length for non delayed
26708         conditional branches.
26709
26710 2010-02-10  Christian Bruel  <christian.bruel@st.com>
26711
26712         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
26713
26714 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
26715
26716         * builtins.c (set_builtin_user_assembler_name): Also handle
26717         ffs if int is smaller than word.
26718
26719 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
26720
26721         PR middle-end/42973
26722         * ira-conflicts.c (get_dup): Remove.
26723         (process_reg_shuffles): Add new parameter.  Use it as an
26724         additional guard for copy generation.
26725         (add_insn_allocno_copies): Rewrite.
26726
26727 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
26728
26729         * common.opt (fsched2-use-traces): Preserved for backward
26730         compatibility.
26731         * doc/invoke.texi: Remove the documentation about option
26732         -fsched2-use-traces.
26733         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
26734         flag_sched2_use_traces.
26735         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
26736         the backward compatibility flag section.
26737
26738 2010-02-09  Richard Guenther  <rguenther@suse.de>
26739
26740         PR tree-optimization/43008
26741         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
26742         make HEAP variables initialized from global memory if they
26743         are not known builtin functions.
26744         (find_func_aliases): Adjust.
26745
26746 2010-02-09  Richard Guenther  <rguenther@suse.de>
26747
26748         PR tree-optimization/43000
26749         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
26750         arithmetic manually.
26751
26752 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
26753
26754         PR tree-optimization/42931
26755         * tree-loop-linear.c (try_interchange_loops): Don't call
26756         double_int_mul if estimated_loop_iterations failed.
26757
26758 2010-02-08  Martin Jambor  <mjambor@suse.cz>
26759
26760         PR middle-end/42898
26761         * tree-sra.c (build_accesses_from_assign): Do not mark in
26762         should_scalarize_away_bitmap if stmt has volatile ops.
26763         (sra_modify_assign): Do not process assigns piecemeal if if stmt
26764         has volatile ops.
26765
26766 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
26767
26768         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
26769
26770 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
26771
26772         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
26773         before the pattern.
26774
26775 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
26776
26777         PR middle-end/42946
26778         * df-core.c (df_finish_pass): Change type of saved_flags to int.
26779
26780 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
26781
26782         PR middle-end/42988
26783         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
26784         to unknown_dependence.
26785         (graphite_legal_transform_dr): Handle the unknown_dependence.
26786         (graphite_carried_dependence_level_k): Same.
26787
26788 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
26789
26790         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
26791
26792 2010-02-07  Richard Guenther  <rguenther@suse.de>
26793
26794         PR middle-end/42991
26795         * expr.c (get_inner_reference): Always initialize *pbitsize.
26796
26797 2010-02-07  Richard Guenther  <rguenther@suse.de>
26798
26799         PR middle-end/42956
26800         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
26801         new ARRAY_REFs on variable size element or minimal index arrays.
26802         Complete.
26803         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
26804         gimple_fold_indirect_ref.
26805
26806 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
26807
26808         PR target/42957
26809         * arm.c (arm_override_options): Just return if the user has specified
26810         an invalid fpu name.
26811
26812 2010-02-03  Jason Merrill  <jason@redhat.com>
26813
26814         PR c++/42870
26815         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
26816         i386_pe_maybe_record_exported_symbol.
26817
26818 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
26819
26820         PR target/42924
26821         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
26822         (pa_delegitimize_address): New function.
26823
26824 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
26825
26826         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
26827         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
26828
26829 2010-02-05  Richard Guenther  <rguenther@suse.de>
26830
26831         PR lto/42762
26832         * lto-streamer-in.c (get_resolution): Deal with references
26833         to undefined functions.
26834
26835 2010-02-05  Richard Guenther  <rguenther@suse.de>
26836
26837         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
26838         (fold_const_aggregate_ref): Likewise.
26839         (ccp_fold_stmt): Substitute loads.
26840         (maybe_fold_reference): Verify types before substituting.
26841         Unshare properly.
26842         (fold_gimple_assign): Unshare properly.
26843         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
26844
26845 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
26846
26847         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
26848         for rs6000_gen_cell_microcode.
26849
26850 2010-02-04  Richard Guenther  <rguenther@suse.de>
26851
26852         PR rtl-optimization/42952
26853         * dse.c (const_or_frame_p): Remove MEM handling.
26854
26855 2010-02-04  Nick Clifton  <nickc@redhat.com>
26856
26857         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
26858         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
26859         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
26860         (mn10300_asm_output_mi_thunk): New function.
26861         (mn10300_can_output_mu_thunk): New function.
26862         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
26863         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
26864         (FUNCTION_ARG): Delete incorrect comment.
26865
26866 2010-02-03  Jason Merrill  <jason@redhat.com>
26867
26868         PR c++/40138
26869         * fold-const.c (operand_equal_p): Handle erroneous types.
26870
26871 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
26872
26873         * config/h8300/h8300.md (can_delay): Fix attibute condition.
26874
26875 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
26876
26877         PR rtl-optimization/42941
26878         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
26879         of xmalloc.
26880
26881 2010-02-03  Jason Merrill  <jason@redhat.com>
26882
26883         PR c++/35652
26884         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
26885
26886 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
26887
26888         PR debug/42896
26889         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
26890         (cselib_reset_table): Renamed from...
26891         (cselib_reset_table_with_next_value): ... this.
26892         (cselib_get_next_uid): Renamed from...
26893         (cselib_get_next_unknown_value): ... this.
26894         * cselib.c (next_uid): Renamed from...
26895         (next_unknown_value): ... this.
26896         (cselib_clear_table): Adjust.
26897         (cselib_reset_table): Adjust.  Renamed from...
26898         (cselib_reset_table_with_next_value): ... this.
26899         (cselib_get_next_uid): Adjust.  Renamed from...
26900         (cselib_get_next_unknown_value): ... this.
26901         (get_value_hash): Use hash.
26902         (cselib_hash_rtx): Likewise.
26903         (new_cselib_val): Adjust.  Set and dump uid.
26904         (cselib_lookup_mem): Pass next_uid as hash.
26905         (cselib_subst_to_values): Likewise.
26906         (cselib_log_lookup): Dump uid.
26907         (cselib_lookup): Pass next_uid as hash.  Adjust.
26908         (cselib_process_insn): Adjust.
26909         (cselib_init): Initialize next_uid.
26910         (cselib_finish): Adjust.
26911         (dump_cselib_table): Likewise.
26912         * dse.c (canon_address): Dump value uid.
26913         * print-rtl.c (print_rtx): Print value uid.
26914         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
26915         (dvuid): New type.
26916         (dv_uid): New function, sort of renamed from...
26917         (dv_htab_hash): ... this, reimplemented in terms of it and...
26918         (dv_uid2hash): ... this.  New.
26919         (variable_htab_eq): Drop excess assertions.
26920         (tie_break_pointers): Removed.
26921         (canon_value_cmp): Compare uids.
26922         (variable_post_merge_New_vals): Print uids.
26923         (vt_add_function_parameters): Adjust.
26924         (vt_initialize): Reset table.  Adjust.
26925
26926 2010-02-03  Richard Guenther  <rguenther@suse.de>
26927
26928         PR tree-optimization/42944
26929         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
26930         (call_may_clobber_ref_p_1): Likewise.  Properly handle
26931         malloc and calloc clobbering errno.
26932
26933 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
26934
26935         * doc/invoke.texi: Fix name of sched1 dump.
26936
26937         * opts.c (decode_options): Set flag_tree_switch_conversion
26938         only conditionally on optimize >= 2.
26939
26940         * gcse.c: Assorted comment fixes in pass description.
26941
26942 2010-02-03  Anthony Green  <green@moxielogic.com>
26943
26944         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
26945         nop padding in order to maintain alignment of storage location of
26946         target function address.
26947         (moxie_trampoline_init): Store target function address at newly
26948         aligned location.
26949         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
26950         to 32.
26951         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
26952
26953 2010-02-03  Richard Guenther  <rguenther@suse.de>
26954
26955         PR middle-end/42927
26956         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
26957
26958 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26959
26960         * config.gcc: Reenable check for obsolete targets.
26961         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
26962         mips-sgi-irix6.[0-4]*.
26963
26964 2010-02-02  Nick Clifton  <nickc@redhat.com>
26965
26966         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
26967         constant size of 4 as being the same as 0.
26968         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
26969         can take values in the range 0..4.
26970
26971 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
26972
26973         PR java/41991
26974         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
26975         as _darwin10_Unwind_FindEnclosingFunction().
26976         * libgcc-libsystem.ver: New.
26977
26978 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
26979
26980         PR target/41399
26981         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
26982         implicitly set registers.
26983
26984 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
26985
26986         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
26987         (arm_override_options): Allow automatic selection of the thread
26988         pointer register if thumb2.
26989         (legitimize_pic_address): Improve code sequences for Thumb2.
26990         (arm_call_tls_get_addr): Likewise.
26991         (legitimize_tls_address): Likewise.
26992         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
26993         (pic_load_addr_32bit): ... this.  New named pattern.
26994         * thumb2.md (pic_load_addr_thumb2): Delete.
26995         (pic_load_dot_plus_four): Delete.
26996         (tls_load_dot_plus_four): New named pattern.
26997
26998 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26999
27000         PR libgomp/29986
27001         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
27002         Document fix for TLS bug.
27003
27004 2010-01-31  Richard Guenther  <rguenther@suse.de>
27005
27006         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
27007         conservatively correct.
27008
27009 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27010
27011         PR target/42850
27012         Revert:
27013         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27014
27015         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
27016
27017 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
27018
27019         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
27020
27021 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
27022
27023         * config.gcc: Adjust order of makefile fragments for mingw targets.
27024
27025 2010-01-31  Richard Guenther  <rguenther@suse.de>
27026
27027         PR middle-end/42898
27028         * gimplify.c (gimplify_init_constructor): For volatile LHS
27029         initialize a temporary.
27030
27031 2010-01-31  Matthias Klose  <doko@ubuntu.com>
27032
27033         * configure.ac: Fix __stack_chk_fail check for cross builds configured
27034         --with-headers
27035         * configure: Regenerate.
27036
27037 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
27038
27039         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
27040         the same alias set and their sizes different constantness.
27041         (aliasing_component_refs_p): Revert 2009-10-24 change.
27042
27043 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27044
27045         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
27046         unused.
27047
27048 2010-01-29  Richard Guenther  <rguenther@suse.de>
27049
27050         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
27051         Assert we successfully updated the call.
27052
27053 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
27054
27055         PR rtl-optimization/42889
27056         * df.h (df_set_bb_dirty_nonlr): New prototype.
27057         * df-core.c (df_set_bb_dirty_nonlr): New function.
27058         * df-scan.c (df_insn_rescan): Call it instead of
27059         df_set_bb_dirty for DEBUG_INSNs.
27060
27061 2010-01-29  Richard Guenther  <rguenther@suse.de>
27062
27063         PR middle-end/37448
27064         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
27065         quadratic behavior in most cases.
27066
27067 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
27068
27069         PR target/42891
27070         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
27071         in the call to gen_x86_movsicc_0_m1.
27072
27073 2010-01-28  Richard Guenther  <rguenther@suse.de>
27074
27075         PR tree-optimization/42871
27076         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
27077
27078 2010-01-28  Richard Guenther  <rguenther@suse.de>
27079
27080         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
27081         into call arguments.
27082
27083 2010-01-28  Richard Guenther  <rguenther@suse.de>
27084
27085         PR middle-end/42883
27086         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
27087         the forwarder if the destination is an EH landing pad.
27088
27089 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
27090
27091         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
27092         block list passed to gimple_duplicate_sese_tail.
27093         (parallelize_loops): Avoid parallelization when the function
27094         has_nonlocal_label.
27095         Avoid parallelization when the preheader is IRREDUCIBLE.
27096         Try to optimize when estimated_loop_iterations_int is unresolved.
27097         Add the loop's location to the dump file.
27098         * tree-cfg.c (add_phi_args_after_redirect): Remove.
27099         (gimple_duplicate_sese_tail): Remove the check for the latch.
27100         Redirect nexits to the exit block.
27101         Remove handling of the incoming edges to the latch.
27102         Redirect the backedge from the copied latch to the exit bb.
27103
27104 2010-01-28  Michael Matz  <matz@suse.de>
27105
27106         PR target/42881
27107         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
27108         Wrap force_reg into a sequence, emit it before user.
27109
27110 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
27111
27112         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
27113         (arm_rev): New.
27114         (arm_legacy_rev): Likewise.
27115         (thumb_legacy_rev): Likewise.
27116
27117 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
27118
27119         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
27120         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
27121         on MEM's address failed, try avoid_constant_pool_reference and
27122         recurse if it returned something different.
27123         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
27124         address, try avoid_constant_pool_reference and recurse if it
27125         returned something different.
27126         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
27127         address and avoid_constant_pool_reference returned something
27128         different, don't set have_address.
27129
27130 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
27131
27132         PR debug/42861
27133         * var-tracking.c (val_store): Add modified argument, obey it.
27134         Adjust callers.
27135         (count_uses): Move down logging of main.
27136         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
27137         don't need resolution.
27138         (emit_notes_in_bb): Likewise.
27139
27140 2010-01-27  Richard Guenther  <rguenther@suse.de>
27141
27142         PR middle-end/42878
27143         * tree-inline.c (remap_decl): Delay remapping of SSA name
27144         default definitions until we need them.
27145
27146 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
27147
27148         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
27149         (rs6000_delegitimize_address): New function.
27150
27151         * config/s390/s390.c (s390_delegitimize_address): Call
27152         delegitimize_mem_from_attrs.
27153
27154         PR middle-end/42874
27155         * tree-inline.c (cannot_copy_type_1): Removed.
27156         (copy_forbidden): Don't forbid copying of functions containing
27157         records/unions with variable length fields.
27158
27159 2010-01-27  Christian Bruel  <christian.bruel@st.com>
27160
27161         Revert:
27162         PR target/42841
27163         * config/sh/sh.c (find_barrier): Increase length for non delayed
27164         conditional branches.
27165
27166 2010-01-27  Matthias Klose  <doko@ubuntu.com>
27167
27168         * configure.ac (gnu-unique-object): Fix ldd version check.
27169         * configure: Regenerate.
27170
27171 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27172
27173         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
27174         HAVE_GNU_AS value.
27175         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
27176         Test for HAVE_GNU_AS value.
27177
27178 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27179
27180         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
27181         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
27182         INT64_TYPE): Define.
27183         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
27184         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
27185         INT_LEAST64_TYPE): Define.
27186         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
27187         UINT_LEAST64_TYPE): Define.
27188         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
27189         INT_FAST64_TYPE): Define.
27190         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
27191         UINT_FAST64_TYPE): Define.
27192         (INTMAX_TYPE, UINTMAX_TYPE): Define.
27193         (INTPTR_TYPE, UINTPTR_TYPE): Define.
27194         (SIG_ATOMIC_TYPE): Define.
27195
27196 2010-01-26  Richard Guenther  <rguenther@suse.de>
27197
27198         * df-scan.c (df_scan_set_bb_info): Remove assert.
27199         (df_insn_rescan_debug_internal): Merge asserts.
27200         (df_install_ref): Likewise.
27201         (df_mark_reg): Use bitmap_set_range.
27202         (df_hard_reg_used_p): Remove assert.
27203         (df_hard_reg_used_count): Likewise.
27204
27205 2010-01-26  Richard Guenther  <rguenther@suse.de>
27206
27207         PR rtl-optimization/42685
27208         * web.c (web_main): Ignore DEBUG_INSNs.
27209
27210 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
27211
27212         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
27213
27214         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
27215         Fix types of fndecl and arglist parameters.
27216
27217 2010-01-26  Richard Guenther  <rguenther@suse.de>
27218
27219         PR middle-end/42806
27220         * tree-eh.c (unsplit_eh): Skip debug insns.
27221
27222 2010-01-26  Richard Guenther  <rguenther@suse.de>
27223
27224         PR tree-optimization/42250
27225         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
27226
27227 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
27228
27229         PR fortran/42866
27230         * omp-low.c (expand_omp_sections): Only use single_pred if
27231         l2_bb is single_pred_p.
27232
27233 2010-01-25  Christian Bruel  <christian.bruel@st.com>
27234
27235         PR target/42841
27236         * config/sh/sh.c (find_barrier): Increase length for non delayed
27237         conditional branches.
27238         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
27239
27240 2010-01-24  David S. Miller  <davem@davemloft.net>
27241
27242         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
27243         define if not using GAS.
27244         * config/sparc/sparc.c (sparc_elf_asm_named_section):
27245         Likewise.  Delete SECTION_MERGE code, which is only applicable
27246         when using GAS.
27247
27248 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
27249
27250         PR c++/42748
27251         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
27252         mangling of va_list in system headers.
27253
27254 2010-01-23  Toon Moene  <toon@moene.org>
27255
27256         * tree-predcom.c (combine_chains): Return NULL, not false.
27257
27258 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
27259
27260         * tree-loop-distribution.c (distribute_loop): Fix declaration and
27261         initialization of variable res to agree with return type.
27262
27263 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
27264
27265         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
27266         * tree-sra.c: Add include of expr.h.
27267
27268 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
27269
27270         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
27271         insert the debug stmt on the single non-EH edge from the stmt.
27272
27273 2010-01-22  Richard Henderson  <rth@redhat.com>
27274
27275         PR tree-opt/42833
27276         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
27277         the RHS until after generate_subtree_copies has insertted its
27278         code before the current statement.
27279
27280 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
27281
27282         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
27283
27284         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
27285
27286 2010-01-21  Martin Jambor  <mjambor@suse.cz>
27287
27288         PR tree-optimization/42585
27289         * tree-sra.c (struct access): New field grp_total_scalarization.
27290         (dump_access): Dump the new field.
27291         (should_scalarize_away_bitmap): New variable.
27292         (cannot_scalarize_away_bitmap): Likewise.
27293         (sra_initialize): Allocate new bitmaps.
27294         (sra_deinitialize): Free new bitmaps.
27295         (create_access_1): New function.
27296         (create_access): Parts moved to create_access_1.
27297         (type_consists_of_records_p): New function.
27298         (completely_scalarize_record): Likewise.
27299         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
27300         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
27301         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
27302         access.
27303         (analyze_all_variable_accesses): Completely scalarize small eligible
27304         records.
27305
27306 2010-01-21  Martin Jambor  <mjambor@suse.cz>
27307
27308         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
27309
27310 2010-01-21  Andrew Haley  <aph@redhat.com>
27311
27312         * gcc.c (process_command): Move lang_specific_driver before
27313         setting cc_libexec_prefix.
27314
27315 2010-01-21  Richard Guenther  <rguenther@suse.de>
27316
27317         PR middle-end/19988
27318         * fold-const.c (negate_expr_p): Pretend only negative
27319         real constants are easily negatable.
27320
27321 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
27322             Jason Merrill  <jason@redhat.com>
27323
27324         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
27325         (TYPE_TRANSPARENT_AGGR): this, for union and record.
27326         * calls.c (initialize argument_information): Handle it.
27327         * c-common.c (handle_transparent_union_attribute): Use new name.
27328         * c-decl.c (finish_struct): Ditto.
27329         * c-typeck.c (type_lists_compatible_p): Ditto.
27330         (convert_for_assignment): Use new name and also handle record.
27331         * function.c (aggregate_value_p): Handle it.
27332         (pass_by_reference): Ditto.
27333         (assign_parm_data_types): Ditto.
27334         * print-tree.c (print_node): Ditto.
27335         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
27336         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
27337         * tree.c (first_field): New fn.
27338
27339 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
27340
27341         PR target/42818
27342         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
27343         even when linking statically, for now.
27344
27345 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
27346
27347         PR debug/42715
27348         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
27349         without a cselib val.
27350         (count_uses): Accept MO_VAL_SET with no val on stores.
27351         (add_stores): Likewise.
27352
27353 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
27354
27355         * var-tracking.c (check_value_val): Add a compile time assertion.
27356         (dv_is_decl_p): Simplify.
27357         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
27358         gcc_assert if ENABLE_CHECKING.
27359
27360 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
27361
27362         PR debug/42782
27363         * var-tracking.c: Include tree-flow.h.
27364         (mem_dies_at_call): New.
27365         (dataflow_set_preserve_mem_locs): Use it.
27366         (dataflow_set_remove_mem_locs): Likewise.
27367         (dump_var): Renamed from dump_variable.  Adjust all callers.
27368         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
27369         * Makefile.in (var-tracking.o): Adjust deps.
27370
27371 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
27372
27373         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
27374
27375 2010-01-20  Richard Guenther  <rguenther@suse.de>
27376
27377         PR tree-optimization/42717
27378         * tree-ssa-dce.c (get_live_post_dom): Remove.
27379         (forward_edge_to_pdom): Take an arbitrary edge to copy
27380         degenerate PHI args from.
27381         (remove_dead_stmt): Use the first post-dominator even if it
27382         does not contain live statements as redirection destination.
27383
27384 2010-01-20  Richard Guenther  <rguenther@suse.de>
27385
27386         * tree-inline.c (estimate_num_insns): Handle EH builtins.
27387
27388 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
27389
27390         * sel-sched.c (create_speculation_check): Remove set but not used
27391         variable twin.
27392         (try_transformation_cache): Remove set but not used variable ds.
27393         (calculate_privileged_insns): Remove set but not used variables
27394         cur_insn and min_spec_insn.
27395         (find_best_expr): Remove set but not used variable avail_n.
27396         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
27397         variable e.
27398         * cgraphunit.c (assemble_thunk): Remove set but not used variable
27399         false_label.
27400         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
27401         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
27402         new_scop_exit_edge.
27403
27404 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
27405
27406         PR bootstrap/42786
27407         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
27408         cpu types.  Add support for *-sse3 cpu types.
27409         (x86_64-*-*): Ditto.
27410
27411 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
27412
27413         PR middle-end/42803
27414         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
27415         argument, call initializer_constant_valid_p_1 instead of
27416         initializer_constant_valid_p, pass CACHE to it, return NULL
27417         immediately if first call returns NULL.
27418         (initializer_constant_valid_p_1): New function.
27419         (initializer_constant_valid_p): Use it.
27420
27421 2010-01-20  Thomas Quinot  <quinot@adacore.com>
27422
27423         * tree.def (PLACEHOLDER_EXPR): Fix comment.
27424
27425 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
27426
27427         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
27428         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
27429         (loc_list_from_tree): Don't handle unsigned division.  Handle
27430         signed modulo using DW_OP_{over,over,div,mul,minus}.
27431         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
27432         modulo instead of signed.
27433
27434 2010-01-20  DJ Delorie  <dj@redhat.com>
27435
27436         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
27437         (Fpa): Pass it
27438         (h8300_emit_stack_adjustment): Propogate it.
27439         (push): Pass it.
27440         (h8300_expand_prologue): Likewise.
27441         (h8300_expand_epilogue): Likewise.
27442
27443 2010-01-19  Michael Matz  <matz@suse.de>
27444
27445         PR tree-optimization/41783
27446         * tree-data-ref.c (toplevel): Include flags.h.
27447         (dump_data_dependence_relation):  Also dump the inputs if the
27448         result will be unknown.
27449         (split_constant_offset_1): Look through some conversions.
27450         * tree-predcom.c (determine_roots_comp): Restart a new chain if
27451         the offset from last element is too large.
27452         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
27453         (reassociate_to_the_same_stmt): Handle vector registers.
27454         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
27455         (e.g. conversions).
27456         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
27457         wide_prolog_niters argument, emit widening instructions.
27458         (vect_do_peeling_for_alignment): Adjust caller, use widened
27459         variant of the iteration cound.
27460         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
27461
27462 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
27463
27464         PR target/38697
27465         * config/arm/neon-testgen.m (emit_automatics): New parameter
27466         features. Adjust for Fixed_return_reg feature.
27467         (test_intrinsic): Call emit_automatics with new feature.
27468         * config/arm/neon.ml: Update copyright years.
27469         (features): New Fixed_return_reg feature.
27470         (ops): Update feature for Vget_low.
27471
27472 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
27473
27474         PR tree-optimization/42719
27475         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
27476         stmt uses.
27477
27478         PR debug/42728
27479         * fwprop.c (all_uses_available_at): Return false if def_set dest
27480         is a REG that is used in def_insn.
27481
27482 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
27483
27484         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
27485
27486         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
27487         Add argument names.
27488
27489         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
27490
27491         * target.h (struct gcc_target) <secondary_reload>: Change type
27492         of last argument to secondary_reload_info *.
27493
27494 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
27495
27496         PR target/42774
27497         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
27498         memory references with unaligned offsets.  Remove CQImode handling.
27499         (unaligned_memory_operand): Return 1 for memory references with
27500         unaligned offsets.  Remove CQImode handling.
27501
27502 2010-01-18  Richard Guenther  <rguenther@suse.de>
27503
27504         PR middle-end/39954
27505         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
27506         builtin calls.
27507
27508 2010-01-18  Richard Guenther  <rguenther@suse.de>
27509
27510         PR tree-optimization/42781
27511         * tree-ssa-structalias.c (find_what_var_points_to): Skip
27512         restrict processing only if the original variable was artificial.
27513
27514 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
27515
27516         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
27517         find number of popped argument bytes.
27518
27519         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
27520         Fix the text that describes the return value for invalid insns.
27521
27522         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
27523
27524         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
27525         Clarify what 'cost of the -dependence' is.  Fix quoting.
27526
27527         * toplev.c (default_get_pch_validity): Rename argument to "sz".
27528         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
27529
27530 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
27531
27532         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
27533         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
27534
27535 2010-01-17  Richard Guenther  <rguenther@suse.de>
27536
27537         PR middle-end/42248
27538         * function.c (split_complex_args): Take a VEC to modify.
27539         (assign_parms_augmented_arg_list): Build a VEC instead of
27540         a chain of PARM_DECLs.
27541         (assign_parms_unsplit_complex): Take a VEC of arguments.
27542         Do not fixup unmodified parms.
27543         (assign_parms): Deal with the VEC.
27544         (gimplify_parameters): Likewise.
27545
27546 2010-01-17  Richard Guenther  <rguenther@suse.de>
27547
27548         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
27549         node existence check.
27550         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
27551         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
27552         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
27553         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
27554         (gimple_execute_on_growing_pred): Likewise.
27555
27556 2010-01-17  Richard Guenther  <rguenther@suse.de>
27557
27558         PR tree-optimization/42773
27559         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
27560         (compute_antic_aux): Likewise.
27561         (compute_partial_antic_aux): Likewise.
27562
27563 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
27564
27565         PR debug/42767
27566         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
27567         and US_TRUNCATE.
27568
27569 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
27570
27571         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
27572         appearance.
27573
27574         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
27575         Fix markup for strict argument.
27576
27577         (TARGET_SCHED_REORDER2): Fix argument types.
27578
27579         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
27580         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
27581
27582         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
27583         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
27584
27585         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
27586         Add argument name.
27587
27588         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
27589         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
27590         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
27591         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
27592         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
27593
27594         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
27595
27596         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
27597
27598         (TARGET_ASM_RELOC_RW_MASK): Add return type.
27599         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
27600
27601         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
27602
27603         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
27604         Use prototype.
27605
27606         (TARGET_ASM_NAMED_SECTION): Fix argument list.
27607
27608         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
27609         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
27610
27611         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
27612
27613         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
27614
27615         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
27616         referring to it.  Fix language.
27617
27618         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
27619
27620         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
27621
27622         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
27623
27624         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
27625
27626         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
27627         '@var{stream}.  Remove stray 'and'.
27628
27629         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
27630
27631         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
27632
27633         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
27634
27635         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
27636         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
27637
27638         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
27639         Fix description of return value.
27640         Rename argument "sz" to "len."
27641
27642         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
27643         Clarify meaning of 'true' return value.
27644
27645         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
27646
27647         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
27648         rep_mode versus mode_rep.
27649
27650         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
27651
27652         (TARGET_BUILTIN_DECL): Fix name.
27653
27654         (TARGET_COMMUTATIVE_P): Fix type of first argument.
27655
27656         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
27657
27658         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
27659
27660         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
27661
27662         (TARGET_RELAXED_ORDERING): Use @deftypevr.
27663
27664         (TARGET_GET_DRAP_RTX): Note that this is a hook.
27665         Clarify language.
27666
27667         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
27668         Rename argument tm_fn to md_fn.
27669
27670         (TARGET_OPTION_PRINT): Fix argument list.
27671
27672 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
27673
27674         PR target/42664
27675         * config/i386/i386.c (ix86_fixup_binary_operands):
27676         Revert FMA4 fixup of operands.
27677
27678 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27679
27680         PR gcc/42525
27681         * Makefile.in (write_entries_to_file, install-plugin):
27682         Use \012 instead of \n with tr.
27683
27684 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
27685
27686         * configure.ac (HAVE_AS_REF): New C macro.
27687         * configure: Regenerate.
27688         * config.in: Likewise.
27689         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
27690         if HAVE_AS_REF.
27691         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
27692         if HAVE_AS_REF.
27693
27694 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
27695
27696         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
27697
27698         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
27699
27700         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
27701
27702         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
27703
27704         (TARGET_IN_SMALL_DATA_P): Fix argument type.
27705
27706         (TARGET_BINDS_LOCAL_P): Fix argument type.
27707
27708         (TARGET_ASM_FILE_END): Use prototype.
27709
27710         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
27711
27712         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
27713
27714         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
27715
27716         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
27717
27718         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
27719         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
27720
27721         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
27722         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
27723
27724         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
27725         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
27726         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
27727         (TARGET_ADDR_SPACE_CONVERT): Likewise.
27728
27729         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
27730
27731         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
27732
27733         (TARGET_INIT_BUILTINS): Use prototype.
27734
27735         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
27736         Put 'const char *' in braces.  Fix parameter types.
27737         (TARGET_INVALID_CONVERSION): Fix parameter types.
27738         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
27739         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
27740
27741         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
27742         Fix argument type.
27743
27744         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
27745
27746         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
27747
27748 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
27749
27750         * doc/tm.texi (TARGET_HELP): Fix return type.
27751
27752         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
27753         in braces.  Fix argument types.
27754
27755         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
27756
27757         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
27758
27759         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
27760
27761         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
27762         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
27763
27764         (TARGET_MANGLE_TYPE): Fix argument types.
27765
27766         (TARGET_IRA_COVER_CLASSES): Use prototype.
27767
27768         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
27769
27770         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
27771
27772         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
27773
27774         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
27775
27776         (TARGET_CALLEE_COPIES): Fix argument types.
27777
27778         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
27779
27780         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
27781
27782         (TARGET_FUNCTION_VALUE): Fix argument types.
27783
27784         (TARGET_RETURN_IN_MSB): Fix argument type.
27785
27786         (TARGET_RETURN_IN_MEMORY): Fix argument types.
27787
27788         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
27789
27790         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
27791
27792         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
27793         agree with return type.
27794
27795         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
27796
27797 2010-01-15  Jing Yu  <jingyu@google.com>
27798
27799         PR rtl-optimization/42691
27800         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
27801         a pseudo to a constant and are merged, and adjust comments.
27802
27803 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
27804
27805         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
27806
27807 2010-01-15  Richard Guenther  <rguenther@suse.de>
27808
27809         PR middle-end/42739
27810         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
27811         labels of computed or non-local gotos to the destination.
27812         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
27813         landing pad label is the first label.
27814
27815 2010-01-15  Richard Guenther  <rguenther@suse.de>
27816
27817         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
27818
27819 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
27820
27821         PR target/42747
27822         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
27823         to allow generation of the xssqrtdp instruction on power7.
27824         (sqrtdf2_fpr): Ditto.
27825
27826 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
27827
27828         PR middle-end/42674
27829         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
27830         functions with noreturn attribute.
27831
27832         PR c++/42608
27833         * varasm.c (declare_weak): Add weak attribute to decl if it
27834         doesn't have one already.
27835         (assemble_external): Only add decls to weak_decls if they also
27836         have weak attribute.
27837
27838 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
27839
27840         * var-tracking.c (var_reg_delete): Don't delete the association
27841         between REGs and values or one-part variables if the register
27842         isn't clobbered.
27843
27844 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
27845
27846         PR debug/42657
27847         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
27848         because its first operand is a non-localized variable.
27849
27850 2010-01-14  Martin Jambor  <mjambor@suse.cz>
27851
27852         PR tree-optimization/42706
27853         * tree-sra.c (encountered_recursive_call): New variable.
27854         (encountered_unchangable_recursive_call): Likewise.
27855         (sra_initialize): Initialize both new variables.
27856         (callsite_has_enough_arguments_p): New function.
27857         (scan_function): Call decl and flags check only for IPA-SRA, check
27858         whether there is a recursive call and whether it has enough arguments.
27859         (all_callers_have_enough_arguments_p): New function.
27860         (convert_callers): Look for recursive calls only when
27861         encountered_recursive_call is set.
27862         (ipa_early_sra): Bail out either if
27863         !all_callers_have_enough_arguments_p or
27864         encountered_unchangable_recursive_call.
27865
27866 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
27867
27868         * sel-sched.c: Add 2010 to copyright years.
27869         * sel-sched-ir.c: Likewise.
27870         * sel-sched-ir.h: Likewise.
27871
27872 2010-01-14  Martin Jambor  <mjambor@suse.cz>
27873
27874         PR tree-optimization/42714
27875         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
27876         constructors specially.
27877
27878 2010-01-14  Andi Kleen  <ak@linux.intel.com>
27879
27880         * config/i386/drivers-i386.c (detect_caches_intel):
27881         Add l2sizekb parameter and fill in.
27882         (host_detect_local_cpu): Add l2sizekb, fill in.
27883         Add Atom small cache heuristic.
27884
27885 2010-01-14  Andi Kleen  <ak@linux.intel.com>
27886
27887         * config/i386/drivers-i386.c (detect_caches_cpuid4):
27888         Add level3 parameter and fill in.
27889         (detect_caches_intel): Handle level3 cache.
27890
27891 2010-01-14  Andi Kleen  <ak@linux.intel.com>
27892
27893         * config/i386/drivers-i386.c (host_detect_local_cpu):
27894         Fix core duo detection.
27895
27896 2010-01-14  Andi Kleen  <ak@linux.intel.com>
27897
27898         * config/i386/drivers-i386.c (host_detect_local_cpu):
27899         Fix Atom detection.
27900
27901 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
27902
27903         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
27904         (rs6000_variable_issue_1): this.  Use...
27905         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
27906
27907 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
27908
27909         * sel-sched-ir.c (sel_restore_other_notes): Rename to
27910         sel_restore_notes.  Update all callers.  Call reemit_notes
27911         for all insns.
27912
27913 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
27914
27915         PR rtl-optimization/42246
27916         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
27917         loops.
27918
27919 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
27920
27921         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
27922         all successors is the same as number of successors in current region.
27923
27924 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
27925
27926         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
27927         to rename is not separable.  Otherwise check that its LHS is not NULL.
27928
27929 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
27930
27931         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
27932
27933 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
27934
27935         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
27936         available registers when failed to discover LHS register class.
27937         Fix indentation.  Update comment.
27938
27939 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
27940             Alexander Monakov  <amonakov@ispras.ru>
27941
27942         PR rtl-optimization/42389
27943         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
27944         to can_issue_more.
27945         (advance_state_on_fence): Likewise.
27946         (sel_target_adjust_priority): Print debug output only when
27947         sched_verbose >= 4, not 2.
27948         (get_expr_cost): Do not issue all unique insns on the next cycle.
27949         (fill_insns): Initialize can_issue_more from the value saved
27950         with the fence.
27951         * sel-sched-ir.c (flist_add): New parameter issue_more.
27952         Init FENCE_ISSUE_MORE with it.
27953         (merge_fences): Likewise.
27954         (init_fences): Update call to flist_add.
27955         (add_to_fences, add_clean_fence_to_fences)
27956         (add_dirty_fence_to_fences): Likewise.
27957         (move_fence_to_fences): Update call to merge_fences.
27958         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
27959         sched groups.
27960         * sel-sched-ir.h (struct _fence): New field issue_more.
27961         (FENCE_ISSUE_MORE): New accessor macro.
27962
27963 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
27964
27965         PR rtl-optimization/42388
27966         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
27967         that have no predecessors nor successors.  Do not call move_bb_info
27968         for empty blocks outside of current region.
27969
27970 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
27971
27972         PR rtl-optimization/42294
27973         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
27974         * sel-sched.c (move_exprs_to_boundary): Transitively add all
27975         originators' originators.
27976
27977 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
27978
27979         PR rtl-optimization/39453
27980         PR rtl-optimization/42246
27981         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
27982         for pipelining_p.
27983         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
27984
27985 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
27986             Alexander Monakov  <amonakov@ispras.ru>
27987
27988         PR middle-end/42245
27989         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
27990         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
27991         argument.  Update all callers.
27992         (tidy_control_flow): ... and here.  Recompute topological order
27993         of basic blocks in region if necessary.
27994         (sel_redirect_edge_and_branch): Change return type.  Return true
27995         if topological order might have been invalidated.
27996         (purge_empty_blocks): Export and move from...
27997         * sel-sched.c (purge_empty_blocks): ... here.
27998         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
27999         (maybe_tidy_empty_bb): Delete prototype.
28000         (purge_empty_blocks): Declare.
28001
28002 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
28003
28004         PR rtl-optimization/42249
28005         * sel-sched.c (try_replace_dest_reg): When chosen register
28006         and original register is the same, do not bail out early, but
28007         still check all original insns for validity of replacing destination
28008         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
28009         in this case.
28010
28011 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
28012
28013         PR c/42721
28014         Port from no-undefined-overflow branch:
28015         2009-03-09  Richard Guenther  <rguenther@suse.de>
28016
28017         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
28018
28019 2010-01-14  Richard Guenther  <rguenther@suse.de>
28020
28021         PR lto/42665
28022         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
28023
28024 2010-01-14  Ira Rosen  <irar@il.ibm.com>
28025
28026         PR tree-optimization/42709
28027         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
28028         as scalar type in creation of constant vector operand.
28029
28030 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28031
28032         PR testsuite/42414
28033         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
28034         (check-parallel-%): Match `testsuite' directory component only
28035         at the end.
28036
28037 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
28038
28039         PR translation/39521
28040         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
28041         strings with _().
28042
28043 2010-01-13  Richard Guenther  <rguenther@suse.de>
28044
28045         PR tree-optimization/42730
28046         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
28047         offset zero.
28048
28049 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
28050
28051         PR target/pr42542
28052         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
28053         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
28054         them signed.
28055
28056 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
28057
28058         * config/bfin/libgcc-bfin.ver: Regenerate based on current
28059         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
28060         ___umulsi3_highpart.
28061
28062         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
28063         rather than schedule_insns if the pass is enabled.
28064
28065 2010-01-13  Martin Jambor  <mjambor@suse.cz>
28066
28067         PR tree-optimization/42704
28068         * tree-sra.c (sra_modify_assign): Do not delete assignments to
28069         SSA_NAMEs.
28070
28071 2010-01-13  Martin Jambor  <mjambor@suse.cz>
28072
28073         PR tree-optimization/42703
28074         * tree-sra.c (analyze_access_subtree): Check that we can build a
28075         reference to the original data within the aggregate.
28076
28077 2010-01-13  Richard Guenther  <rguenther@suse.de>
28078
28079         PR tree-optimization/42705
28080         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
28081
28082 2010-01-13  Richard Guenther  <rguenther@suse.de>
28083
28084         PR middle-end/42716
28085         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
28086
28087 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
28088
28089         PR debug/41371
28090         * var-tracking.c (values_to_unmark): New variable.
28091         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
28092         values_to_unmark vector.  Moved body to...
28093         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
28094         instead queue it into values_to_unmark vector.
28095         (vt_find_locations): Free values_to_unmark vector.
28096
28097 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
28098
28099         * config/s390/s390.c (override_options): Set
28100         default of max-pending-list-length to 256
28101
28102 2010-01-13  Richard Guenther  <rguenther@suse.de>
28103
28104         PR lto/42678
28105         * tree-pass.h (PROP_gimple_lcx): New.
28106         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
28107         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
28108         before the final cleanup_eh.
28109         (dump_properties): Dump PROP_gimple_lcx.
28110         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
28111         (tree_lower_complex_O0): Remove.
28112         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
28113         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
28114         tree_lower_complex, schedule TODO_update_ssa.
28115         * lto-streamer-out.c (output_function): Stream the functions
28116         properties.
28117         * lto-streamer-in.c (input_function): Likewise.
28118         (lto_read_body): Do not override them here.
28119
28120 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
28121
28122         PR c/42708
28123         * c-typeck.c (build_c_cast): Fold value cast to union type before
28124         wrapping it in a CONSTRUCTOR.
28125
28126 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
28127
28128         PR rtl-optimization/42699
28129         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
28130         involved.
28131
28132 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28133
28134         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
28135         SUBTARGET_WARN_UNUSED_SPEC): Move ...
28136         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
28137         SUBTARGET_WARN_UNUSED_SPEC): ... here
28138         * config/mips/iris5.h (LIBGCC_SPEC): Define.
28139
28140 2010-01-12  Julian Brown  <julian@codesourcery.com>
28141
28142         * config/arm/neon-schedgen.ml (Utils): Don't try to
28143         open missing module.
28144         (find_with_result): New.
28145
28146 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
28147
28148         PR debug/42662
28149         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
28150         sharing when canonicalizing ({lt,ge}u (plus a b) b).
28151
28152         PR tree-optimization/42645
28153         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
28154         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
28155         decl_map, set processing_debug_stmt to -1 and return name without
28156         any remapping.
28157
28158 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
28159
28160         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
28161         binutils version, and reword target configuration description.
28162
28163 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
28164
28165         * config/avr/avr.h (LINKER_NAME): Remove.
28166
28167 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
28168
28169         PR target/42416
28170         * config/rs6000/rs6000.c (rs6000_override_options): On targets
28171         that support VSX, warn for -mno-altivec if vsx is not disabled,
28172         and disable vsx.
28173
28174 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
28175             Shujing Zhao  <pearly.zhao@oracle.com>
28176
28177         PR translation/42469
28178         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
28179         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
28180         character between option name and help text.
28181         * c.opt (imultilib): Likewise.
28182
28183 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
28184
28185         * lto-streamer-out.c (output_unreferenced_globals): Output static
28186         variables.
28187
28188 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
28189
28190         PR rtl-optimization/42621
28191         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
28192         optimizing for size.
28193         (duplicate_computed_gotos): Remove now-redundant check.
28194
28195 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
28196
28197         PR target/37454
28198         * configure.ac: Save and restore LDFLAGS and LIBS
28199         * configure: Regenerate.
28200
28201 2010-01-10  Richard Guenther  <rguenther@suse.de>
28202
28203         PR middle-end/42667
28204         * builtins.c (fold_builtin_strlen): Add type argument and
28205         convert the resulting length to it.
28206         (fold_builtin_1): Adjust.
28207
28208 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
28209
28210         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
28211         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
28212         1 insn.
28213         (num_insns_constant_wide): Adjust for that change.
28214
28215 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
28216
28217         PR debug/42631
28218         * web.c (union_defs): Add used argument, to combine uses of
28219         uninitialized regs.
28220         (entry_register): Adjust type and tests of used argument.
28221         (web_main): Widen used for new use.  Pass it to union_defs.
28222         * df.h (union_defs): Adjust prototype.
28223
28224 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
28225
28226         PR debug/42630
28227         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
28228         uses in new incoming argument.  Free body.
28229         (reset_debug_uses_in_loop): New.
28230         (analyze_insn_to_expand_var): Call the latter if the former found
28231         anything.  Fix whitespace.  Reject invalid dest overlaps before
28232         going through all insns in the loop.
28233
28234 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
28235
28236         PR debug/42629
28237         * haifa-sched.c (dying_use_p): Debug insns don't count.
28238
28239 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
28240
28241         PR middle-end/42363
28242         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
28243         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
28244         (verify_gimple_call): Reject LHS in noreturn calls.
28245
28246 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
28247
28248         PR debug/42604
28249         PR debug/42395
28250         * tree-vect-loop-manip.c (adjust_info): New type.
28251         (adjust_vec): New pointer to vector.
28252         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
28253         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
28254         (slpeel_update_phis_for_duplicate_loop): Use them.
28255         (slpeel_update_phi_nodes_for_guard1): Likewise.
28256         (slpeel_update_phi_nodes_for_guard2): Likewise.
28257         (slpeel_tree_peel_loop_to_edge): Likewise.
28258         (vect_update_ivs_after_vectorizer): Likewise.
28259
28260 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
28261
28262         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
28263         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
28264
28265 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
28266
28267         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
28268         bogus uninitialized warning.
28269
28270 2010-01-09  Richard Guenther  <rguenther@suse.de>
28271
28272         PR middle-end/42512
28273         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
28274         the evolution is compatible with the initial condition.
28275
28276 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
28277
28278         * gcc.c (process_command): Update copyright notice dates.
28279         * gcov.c (print_version): Likewise.
28280         * gcov-dump.c (print_version): Likewise.
28281         * mips-tfile.c (main): Likewise.
28282         * mips-tdump.c (main): Likewise.
28283
28284 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
28285
28286         PR target/41885
28287         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
28288         (rotlhi3): Delete.
28289         (rotlhi3_8): Delete.
28290         (rotlsi3): Delete.
28291         (rotlsi3_8): Delete.
28292         (rotlsi3_16): Delete.
28293         (rotlsi3_24): Delete.
28294         (rotl<mode>3): New.
28295         (*rotw<mode>3): New.
28296         (*rotb<mode>3): New.
28297         * config/avr/avr.c (avr_rotate_bytes): New function.
28298         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
28299
28300 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
28301
28302         PR target/37454
28303         * configure.ac: Modify -rdynamic check.
28304         * configure: Regenerate.
28305
28306 2010-01-08  DJ Delorie  <dj@redhat.com>
28307
28308         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
28309         register popping order.
28310
28311 2010-01-08  Richard Guenther  <rguenther@suse.de>
28312
28313         PR lto/42528
28314         * c.opt (fsigned-char): Also let LTO handle this option.
28315         (funsigned-char): Likewise.
28316
28317 2010-01-07  Richard Guenther  <rguenther@suse.de>
28318
28319         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
28320         (gimple_op): Likewise.
28321         (gimple_op_ptr): Likewise.
28322         (gimple_assign_set_lhs): Remove gcc_assert.
28323         (gimple_assign_set_rhs1): Likewise.
28324         (gimple_assign_set_rhs2): Likewise.
28325         (gimple_call_set_lhs): Likewise.
28326         (gimple_call_set_fn): Likewise.
28327         (gimple_call_set_fndecl): Likewise.
28328         (gimple_call_fndecl): Likewise.
28329         (gimple_call_return_type): Likewise.
28330         (gimple_call_set_chain): Likewise.
28331         (gimple_call_num_args): Likewise.
28332         (gimple_call_set_arg): Likewise.
28333         (gimple_cond_set_code): Likewise.
28334         (gimple_cond_set_lhs): Likewise.
28335         (gimple_cond_set_rhs): Likewise.
28336         (gimple_cond_set_true_label): Likewise.
28337         (gimple_cond_set_false_label): Likewise.
28338         (gimple_label_set_label): Likewise.
28339         (gimple_goto_set_dest): Likewise.
28340         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
28341         (gimple_debug_bind_get_value): Likewise.
28342         (gimple_debug_bind_get_value_ptr): Likewise.
28343         (gimple_debug_bind_set_var): Likewise.
28344         (gimple_debug_bind_set_value): Likewise.
28345         (gimple_debug_bind_reset_value): Likewise.
28346         (gimple_debug_bind_has_value_p): Likewise.
28347         (gimple_return_retval_ptr): Remove gcc_assert.
28348         (gimple_return_retval): Likewise.
28349         (gimple_return_set_retval): Likewise.
28350         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
28351         (safe_referenced_var_iterator): Remove.
28352         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
28353         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
28354         (fill_referenced_var_vec): Remove.
28355         (first_readonly_imm_use): Remove redundant gcc_assert.
28356         (phi_arg_index_from_use): Combine gcc_asserts.
28357         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
28358         (first_imm_use_stmt): Remove redundant gcc_assert.
28359         * tree-cfg.c (verify_gimple_call): Verify function and chain
28360         operands.  Verify arguments.
28361         (verify_types_in_gimple_stmt): Verify condition code and labels.
28362
28363 2010-01-07  Richard Guenther  <rguenther@suse.de>
28364
28365         PR tree-optimization/42641
28366         * sese.c (rename_map_elt_info): Use the SSA name version, do
28367         not hash pointers.
28368
28369 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
28370
28371         PR tree-optimization/42625
28372         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
28373         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
28374
28375 2010-01-07  Duncan Sands  <baldrick@free.fr>
28376
28377         * Makefile.in (PLUGIN_HEADERS): Add version.h.
28378
28379 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
28380
28381         PR target/42511
28382         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
28383         note itself is not function_invariant_p.
28384
28385 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
28386
28387         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
28388         Do not add the DF_NOTE problem.
28389         * store-motion.c (execute_rtl_store_motion): Likewise.
28390
28391 2010-01-07  Martin Jambor  <mjambor@suse.cz>
28392
28393         PR tree-optimization/42157
28394         * tree-sra.c (compare_access_positions): Stabilize sort if both
28395         accesses have integer types, return zero immediately if they are the
28396         same.
28397
28398 2010-01-06  Richard Henderson  <rth@redhat.com>
28399
28400         PR middle-end/41883
28401         * haifa-sched.c (add_to_note_list): Merge into ...
28402         (concat_note_lists): ... here, and ...
28403         (unlink_other_notes, rm_other_notes): Merge into...
28404         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
28405         NOTE_INSN_EPILOGUE_BEG.
28406
28407 2010-01-06  Richard Guenther  <rguenther@suse.de>
28408
28409         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
28410         not inline regular functions into always-inline functions.
28411
28412 2010-01-06  Nick Clifton  <nickc@redhat.com>
28413
28414         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
28415         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
28416         used together.
28417         (OVERRIDE_OPTIONS): Delete.
28418         (OPTIMIZATION_OPTIONS): Define.
28419         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
28420         * config/rx/rx.c (rx_handle_option): Issue an error message if
28421         -mcpu=rx200 and -fpu are used together.
28422         (rx_set_optimization_options): New function.  Issue an error
28423         message if an optimization attribute attempts to reset the FPU/
28424         math optimization pairing.
28425         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
28426         * config/rx/rx.opt: Set the default to 32-bit doubles.
28427         * config/rx/t-rx: Add multilibs for -nofpu option.
28428         * doc/invoke.texi: Update documentation of RX options.
28429
28430 2010-01-06  Richard Guenther  <rguenther@suse.de>
28431
28432         * tree-ssa-pre.c (name_to_id): New global.
28433         (alloc_expression_id): Simplify SSA name handling.
28434         (lookup_expression_id): Likewise.
28435         (init_pre): Zero name_to_id.
28436         (fini_pre): Free it.
28437
28438 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
28439
28440         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
28441
28442 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
28443
28444         PR target/42542
28445         * config/i386/sse.md (smaxv2di3): New.
28446         (umaxv2di3): Likewise.
28447         (sminv2di3): Likewise.
28448         (uminv2di3): Likewise.
28449
28450 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
28451
28452         PR target/42564
28453         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
28454         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
28455         (legitimize_tls_address): Likewise.
28456         (sparc_tls_referenced_p): Likewise.
28457         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
28458         and adjust calls to legitimize_pic_address.
28459         (legitimate_constant_p) Use sparc_tls_referenced_p.
28460         (legitimate_pic_operand_p): Likewise.
28461         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
28462         (sparc_tls_symbol_ref_1): Delete.
28463         (sparc_tls_referenced_p): Make static, recognize specific patterns.
28464         (legitimize_tls_address): Make static, handle CONST patterns.
28465         (legitimize_pic_address): Make static, remove unused parameter and
28466         adjust recursive calls.
28467         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
28468         and adjust call to legitimize_pic_address.
28469         (sparc_output_mi_thunk): Likewise.
28470
28471 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
28472             H.J. Lu  <hongjiu.lu@intel.com>
28473
28474         PR target/42542
28475         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
28476         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
28477         operands to make them signed.
28478
28479         Revert:
28480         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
28481
28482         PR target/42542
28483         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
28484         GTU to GT for V4SI and V2DI.
28485
28486         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
28487         (umin<mode>3): Removed.
28488         (uminv8hi3): New.
28489         (uminv4si3): Likewise.
28490
28491 2010-01-05  Martin Jambor  <mjambor@suse.cz>
28492
28493         PR tree-optimization/42462
28494         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
28495         current_function_decl to helper functions and macros.
28496
28497 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28498
28499         PR bootstrap/41771
28500         * flags.h: Don't include real.h.
28501         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
28502         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
28503         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
28504         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
28505         * dominance.c: Update copyright.
28506         * gimple.c (walk_gimple_op): Remove inline.
28507         * tree-ssa-reassoc.c: Include real.h.
28508         * Makefile.in (FLAGS_H): Remove $(REAL_H).
28509         (tree-ssa-reassoc.o): Depend on $(REAL_H).
28510
28511 2010-01-05  Nick Clifton  <nickc@redhat.com>
28512
28513         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
28514         register to push into the stack frame when the accumulator has to
28515         be saved during interrupts.
28516
28517 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
28518
28519         * doc/invoke.texi: Remove the documentation about option
28520         -Wunreachable-code.
28521         * common.opt (Wunreachable-code):  Preserved for backward
28522         compatibility.
28523         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
28524         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
28525         the backward compatibility flag section.
28526
28527 2010-01-05  Richard Guenther  <rguenther@suse.de>
28528
28529         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
28530
28531 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
28532
28533         PR other/42611
28534         * cfgexpand.c (expand_one_var): Diagnose too large variables.
28535
28536         PR tree-optimization/42508
28537         * tree-sra.c (convert_callers): Check for recursive call
28538         by comparing cgraph nodes instead of decls.
28539         (modify_function): Call ipa_modify_formal_parameters also
28540         on all same_body aliases.
28541
28542         * cgraphunit.c (cgraph_materialize_all_clones): Compare
28543         cgraph nodes when checking for same_body aliases.
28544
28545 2010-01-05  Richard Guenther  <rguenther@suse.de>
28546
28547         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
28548         allocation and lookup.
28549         (get_or_alloc_expr_for_constant): Likewise.
28550         (phi_translate): Sink allocation.
28551
28552 2010-01-04  Richard Guenther  <rguenther@suse.de>
28553
28554         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
28555         a new entry only if needed.
28556         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
28557         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
28558         hashtable lookup.
28559         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
28560         the result array.
28561         (phi_translate): Handle CONSTANTs early.
28562
28563 2010-01-04  Martin Jambor  <mjambor@suse.cz>
28564
28565         PR tree-optimization/42398
28566         * tree-sra.c (struct access): Removed flag grp_different_types.
28567         (dump_access): Do not dump the removed flag.
28568         (sort_and_splice_var_accesses): Do not set the removed flag.
28569         (sra_modify_expr): Check for type compatibility directly.
28570
28571 2010-01-04  Martin Jambor  <mjambor@suse.cz>
28572
28573         PR tree-optimization/42366
28574         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
28575         edges with variable number of parameters.
28576         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
28577         flag instead of asserting it.
28578         (ipa_read_node_info): Read uses_analysis_done flag.
28579
28580 2010-01-04  Richard Guenther  <rguenther@suse.de>
28581
28582         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
28583         iterative_hash_* as intended.
28584         (vn_reference_compute_hash): Likewise.  Simplify hashing
28585         SSA names.
28586         (vn_reference_lookup_2): Likewise.
28587         (vn_nary_op_compute_hash): Likewise.
28588         (vn_phi_compute_hash): Likewise.
28589         (expressions_equal_p): Remove strange code.
28590         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
28591         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
28592         (bitmap_insert_into_set_1): Take value-id as parameter.
28593         (add_to_value): Pass it.
28594         (bitmap_insert_into_set): Likewise.
28595         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
28596
28597 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
28598
28599         PR driver/42442
28600         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
28601         (do_self_spec): For switches with SWITCH_IGNORE set set also
28602         SWITCH_IGNORE_PERMANENTLY.
28603         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
28604         of SWITCH_IGNORE.
28605
28606 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
28607
28608         * lto-streamer-out.c (output_unreferenced_globals): Output the full
28609         tree of an unreferenced global var.
28610
28611 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
28612
28613         PR target/42542
28614         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
28615         GTU to GT for V4SI and V2DI.
28616
28617         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
28618         (umin<mode>3): Removed.
28619         (uminv8hi3): New.
28620         (uminv4si3): Likewise.
28621
28622 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
28623
28624         PR lto/42581
28625         * collect2.c (main): Turn on trace in collect2 if -v is passed
28626         to gcc with LTO.
28627
28628 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
28629
28630         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
28631         description of expression operand.
28632
28633 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
28634
28635         * configure.ac: Add install-html to target_list for Make-hooks.
28636         * configure: Regenerate.
28637         * fortran/Make-lang.in (F95_HTMLFILES): New.
28638         (fortran.html): Use it.
28639         (fortran.install-html): New.
28640         * Makefile.in (install-html): Add lang.install-html.
28641         * java/Make-lang.in (JAVA_HTMLFILES): New.
28642         (java.html): Use it.
28643         (java.install-html): New.
28644         * objc/Make-lang.in (objc.install-html): New.
28645         * objcp/Make-lang.in (obj-c++.install-html): New.
28646         * cp/Make-lang.in (c++.install-html): New.
28647         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
28648         * lto/Make-lang.in (lto.install-html): New.
28649
28650 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
28651
28652         PR lto/42520
28653         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
28654
28655 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
28656
28657         PR rtl-optimization/41862
28658         * store-motion.c (store_killed_in_insn, compute_store_table,
28659         remove_reachable_equiv_notes, replace_store_insn,
28660         build_store_vectors): Ignore all DEBUG_INSNs.
28661
28662 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
28663
28664         PR lto/41564
28665         * common.opt: Add dumpdir.
28666
28667         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
28668         isn't specified.
28669         (option_map): Add --dumpdir.
28670
28671         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
28672
28673         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
28674
28675         * opts.c (decode_options): Try dump_dir_name first if
28676         dump_base_name isn't an absolute path.
28677         (common_handle_option): Handle OPT_dumpdir.
28678
28679         * toplev.c (dump_dir_name): New.
28680         (print_switch_values): Also ignore -dumpdir.
28681
28682         * toplev.h (dump_dir_name): New.
28683
28684 2010-01-03  Richard Guenther  <rguenther@suse.de>
28685
28686         PR tree-optimization/42589
28687         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
28688         double-word expansion of bswap32.
28689
28690 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
28691
28692         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
28693         with BLOCK_FOR_INSN.
28694         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
28695         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
28696         noce_process_if_block): Likewise.
28697         * gcse.c (compute_local_properties, insert_expr_in_table,
28698         insert_set_in_table, canon_list_insert, find_avail_set,
28699         pre_insert_copy_insn): Likewise.
28700
28701         * basic-block.h (BLOCK_NUM): Move from here...
28702         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
28703
28704 2010-01-03  Richard Guenther  <rguenther@suse.de>
28705
28706         PR tree-optimization/42438
28707         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
28708         contains_may_not_return_call flag.
28709         (BB_MAY_NOTRETURN): New.
28710         (valid_in_sets): Trapping nary operations are not valid
28711         in blocks that may not return.
28712         (insert_into_preds_of_block): Remove check for trapping expressions.
28713         (compute_avail): Compute also BB_MAY_NOTRETURN.
28714
28715 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
28716
28717         * doc/invoke.texi: Add 2010 to copyright years.
28718
28719 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
28720
28721         * config/sparc/sparc.c: Fix formatting nits.
28722
28723 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
28724             Alexander Monakov  <amonakov@ispras.ru>
28725
28726         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
28727
28728 2010-01-02  Richard Guenther  <rguenther@suse.de>
28729
28730         PR middle-end/42577
28731         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
28732         (simplify_switch_using_ranges): Mark to be removed edges
28733         as non-executable.
28734
28735 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28736
28737         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
28738
28739         * collect2.c (scan_libraries): Add missing argument in call to
28740         scan_prog_file.
28741
28742 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
28743
28744         PR target/42448
28745         * config/alpha/predicates.md (aligned_memory_operand): Return false
28746         for CQImode.
28747         (unaligned_memory_operand): Return true for CQImode.
28748         * config/alpha/alpha.c (get_aligned_mem): Assert that location
28749         doesn not cross aligned SImode word boundary.
28750
28751 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
28752
28753         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
28754         Remove.
28755         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
28756         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
28757
28758 2010-01-02  Richard Guenther  <rguenther@suse.de>
28759
28760         PR lto/41597
28761         * toplev.c (compile_file): Emit LTO marker properly.  Change
28762         it to __gnu_lto_v1.
28763         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
28764
28765 2010-01-01  Richard Guenther  <rguenther@suse.de>
28766
28767         PR debug/42455
28768         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
28769
28770 2010-01-01  Richard Guenther  <rguenther@suse.de>
28771
28772         PR c/42570
28773         * c-decl.c (grokdeclarator): For zero-size arrays force
28774         structural equality checks as layout_type does.
28775
28776 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
28777
28778         * builtins.c: Update copyright to 2010.
28779
28780 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
28781
28782         PR lto/42531
28783         * lto-streamer-out.c (produce_asm): Revert the last change.
28784         (copy_function): Likewise.
28785
28786         * lto-streamer.c (lto_get_section_name): Skip any leading
28787         asterisk in name.
28788
28789 2010-01-01  Richard Guenther  <rguenther@suse.de>
28790
28791         PR middle-end/42559
28792         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
28793         for LABEL_DECLs.
28794
28795 \f
28796 Copyright (C) 2010 Free Software Foundation, Inc.
28797
28798 Copying and distribution of this file, with or without modification,
28799 are permitted in any medium without royalty provided the copyright
28800 notice and this notice are preserved.