OSDN Git Service

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