OSDN Git Service

094c7e7d58674e22b315f6a47c93afd204c001ef
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
2
3         * opt-functions.awk (static_var): Update comment.
4         (var_ref): Return offsetof expression or -1, not variable address.
5         * optc-gen.awk: Generate structure field initializers instead of
6         static variables.  Expect -1 for missing variables instead of null
7         pointer.  Add gcc_options parameters to generated functions.
8         * opth-gen.awk: Generate structure fields for static variables.
9         Add gcc_options parameters to generated functions.
10         * common.opt (optimize, optimize_size): Add variables.
11         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
12         &global_options to cl_target_option_restore.
13         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
14         &global_options to cl_optimization_restore, cl_target_option_save
15         and cl_target_option_restore.
16         (ix86_set_current_function): Pass &global_options to
17         cl_target_option_restore.
18         * config/pdp11/pdp11.h (optimize): Remove.
19         * config/rs6000/rs6000.h (optimize): Remove.
20         * config/sh/sh.h (optimize): Remove.
21         * config/xtensa/xtensa.h (optimize): Remove.
22         * coretypes.h (struct gcc_options): Declare.
23         * diagnostic.c (diagnostic_initialize): Initialize
24         context->option_state.
25         (diagnostic_report_diagnostic): Pass option_state to
26         option_enabled hook.
27         * diagnostic.h (diagnostic_context.option_enabled): Add void *
28         parameter.
29         (diagnostic_context.option_state): New field.
30         * final.c (final_start_function, final, final_scan_insn): Rename
31         optimize parameter to optimize_p.
32         * flags.h (optimize, optimize_size): Remove.
33         * function.c (invoke_set_current_function_hook): Pass
34         &global_options to cl_optimization_restore.
35         * gcc.c (driver_handle_option): Take gcc_options parameter.
36         Assert that it is &global_options.
37         (process_command): Pass &global_options to read_cmdline_option.
38         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
39         option_enabled.
40         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
41         &global_options to set_option.
42         * opts-common.c (handle_option, handle_generated_option,
43         read_cmdline_option, set_option): Take explicit gcc_options
44         parameters.  Use option_flag_var.
45         (option_flag_var): New.
46         * opts.c (common_handle_option, lang_handle_option,
47         target_handle_option): Take gcc_options parameter.  Assert that it
48         is &global_options.
49         (read_cmdline_options): Pass &global_options to
50         read_cmdline_option.
51         (print_filtered_help): Use option_flag_var.  Pass &global_options
52         to option_enabled.
53         (common_handle_option): Use option_flag_var.
54         (option_enabled): Take opts parameter.  Use option_flag_var.
55         (get_option_state): Take gcc_options parameter.  Use
56         option_flag_var.  Pass gcc_options parameter to option_enabled.
57         (enable_warning_as_error): Pass &global_options to
58         handle_generated_option.
59         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
60         (cl_option_handler_func.handler): Take gcc_options parameter.
61         (option_enabled, get_option_state, set_option, handle_option,
62         handle_generated_option, read_cmdline_option): Take gcc_options
63         parameters.
64         * toplev.c (optimize, optimize_size): Remove.
65         (print_switch_values): Pass &global_options to option_enabled.
66         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
67         to get_option_state.
68         (general_init): Initialize global_dc->option_state.
69         * tree.c (build_optimization_node): Pass &global_options to
70         cl_optimization_save.
71         (build_target_option_node): Pass &global_options to
72         cl_target_option_save.
73
74 2010-09-30  Martin Jambor  <mjambor@suse.cz>
75
76         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
77         zero sized bit-fields.
78
79 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
80
81         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
82         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
83         (c_parser_external_declaration): Use RID_AT_CLASS
84         instead of RID_CLASS.
85         (c_parser_objc_class_declaration): Same change.
86         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
87         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
88         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
89         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
90         and RID_AT_PUBLIC instead of RID_PUBLIC.
91         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
92         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
93         
94 2010-09-30  Tom G. Christensen <tgc@jupiterrise.com>
95
96         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
97         Add links to current providers of packages for Solaris and IRIX.
98
99 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
100
101         Merge from 'apple/trunk' branch on FSF servers.
102         * c-parser.c: Applied change originally in c-parse.in.
103         
104         2005-10-04  Fariborz Jahanian <fjahanian@apple.com>
105
106         Radar 4281748
107         * c-decl.c (start_decl): Check for redeclaration of class name.
108         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
109
110 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
111
112         * config/ia64/ia64.c (ia64_builtin_decl): New.
113         (TARGET_BUILTIN_DECL): Define.
114         (ia64_builtins): New.
115         (ia64_init_builtins): Save decls in ia64_builtins.
116
117 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
118
119         PR target/40457
120         * postreload.c (move2add_use_add2_insn): Use full_costs for
121         comparison.
122         (move2add_use_add3_insn): Likewise.
123         (reload_cse_move2add): Likewise.
124         * rtlanal.c (get_full_rtx_cost): New function.
125         * rtl.h (struct full_rtx_costs): New.
126         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
127         costs_add_n_insns): New inline functions.
128         (get_full_rtx_cost): Declare.
129
130         PR c/45054
131         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
132         invariants.  Check for reg_equiv_invariant.
133         (reload): Assert that spilled_pseudos is empty when returning.
134
135 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
136
137         * config/i386/mingw32.h (TARGET_64BIT): replaced by
138         TARGET_64BIT_DEFAULT in #if check.
139
140 2010-09-29  Jack Howarth <howarth@bromo.med.uc.edu>
141
142         * varasm.c (assemble_alias): Add error message for
143         unsupported ifunc.
144
145 2010-09-29  Mike Stump  <mikestump@comcast.net>
146
147         * config/darwin.h (flag_mkernel): Remove.
148         (flag_apple_kext): Likewise.
149
150 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
151             Jack Howarth <howarth@bromo.med.uc.edu>
152
153         * config/darwin.opt (undefined): Add.
154
155 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
156
157         * configure.ac: Add --enable-indirect-function option.
158         * config.gcc: Add default_gnu_indirect_function.
159         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
160         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
161         * varasm.c (do_assemble_alias): Adjust for macto name change.
162         * configure: Rebuilt.
163         * doc/install.texi: Document --enable-indirect-function.
164
165 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
166
167         * doc/options.texi (Variable, Var, Init): Update documentation
168         without reference to VarExists.
169         (VarExists): Remove.
170         * common.opt, config/i386/i386.opt, config/linux.opt,
171         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
172         Don't use VarExists.
173
174 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
175
176         * optc-gen.awk: Generate global_options initializer instead of
177         individual variables.  Add x_ prefix to names of structure
178         members.
179         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
180         names of structure members.
181         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
182         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
183         * doc/tm.texi: Regenerate.
184         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
185         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
186         * c-parser.c (disable_extension_diagnostics,
187         restore_extension_diagnostics): Update names of cpp_options
188         members.
189         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
190         * common.opt (fcompare-debug-second): Don't use Var.
191         * config/alpha/alpha.h (target_flags): Remove.
192         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
193         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
194         * config/bfin/bfin.h (target_flags): Remove.
195         * config/cris/cris.h (target_flags): Remove.
196         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
197         cl_target_option members.
198         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
199         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
200         ix86_can_inline_p): Update names of cl_target_option members.
201         * config/i386/i386.h (ix86_isa_flags): Remove.
202         * config/lm32/lm32.h (target_flags): Remove.
203         * config/mcore/mcore.h (mcore_stack_increment): Remove.
204         * config/mcore/mcore.md (addsi3): Remove extern declaration of
205         flag_omit_frame_pointer.
206         * config/mep/mep.h (target_flags): Remove.
207         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
208         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
209         * config/mmix/mmix.h (target_flags): Remove.
210         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
211         flag_expensive_optimizations): Remove.
212         * config/s390/s390.h (flag_pic): Remove.
213         * config/score/score-conv.h (target_flags): Remove.
214         * config/sh/sh.h (sh_fixed_range_str): Remove.
215         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
216         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
217         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
218         * diagnostic.c (diagnostic_initialize): Update names of
219         diagnostic_context members.
220         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
221         warn_system_headers.
222         (diagnostic_report_warnings_p): Update for new names.
223         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
224         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
225         HARD_FRAME_POINTER_IS_ARG_POINTER.
226         * flags.h (flag_compare_debug): Declare.
227         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
228         * opts.c (flag_compare_debug): Define.
229         (common_handle_option): Update names of diagnostic_context
230         members.  Handle -fcompare-debug-second.
231         (fast_math_flags_struct_set_p): Update names of cl_optimization
232         members.
233         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
234         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
235         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
236         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
237         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
238         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
239         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
240         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
241         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
242
243 2010-09-29  Hariharan Sandanagobalane <hariharan@picochip.com>
244
245         * config/picochip/picochip.c (picochip_output_internal_label):
246           This function can now be called for debug CFI labels, which can come in
247           the middle of a vliw instruction. Postpone until end of vliw.
248
249 2010-09-29  Richard Guenther  <rguenther@suse.de>
250
251         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
252         (DECL_FILE_SCOPE_P): Use it.
253         (TYPE_FILE_SCOPE_P): New macro.
254
255 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
256
257         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
258         a CPP_NAME which is a reserved word, clearly separate cases for
259         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
260
261 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
262
263         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
264         token->value with the canonical spelling.  Do exactly like C and
265         C++ and leave it as it is.
266
267 2010-09-28  Richard Henderson  <rth@redhat.com>
268
269         * config/alpha/alpha.c (alpha_builtins): New.
270         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
271         (alpha_builtin_function): New.
272         (alpha_add_builtins, alpha_init_builtins): Use it.
273
274 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
275
276         * doc/standards.texi (Standards): Expanded the section on
277         Objective-C and Objective-C++.
278
279 2010-09-28  DJ Delorie  <dj@redhat.com>
280
281         PR target/45800
282         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
283         volatile MEMs.
284
285 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
286
287         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
288         attributes on methods.
289          (c_parser_objc_method_definition): Handle attributes.
290         (c_parser_objc_methodproto): Likewise.
291         (c_parser_objc_maybe_method_attributes): New.
292         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
293         missing definition, similar to that in ObjC++.
294
295 2010-09-28  Richard Henderson  <rth@redhat.com>
296
297         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
298         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
299         (CONFIG_SJLJ_EXCEPTIONS): Remove.
300         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
301         (STACK_CHECK_PROTECT): Likewise.
302         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
303         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
304         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
305         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
306         (dwarf2out_assembly_start): Likewise.
307         * except.c (init_eh): Use targetm.except_unwind_info.
308         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
309         (output_one_function_exception_table): Likewise.
310         * final.c: Unconditionally include dwarf2out.h.
311         (final_start_function): Unconditionally call dwarf2out routines.
312         (final_end_function, final_scan_insn): Likewise.
313         * function.c (expand_function_end): Use targetm.except_unwind_info.
314         * opts.c (decode_options): Use targetm.except_unwind_info.
315         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
316         * target.def (debug_unwind_info, except_unwind_info): New.
317         * target.h (enum unwind_info_type): New.
318         * targhooks.c (default_debug_unwind_info): New.
319         (default_except_unwind_info): New.
320         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
321         * targhooks.h: Declare them.
322         * tree-tailcall.c: Include "target.h"
323         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
324         * Makefile.in (tree-tailcall.o): Update.
325         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
326         (lhd_gcc_personality): Likewise.
327
328         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
329         (TARGET_EXCEPT_UNWIND_INFO): New.
330         (DWARF2_UNWIND_INFO): Update.
331         (TARGET_DEBUG_UNWIND_INFO): New.
332         * doc/tm.texi: Rebuild.
333
334         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
335         targetm.except_unwind_info.
336
337         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
338         (arm_except_unwind_info): New.
339         (arm_compute_func_type): Use it.
340         (arm_expand_prologue, thumb_pushpop): Likewise.
341         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
342         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
343         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
344         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
345         (DWARF2_UNWIND_INFO): Remove.
346         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
347         (ARM_EABI_UNWIND_TABLES): Remove.
348
349         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
350         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
351         (ia64_except_unwind_info): New.
352         (ia64_output_function_prologue): Use it.
353         (ia64_add_bundle_selector_before): Likewise.
354         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
355         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
356         (TARGET_UNWIND_INFO): Remove.
357
358         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
359         
360 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
361
362         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
363         (c_parser_objc_protocol_definition): Likewise.
364         (c_parser_external_declaration): Provide dummy attribute arguments.
365         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
366         (c_parser_objc_class_definition): Handle attributes.
367         (c_parser_objc_protocol_definition): Likewise.
368
369 2010-09-28  Tobias Burnus  <burnus@net-b.de>
370
371         PR fortran/40569
372         PR fortran/40568
373         * toplev.h (save_decoded_options, save_decoded_options_count):
374         New global variables.
375         * toplev.c (save_decoded_options, save_decoded_options_count):
376         export variables.
377
378 2010-09-28  Ian Lance Taylor  <iant@google.com>
379
380         * config/i386/i386.c (ix86_supports_split_stack): Test
381         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than
382         dwarf2out_do_cfi_asm.
383
384 2010-09-28  Ian Lance Taylor  <iant@google.com>
385
386         PR target/45815
387         * opts.c (decode_options): Don't test whether the target supports
388         split stack if flag_split_stack == 0.
389
390 2010-09-28  Jan Hubicka  <jh@suse.cz>
391
392         * builtin-attrs.def (ATTR_LEAF): New attribute.
393         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
394         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
395         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
396         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
397         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
398         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
399         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
400         * sync-builtins.def: Annotate all builtins by leaf.
401         * omp-builtins.def: Annotate all builtins by leaf.
402         * builtins.def: Annotate relevant builtins with leaf attribute.
403         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
404         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
405         leaf.
406
407 2010-09-28  Jan Hubicka  <jh@suse.cz>
408
409         * tree-ssa-ccp.c (fold_ctor_reference): New function.
410         (fold_const_aggregate_ref): Use it.
411         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
412         into external static.
413
414 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
415
416         PR target/44452
417         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
418         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
419         (ix86_solaris_return_in_memory): Remove.
420         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
421         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
422         (TARGET_SUBTARGET_DEFAULT): Redefine.
423         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
424         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
425         (TARGET_SUBTARGET_DEFAULT): Redefine.
426         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
427         -mvect8-ret-in-mem.
428         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
429
430 2010-09-29  Alan Modra  <amodra@gmail.com>
431
432         PR target/45807
433         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
434         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
435         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
436         Delete.
437         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
438         (rs6000_emit_prologue): Don't just create frame save info for r2,
439         actually save r2.
440
441 2010-09-28  Richard Henderson  <rth@redhat.com>
442
443         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
444         when 8 bytes are requested.
445
446 2010-09-28  Tristan Gingold  <gingold@adacore.com>
447
448         * config/avr/avr.c (expand_prologue): Set
449         current_function_static_stack_size.
450
451 2010-09-28  Tristan Gingold  <gingold@adacore.com>
452
453         * config/alpha/alpha.md: Change the initial condition of the
454         probing loop.
455
456 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
457
458         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
459         Split from *avx_<maxmin:code><mode>3.
460         (*avx_<smaxmin:code><mode>3): Ditto.
461         * config/i386/i386.md (maxmin): Remove code iterator.
462
463 2010-09-27  Ian Lance Taylor  <iant@google.com>
464
465         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
466         requires assembler support for CFI directives.
467
468 2010-09-27  Richard Henderson  <rth@redhat.com>
469
470         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
471
472 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
473
474         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
475         that AFTER is not in the range FROM..TO, inclusive.
476
477 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
478             Bernd Schmidt  <bernds@codesourcery.com>
479
480         PR rtl-optimization/45792
481         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
482         If not all insns are to be merged, for each edge, stash the
483         next candidate after the to-be-merged insns before doing the
484         merge, and use them for the retry at the new insertion point.
485         Handle CC0 targets when retrying.
486
487 2010-09-27  Ian Lance Taylor  <iant@google.com>
488
489         * common.opt (fsplit-stack): New option.
490         * opts.c (decode_options): Set flag_split_stack to final value.
491         * target.def (supports_split_stack): New hook.
492         * gcc.c (STACK_SPLIT_SPEC): Define.
493         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
494         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
495         (Code Gen Options): Document -fsplit-stack.
496         * doc/extend.texi (Function Attributes): Mention no_split_stack.
497         (Function Attributes): Document no_split_stack.
498         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
499         TARGET_SUPPORTS_SPLIT_STACK.
500         * doc/tm.texi: Rebuild.
501         * function.c (thread_prologue_and_epilogue_insns): If
502         flag_split_stack, add split stack prologue.
503         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
504         * varasm.c (saw_no_split_stack): New static variable.
505         (assemble_start_function): Set saw_no_split_stack if the function
506         has the no_split_stack attribute.
507         (file_end_indicate_split_stack): New function.
508         * output.h (file_end_indicate_split_stack): Declare.
509         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
510         and function.
511         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
512         routines.
513         * config/i386/i386.c (ix86_option_override_internal): Don't set
514         expand_builtin_va_start to NULL if -fsplit-stack.
515         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
516         -fsplit-stack.
517         (ix86_va_start): If -fsplit-stack, get overflow pointer from
518         scratch register set by prologue.
519         (ix86_code_end): If -fsplit-stack, call
520         file_end_indicate_split_stack.
521         (ix86_supports_split_stack): New static function.
522         (SPLIT_STACK_AVAILABLE): Define.
523         (split_stack_prologue_scratch_regno): New static function.
524         (split_stack_fn): New static variable.
525         (ix86_expand_split_stack_prologue): New function.
526         (ix86_live_on_entry): New static function.
527         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
528         (output_pic_addr_const): Likewise.
529         (i386_asm_output_addr_const_extra): Likewise.
530         (ix86_expand_call): Change return type to rtx.  Return the new
531         call instruction.
532         (TARGET_SUPPORTS_SPLIT_STACK): Define.
533         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
534         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
535         (split_stack_prologue, split_stack_return): New insns.
536         (split_stack_space_check): New insn.
537         * config/i386/i386.h (struct machine_function): Add
538         split_stack_varargs_pointer field.
539         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
540         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
541         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
542         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
543         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
544         Declare.
545         (ix86_expand_call): Update declaration.
546
547 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
548
549         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
550         code.  Added byref, which was missing in the list of codes.
551         Explain that enumeration values are encoded as the integer type
552         that the compiler uses to store them.  Explain and make examples
553         of how 'const' interacts with pointers, and the complication of
554         the encoding of 'const char *'.
555         (Legacy type encoding): New subsection, explaining that GCC emits
556         incorrect type encodings for the NeXT runtime for compatibility
557         reasons.
558         (@@encode): New subsection, explaining @encode and particularly
559         that protocol qualifiers are not recognized inside an @encode()
560         expression.
561         (Method signatures): New subsection, explaining how method
562         signatures are encoded.
563
564 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
565
566         Merge from 'apple/trunk' branch on FSF servers.  Removed small
567         change in build_conditional_expr that had been added when fixing
568         PR objc/27377 and which did the same check in a less complete way.
569
570         2005-12-15  Fariborz Jahanian <fjahanian@apple.com>
571
572         Radar 4229905
573         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
574         looking for objective-c common pointer types.
575         
576         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
577
578         Radar 4154928
579         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
580         use their ObjC common type.
581
582 2010-09-27  Richard Guenther  <rguenther@suse.de>
583
584         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
585
586 2010-09-27  Jie Zhang  <jie@codesourcery.com>
587
588         * print-tree.c (print_node): Print in-constant-pool.
589
590 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
591
592         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
593         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
594         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
595         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
596
597 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
598
599         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
600         from pro_epilogue_adjust_stack_<mode>_{1,2}.
601         (pro_epilogue_adjust_stack_<mode>_add): Rename from
602         pro_epilogue_adjust_stack_<mode>_3.
603         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
604         renamed pro_epilogue_adjust_stack_{si,di}_add.
605         (ix86_expand_prologue): Use indirect functions.  Update for renamed
606         pro_epilogue_adjust_stack_{si,di}_sub.
607
608 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
609
610         * config/i386/i386.md (movmsk_df): New insn.
611         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
612         sequence for TARGET_SSE_MATH.
613
614 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
615
616         * config/mips/mips.c (mips_builtin_decls): Declare.
617         (mips_init_builtins): Store function declarations in
618         mips_builtin_decls.
619         (mips_builtin_decl): New function.
620         (TARGET_BUILTIN_DECL): Define.
621
622 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
623             Richard Henderson  <rth@redhat.com>
624
625         * config/i386/cygwin.asm: Include auto-host.h.
626         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
627         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
628         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
629         alignment code from the 64-bit path.  Use gas local labels.
630         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
631         from _di_2.  Remove the useless constant integer argument.
632         (pro_epilogue_adjust_stack_<mode>_3): New.
633         (allocate_stack_worker_probe_<mode>): Macroize from
634         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
635         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
636         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
637         (__chkstk_ms): New function.
638         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
639         * gcc/config/i386/t-interix: Likewise.
640         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
641         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
642         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
643         * configure, config.in: Rebuild.
644
645 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
646
647         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
648         statements because of the return slot optimization.
649
650 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
651
652         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
653         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
654         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
655         (class_likely_spilled_p): Rename to...
656         (avr_class_likely_spilled_p): ...this. Make static. Change argument
657         type to reg_class_t.
658
659 2010-09-24  Jan Hubicka  <jh@suse.cz>
660
661         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
662         (lto_symtab_resolve_symbols): Set it.
663         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
664         store resolution field in cgraph/varpool.
665         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
666         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
667         (cgraph_dump_node): Drop used_from_object_file.
668         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
669         (cgraph_function_body_availability): Use decl_replaceable_p.
670         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
671         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
672         cgraph_used_from_object_file_p.
673         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
674         cgraph_used_from_object_file_p.
675         (resolution_used_from_other_file_p): New functoin.
676         (cgraph_used_from_object_file_p): New predicate.
677         * cgraph.h: Include plugin-api.h
678         (struct cgraph_local_info): Remove used_from_object_file.
679         (struct cgraph_node): Add resolution field.
680         (struct varpool_node): Likewise; remove used_from_object_file;
681         reove const_value_known.
682         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
683         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
684         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
685         varpool_used_from_object_file_p): Declare.
686         (varpool_get_node, varpool_extra_name_alias): Update prototype.
687         * tree.h (DECL_REPLACEABLE_P): Remove.
688         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
689         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
690         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
691         input_overwrite_node, input_node, input_varpool_node): Stream
692         resolution.
693         * expr.c (expand_expr_real_1): Use const_value_known_p
694         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
695         const_value_known.
696         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
697         (function_and_variable_visibility): Set resolution for local vars
698         and functions; use varpool_used_from_object_file_p.
699         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
700         static functions.
701         (default_binds_local_p_1): Use resolutoin info.
702         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
703         * varpool.c (varpool_get_node): Constify.
704         (const_value_known_p): Do not use vnode->const_value_known;
705         use decl_replaceable_p.
706         (varpool_finalize_decl): Do not set const_value_known.
707         (cgraph_variable_initializer_availability): Use decl_replaceable_p
708         (varpool_extra_name_alias): Return new node.
709         (varpool_used_from_object_file_p): New function.
710
711 2010-09-24  Richard Henderson  <rth@redhat.com>
712
713         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
714         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
715         (do_spill): Use REG_CFA_OFFSET.
716         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
717         as appropriate.
718         (ia64_expand_epilogue): Likewise.
719         (process_set): Split into ...
720         (process_cfa_adjust_cfa): this,
721         (process_cfa_register): this,
722         (process_cfa_offset): and this new function.
723         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
724         instead of REG_FRAME_RELATED_EXPR.
725
726 2010-09-24  Olivier Hainque  <hainque@adacore.com>
727
728         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
729
730 2010-09-24  Jan Hubicka  <jh@suse.cz>
731
732         * doc/extend.texi: (attribute leaf): Document.
733         * tree.c (local_define_builtin): Handle ECF_LEAF.
734         (build_common_builtin_nodes): Set ECF_LEAF where needed.
735         * tree.h (ECF_LEAF): New.
736         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
737         overwrittable and unavailable functions.
738         (ipa_init): Put all_module_statics into optimization_summary_obstack.
739         (copy_global_bitmap): Do not copy all_module_statics.
740         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
741         (propagate): Handle overwritable and unavailable leaf functions;
742         initialize global info for overwritable and unavailable leaf functions;
743         do not free all module statics.
744         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
745         local statics.
746         * calls.c (flags_from_decl_or_type): Handle leaf.
747         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
748         abnormal gotos.
749
750 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
751
752         * gengtype.c: Reindented.
753         * gengtype.h: Reindented.
754         * gengtype-parse.c: Reindented.
755
756 2010-09-24  Jan Hubicka  <jh@suse.cz>
757
758         PR tree-optimization/45738
759         PR tree-optimization/45741
760         * expr.c (string_constant): Allow CONST_DECL too;
761         check that DECL_INITIAL is set.
762         * varpool.c (const_value_known_p): Only look into VAR_DECL
763         and CONST_DECL.
764
765 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
766
767         * common.opt (undef): New.
768
769 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
770
771         PR middle-end/45234
772         * rtl.h (enum global_rtl_index): Add
773         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
774         (LAST_VIRTUAL_POINTER_REGISTER): Define.
775         (virtual_preferred_stack_boundary_rtx,
776         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
777         (LAST_VIRTUAL_REGISTER): Increase by one.
778         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
779         instead of LAST_VIRTUAL_REGISTER.
780         * function.c (instantiate_new_reg): Handle
781         virtual_preferred_stack_boundary_rtx.
782         * emit-rtl.c (init_virtual_regs): Handle
783         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
784         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
785         * explow.c (round_push): If crtl->preferred_stack_boundary
786         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
787         virtual_preferred_stack_boundary_rtx alignment instead of
788         crtl->preferred_stack_boundary alignment.
789         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
790         macros.  Never decrease crtl->preferred_stack_boundary,
791         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
792         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
793         stack_pointer_delta in dynamic allocation, even when size
794         is constant.
795         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
796         macro.
797         * print-rtl.c (print_rtx): Handle
798         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
799         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
800         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
801         * config/frv/frv.c (frv_emit_movsi): Likewise.
802         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
803         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
804         Likewise.
805
806         Revert:
807         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
808
809         PR middle-end/45234
810         * calls.c (expand_call): Make sure that all variable sized
811         adjustments are multiple of preferred stack boundary after
812         stack alignment.
813
814 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
815             Dominique Dhumieres  <dominiq@lps.ens.fr>
816
817         PR bootstrap/45751
818         * gcc/config/darwin-driver.c (darwin_default_min_version):
819         Adjust size passed to memcpy in two places.
820
821 2010-09-24  Richard Guenther  <rguenther@suse.de>
822
823         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
824         Make sure to not call set_type_context with error_mark_node.
825         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
826
827 2010-09-24  Richard Guenther  <rguenther@suse.de>
828
829         * Makefile.in (OBJS-onestep): Remove.
830         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
831         (libbackend.a): Remove onestep support.
832         (libbackend.o): Remove.
833         * configure.ac (--enable-intermodule): Remove.
834         * configure: Regenerate.
835
836 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
837
838         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
839         reaching the end of a block if it occurs at a DEBUG_INSN.
840
841 2010-09-09  Tristan Gingold  <gingold@adacore.com>
842
843         PR target/44242
844         * config/vms/vms-crt0-64.c: Removed.
845         * config/vms/vms-crt0.c: Removed.
846         * config/vms/vms-psxcrt0-64.c: Removed.
847         * config/vms/vms-psxcrt0.c: Removed.
848         * config/vms/vms-ucrt0.c: New file.
849         * config/vms/t-vms64: Removed.
850         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
851         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
852         * config.gcc (alpha-dec-vms): Use t-vms.
853
854 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
855
856         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
857         underfull hbox in DVI output.
858         (-fobjc-class-cxx-cdtors): Same change.
859         (-fobjc-exceptions): Tidied up documentation.  Explain what the
860         option does, but moved the (lenghty) description of the exception
861         syntax into objc.texi.
862         (-fobjc-gc): Explain that the option is not useful with the GNU
863         runtime.
864         (-fzero-link): Explain that the GNU runtime always works in
865         "zero-link" mode.
866         * doc/objc.texi: All sections: simplified @node declarations
867         removing specification of next, previous, up node.
868         (Objective-C): Updated introduction.
869         (Garbage Collection): Updated.  The bohem-gc library is now
870         included in gcc itself.  Mention that this section only applies to
871         the GNU Objective-C runtime.
872         (compatibility_alias): Small tidy up.
873         (Exceptions): New section mostly containing text previously in the
874         description of the -fobjc-exception command-line option.
875         (Synchronization): Same.
876
877 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
878
879         * config/i386/i386.md (ix86_code_end): Move the initialization of
880         xops array near the consumer.  Use AX_REG and SP_REG instead of
881         numerical constants.
882
883 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
884
885         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
886         method [methodname]' for an Objective-C method instead of the less
887         satisfactory 'too many arguments to function' (with no method name).
888
889 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
890
891         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
892         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
893         (execute_update_addresses_taken): Remove parameter.  Execute the
894         optimization unconditionally.
895         * passes.c (execute_function_todo): Call execute_update_addresses_taken
896         unconditionally if TODO_rebuild_alias is set, else only when optimizing
897         if TODO_update_address_taken is set.
898
899 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
900
901         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
902         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
903         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
904         (arm_output_addr_const_extra): Make static.
905
906 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
907
908         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
909         define as unspec_volatile.
910         ("nops"): Define as unspec_volatile. Use fputs to write to
911         asm_out_file directly.  Output NOPs on separate lines using while loop.
912         * config/i386/i386.c (ix86_code_end): Use fputs to write to
913         asm_out_file directly.  Output NOPs on separate lines using while loop.
914
915 2010-09-23  Richard Guenther  <rguenther@suse.de>
916
917         PR tree-optimization/45565
918         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
919         Make sure to adjust the fndecl before replacing the stmt.
920
921 2010-09-23  Richard Guenther  <rguenther@suse.de>
922
923         PR middle-end/45750
924         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
925         gimplifying MEM_REF.
926
927 2010-09-23  Alan Modra  <amodra@gmail.com>
928
929         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
930         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
931
932 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
933
934         PR rtl-optimization/44374
935         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
936         * df-core.c (df_set_bb_dirty): Set it.
937         * ifcvt.c (find_memory): Remove function.
938         (dead_or_predicable): Use can_move_insns_across.
939         * df.h (can_move_insns_across): Declare function.
940         * cfgcleanup.c (block_was_dirty): New static variable.
941         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
942         than df_get_bb_dirty.
943         (try_head_merge_bb): New static function.
944         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
945         is set.
946         * df-problems.c: Include "target.h"
947         (df_simulate_find_uses): New static function.
948         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
949         (find_memory, find_memory_store): New static functions.
950         (can_move_insns_across): New function.
951         * Makefile.in (df-problems.o): Update dependencies.
952
953 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
954
955         PR java/44095
956         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
957         is specified and the suffix of the file isn't ".c".
958         * config/sparc/linux64.h (ASM_SPEC): Likewise.
959
960 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
961
962         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
963         * doc/cppopts.texi: Fix markup of index entry.
964         * doc/extend.texi (Constructing Calls): Fix markup of
965         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
966         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
967         (Vague Linkage, C++ Attributes): Fix markup of index entries and
968         keywords.
969         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
970         avoid long lines.
971         (C Dialect Options, C++ Dialect Options, Warning Options)
972         (Debugging Options, Spec Files, Darwin Options)
973         (i386 and x86-64 Options, MIPS Options)
974         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
975         index entries, avoid abbreviations, allow URLs to wrap, avoid
976         long lines, avoid overlong pages from long @itemx lists.
977         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
978         * doc/standards.texi (Standards): Likewise.
979         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
980
981 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
982
983         * opts-common.c (prune_options): Make static.  Work with decoded
984         options.
985         (decode_cmdline_options_to_array): Call prune_options.  Don't
986         resize option array here.
987         * opts.h (prune_options): Remove prototype.
988         * gcc.c (process_command): Take decoded options; don't call
989         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
990         (main): Call decode_cmdline_options_to_array here instead of
991         prune_options.  Update call to process_command.
992         * config/darwin-driver.c: Include opts.h.
993         (darwin_default_min_version): Work with decoded options.  Don't
994         handle -b or -V here.
995         * config/darwin.h (darwin_default_min_version): Update prototype.
996         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
997         darwin_default_min_version.
998         * config/i386/cygwin.h (mingw_scan): Update prototype.
999         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
1000         * config/i386/cygwin1.c: Include opts.h.
1001         (mingw_scan): Work with decoded options.
1002         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
1003         * config/t-darwin (darwin-driver.o): Update dependencies.
1004
1005 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
1006
1007         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
1008         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
1009         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
1010         -force-link, -force-link=, -language, -language=,
1011         -library-directory, -library-directory=, -no-canonical-prefixes,
1012         -no-standard-libraries, -no-warnings, -optimize, -output,
1013         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
1014         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
1015         -print-file-name=, -print-libgcc-file-name,
1016         -print-multi-directory, -print-multi-lib,
1017         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
1018         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
1019         -profile, -save-temps, -shared, -specs, -specs=, -static,
1020         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
1021         symbolic): New.
1022         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
1023         * gcc.c (A Short Introduction to Adding a Command-Line Option):
1024         Remove comment.
1025         (cc1_options): Correct specs for passing down --help,
1026         --target-help and --help=*.  Add spec for passing down --version.
1027         (struct option_map, option_map, target_option_translations,
1028         translate_options): Remove.
1029         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
1030         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
1031         OPT_fhelp_ and OPT_ftarget_help.
1032         (process_command): Don't call translate_options.  Call
1033         decode_cmdline_options_to_array before checking for
1034         -no-canonical-prefixes using decoded options.
1035         * opts-common.c (tm.h): Update comment on #include.
1036         (find_opt): Allow abbreviations of long options.
1037         (struct option_map, option_map): New.
1038         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
1039         and -mno handling.
1040         (target_option_translations): New.
1041         (decode_cmdline_options_to_array): Handle
1042         TARGET_OPTION_TRANSLATE_TABLE in driver.
1043         * opts.c (common_handle_option): Don't handle OPT_fhelp,
1044         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
1045
1046 2010-09-22  Richard Guenther  <rguenther@suse.de>
1047
1048         * tree-inline.c (optimize_inline_calls): Schedule cleanups
1049         only if we inlined something.  Block compaction and conditional
1050         folding are done by cfg cleanup.  Schedule update-address-taken.
1051         (tree_function_versioning): Remove redundant call to number_blocks.
1052         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
1053         folding is done by cfg cleanup.
1054         * passes.c (init_optimization_passes): Remove update-address-taken
1055         pass after IPA inlining.
1056
1057 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
1058
1059         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
1060         to update conditions. Fix reg_mode[] check.
1061
1062 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
1063
1064         * config/picochip/picochip.md (movhicc): Use expand to check whether
1065         movhicc is available and split it after reload.
1066
1067 2010-09-22  Richard Guenther  <rguenther@suse.de>
1068
1069         * tree-ssanames.c (release_dead_ssa_names): Do not remove
1070         callee edges here.
1071         * passes.c (init_optimization_passes): Remove early CFG cleanup.
1072         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
1073         (pass_cleanup_cfg): Likewise.
1074         (execute_fixup_cfg): Cleanup.
1075         * tree-pass.h (pass_cleanup_cfg): Remove.
1076
1077 2010-09-22  Martin Jambor  <mjambor@suse.cz>
1078
1079         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
1080         builtins if it is true.
1081         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
1082         parameter.
1083
1084 2010-09-22  Martin Jambor  <mjambor@suse.cz>
1085
1086         * tree-sra.c (struct access): New field grp_no_warning.
1087         (create_access_replacement): Set TREE_NO_WARNING according to
1088          grp_no_warning.
1089         (create_artificial_child_access): Use build_ref_for_model and set
1090         grp_no_warning if build_user_friendly_ref_for_offset fails.
1091         (propagate_subaccesses_across_link): Likewise.
1092
1093 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
1094
1095         PR target/35664
1096         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
1097         ('f'): Likewise.
1098
1099 2010-09-22  Tristan Gingold  <gingold@adacore.com>
1100
1101         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
1102
1103 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
1104
1105         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
1106         * config/i386/i386.c (decide_alg): Update for rename.
1107
1108 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
1109
1110         PR rtl-optimization/45739
1111         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
1112         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
1113
1114 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
1115
1116         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
1117         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
1118         Remove.
1119         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
1120         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1121
1122 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1123
1124         PR objc/23710
1125         * c-parser.c (c_parser_objc_method_definition): Check the return
1126         value of objc_start_method_definition and if false is returned,
1127         parse the method definition but emit no code.
1128
1129 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1130
1131         PR objc/25965
1132         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
1133         call objc_get_interface_ivars ().
1134
1135 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
1136
1137         PR target/45694
1138         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
1139         static chain-register is used for 64-bit.
1140
1141 2010-09-21  Richard Guenther  <rguenther@suse.de>
1142
1143         * dwarf2out.c (is_cu_die): New function.
1144         (add_pubtype): Use it.
1145         (gen_subprogram_die): Likewise.
1146         (gen_struct_or_union_type_die): Likewise.
1147         (dwarf2out_finish): Likewise.
1148         (comp_unit_die): Rename to ...
1149         (single_comp_unit_die): ... this.
1150         (comp_unit_die): New function lazily constructing and
1151         returning single_comp_unit_die.
1152         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
1153         base_type_die, subrange_type_die, modified_type_die,
1154         lower_bound_default, add_bound_info, add_prototyped_attribute,
1155         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
1156         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
1157         force_decl_die, gen_namespace_die, dwarf2out_decl,
1158         dwarf2out_start_source_file, dwarf2out_end_source_file,
1159         prune_unused_types, dwarf2out_finish): Use it.
1160         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
1161         the global list of translation-unit decls.
1162         (dwarf2out_init): Do not create single_comp_unit_die here.
1163         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
1164
1165 2010-09-21  Richard Guenther  <rguenther@suse.de>
1166
1167         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
1168         for bool for C++.
1169
1170 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
1171
1172         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
1173         (qhs_extenddi_cstr): Likewise.
1174         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
1175         them for the source operand.
1176
1177 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
1178
1179         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
1180         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
1181         (ix86_split_ashr): Ditto.
1182         (ix86_split_lshr): Ditto.
1183
1184 2010-09-21  Richard Guenther  <rguenther@suse.de>
1185
1186         PR tree-optimization/45580
1187         * tree-ssa-propagate.c (substitute_and_fold): Always replace
1188         regular uses.
1189         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
1190         virtuals fold the call into a regular indirect one.
1191
1192 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
1193
1194         PR rtl-optimization/42775
1195         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
1196         scheduling is enabled.
1197
1198 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
1199
1200         PR rtl-optimization/45728
1201         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
1202         gen_lowpart_common first and if that fails, force_reg first
1203         before calling gen_lowpart.
1204
1205         PR middle-end/45678
1206         * cfgexpand.c (expand_one_stack_var_at): Use
1207         crtl->max_used_stack_slot_alignment as max_align, instead
1208         of maximum of that and PREFERRED_STACK_BOUNDARY.
1209         Don't call update_stack_alignment.
1210
1211 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
1212
1213         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
1214         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
1215         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
1216         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
1217         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
1218         (build_nonstandard_integer_type): Likewise.
1219         (build_range_type_1): New function, built from...
1220         (build_range_type): ...this.  Call build_range_type_1.
1221         (build_nonshared_range_type): New function.
1222         (build_array_type_1): New function, built from...
1223         (build_array_type: ...this.  Call build_array_type_1.
1224         (build_nonshared_array_type): New function.
1225         * tree.h (build_nonshared_range_type): Declare.
1226         (build_nonshared_array_type): Likewise.
1227
1228 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
1229
1230         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
1231         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1232         (arm_class_likely_spilled_p): New function.
1233
1234 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
1235
1236         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
1237         indirect functions.
1238         (ix86_split_ashl): Ditto.
1239         (ix86_split_ashr): Ditto.
1240         (ix86_split_lshr): Ditto.
1241         (ix86_adjust_counter): Ditto.
1242
1243 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1244
1245         * c-family/c-common.h (constant_string_class): Documented with
1246         comment identical to the one already in c-common.c.
1247
1248 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
1249
1250         * dwarf2out.c (any_cfis_emitted): New static variable.
1251         (add_fde_cfi): Set it.
1252         (dwarf2out_frame_debug): Clear it before processing,
1253         if it is set afterwards, flush any queued reg saves.
1254
1255         PR debug/45124
1256         * dwarf2out.c (add_accessibility_attribute): Assume
1257         DW_ACCESS_private as the default for dwarf_version > 2
1258         and DW_TAG_class_type parent.
1259         (gen_inheritance_die): Assume DW_ACCESS_public as the default
1260         for dwarf_version > 2 and parent other than DW_TAG_class_type.
1261
1262 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
1263
1264         PR target/45726
1265         * arm.md (arm_movt): Only enable on machines with MOVT.
1266
1267 2010-09-20  Jie Zhang  <jie@codesourcery.com>
1268
1269         * config/arm/arm.c (arm_address_offset_is_imm): New.
1270         (arm_early_store_addr_dep): New.
1271         (arm_early_load_addr_dep): New.
1272         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
1273         (arm_early_load_addr_dep): Declare.
1274         (arm_address_offset_is_imm): Declare.
1275         * config/arm/cortex-m4.md: New file.
1276         * config/arm/cortex-m4-fpu.md: New file.
1277         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
1278         (attr generic_sched): Exclude cortexm4.
1279         (attr generic_vfp): Exclude cortexm4.
1280
1281 2010-09-20  Richard Guenther  <rguenther@suse.de>
1282
1283         PR middle-end/45704
1284         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
1285
1286 2010-09-20  Jan Hubicka  <jh@suse.cz>
1287
1288         PR tree-optimize/45605
1289         * cgraph.h (const_value_known_p): Declare.
1290         (varpool_decide_const_value_known): Remove.
1291         * tree-ssa-ccp.c (get_base_constructor): Use it.
1292         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
1293         * expr.c (string_constant): Likewise.
1294         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
1295         * ipa.c (ipa_discover_readonly_nonaddressable_var,
1296         function_and_variable_visibility): Likewise.
1297         * gimplify.c (gimplify_call_expr): Likewise.
1298         * gimple-fold.c (get_symbol_constant_value): Likewise.
1299         * varpool.c (varpool_decide_const_value_known): Replace by...
1300         (const_value_known_p): ... this one; handle other kinds of DECLs
1301         too and work for automatic vars.
1302         (varpool_finalize_decl): Use const_value_known_p.
1303
1304 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
1305
1306         PR target/45726
1307         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
1308
1309 2010-09-20  Richard Guenther  <rguenther@suse.de>
1310
1311         PR tree-optimization/45705
1312         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
1313
1314 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
1315
1316         PR rtl-optimization/45695
1317         * combine.c (try_combine): When splitting a two set pattern,
1318         make sure the pattern which will be put into i2 doesn't use REGs
1319         or MEMs set by insns in between i2 and i3.
1320
1321 2010-09-19  Jan Hubicka  <jh@suse.cz>
1322
1323         PR lto/44246
1324         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
1325         processing same node twice.
1326
1327 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
1328
1329         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
1330         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1331         (bfin_class_likely_spilled_p): New function
1332
1333 2010-09-19  Ira Rosen  <irar@il.ibm.com>
1334
1335         PR tree-optimization/45714
1336         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
1337         created in vectorizable_call instead of the original statement in
1338         def stmt updates.
1339
1340 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
1341
1342         * config/i386/i386-protos.h (split_double_mode): New prototype.
1343         (split_di, split_ti): Remove prototypes.
1344         * config/i386/i386.c (split_double_mode): New function.
1345         (split_di, split_ti): Remove.
1346         (ix86_expand_branch): Use split_double_mode.
1347         (ix86_split_to_parts): Ditto.
1348         (ix86_split_ashl): Ditto.
1349         (ix86_split_ashr): Ditto.
1350         (ix86_split_lshr): Ditto.
1351         (ix86_force_to_memory): Ditto.
1352         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
1353
1354 2010-09-18  Jan Hubicka  <jh@suse.cz>
1355
1356         PR tree-optimization/45453
1357         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
1358         virtual functions are reachable.
1359         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
1360         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
1361         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
1362         when modifying function.
1363
1364 2010-09-18  Jan Hubicka  <jh@suse.cz>
1365
1366         PR tree-optimization/45605
1367         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
1368         * gimple-fold.c (static_object_in_other_unit_p): New function.
1369         (canonicalize_constructor_val): Use it.
1370         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
1371         returning NULL.
1372         (gimple_fold_obj_type_ref_known_binfo): Use
1373         static_object_in_other_unit_p.
1374
1375 2010-09-18  Richard Guenther  <rguenther@suse.de>
1376
1377         PR tree-optimization/45709
1378         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
1379         insertions until after all PHI nodes of the block are processed.
1380
1381 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
1382
1383         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
1384
1385 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
1386
1387         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
1388
1389 2010-09-18  Richard Guenther  <rguenther@suse.de>
1390
1391         PR tree-optimization/45709
1392         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
1393
1394 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
1395
1396         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
1397         (dot_deps_stmt): Same.
1398         * graphite-poly.c (dot_lst): Same.
1399         * graphite-scop-detection.c (dot_all_scops): Same.
1400         (dot_scop): Same.
1401
1402 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
1403
1404         Revert:
1405         2009-12-16  Ben Elliston  <bje@au.ibm.com>
1406
1407         * tree-data-ref.c (dot_rdg_1): Added back.
1408         (dot_rdg): Same.  Added "#if 0" around system call.
1409
1410 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
1411             Richard Henderson  <rth@redhat.com>
1412
1413         * config/i386/i386.c (initial_ix86_tune_features): Add
1414         X86_TUNE_PAD_SHORT_FUNCTION.
1415         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
1416         (ix86_count_insn): New.
1417         (ix86_pad_short_function): Likewise.
1418         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
1419
1420         * config/i386/i386.h (ix86_tune_indices): Add
1421         X86_TUNE_PAD_SHORT_FUNCTION.
1422         (TARGET_PAD_SHORT_FUNCTION): New.
1423
1424         * config/i386/i386.md (UNSPEC_NOPS): New.
1425         (nops): Likewise.
1426
1427 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
1428
1429         PR middle-end/45234
1430         * calls.c (expand_call): Make sure that all variable sized
1431         adjustments are multiple of preferred stack boundary after
1432         stack alignment.
1433
1434 2010-09-17  DJ Delorie  <dj@redhat.com>
1435
1436         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
1437         passed an invalid value, print an error instead of ICEing.
1438         (valid_psw_flag): New.
1439         (rx_expand_builtin): Call it for setpsw/clrpsw.
1440         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
1441
1442         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
1443         (bitclr_in_memory): Likewise.
1444         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
1445
1446 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
1447
1448         PR middle-end/45678
1449         * cfgexpand.c (update_stack_alignment): New.
1450         (get_decl_align_unit): Use it.
1451         (expand_one_stack_var_at): Call update_stack_alignment.
1452
1453 2010-09-17  Richard Guenther  <rguenther@suse.de>
1454
1455         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
1456         Properly copy the read string.
1457
1458 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
1459
1460         * doc/options.texi (Variable): Document.
1461         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
1462         generate target_flags declarations explicitly.  Don't define
1463         VarExists variables for the driver.
1464         * common.opt (target_flags): New Variable record.
1465         (flag_dump_unnumbered, flag_dump_unnumbered_links,
1466         flag_var_tracking, flag_var_tracking_assignments,
1467         flag_var_tracking_assignments_toggle): Don't mark variables with
1468         VarExists.
1469         * config/i386/i386.c (ix86_isa_flags): Don't define here.
1470         * config/i386/i386.opt (ix86_isa_flags): Define here.
1471         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
1472         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
1473         VarExists.
1474         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
1475         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
1476         Only define for generator programs.
1477         * rtlanal.c (target_flags): Remove.
1478         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
1479         flag_var_tracking_assignments_toggle): Remove.
1480
1481 2010-09-17  Michael Matz  <matz@suse.de>
1482
1483         PR tree-optimization/43432
1484         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
1485         Accept backwards consecutive accesses.
1486         (vect_create_data_ref_ptr): If step is negative generate
1487         decreasing IVs.
1488         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
1489         (perm_mask_for_reverse, reverse_vec_elements): New functions.
1490         (vectorizable_load): Handle loads with negative steps when easily
1491         possible.
1492
1493 2010-09-03  Jan Hubicka  <jh@suse.cz>
1494
1495         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
1496
1497 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
1498
1499         * config/v850/v850.c (v850_function_value_regno_p): Make static.
1500         Adjust comments. Declare.
1501         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
1502         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
1503
1504 2010-09-17  Richard Guenther  <rguenther@suse.de>
1505
1506         * common.opt (combine): Remove.
1507         * gcc.c (default_compilers): Remove specs testing combine.
1508         The C compilers no longer can combine.
1509         (option_map): Remove -combine.
1510         (display_help): Remove -combine.
1511         (driver_handle_option): Remove OPT_combine handling.
1512         (compile_input_file_p): Remove.
1513         (do_spec): Remove code concerning combine.
1514         (main): Likewise.
1515         * doc/invoke.texi: Remove traces of -combine.
1516         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
1517
1518 2010-09-17  Richard Guenther  <rguenther@suse.de>
1519
1520         PR middle-end/45678
1521         * builtins.c (fold_builtin_memory_op): Always properly adjust
1522         alignment of memory accesses.
1523
1524 2010-09-16  Jan Hubicka  <jh@suse.cz>
1525
1526         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
1527         processing clone.
1528
1529 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
1530
1531         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
1532
1533         * config/i386/i386.c (predict_jump): Add prototype.
1534         (flag_opts): Add -m8bit-idiv.
1535         (ix86_split_idivmod): New.
1536
1537         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
1538         Add 2 splitters for SI/DI mode divide.
1539         (divmod<mode>4_1): New pattern.
1540         (udivmod<mode>4_1): Likewise.
1541         (testdi_ccno_1): Likewise.
1542
1543         * config/i386/i386.opt (m8bit-idiv): New.
1544
1545         * doc/invoke.texi: Document -m8bit-idiv.
1546
1547 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
1548
1549         PR bootstrap/45680
1550         * config/i386/i386.c (min_insn_size): Moved out of the
1551         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
1552
1553 2010-09-16  Jan Hubicka  <jh@suse.cz>
1554
1555         * lto-cgraph.c (lto_output_node): Fix handling of clones.
1556         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
1557         unreachable clones with reachable clones.
1558         * tree-inline.c (copy_bb): Fix sanity checking when producing
1559         unreachable clone.
1560
1561 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
1562
1563         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
1564         (TARGET_MEMORY_MOVE_COST): Define.
1565         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
1566
1567 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
1568
1569         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
1570         maybe_tidy_empty_bb.
1571
1572         Revert:
1573         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
1574         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
1575
1576 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
1577
1578         * target.def (target_option.optimization): New hook.
1579         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
1580         TARGET_OPTION_OPTIMIZATION hook.
1581         * doc/tm.texi: Regenerate.
1582         * hooks.c (hook_void_int_int): New.
1583         * hooks.h (hook_void_int_int): Declare.
1584         * opts.c: Don't include tm_p.h.
1585         (decode_options): Use targetm.target_option.optimization instead
1586         of OPTIMIZATION_OPTIONS.
1587         * system.h (OPTIMIZATION_OPTIONS): Poison.
1588         * config/arm/arm-protos.h (arm_optimization_options): Remove.
1589         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
1590         (arm_optimization_options): Rename to arm_option_optimization.
1591         Make static.
1592         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
1593         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
1594         (cris_option_optimization): New.
1595         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
1596         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
1597         (crx_option_optimization): New.
1598         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
1599         * config/frv/frv-protos.h (frv_optimization_options): Remove.
1600         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
1601         (frv_optimization_options): Rename to frv_option_optimization.
1602         Make static.
1603         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
1604         * config/h8300/h8300.c (h8300_option_optimization): New.
1605         (TARGET_OPTION_OPTIMIZATION): Define.
1606         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
1607         * config/i386/i386-protos.h (optimization_options): Remove.
1608         * config/i386/i386.c (optimization_options): Rename to
1609         ix86_option_optimization.  Make static.
1610         (TARGET_OPTION_OPTIMIZATION): Define.
1611         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
1612         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
1613         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
1614         (ia64_optimization_options): Rename to ia64_option_optimization.
1615         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
1616         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
1617         commented-out definition.
1618         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
1619         instead of OPTIMIZATION_OPTIONS.
1620         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
1621         (m32r_option_optimization): New.
1622         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
1623         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
1624         Remove.
1625         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
1626         (mcore_option_optimization): New.
1627         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
1628         * config/mep/mep-protos.h (mep_optimization_options): Remove.
1629         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
1630         (mep_optimization_options): Rename to mep_option_optimization.
1631         Make static.  Take unused level and size parameters.
1632         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
1633         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
1634         (mmix_option_optimization): New.
1635         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
1636         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
1637         (pdp11_option_optimization): New.
1638         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
1639         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
1640         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
1641         (optimization_options): Rename to rs6000_option_optimization.
1642         Make static.
1643         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
1644         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
1645         * config/rx/rx.c (rx_set_optimization_options): Rename to
1646         rx_option_optimization.  Make static.  Take unused level and size
1647         parameters.
1648         (TARGET_OPTION_OPTIMIZATION): Define.
1649         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
1650         * config/s390/s390-protos.h (optimization_options): Remove.
1651         * config/s390/s390.c (optimization_options): Rename to
1652         s390_option_optimization.  Make static.  Don't mark size parameter
1653         unused.
1654         (TARGET_OPTION_OPTIMIZATION): Define.
1655         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
1656         * config/sh/sh-protos.h (sh_optimization_options): Remove.
1657         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
1658         (sh_optimization_options): Rename to sh_option_optimization.  Make
1659         static.  Don't mark parameters unused.
1660         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
1661         * config/spu/spu-protos.h (spu_optimization_options): Remove.
1662         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
1663         (spu_optimization_options): Rename to spu_option_optimization.
1664         Make static.
1665         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
1666         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
1667         (v850_option_optimization): New.
1668         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
1669         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
1670         (xtensa_option_optimization): New.
1671         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
1672
1673 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
1674
1675         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
1676         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
1677         * doc/tm.texi: Regenerate.
1678         * system.h (OVERRIDE_OPTIONS): Poison.
1679         * target.def (override): Default to hook_void_void.
1680         * targhooks.c (default_target_option_override): Remove.
1681         * genmodes.c, machmode.def: Update comments mentioning
1682         OVERRIDE_OPTIONS.
1683         * config/alpha/alpha-modes.def: Update comment mentioning
1684         alpha_override_options.
1685         * config/alpha/alpha-protos.h (override_options): Remove.
1686         * config/alpha/alpha.c (override_options): Rename to
1687         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
1688         (TARGET_OPTION_OVERRIDE): Define.
1689         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
1690         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
1691         of OVERRIDE_OPTIONS.
1692         * config/arc/arc-protos.h (arc_init): Remove.
1693         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
1694         (arc_init): Rename to arc_option_override.  Make static.
1695         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
1696         (OVERRIDE_OPTIONS): Remove.
1697         * config/arm/arm-protos.h (arm_override_options): Remove.
1698         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
1699         (arm_override_options): Rename to arm_option_override.  Make
1700         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
1701         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
1702         * config/arm/arm.md: Update comment referring to arm_override_options.
1703         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
1704         instead of OVERRIDE_OPTIONS.
1705         * config/avr/avr-protos.h (avr_override_options): Remove.
1706         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
1707         (avr_override_options): Rename to avr_option_override.  Make static.
1708         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
1709         * config/bfin/bfin-protos.h (override_options): Remove (twice).
1710         * config/bfin/bfin.c (override_options): Rename to
1711         bfin_option_override.  Make static.
1712         (TARGET_OPTION_OVERRIDE): Define.
1713         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
1714         * config/cris/cris-protos.h (cris_override_options): Remove.
1715         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
1716         (cris_override_options): Rename to cris_option_override.  Make static.
1717         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
1718         * config/frv/frv-protos.h (frv_override_options): Remove.
1719         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
1720         (frv_override_options): Rename to frv_option_override.  Make static.
1721         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
1722         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
1723         * config/h8300/h8300.c (h8300_init_once): Rename to
1724         h8300_option_override.  Make static.
1725         (TARGET_OPTION_OVERRIDE): Define.
1726         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
1727         * config/i386/i386-protos.h (override_options): Remove.
1728         * config/i386/i386.c (override_options): Rename to
1729         ix86_option_override_internal.  Make static.  Comments referring
1730         to this function and callers changed.
1731         (ix86_option_override): New.
1732         (TARGET_OPTION_OVERRIDE): Define.
1733         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
1734         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
1735         * config/ia64/ia64.c (ia64_file_start): Update comment referring
1736         to ia64_override_options.
1737         * config/iq2000/iq2000-protos.h (override_options): Remove.
1738         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
1739         (override_options): Rename to iq2000_option_override.  Make static.
1740         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
1741         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
1742         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
1743         (lm32_override_options): Rename to lm32_option_override.  Make static.
1744         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
1745         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
1746         (m32r_option_override): New.
1747         (m32r_init): Update comment.
1748         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
1749         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
1750         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
1751         (m68hc11_override_options): Rename to m68hc11_option_override.
1752         Make static.  Return void.
1753         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
1754         * config/m68k/m68k-protos.h (override_options): Remove.
1755         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
1756         (override_options): Rename to m68k_option_override.  Make static.
1757         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
1758         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
1759         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
1760         (mcore_override_options): Rename to mcore_option_override.  Make
1761         static.
1762         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
1763         * config/mep/mep-protos.h (mep_override_options): Remove.
1764         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
1765         (mep_override_options): Rename to mep_option_override.  Make static.
1766         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
1767         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
1768         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
1769         (mmix_override_options): Rename to mmix_option_override.  Make static.
1770         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
1771         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
1772         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
1773         (mn10300_override_options): Rename to mn10300_option_override.
1774         Make static.
1775         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
1776         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
1777         * config/moxie/moxie.c (moxie_override_options): Rename to
1778         moxie_option_override.  Make static.
1779         (TARGET_OPTION_OVERRIDE): Define.
1780         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
1781         * config/picochip/picochip-protos.h (picochip_override_options):
1782         Remove.  Update comment referring to picochip_override_options.
1783         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
1784         (picochip_override_options): Rename to picochip_option_override.
1785         Make static.  Update comment and definition of
1786         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
1787         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
1788         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
1789         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
1790         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
1791         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
1792         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
1793         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
1794         instead of OVERRIDE_OPTIONS.
1795         * config/rs6000/rs6000-modes.def: Update comment referring to
1796         rs6000_override_options.
1797         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
1798         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
1799         (rs6000_override_options): Rename to
1800         rs6000_option_override_internal.  Make static.  Commented
1801         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
1802         (rs6000_option_override): New.
1803         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
1804         instead of OVERRIDE_OPTIONS.
1805         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
1806         * config/s390/s390-protos.h (override_options): Remove.
1807         * config/s390/s390.c (override_options): Rename to
1808         s390_option_override.  Make static.
1809         (TARGET_OPTION_OVERRIDE): Define.
1810         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
1811         * config/score/score-protos.h (score_override_options): Remove.
1812         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
1813         (score_override_options): Rename to score_option_override.  Make
1814         static.
1815         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
1816         Update comment referring to override_options.
1817         * config/score/score3.c (score3_override_options): Rename to
1818         score3_option_override.
1819         * config/score/score3.h (score3_override_options): Rename to
1820         score3_option_override.
1821         * config/score/score7.c (score7_override_options): Rename to
1822         score7_option_override.
1823         * config/score/score7.h (score7_override_options): Rename to
1824         score7_option_override.
1825         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
1826         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
1827         (sparc_override_options): Rename to sparc_option_override.  Make
1828         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
1829         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
1830         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
1831         instead of OVERRIDE_OPTIONS.
1832         * config/spu/spu-protos.h (spu_override_options): Remove.
1833         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
1834         (spu_override_options): Rename to spu_option_override.  Make
1835         static.
1836         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
1837         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
1838         OVERRIDE_OPTIONS.
1839         * config/vax/vax-protos.h (override_options): Remove.
1840         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
1841         (override_options): Rename to vax_option_override.  Make static.
1842         Call SUBTARGET_OVERRIDE_OPTIONS.
1843         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
1844         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
1845         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
1846         * config/xtensa/xtensa-protos.h (override_options): Remove.
1847         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
1848         (override_options): Rename to xtensa_option_override.  Make static.
1849         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
1850
1851 2010-09-16  Richard Guenther  <rguenther@suse.de>
1852
1853         PR tree-optimization/45623
1854         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
1855         (get_constraint_for_component_ref): If computing a constraint
1856         for the rhs handle type punning through unions.
1857         (get_constraint_for_address_of): Adjust.
1858         (get_constraint_for_1): Likewise.
1859         (get_constraint_for): Likewise.
1860         (get_constraint_for_rhs): New function.
1861         (do_structure_copy): Adjust.
1862         (make_constraint_to): Likewise.
1863         (handle_const_call): Likewise.
1864         (find_func_aliases): Likewise.
1865         (process_ipa_clobber): Likewise.
1866         (create_variable_info_for): Likewise.
1867
1868 2010-09-16  Ira Rosen  <irar@il.ibm.com>
1869
1870         * tree-vectorizer.c: Fix documentation.
1871         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
1872         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
1873         is_pattern_stmt_p, is_loop_header_bb_p,
1874         stmt_vinfo_set_inside_of_loop_cost,
1875         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
1876         known_alignment_for_access_p): Likewise.
1877         * tree-vect-loop.c: Fix documentation.
1878         (vect_get_cost): Start function name from new line.
1879         * tree-vect-data-refs.c: Fix documentation.
1880         * tree-vect_stmts.c: Likewise.
1881         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
1882         (vectorizable_store): Free vec_oprnds if allocated.
1883         (vectorizable_condition): Initialize several variables to avoid
1884         warnings.
1885         * tree-vect-slp.c: Fix documentation.
1886
1887 2010-09-16  Richard Guenther  <rguenther@suse.de>
1888
1889         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
1890         is TS_TRANSLATION_UNIT_DECL.
1891         (initialize_tree_contains_struct): Adjust.
1892         (all_translation_units): New global vector.
1893         (build_translation_unit_decl): New function.
1894         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
1895         (struct tree_translation_unit_decl): New.
1896         (all_translation_units): Declare.
1897         (union tree_node): Add translation_unit_decl member.
1898         (build_translation_unit_decl): Declare.
1899         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
1900         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
1901         New function.
1902         (pack_value_fields): Call it.
1903         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
1904         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
1905         (lto_output_tree_pointers): Call it.
1906         * lto-streamer-in.c (lto_input_tree_ref): Handle references
1907         to TRANSLATION_UNIT_DECL.
1908         (unpack_ts_translation_unit_decl_value_fields): New function.
1909         (unpack_value_fields): Call it.
1910         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
1911         (lto_input_tree_pointers): Call it.
1912         * lto-streamer.c (check_handled_ts_structures): Adjust.
1913         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
1914         * c-decl.c (all_translation_units): Remove.
1915         (pop_scope): Use build_translation_unit_decl.
1916         (collect_all_refs): Adjust.
1917         (for_each_global_decl): Likewise.
1918         (c_write_global_declarations): Likewise.
1919
1920 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
1921
1922         PR bootstrap/45686
1923         * fold-const.c (fold_checksum_tree): Change slot from const void **
1924         to void **, use CONST_CAST_TREE to store into *slot.
1925
1926 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
1927
1928         * config/i386/i386.md: Remove unneeded empty conditions and
1929         preparation statements from expanders.
1930         * config/i386/mmx.md: Ditto.
1931         * config/i386/sse.md: Ditto.
1932
1933 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
1934
1935         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
1936
1937 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
1938
1939         PR rtl-optimization/45593
1940         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
1941         insns that were in delay slots as stand-alone insns.
1942
1943 2010-09-15  Ian Lance Taylor  <iant@google.com>
1944
1945         * incpath.c (remove_duplicates): If name is not a directory, issue
1946         a warning rather than an error.
1947
1948 2010-09-15  Martin Jambor  <mjambor@suse.cz>
1949
1950         PR middle-end/45644
1951         * tree-sra.c (create_access): Check for bit-fields directly.
1952
1953 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
1954
1955         PR tree-optimization/45633
1956         * tree-cfg.c (verify_gimple_assign_binary): Allow
1957         MINUS_EXPR with lhs and rhs1 pointer vector and
1958         rhs2 sizetype vector.
1959         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
1960         or vector pointer use TER to optimize pointer subtraction.
1961
1962 2010-09-15  Jie Zhang  <jie@codesourcery.com>
1963
1964         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
1965         fcmpd to fcmps.
1966
1967 2010-09-15  Ian Lance Taylor  <iant@google.com>
1968
1969         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
1970
1971 2010-09-15  Ian Lance Taylor  <iant@google.com>
1972
1973         * function.c (get_arg_pointer_save_area): Set
1974         arg_pointer_save_area_init to true.
1975
1976 2010-09-15  Martin Jambor  <mjambor@suse.cz>
1977
1978         * tree-sra.c (generate_subtree_copies): Updated comment.
1979         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
1980         obtained from the statement iterator instead.
1981         (load_assign_lhs_subreplacements): Removed parameters lhs and
1982         right_offset, which is obtained from top_racc instead.  Parameter lacc
1983         is now expected to be the root of the processed tree rather than root's
1984         first child.  Updated all callers.
1985
1986 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
1987
1988         * config/pdp11/pdp11.c (register_move_cost): Rename to
1989         pdp11_register_move_cost.
1990         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
1991         pdp11_register_move_cost.
1992         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
1993         pdp11_register_move_cost instead of register_move_cost.
1994
1995 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
1996
1997         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
1998         pattern for vmovn. Expansion in case of non
1999         -mvectorize-with-neon-quad.
2000         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
2001         non- -mvectorize-with-neon-quad case.
2002         (move_lo_quad_<mode>): New expansion to vmov into low part.
2003         (move_hi_quad_<mode>): New expansion to vmov into high part.
2004         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
2005         (move_lo_quad_v4sf): Likewise.
2006         (move_lo_quad_v8hi): Likewise.
2007         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
2008         low part.
2009         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
2010         high part.
2011         * config/arm/iterators.md (ANY128): New mode iterator.
2012         (V_narrow_pack): New mode attribute.
2013         (V_HALF): Add attribute.
2014         (V_DOUBLE): Add attribute.
2015         (V_mode_nunits): Add attribute.
2016
2017 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
2018
2019         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
2020         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
2021
2022 2010-09-15  Olivier Hainque  <hainque@adacore.com>
2023             Jose Ruiz  <ruiz@adacore.com>
2024
2025         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
2026         * config/alpha/osf5-unwind.h: New file.
2027
2028 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
2029
2030         PR bootstrap/45672
2031         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
2032         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
2033         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
2034
2035 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2036
2037         * c-lang.h (struct lang_type): Add variable_size GTY option.
2038
2039 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
2040
2041         PR bootstrap/45672
2042         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
2043
2044 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
2045
2046         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
2047         result isn't used in memory address.
2048
2049 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
2050
2051         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
2052         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
2053         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
2054         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2055         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2056         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2057
2058         * target.def: Add units_per_simd_word to vectorize.
2059
2060         * targhooks.c (default_units_per_simd_word): New.
2061         * targhooks.h (default_units_per_simd_word): Likewise.
2062         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
2063         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2064         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
2065         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2066         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
2067         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2068         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
2069         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2070
2071         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
2072         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
2073
2074         * tree-vect-stmts.c: Don't include "tm_p.h".
2075         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
2076         with targetm.vectorize.units_per_simd_word.
2077
2078         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
2079
2080         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
2081
2082         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
2083         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
2084
2085         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
2086         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
2087
2088         * doc/tm.texi: Regenerated.
2089
2090 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
2091
2092         * tree-vect-stmts.c: Include "tm_p.h".
2093
2094         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
2095         out of RTX_CODE.
2096
2097 2010-09-14  Martin Jambor  <mjambor@suse.cz>
2098
2099         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
2100         location of generated statement.  Changed all callers.
2101         (build_ref_for_model): New parameter loc which used to set location of
2102         all generated expressions.  Changed all callers.
2103         (generate_subtree_copies): Likewise.
2104         (init_subtree_with_zero): Likewise.
2105         (sra_modify_expr): Set locations of all generated statements and
2106         expressions to the location the original statement.
2107         (handle_unscalarized_data_in_subtree): Likewise.
2108         (load_assign_lhs_subreplacements): Likewise.
2109         (sra_modify_constructor_assign): Likewise.
2110         (sra_modify_assign): Likewise.
2111
2112 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2113
2114         PR target/45277
2115         PR target/45363
2116         PR target/45407
2117         * doc/install.texi (sparc*-*-*): New section.
2118         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
2119
2120 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
2121
2122         PR middle-end/45567
2123         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
2124         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
2125         (expand_builtin): Adjust caller.
2126         (expand_builtin_unop): Only use subtarget if it has the right mode.
2127
2128 2010-09-14  Tristan Gingold  <gingold@adacore.com>
2129
2130         * configure.ac (plugins): Fix typos.
2131         * configure: Regenerate.
2132
2133 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
2134
2135         PR debug/45660
2136         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
2137         gen_type_die for function/method return type.
2138
2139 2010-09-14  Ira Rosen  <irar@il.ibm.com>
2140
2141         PR tree-optimization/45470
2142         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
2143         can throw an exception.
2144         * tree-vect-stmts.c (vectorizable_call): Likewise.
2145
2146 2010-09-14  DJ Delorie  <dj@redhat.com>
2147
2148         PR target/44749
2149         * config/mep/mep-protos.h (mep_save_register_info,
2150         mep_reinit_regs, mep_init_regs): Declare.
2151
2152         * config/mep/mep.c: Move all target definitions to the end of the
2153         file to avoid the need for duplicate declarations.
2154         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
2155         (mep_reorg_erepeat): Remove unused variables.
2156         (mep_expand_builtin): Likewise.
2157
2158         * config/mep/mep-pragma.c: Don't include rtl.h.
2159         (INVALID_REGNUM): New.
2160         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
2161         functions.
2162         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
2163         Avoid enum/integer math.
2164
2165 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
2166
2167         PR target/44749
2168         * config/mep/t-mep (GTM_H): Add insn-constants.h.
2169         * config/mep/mep.c (mep_conditional_register_usage): Take no
2170         parameters.
2171         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
2172         prototype.
2173         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
2174         call to mep_conditional_register_usage.
2175
2176 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
2177
2178         PR debug/43937
2179         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
2180         the DECL as well.
2181
2182 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
2183
2184         PR rtl-optimization/45617
2185         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
2186         even if low N bits of X aren't known to be zero.
2187
2188 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
2189
2190         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
2191
2192         * config/i386/i386.c (initial_ix86_tune_features): Add
2193         X86_TUNE_VECTORIZE_DOUBLE.
2194         (ix86_units_per_simd_word): New.
2195
2196         * config/i386/i386.h (ix86_tune_indices): Add
2197         X86_TUNE_VECTORIZE_DOUBLE.
2198         (TARGET_VECTORIZE_DOUBLE): New.
2199         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
2200
2201 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
2202
2203         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
2204         (new_temp_expr_table): Allocate call_cnt vector.
2205         (free_temp_expr_table): Free it.
2206         (process_replaceable): Add call_cnt parm and set in vector.
2207         (find_replaceable_in_bb): Skip replacement if def/use span a call.
2208         (debug_ter): Dump call_cnt value, remove stderr uses.
2209
2210 2010-09-13  Jan Hubicka  <jh@suse.cz>
2211
2212         * tree.c (build_zero_cst): New.
2213         * tree.h (build_zero_cst): Declare.
2214         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
2215         (get_base_constructor): Break out from ...
2216         (fold_const_aggregate_ref): Here; handle empty constructors.
2217
2218 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2219
2220         * config/arm/arm.md: (define_attr "conds"): Update comment.
2221         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
2222         conds attribute to clob.
2223         (arm_sync_compare_and_swapsi): Likewise.
2224         (arm_sync_compare_and_swap<mode>): Likewise.
2225         (arm_sync_lock_test_and_setsi): Likewise.
2226         (arm_sync_lock_test_and_set<mode>): Likewise.
2227         (arm_sync_new_<sync_optab>si): Likewise.
2228         (arm_sync_new_nandsi): Likewise.
2229         (arm_sync_new_<sync_optab><mode>): Likewise.
2230         (arm_sync_new_nand<mode>): Likewise.
2231         (arm_sync_old_<sync_optab>si): Likewise.
2232         (arm_sync_old_nandsi): Likewise.
2233         (arm_sync_old_<sync_optab><mode>): Likewise.
2234         (arm_sync_old_nand<mode>): Likewise.
2235
2236 2010-09-13  Olivier Hainque  <hainque@adacore.com>
2237
2238         * fwprop.c (forward_propagate_and_simplify): Only attach a
2239         REG_EQUAL note to an insn if the destination is a register.
2240         * gcse.c (try_replace_reg): Likewise.
2241
2242 2010-09-13  Richard Guenther  <rguenther@suse.de>
2243
2244         PR tree-optimization/45611
2245         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
2246         (copy_ref_info): Likewise.
2247
2248 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
2249
2250         PR debug/45604
2251         PR debug/45419
2252         PR debug/45408
2253         * tree-pretty-print.c (dump_generic_node): Disregard top-level
2254         types of MEM_REF pointer types to the same type.
2255
2256 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
2257
2258         PR rtl-optimization/41087
2259         * ifcvt.c (noce_get_condition): Don't allow conditions with
2260         side-effects.
2261
2262 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
2263
2264         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
2265         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
2266         * config/frv/frv.c (frv_register_move_cost): Make static. Change
2267         arguments type to reg_class_t. Add mode argument.
2268         (frv_memory_move_cost): New.
2269         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
2270
2271 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
2272
2273         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
2274         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
2275
2276 2010-09-10  Jan Hubicka  <jh@suse.cz>
2277
2278         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
2279
2280 2010-09-10  Richard Guenther  <rguenther@suse.de>
2281
2282         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
2283         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
2284         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
2285         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
2286         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
2287
2288 2010-09-10  Richard Guenther  <rguenther@suse.de>
2289
2290         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
2291         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
2292         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
2293         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
2294
2295 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
2296
2297         PR middle-end/45634
2298         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
2299         of string folding is of integral type.
2300
2301 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
2302
2303         * doc/invoke.texi (-x): Fix typo.
2304
2305 2010-09-10  Richard Guenther  <rguenther@suse.de>
2306
2307         PR debug/44115
2308         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
2309         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
2310         Output DECL_DEBUG_EXPR.
2311         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
2312         Input DECL_DEBUG_EXPR.
2313
2314 2010-09-10  Richard Guenther  <rguenther@suse.de>
2315
2316         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
2317         (build_index_type): Implement in terms of build_range_type.
2318         (build_range_type): Do not allow NULL_TREE type, improve
2319         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
2320         if we didn't hash.
2321         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
2322         create a distinct copy of the type.
2323
2324 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
2325
2326         * configure: Regenerated.
2327         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
2328
2329 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2330
2331         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
2332         * config/arm/cortex-a9-neon.md: New and partially generated.
2333         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
2334
2335 2010-09-10  Richard Guenther  <rguenther@suse.de>
2336
2337         * tree.h (build_index_2_type): Remove.
2338         * tree.c (build_index_2_type): Remove.
2339
2340 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
2341
2342         PR bootstrap/45630
2343         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
2344         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
2345         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
2346
2347 2010-09-10  Martin Jambor  <mjambor@suse.cz>
2348
2349         PR tree-optimization/44972
2350         * tree-sra.c: Include toplev.h.
2351         (build_ref_for_offset): Entirely reimplemented.
2352         (build_ref_for_model): New function.
2353         (build_user_friendly_ref_for_offset): New function.
2354         (analyze_access_subtree): Removed build_ref_for_offset check.
2355         (propagate_subaccesses_across_link): Likewise.
2356         (create_artificial_child_access): Use
2357         build_user_friendly_ref_for_offset.
2358         (propagate_subaccesses_across_link): Likewise.
2359         (ref_expr_for_all_replacements_p): Removed.
2360         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
2361         (sra_modify_expr): Use build_ref_for_model.
2362         (load_assign_lhs_subreplacements): Likewise.
2363         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
2364         checks for return values of build_ref_for_offset.
2365         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
2366         build_ref_for_offset.
2367         * ipa-prop.h: Include gimple.h
2368         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
2369         (ipa_analyze_indirect_call_uses): Update comment.
2370         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
2371         (IPA_PROP_H): Likewise.
2372
2373 2010-09-10  Martin Jambor  <mjambor@suse.cz>
2374
2375         PR tree-optimization/44972
2376         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
2377         calling build_ref_for_offset.
2378
2379 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2380
2381         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
2382         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
2383         * config/arm/arm-tune.md: Regenerate.
2384         * doc/invoke.texi (ARM Options): Document it.
2385
2386 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
2387
2388         * config/i386/i386.c: Include sched-int.h.
2389         (TARGET_SCHED_DISPATCH): Defined.
2390         (TARGET_SCHED_DISPATCH_DO): Defined.
2391         (DISPATCH_WINDOW_SIZE): Defined.
2392         (MAX_DISPATCH_WINDOWS): Defined.
2393         (MAX_INSN): Defined.
2394         (MAX_IMM): Defined.
2395         (MAX_IMM_SIZE): Defined.
2396         (MAX_IMM_32): Defined.
2397         (MAX_IMM_64): Defined.
2398         (MAX_LOAD): Defined.
2399         (MAX_STORE): Defined.
2400         (BIG): Defined.
2401         (dispatch_group): New.
2402         (num_allowable_groups): New.
2403         (group_name): New.
2404         (sched_insn_info_s): New.
2405         (dispatch_windows_s): New.
2406         (imm_info_s): New.
2407         (dispatch_window_list): New.
2408         (dispatch_window_list1): New.
2409         (get_mem_group): New.
2410         (is_cmp): New.
2411         (dispatch_violation): New.
2412         (is_branch): New.
2413         (is_prefetch): New.
2414         (init_window): New.
2415         (allocate_window): New.
2416         (init_dispatch_sched): New.
2417         (is_end_basic_block): New.
2418         (process_end_window): New.
2419         (allocate_next_window): New.
2420         (find_constant_1): New.
2421         (find_constant): New.
2422         (get_num_immediates): New.
2423         (has_immediate): New.
2424         (get_insn_path): New.
2425         (get_insn_group): New.
2426         (count_num_restricted): New.
2427         (fits_dispatch_window): New.
2428         (add_insn_window): New.
2429         (add_to_dispatch_window): New.
2430         (debug_dispatch_window_file): New.
2431         (debug_dispatch_window): New.
2432         (debug_insn_dispatch_info_file): New.
2433         (debug_ready_dispatch): New.
2434         (do_dispatch): New.
2435         (has_dispatch): New.
2436         * config/i386/i386.h (debug_ready_dispatch): Declared.
2437         (debug_dispatch_window): Declared.
2438         * config/i386/i386.opt (mdispatch-scheduler): New flag.
2439         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
2440         (TARGET_SCHED_DISPATCH_DO): New.
2441         * doc/tm.texi: Regererated.
2442         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
2443         ready_remove_first_dispatch
2444         (schedule_block): Call targetm.sched.dispatch and
2445         targetm.sched.dispatch_do.
2446         (sched_init): Call targetm.sched.dispatch and
2447         targetm.sched.dispatch_do.
2448         (ready_remove_first_dispatch): New.
2449         (number_in_ready): New.
2450         (get_ready_element): New.
2451         * hooks.c (hook_bool_rtx_int_false): New.
2452         (hook_void_rtx_int): New.
2453         * hooks.h (hook_bool_rtx_int_false): Declared.
2454         (hook_void_rtx_int): Declared.
2455         * sched-int.h (IS_DISPATCH_ON): Defined.
2456         (IS_CMP): Defined.
2457         (DISPATCH_VIOLATION): Defined.
2458         (FITS_DISPATCH_WINDOW): Defined.
2459         (DISPATCH_INIT): Defined.
2460         (ADD_TO_DISPATCH_WINDOW): Defined.
2461         (get_ready_element): Declared.
2462         (number_in_ready): Declared.
2463         * target.def (dispatch): Defined.
2464         (dispatch_do): Defined.
2465
2466 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
2467
2468         PR middle-end/45312
2469         * reload1.c (merge_assigned_reloads): Remove.
2470         (reload_as_needed): Don't call it.
2471
2472 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
2473
2474         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
2475         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
2476         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
2477
2478 2010-09-09  Matthias Klose  <doko@ubuntu.com>
2479
2480         PR bootstrap/43847
2481         * configure.ac (--enable-plugin): Enhance for cross builds.
2482         * configure: Regenerate.
2483
2484 2010-09-09  Jan Hubicka  <jh@suse.cz>
2485
2486         PR tree-optimization/45598
2487         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
2488         string folding is of integral type.
2489
2490 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
2491
2492         * configure.ac (gnu_indirect_function): New test.
2493         * configure: Rebuilt.
2494         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
2495         * defaults.h (IFUNC_ASM_TYPE): Provide default.
2496
2497         * doc/extend.texi (Function Attributes): Document ifunc.
2498         * varasm.c (do_assemble_alias): Deal with ifuncs too.
2499
2500 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
2501
2502         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
2503         epilogue instruction move.
2504
2505 2010-09-09  Jan Hubicka  <jh@suse.cz>
2506
2507         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
2508         command line to allow more partitions than input files.
2509
2510 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
2511
2512         PR middle-end/44554
2513         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
2514
2515 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
2516
2517         PR middle-end/40386
2518         * ira.c (pseudo_for_reload_consideration_p): Don't use
2519         flag_ira_share_spill_slots.
2520
2521 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2522
2523         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
2524         point zero operands that fit into a single GPR.
2525         (s390_preferred_reload_class): Ensure we only return general-purpose
2526         register classes.
2527         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
2528         floating-point zero operands into GPRs.
2529         ("*mov<mode>_64"): Likewise.
2530         ("mov<mode>"): Likewise using lhi.
2531
2532 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2533
2534         * config/s390/s390.c (s390_symref_operand_p): Return false for
2535         literal pool references.
2536         (s390_check_qrst_address): Update caller.
2537
2538 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
2539
2540         * config/i386/predicates.md (ext_register_operand): Check that
2541         SUBREG_REG is really a register before looking for REGNO.
2542         (reg_not_xmm0_operand): Handle SUBREGs correctly.
2543         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
2544
2545 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
2546
2547         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
2548         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
2549         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
2550         * print-rtl.c (print_rtx): Likewise.
2551         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
2552         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
2553         for ADDR_EXPR with non-addressable object.
2554         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
2555         (struct dw_val_struct): Add v.val_decl_ref.
2556         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
2557         Handle DW_OP_GNU_implicit_pointer.
2558         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
2559         (get_ref_die_offset_label): New function.
2560         (implicit_ptr_descriptor): New function.
2561         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
2562         (loc_descriptor): Likewise.
2563         (gen_variable_die): Put even definitions into decl_die_table.
2564         (resolve_addr_in_expr): Resolve still unresolved
2565         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
2566         return false.
2567         (dwarf2out_finish): Call output_location_lists after outputting
2568         .debug_info and .debug_abbrev instead of before.
2569
2570 2010-09-09  Roland McGrath  <roland@redhat.com>
2571
2572         * dwarf2out.c (DWARF_REF_SIZE): Define.
2573         (size_of_loc_descr): Use it for DW_OP_call_ref.
2574
2575 2010-09-09  Alan Modra  <amodra@gmail.com>
2576
2577         * doc/invoke.text: Reinstate mcmodel=medium.
2578         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
2579         CMODEL_MEDIUM as default.
2580         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
2581         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
2582         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
2583         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
2584
2585 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2586
2587         PR target/45250
2588         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
2589         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
2590         (builtin_longjmp): Likewise.
2591         (allocate_stack): Use hard_frame_pointer_rtx instead of
2592         frame_pointer_rtx.
2593         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
2594         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
2595         (pa_can_eliminate): Likewise.
2596         (TARGET_INTERNAL_ARG_POINTER): Define.
2597         (TARGET_CAN_ELIMINATE): Define.
2598         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
2599         pointer.
2600         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
2601         (pa_internal_arg_pointer, pa_can_eliminate,
2602         pa_initial_elimination_offset): New.
2603         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
2604         (HARD_FRAME_POINTER_REGNUM): Set to register three.
2605         (INITIAL_FRAME_POINTER_OFFSET): Delete.
2606         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
2607         Define.
2608         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
2609         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
2610         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
2611         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
2612         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
2613         new soft frame pointer.
2614         * config/pa/pa64-regs.h: Likewise.
2615
2616 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
2617
2618         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
2619         numerical constant.
2620         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
2621
2622 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
2623
2624         PR debug/45531
2625         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
2626
2627 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
2628
2629         PR debug/45419
2630         PR debug/45408
2631         * tree-pretty-print.c (dump_generic_node): Disregard top-level
2632         qualifiers in otherwise equal MEM_REF pointer types.
2633         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
2634         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
2635
2636 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2637
2638         PR target/44392
2639         * config/arm/arm.md (bswapsi2): Handle condition correctly
2640         for armv6 and optimize_size.
2641
2642 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2643
2644         PR other/18555
2645         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
2646
2647 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
2648
2649         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
2650         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
2651         ix86_expand_strlen, legitimate_pic_address_disp_p,
2652         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
2653         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
2654         ix86_check_movabs, ix86_secondary_memory_needed): Change function
2655         prototype to bool.
2656         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
2657         return_in_memory_ms_64, ix86_check_movabs,
2658         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
2659         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
2660         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
2661         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
2662         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
2663         ix86_secondary_memory_needed): Change to bool.  Return
2664         "true" and "false" values.
2665         * config/i386/i386.md: Return "true" and "false" values.
2666
2667 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2668
2669         * doc/sourcebuild.texi (Effective-Target Keywords): Document
2670         run_expensive_tests.
2671
2672 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2673
2674         * toplev.c (output_stack_usage): Use lbasename instead of basename.
2675
2676 2010-09-08  Martin Jambor  <mjambor@suse.cz>
2677
2678         PR other/45443
2679         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
2680         at -O3.
2681
2682 2010-09-08  Richard Guenther  <rguenther@suse.de>
2683
2684         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
2685         (visit): Adjust.
2686         (iterative_hash_gimple_type): Likewise.
2687         (gimple_type_hash): Likewise.
2688         (gimple_register_type): Likewise.
2689         (print_gimple_types_stats): Likewise.
2690         (free_gimple_type_tables): Likewise.
2691
2692 2010-09-08  Michael Matz  <matz@suse.de>
2693
2694         PR tree-optimization/43430
2695         * tree-vect-stmts.c (vectorizable_condition): Support multiple
2696         copies for conditional statements if it's not part of a reduction.
2697
2698 2010-09-08  Michael Matz  <matz@suse.de>
2699
2700         PR tree-optimization/33244
2701         * tree-ssa-sink.c (statement_sink_location): Don't sink into
2702         empty loop latches.
2703
2704 2010-09-08  Richard Guenther  <rguenther@suse.de>
2705
2706         PR tree-optimization/45578
2707         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
2708         Be more careful when transfering alignment information to
2709         the new induction variable.
2710         (copy_ref_info): Likewise.
2711
2712 2010-09-08  Richard Guenther  <rguenther@suse.de>
2713
2714         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
2715         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
2716
2717 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
2718
2719         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
2720         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
2721
2722 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
2723
2724         PR doc/45587
2725         * doc/md.texi: Fixed modes on several standard pattern names.
2726
2727 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
2728
2729         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
2730         (ashl<mode>3): ...this.
2731         (loongson_psra<V_suffix>): Rename to...
2732         (ashr<mode>3): ...this.
2733         (loongson_psrl<V_suffix>): Rename to...
2734         (lshr<mode>3): ...this.
2735         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
2736         (CODE_FOR_loongson_psllw): Define.
2737         (CODE_FOR_loongson_psrlh): Define.
2738         (CODE_FOR_loongson_psrlw): Define.
2739         (CODE_FOR_loongson_psrah): Define.
2740         (CODE_FOR_loongson_psraw): Define.
2741
2742 2010-09-07  Richard Henderson  <rth@redhat.com>
2743
2744         * tree-vect-data-refs.c: Include tm_p.h.
2745         * Makefile.in (tree-vect-data-refs.o): Update deps.
2746         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
2747         Move delarations outside #ifdef RTX_CODE.
2748
2749 2010-09-07  Richard Henderson  <rth@redhat.com>
2750
2751         * final.c (rest_of_handle_final): Unconditionally do
2752         output_function_exception_table before assemble_end_function.
2753
2754 2010-09-07  Jan Hubicka  <jh@suse.cz>
2755
2756         * tree-inline.c (tree_inlinable_function_p): Do not test
2757         DECL_REPLACEABLE_P.
2758         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
2759         update_callee_keys, cgraph_decide_inlining): Test function availability.
2760         * cif-code.def (OVERWRITABLE): New code.
2761
2762 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
2763             Jack Howarth  <howarth@bromo.med.uc.edu>
2764
2765         PR target/36502
2766         PR target/42313
2767         PR target/44651
2768         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
2769         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
2770         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
2771         MAX macro.
2772
2773 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
2774
2775         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
2776         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
2777
2778 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
2779
2780         * config.gcc: Don't append t-android for Android targets.
2781
2782         * config/t-android: Removed.
2783
2784 2010-09-07  Richard Henderson  <rth@redhat.com>
2785
2786         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
2787         * doc/tm.texi.in: Add doc marker.
2788         * doc/tm.texi: Rebuild.
2789         * except.c (switch_to_exception_section): Always build.
2790         (output_one_function_exception_table): Move section switch,
2791         personality output, and label output ...
2792         (output_function_exception_table): ... here.  Use the new
2793         personality hook.
2794
2795         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
2796         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
2797         TARGET_ASM_INIT_SECTIONS): New.
2798         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
2799         make static.
2800         (TARGET_ASM_UNWIND_EMIT): Update to match.
2801         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
2802
2803         * config/arm/arm.c (arm_asm_emit_except_personality): New.
2804         (arm_asm_init_sections): New.
2805         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
2806
2807 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2808
2809         * config/arm/arm.md: Remove unused variable.
2810
2811 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
2812
2813         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
2814         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
2815         (m32r_memory_move_cost): New function.
2816
2817 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
2818
2819         * config.gcc: Append t-android for Android targets.
2820
2821         * config/t-android: New.
2822
2823 2010-09-07  Richard Henderson  <rth@redhat.com>
2824
2825         * target.def (unwind_emit_before_insn): New hook.
2826         * doc/tm.texi.in: Add @hook marker for it.
2827         * doc/tm.texi: Rebuild.
2828         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
2829
2830 2010-09-07  Martin Jambor  <mjambor@suse.cz>
2831
2832         PR fortran/43665
2833         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
2834         are any type attributes.
2835
2836 2010-09-07  Jan Hubicka  <jh@suse.cz>
2837
2838         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
2839         array_ref_low_bound in string access folding.
2840
2841 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
2842
2843         PR target/45206
2844         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
2845         eh_return fixup sequence.
2846
2847 2010-09-07  Jan Hubicka  <jh@suse.cz>
2848
2849         * gimple-fold.c (maybe_fold_reference): Verify that operand is
2850         gimple_min_invariant.
2851
2852 2010-09-07  Richard Guenther  <rguenther@suse.de>
2853
2854         PR middle-end/45569
2855         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
2856         nor CONSTRUCTOR can trap.
2857         * tree-complex.c (update_complex_assignment): Update EH info.
2858
2859 2010-09-07  Richard Guenther  <rguenther@suse.de>
2860
2861         PR middle-end/45569
2862         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
2863         * passes.c (execute_function_todo): Do not verify anything if
2864         we saw errors.
2865
2866 2010-09-07  Richard Guenther  <rguenther@suse.de>
2867
2868         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
2869
2870 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
2871
2872         PR target/43137
2873         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
2874         New define_mode_attrs.
2875         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
2876         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
2877         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
2878         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
2879         Remove pool_range attribute.
2880         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
2881         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
2882         pool_range and neg_pool_range attributes.
2883         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
2884         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
2885         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
2886
2887 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
2888
2889         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
2890         check glibc.
2891
2892 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
2893
2894         PR target/22152
2895         * config/i386/mmx.md (*mov<mode>_internal_rex64,
2896         *mov<mode>_internal_avx, *mov<mode>_internal,
2897         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
2898         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
2899
2900 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
2901
2902         * c-typeck.c (do_warn_double_promotion): Remove.
2903         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
2904         Objective-C++ too.
2905
2906 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
2907
2908         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
2909         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
2910         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
2911         argument type to reg_class_t. Change result type to bool.
2912         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2913
2914 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
2915
2916         PR libobjc/19850
2917         * gthr-posix.h (__gthread_objc_thread_detach): Use
2918         _objc_thread_attribs when detaching a thread.
2919         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
2920
2921 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
2922
2923         PR target/45524
2924         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
2925         * configure: Regenerated.
2926
2927 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2928
2929         * combine.c (try_combine): Set subst_low_luid to i0.
2930
2931 2010-09-06  Richard Guenther  <rguenther@suse.de>
2932
2933         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
2934         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
2935         (build_aligned_type): Declare.
2936         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
2937         (check_aligned_type): New function.
2938         (build_aligned_type): Likewise.
2939         * expr.c (expand_assignment): Handle misaligned stores via
2940         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
2941         (expand_expr_real_1): Likewise.
2942         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
2943         * tree-vect-stmts.c (vectorizable_store): Do not build
2944         MISALIGNED_INDIRECT_REF but initialize alignment information.
2945         (vectorizable_load): Likewise.
2946         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
2947         handling.
2948         * cfgexpand.c (expand_debug_expr): Likewise.
2949         * dwarf2out.c (loc_list_from_tree): Likewise.
2950         * fold-const.c (maybe_lvalue_p): Likewise.
2951         (operand_equal_p): Likewise.
2952         (build_fold_addr_expr_with_type_loc): Likewise.
2953         * gimplify.c (gimplify_addr_expr): Likewise.
2954         (gimplify_expr): Likewise.
2955         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
2956         (verify_gimple_assign_single): Likewise.
2957         * tree-dump.c (dequeue_and_dump): Likewise.
2958         (tree_could_trap_p): Likewise.
2959         * tree-predcom.c (ref_at_iteration): Likewise.
2960         * tree-pretty-print.c (dump_generic_node): Likewise.
2961         (op_code_prio): Likewise.
2962         (op_symbol_code): Likewise.
2963         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
2964         * tree-ssa-loop-im.c (for_each_index): Likewise.
2965         (gen_lsm_tmp_name): Likewise.
2966         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
2967         (find_interesting_uses_address): Likewise.
2968         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
2969         * tree-ssa-operands.c (get_expr_operands): Likewise.
2970         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
2971         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
2972         (ao_ref_init_from_vn_reference): Likewise.
2973         * tree.c (staticp): Likewise.
2974         (build1_stat): Likewise.
2975         (reference_alias_ptr_type): Likewise.
2976         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
2977         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
2978         MISALIGNED_INDIRECT_REF handling.
2979
2980 2010-09-06  Richard Guenther  <rguenther@suse.de>
2981
2982         PR tree-optimization/45534
2983         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
2984         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
2985         on the target.
2986         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
2987         valid on the target.
2988
2989 2010-09-06  Andreas Schwab  <schwab@redhat.com>
2990
2991         * configure.ac: Quote argument of AC_MSG_WARN.
2992         * configure: Regenerate.
2993
2994 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
2995
2996         * sel-sched.c (move_cond_jump): Correct arguments to
2997         maybe_tidy_empty_bb.
2998         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
2999
3000 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
3001
3002         PR rtl-optimization/44919
3003         * sel-sched.c (move_cond_jump): Remove assert, check that
3004         the several blocks case can only happen with mutually exclusive
3005         insns instead.  Rewrite the movement code to support moving through
3006         several basic blocks.
3007
3008 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
3009
3010         * config/i386/i386.md (iptrsize): New mode attribute.
3011         (tp_seg): Ditto.
3012         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
3013         mode iterator.
3014         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
3015         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
3016         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
3017         (stack_tls_protect_set_<mode>): Ditto from
3018         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
3019         of thread base pointer load.
3020         (stack_tls_protect_test_<mode>): Ditto from
3021         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
3022         of thread base pointer load.
3023         (stack_protect_set): Rewrite using indirect functions.
3024         (stack_protect_test): Ditto.
3025         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
3026         (ix86_print_operand): Handle '@'.
3027
3028 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
3029
3030         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
3031         MINUS_EXPR.
3032
3033 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
3034
3035         * doc/invoke.texi: Document -Wdouble-promotion.
3036         * c-typeck.c (convert_arguments): Check for implicit conversions
3037         from float to double.
3038         (do_warn_double_promotion): New function.
3039         (build_conditional_expr): Use it.
3040         (build_binary_op): Likewise.
3041
3042 2010-09-05  Richard Guenther  <rguenther@suse.de>
3043
3044         PR tree-optimization/45535
3045         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
3046         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
3047         dereferencing it.
3048         (indirect_refs_may_alias_p): Likewise.
3049
3050 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
3051
3052         * config/sh/sh.c (sh_option_override): Make static.
3053         Adjust comments.  Declare.
3054         (sh_function_value_regno_p): Likewise.
3055         (sh_register_move_cost): Modify the arguments, make static.
3056         Adjust comments.  Declare.
3057         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
3058         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3059         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
3060         REGISTER_MOVE_COST): Delete.
3061         * config/sh/sh-protos.h (sh_override_options): Delete.
3062         (sh_register_move_cost): Delete.
3063         (sh_function_value_regno_p): Delete.
3064
3065 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
3066
3067         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
3068         m32r_function_value_regno_p): New functions.
3069         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3070         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
3071         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
3072         FUNCTION_VALUE_REGNO_P): Remove.
3073
3074 2010-09-04  Jan Hubicka  <jh@suse.cz>
3075
3076         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
3077         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
3078         fold_read_from_constant_string.
3079
3080         * gimple.h (canonicalize_constructor_val): Declare.
3081         * gimple-fold.c (canonicalize_constructor_val): New function.
3082         (get_symbol_constant_value):Use it.
3083         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
3084
3085 2010-09-04  Jan Hubicka  <jh@suse.cz>
3086
3087         * tree-switch-conversion.c (build_one_array): Set constructor to be
3088         static.
3089         * varpool.c (varpool_finalize_decl): Compute const_value_known.
3090
3091 2010-09-04  Richard Guenther  <rguenther@suse.de>
3092
3093         PR bootstrap/45519
3094         * tree-flow.h (force_gimple_operand_1): Declare.
3095         (force_gimple_operand_gsi_1): Likewise.
3096         * gimplify.c (force_gimple_operand_1): New worker taking a
3097         gimple predicate for ...
3098         (force_gimple_operand): ... which now wraps it.
3099         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
3100         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
3101         last change.
3102         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
3103         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
3104         (create_mem_ref): Likewise.
3105
3106 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
3107
3108         * config/i386/predicates.md (sse_reg_operand): New predicate.
3109         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
3110         predicate for operand 1.
3111         (XFmode push splitter): Use fp_register_operand predicate
3112         for operand 1.
3113         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
3114         (SF-DF float_extend push splitter): Add reload_completed insn
3115         predicate.
3116         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
3117         MODEF mode macro.  Add reload_completed insn predicate.
3118
3119 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
3120
3121         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
3122         (struct df_extract_ref): Remove.
3123         (union df_ref_d): Remove extract_ref member.
3124         (df_ref_create): Remove last three arguments.
3125         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
3126         * df-scan.c (df_ref_record): Remove last three arguments, do not
3127         pass them to df_ref_create_structure.
3128         (df_uses_record): Remove first and last three arguments.  Replace
3129         first argument with DF_REF_REGULAR, adjust calls to remove the
3130         width, offset and mode.  Always call recursively on the second
3131         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
3132         (df_ref_create_structure): Remove first argument.
3133         (struct df_scan_problem_data): Remove ref_extract_pool.
3134         (df_scan_free_internal): Do not free it.
3135         (df_scan_alloc): Do not allocate it.
3136         (df_ref_create): Remove last three arguments, do not pass them to
3137         df_ref_create_structure.
3138         (df_free_ref): Remove DF_REF_EXTRACT case.
3139         (df_notes_rescan): Adjust call to df_uses_record.
3140         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
3141         Remove DF_REF_EXTRACT case.
3142         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
3143         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
3144         and SUBREG definitions.
3145         (df_get_conditional_uses): Remove references to width/offset/mode,
3146         adjust call to df_ref_create_structure.
3147         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
3148         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
3149         calls to df_uses_record and df_ref_record.
3150         * fwprop.c (update_df): Remove references to width/offset/mode,
3151         adjust call to df_ref_create.
3152
3153 2010-09-03  Jan Hubicka  <jh@suse.cz>
3154
3155         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
3156         (build_cdtor_fns): Update use of build_cdtor.
3157
3158 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
3159
3160         * doc/options.texi (SeparateAlias): Document.
3161         * opt-functions.awk (switch_flags): Handle SeparateAlias.
3162         * opth-gen.awk: Generate enumeration names for options marked
3163         SeparateAlias, but not for those marked Ignore.
3164         * opts-common.c (generate_canonical_option): Don't output separate
3165         argument for options marked CL_SEPARATE_ALIAS.
3166         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
3167         * opts.h (CL_SEPARATE_ALIAS): New.
3168         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
3169         CL_COMMON): Adjust definitions.
3170         * config/i386/darwin.opt, config/mips/sde.opt: New.
3171         * common.opt (fdump-final-insns): New.
3172         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
3173         i386/darwin.opt.
3174         (mips*-sde-elf*): Add mips/sde.opt.
3175         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
3176         -mno-data-in-code and -mcode-xonly here.
3177         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
3178         * gcc.c (option_map): Add "j" to --dump entry.
3179         (translate_options): Don't translate -d to -foutput-class-dir= here.
3180
3181 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
3182
3183         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
3184         DR_IS_WRITE.
3185         (compute_all_dependences): Same.
3186         (create_rdg_edge_for_ddr): Same.
3187         * tree-data-ref.h (DR_IS_WRITE): New.
3188         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
3189         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
3190         (write_memrefs_written_at_least_once): Same.
3191         * tree-predcom.c (suitable_component_p): Same.
3192         (determine_roots_comp): Same.
3193         (execute_load_motion): Same.
3194         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
3195         (vect_enhance_data_refs_alignment): Same.
3196         (vect_analyze_group_access): Same.
3197
3198 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
3199
3200         PR testsuite/42843
3201         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
3202         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
3203
3204 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
3205
3206         * dwarf2out.c (file scope): Remove #if0'd code.
3207         (gen_subprogram_die): Same.
3208
3209 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
3210
3211         PR middle-end/45484
3212         * dwarf2out.c (flush_queued_reg_saves): Rename to...
3213         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
3214         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
3215         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
3216         * config/i386/i386.c (output_set_got): Call it.
3217
3218 2010-09-03  Michael Matz  <matz@suse.de>
3219
3220         PR middle-end/45415
3221         * tree-sra.c (sra_modify_assign): If we modify the statement,
3222         say so.
3223
3224         * tree-ssa.c (verify_ssa): Check number of operands and links
3225         per statement to agree.
3226
3227 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
3228             Iain Sandoe  <iains@gcc.gnu.org>
3229
3230         PR target/45476
3231         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
3232         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
3233         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
3234
3235 2010-09-03  Richard Guenther  <rguenther@suse.de>
3236
3237         * lto-streamer-out.c (output_function): Output function
3238         start and end loci.
3239         * lto-streamer-in.c (input_function): Input function start
3240         and end loci.
3241
3242 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3243
3244         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
3245         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
3246         * configure: Regenerate.
3247         * aclocal.m4: Regenerate.
3248
3249 2010-09-03  Jan Hubicka  <jh@suse.cz>
3250
3251         PR lto/44812
3252         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
3253         on functions/variables in other partition.
3254
3255 2010-09-03  Jan Hubicka  <jh@suse.cz>
3256
3257         * cgraph.h (struct varpool_node): Add const_value_known.
3258         (varpool_decide_const_value_known): Declare.
3259         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
3260         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
3261         (input_varpool_node): Restore const_value_known.
3262         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
3263         initializer folding.
3264         * ipa.c (ipa_discover_readonly_nonaddressable_var,
3265         function_and_variable_visibility): Compute const_value_known.
3266         * gimple-fold.c (get_symbol_constant_value): Use varpool for
3267         initializer folding.
3268         * varpool.c (varpool_decide_const_value_known): New function.
3269
3270 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
3271
3272         * config/i386/i386.md: Remove empty preparation statements
3273         from splitters.
3274
3275 2010-09-03  Jan Hubicka  <jh@suse.cz>
3276
3277         * passes.c (rest_of_decl_compilation): Do not add local vars into
3278         varpool.
3279         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
3280         static or extern vars are in varpool.
3281         (varpool_finalize_decl): Sanity check that only static vars are
3282         finalized.
3283
3284 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
3285
3286         PR debug/45500
3287         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
3288         not just generic vectors with BLKmode.
3289
3290 2010-09-03  Richard Guenther  <rguenther@suse.de>
3291
3292         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
3293         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
3294         * tree.h (TMR_SYMBOL): Remove.
3295         (TMR_BASE, TMR_OFFSET): Adjust.
3296         (TMR_INDEX2): New.
3297         * alias.c (ao_ref_from_mem): Use TMR_BASE.
3298         * builtins.c (get_object_alignment): Merge TMR_BASE and
3299         TMR_SYMBOL handling.
3300         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
3301         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
3302         handling.  Also allow TARGET_MEM_REF as base address.
3303         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
3304         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
3305         base.  Gimplify TMR_INDEX2.
3306         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
3307         * tree-dfa.c (get_ref_base_and_extent): Likewise.
3308         (get_addr_base_and_unit_offset): Likewise.
3309         * tree-eh.c (tree_could_trap_p): Likewise.
3310         * tree-pretty-print.c (dump_generic_node): Likewise.
3311         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
3312         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
3313         base to index2.
3314         (get_address_description): Reconstruct addres description
3315         from merged TMR_BASE and TMR_INDEX2.
3316         (maybe_fold_tmr): Fold propagated addresses.
3317         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
3318         MEM_REF and TARGET_MEM_REF paths.
3319         (indirect_refs_may_alias_p): Likewise.
3320         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
3321         instead of TMR_SYMBOL.
3322         * tree-ssa-operands.c (get_tmr_operands): Simplify.
3323         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
3324         according to changes ...
3325         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
3326         Split TARGET_MEM_REF into two fields plus the base.
3327         * tree.c (mem_ref_offset): Simplify.
3328         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
3329         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
3330         Strip NOPs when folding MEM_REF addresses.
3331         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
3332         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
3333         (fold_gimple_assign): ... not here.
3334
3335 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
3336
3337         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
3338         * config/mips/mips.c (mips_shift_truncation_mask): New function.
3339         (TARGET_SHIFT_TRUNCATION_MASK): Define.
3340
3341 2010-09-02  Richard Henderson  <rth@redhat.com>
3342
3343         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
3344         instead of readelf in the test.
3345         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
3346         in the .debug_frame section for coff targets.
3347         * configure: Rebuild.
3348
3349 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
3350
3351         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
3352         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
3353         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3354         (m32c_class_likely_spilled_p): Make static. Change argument type to
3355         reg_class_t. Change result type to bool.
3356
3357 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
3358
3359         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
3360         to convert (double)(long) into a single FRIZ instruction or not
3361         when -ffast-math is used.
3362
3363         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
3364         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
3365         or FRIZ instruction if -ffast-math.
3366         * config/rs6000/rs6000.md (friz): Ditto.
3367
3368         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
3369
3370 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
3371
3372         * opth-gen.awk (quote, comma): Remove unused variables.
3373
3374 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
3375
3376         * arm.c (arm_override_options): Correct fall-back code to use
3377         SUBTARGET_CPU_DEFAULT.
3378
3379 2010-09-02  Julian Brown  <julian@codesourcery.com>
3380
3381         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
3382         unspecs.
3383         (vcond<mode>, vcondu<mode>): New expanders.
3384         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
3385         comparisons with zero.
3386         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
3387         * config/arm/constraints.md (Dz): New constraint.
3388
3389 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
3390
3391         * target.def (class_likely_spilled_p): New hook.
3392         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
3393         * doc/tm.texi: Regenerate.
3394         * targhooks.c (default_class_likely_spilled_p): New function.
3395         * targhooks.h (default_class_likely_spilled_p): Declare.
3396         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
3397         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
3398         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
3399         Use fixed_reg_set instead of fixed_regs.
3400         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
3401         * calls.c (avoid_likely_spilled_reg): Ditto.
3402         * ira-conflicts.c (ira_build_conflicts): Ditto.
3403         * ira.c (update_equiv_regs): Ditto.
3404         * mode-switching.c (create_pre_exit): Ditto.
3405         * regmove.c (find_matches): Ditto.
3406         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
3407         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
3408         (small_register_class_p): New inline function.
3409         (push_secondary_reload, find_reusable_reload, find_reloads): Use
3410         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
3411
3412         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
3413         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
3414         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3415
3416 2010-09-02  Richard Guenther  <rguenther@suse.de>
3417
3418         PR tree-optimization/44937
3419         PR tree-optimization/45412
3420         * ipa-split.c (split_function): Properly remove PHI nodes.
3421
3422 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
3423
3424         * opts.h (struct cl_option): Add warn_message field.
3425         (struct cl_decoded_option): Add warn_message field.
3426         * doc/options.texi (Ignore, Warn): Document.
3427         * opt-functions.awk (needs_state_p): Don't consider aliases or
3428         ignored options to need state saved.
3429         * optc-gen.awk: Handle Warn and Ignore.
3430         * opth-gen.awk: Output OPT_SPECIAL_ignore.
3431         * opts-common.c (decode_cmdline_option): Set warn_message field.
3432         Handle ignored options.
3433         (decode_cmdline_options_to_array, generate_option,
3434         generate_option_input_file): Set warn_message field.
3435         (read_cmdline_option): Generate warnings from warn_message field.
3436         Handle ignored options.
3437         * common.opt (Wunreachable-code, fargument-alias,
3438         fargument-noalias, fargument-noalias-global,
3439         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
3440         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
3441         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
3442         ftree-salias): Mark Ignore.
3443         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
3444         -mintel-syntax and -mno-intel-syntax here.
3445         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
3446         using Warn.
3447         * opts.c (common_handle_option): Don't handle options marked as
3448         ignored.
3449         (enable_warning_as_error): Handle ignored options.
3450
3451 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
3452
3453         PR driver/44076
3454         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
3455         alias_target fields.
3456         * opt-functions.awk (opt_sanitized_name): Don't handle
3457         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
3458         * optc-gen.awk: Generate alias fields.
3459         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
3460         Don't generate such constants for aliases.
3461         * opts-common.c (generate_canonical_option): New.
3462         (decode_cmdline_option): Handle aliases.  Use
3463         generate_canonical_option for known options instead of copying the
3464         input option text.
3465         * doc/options.texi (Alias): Document.
3466         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
3467         fstack-check, specs): Mark as aliases.
3468         * gcc.c (driver_handle_option): Canonicalize -L options to joined
3469         arguments.
3470         (driver_handle_option): Don't handle OPT_specs.
3471         * opts.c (common_handle_option): Don't handle options marked as
3472         aliases.
3473         (enable_warning_as_error): Handle aliases.
3474         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
3475         OPT_Wlarger_than_eq.
3476         * tree-optimize.c (tree_rest_of_compilation): Use
3477         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
3478
3479 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
3480
3481         * config/i386/i386.md (nonmemory_operand): New mode attribute.
3482         (push memory peephole2): Macroize peepholes using SWI mode iterator.
3483         (move immediate to memory peephole2): Macroize peepholes using
3484         SWI124 mode iterator.
3485         (non-pairable NOT peephole2): Macroize peepholes using SWI124
3486         mode iterator.
3487         (simple lea add peephole2): Macroize peepholes using SWI48
3488         mode iterator.
3489         (simple lea mult peephole2): Ditto.
3490         (imul by 3,5,9 to lea peephole2): Ditto.
3491         (mov $-1, reg peephole2): Macroize peepholes using SWI248
3492         mode iterator.
3493         (imul $32bit_imm,mem,reg peephole2): Ditto.
3494         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
3495
3496 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
3497
3498         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
3499
3500 2010-09-02  Olivier Hainque  <hainque@adacore.com>
3501
3502         PR middle-end/44763
3503         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
3504         (allocno_priority_compare_func): Use it instead of a straight
3505         difference computation over priorities.
3506
3507 2010-09-02  Andi Kleen  <ak@linux.intel.com>
3508
3509         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
3510
3511 2010-09-02  Ira Rosen  <irar@il.ibm.com>
3512
3513         * tree-vectorizer.h (get_later_stmt): New function.
3514         (vect_analyze_data_ref_dependences): Add argument.
3515         * tree-vect-loop.c (vect_analyze_loop): Update call to
3516         vect_analyze_data_ref_dependences.
3517         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
3518         New function.
3519         (vect_analyze_data_ref_dependence): Add argument for basic block
3520         dependencies. Check dependencies in basic block vectorization.
3521         (vect_analyze_data_ref_dependences): Add argument and update call to
3522         vect_analyze_data_ref_dependences.
3523         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
3524         (vect_bb_vectorizable_with_dependencies): New.
3525         (vect_slp_analyze_bb): Check dependencies in basic block.
3526         (vect_schedule_slp_instance): Insert stores before the last store in
3527         SLP instance.
3528
3529 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
3530
3531         PR target/45476
3532         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
3533         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
3534
3535 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
3536
3537         PR middle-end/45458
3538         * bb-reorder.c (add_labels_and_missing_jumps): Treat
3539         bbs ending with throwing insns like blocks ending with a call.
3540         (fix_up_fall_thru_edges): Likewise.
3541
3542 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
3543
3544         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
3545         (m32c_function_arg_advance): Delete.
3546         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3547         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
3548         comments.  Take a const_tree and a bool.  Declare.
3549         (m32c_function_arg_advance): Likewise.
3550         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3551
3552 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
3553
3554         PR target/45476
3555         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
3556         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
3557         * config/i386/mingw32.h: ... here.
3558
3559 2010-09-01  Andi Kleen  <ak@linux.intel.com>
3560
3561         PR lto/45475
3562         * lto-streamer-in.c (lto_input_ts_target_option): Add.
3563         (lto_input_tree_pointers): Call lto_input_ts_target_option.
3564         * lto-streamer-out (lto_output_ts_target_option): Add.
3565         (lto_output_tree_pointers): Call lto_output_ts_target_option.
3566
3567 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
3568
3569         PR/target 45452
3570         * config/i386/cygwin.h: Change order of specified import libraries.
3571         * config/i386/mingw32.h: Likewise.
3572         * config/i386/t-cygwin: Likewise.
3573         * config/i386/t-mingw32: Likewise.
3574         * config/i386/t-mingw-w32: Likewise.
3575         * config/i386/t-mingw-w64: Likewise.
3576
3577 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3578
3579         * config/arm/neon-schedgen.ml (core): New type.
3580         (allCores): List of supported cores.
3581         (availability_table): Add supported cores.
3582         (collate_bypasses): Accept core as a parameter.
3583         (worst_case_latencies_and_bypasses): Accept core as a parameter.
3584         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
3585         and coreStr to get tune attribute and prefix for functional units.
3586         (emit_bypasses): Accept core name and use it.
3587         (calculate_per_core_availability_table): New.
3588         (filter_core): New.
3589         (calculate_core_availability_table): New.
3590         (main): Use calculate_core_availablity_table.
3591         * config/arm/cortex-a8-neon.md: Update copyright year.
3592         Regenerated from ml file and merged in.
3593         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
3594         cortex_a8_neon_mrc.
3595
3596 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
3597
3598         * Makefile.in (tree-switch-conversion.o): Update dependencies.
3599
3600 2010-09-01  Richard Guenther  <rguenther@suse.de>
3601
3602         * alias.c (ao_ref_from_mem): Adjust.
3603         * builtins.c (get_object_alignment): Likewise.
3604         * cfgexpand.c (expand_debug_expr): Likewise.
3605         * gimple.c (get_base_address): Likewise.
3606         * tree-dfa.c (get_ref_base_and_extent): Likewise.
3607         (get_addr_base_and_unit_offset): Likewise.  Fix for
3608         both TMR_SYMBOL and TMR_BASE being set.
3609         * tree-eh.c (tree_could_trap_p): Likewise.
3610         * gimplify.c (gimplify_expr): Do not attempt to gimplify
3611         TMR_SYMBOL.  Always gimplify TMR_BASE.
3612         * tree-cfg.c (verify_types_in_gimple_reference): Verify
3613         TMR_BASE if there is a TMR_SYMBOL.
3614         * tree-pretty-print.c (dump_generic_node): Adjust.
3615         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
3616         (tree_mem_ref_addr): Likewise.
3617         (create_mem_ref_raw): Likewise.
3618         (move_fixed_address_to_symbol): Likewise.
3619         (create_mem_ref): Likewise.
3620         (dump_mem_address): Likewise.
3621         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
3622         Fix for both TMR_SYMBOL and TMR_BASE being set.
3623         (indirect_refs_may_alias_p): Likewise.
3624         * tree-ssa-operands.c (get_tmr_operands): Adjust.
3625         * tree.def (TARGET_MEM_REF): Adjust documentation.
3626
3627 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
3628
3629         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
3630         Rename from X86_TUNE_ADD_ESP_4.
3631         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
3632         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
3633         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
3634         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
3635         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
3636         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
3637         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
3638         * config/i386/i386.c (initial_ix86_tune_features)
3639         <X86_TUNE_SINGLE_POP>: Invert members.
3640         <X86_TUNE_DOUBLE_POP>: Ditto.
3641         <X86_TUNE_SINGLE_PUSH>: Ditto.
3642         <X86_TUNE_DOUBLE_PUSH>: Ditto.
3643         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
3644         No longer exported.
3645         (push peephole2 patterns): Macroize peepholes using P mode iterator.
3646         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
3647         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
3648         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
3649
3650 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
3651
3652         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
3653         a volatile LHS if the constructor has only one element.
3654
3655 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
3656
3657         PR bootstrap/45321
3658         * tree.c (stdarg_p): Make fntype parameter const.
3659         * tree.h (stdarg_p): Likewise.
3660         (function_args_iterator): Remove unused fntype field.
3661         (function_args_iter_init): Do not initialize fntype
3662         field.  Make fntype parameter const.
3663
3664 2010-09-01  Richard Guenther  <rguenther@suse.de>
3665
3666         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
3667         estimate.
3668         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
3669         (execute_vrp): Compute number of iteration estimates.
3670         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
3671         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
3672         * tree-data-ref.c (estimated_loop_iterations): Adjust.
3673         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
3674         Infer loop bounds from undefined behavior based on a new parameter.
3675         (estimate_numbers_of_iterations): Likewise.
3676         (scev_probably_wraps_p): Adjust.
3677         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
3678
3679 2010-09-01  Nick Clifton  <nickc@redhat.com>
3680
3681         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
3682         where appropriate.
3683         (xstormy16_legitimate_address_p): Use true and false instead of 1
3684         and 0.
3685         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
3686         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
3687         magic constant 2.
3688         (xstormy16_expand_call): Fix comment at start of function.
3689
3690 2010-09-01  Nick Clifton  <nickc@redhat.com>
3691
3692         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
3693         when pushing accumulator register.
3694         (rx_get_stack_layout): Always save call clobbered registers inside
3695         interrupt handlers.
3696         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
3697
3698 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
3699
3700         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
3701         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
3702
3703         * libgcc-std.ver (GCC_4.6.0): Define version.
3704
3705 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
3706
3707         * tree-nested.c (convert_all_function_calls): Iterate until after the
3708         sum of static chains in the nest doesn't change.
3709
3710 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
3711
3712         * config/m32c/m32c.c (classes_intersect): Remove.
3713         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
3714         reg_classes_intersect_p instead of classes_intersect.
3715         (class_can_hold_mode): Change arguments type from enum reg_class to
3716         reg_class_t.  Use reg_class_contents instead of class_contents.
3717         (m32c_register_move_cost): Make static. Change arguments type from
3718         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
3719         classes_intersect. Use reg_class_contents instead of class_contents.
3720         (m32c_memory_move_cost): Make static. Change arguments type from
3721         enum reg_class to reg_class_t.
3722         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
3723         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
3724         * config/m32c/m32c-protos.h (m32c_register_move_cost,
3725         m32c_memory_move_cost): Remove.
3726
3727 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
3728
3729         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
3730         (arm_function_arg): Delete.
3731         (arm_needs_doubleword_align): Take a const_tree.
3732         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3733         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
3734         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
3735         (arm_function_arg): Make static.  Take a const_tree and a bool.
3736         (arm_function_arg_advance): Likewise.
3737         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3738
3739 2010-08-31  Andi Kleen  <ak@linux.intel.com>
3740
3741         * common.opt (fwhopr=): Update for -fwhopr=jobserver
3742         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
3743         * lto-wrapper.c (run_gcc): Add jobserver mode.
3744         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
3745         argument.
3746
3747 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
3748
3749         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
3750         (popsi1): Ditto.
3751         (*popdi1_epilogue): Ditto.
3752         (*popsi1_epilogue): Ditto.
3753         (popsi, popdi peephole2 patterns): Update peepholes for changed
3754         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
3755
3756         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
3757         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
3758
3759         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
3760         (override_options): Do not initialize removed ix86_gen_pop1.
3761         (gen_pop): New static function.
3762         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
3763         (release_scratch_register_on_entry): Ditto.
3764         (ix86_restore_reg_using_pop): Ditto.
3765         (ix86_expand_epilogue): Ditto.
3766
3767 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
3768
3769         PR middle-end/45461
3770         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
3771
3772 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
3773
3774         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
3775         semicolons.
3776
3777 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3778
3779         * doc/extend.texi: Fix documentation of the return value of
3780         __builtin_choose_expr.
3781
3782 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
3783
3784         * config/v850/v850-protos.h (function_arg): Delete.
3785         * config/v850/v850.h (FUNCTION_ARG): Delete.
3786         (FUNCTION_ARG_ADVANCE): Move code to...
3787         * config/v850/v850.c (v850_function_arg_advance): ...here.
3788         (v850_function_arg): Make static.  Take a const_tree and a bool.
3789         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3790
3791 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
3792
3793         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
3794         these...
3795         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
3796         ...and these...
3797         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
3798         ..to here..
3799         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
3800         ...and here.
3801         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3802
3803 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
3804
3805         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
3806         Delete.
3807         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3808         * config/rx/rx.c (rx_function_arg_size): Make static.
3809         (rx_function_arg): Likewise.
3810         (rx_function_arg_advance): New function.
3811         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3812
3813 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
3814
3815         * config/arm/arm.c (arm_override_options): Remove superfluous test.
3816         Fix indentation.
3817
3818 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
3819
3820         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
3821         (dwarf2out_decl) <CONST_DECL>: Likewise.
3822
3823 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
3824
3825         Stack usage support
3826         * common.opt (-fstack-usage): New option.
3827         * doc/invoke.texi (Debugging options): Document it.
3828         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
3829         allocate_dynamic_stack_space.
3830         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
3831         and propagate it to allocate_dynamic_stack_space.
3832         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
3833         * calls.c (initialize_argument_information): Pass TRUE as 4th
3834         argument to allocate_dynamic_stack_space.
3835         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
3836         to 1 when pushing a variable-sized argument onto the stack.  Pass
3837         TRUE as 4th argument to allocate_dynamic_stack_space.
3838         Update current_function_pushed_stack_size.
3839         (emit_library_call_value_1): Likewise.
3840         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
3841         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
3842         attempt to find an upper bound.  Remove redundant code for the
3843         SETJMP_VIA_SAVE_AREA case.
3844         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
3845         * function.h (struct stack_usage): New structure.
3846         (current_function_static_stack_size): New macro.
3847         (current_function_dynamic_stack_size): Likewise.
3848         (current_function_pushed_stack_size): Likewise.
3849         (current_function_dynamic_alloc_count): Likewise.
3850         (current_function_has_unbounded_dynamic_stack_size): Likewise.
3851         (current_function_allocates_dynamic_stack_space): Likewise.
3852         (struct function): Add new field 'su'.
3853         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
3854         add the value of the dynamic offset to the dynamic stack usage.
3855         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
3856         for variable-sized objects.
3857         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
3858         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
3859         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
3860         BUILT_IN_ALLOCA for variable-sized objects.
3861         * output.h (output_stack_usage): Declare.
3862         * toplev.c (stack_usage_file): New file pointer.
3863         (output_stack_usage): New function.
3864         (open_auxiliary_file): Likewise.
3865         (lang_dependent_init): Open file if flag_stack_usage is set.
3866         (finalize): Close file if stack_usage_file is not null.
3867         * tree.h (ALLOCA_FOR_VAR_P): New macro.
3868         * config/alpha/alpha.c (compute_frame_size): New function.
3869         (alpha_expand_prologue): Use it.
3870         (alpha_start_function): Likewise.
3871         (alpha_expand_epilogue): Likewise.  Set stack usage info.
3872         * config/i386/i386.c (ix86_expand_prologue): Likewise.
3873         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
3874         * config/mips/mips.c (mips_expand_prologue): Likewise.
3875         * config/pa/pa.c (hppa_expand_prologue): Likewise.
3876         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
3877         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
3878
3879 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
3880
3881         PR tree-optimization/45427
3882         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
3883         Handle the case that the exit is never taken correctly.
3884         (number_of_iterations_ne): Pass exit_must_be_taken to
3885         number_of_iterations_ne_max.
3886
3887 2010-08-30  Catherine Moore  <clm@codesourcery.com>
3888
3889         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
3890         Infer -mdspr2 for the the 74K.
3891
3892 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
3893
3894         PR debug/45419
3895         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
3896
3897         PR middle-end/45423
3898         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
3899         and TRUTH_{AND,OR,XOR}_EXPR.
3900         * c-parser.c (c_parser_omp_atomic): Handle boolean
3901         {PRE,POST}_{INC,DEC}REMENT.
3902
3903 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
3904
3905         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
3906         (function_arg): Delete.
3907         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3908         (FUNCTION_INCOMING_ARG): Delete.
3909         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
3910         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
3911         and a bool.
3912         (function_arg): Rename to...
3913         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
3914         a bool.
3915         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
3916         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3917         (TARGET_FUNCTION_INCOMING_ARG): Define.
3918
3919 2010-08-30  Richard Guenther  <rguenther@suse.de>
3920
3921         PR tree-optimization/21602
3922         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
3923         using points-to information.
3924
3925 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
3926
3927         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
3928
3929 2010-08-30  Richard Guenther  <rguenther@suse.de>
3930
3931         PR tree-optimization/45449
3932         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
3933         variables.
3934
3935 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
3936
3937         * opts.h (CL_ERR_NEGATIVE): Define.
3938         * opts.c (unknown_option_callback): Don't postpone warnings for
3939         options marked with CL_ERR_NEGATIVE.
3940         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
3941         for negative versions of CL_REJECT_NEGATIVE options.
3942
3943 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
3944
3945         * config/i386/i386.md (zero_extendsidi2_1): Rename from
3946         zero_extendsidi2_32.
3947         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
3948         using SWI12 mode iterator.
3949         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
3950         to define_insn_and_split pattern.
3951         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
3952         using SWI24 mode iterator.
3953         (*zero_extendqi<mode>2_and): Macroize insn from
3954         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
3955         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
3956         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
3957         SWI24 mode iterator.
3958         (*zero_extendqi<mode>2_movzbl): Ditto from
3959         *zero_extendqi{hi,si}2_movzbl.
3960         (extendsidi2_1): Rename from extendsidi2_32.
3961         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
3962         SWI12 mode iterator.
3963
3964 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
3965
3966         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
3967         general purpose registers.
3968         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
3969         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
3970         with general purpose registers and memory operands.  Add associated
3971         CCImode post-reload splitter.
3972         * config/ia64/div.md: Change BImode to CCImode throughout.
3973
3974 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
3975
3976         * config/ia64/ia64.md (cstorebi4): Fix thinko.
3977
3978 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
3979
3980         * config/picochip/picochip.c (reorder_var_tracking_notes): This
3981         function was dropping debug insns which caused PR45299.
3982
3983 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
3984
3985         * config/i386/sse.md (extsuffix): New code attribute.
3986         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
3987         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
3988         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
3989         and sse4_1_zero_extendv4qiv4si2.
3990         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
3991         and sse4_1_zero_extendv2qiv2di2.
3992         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
3993   &nbs