OSDN Git Service

* gcc.c: Include "vec.h".
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
2
3         * gcc.c: Include "vec.h".
4         (argbuf): Make into a VEC.
5         (argbuf_length, argbuf_index): Remove.
6         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
7         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
8         compare_debug_dump_opt_spec_function: Use VEC interfaces on
9         argbuf.
10         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
11         (gcc.o): Depend on $(VEC_H).
12
13 2010-11-15  Richard Henderson  <rth@redhat.com>
14
15         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
16         via FMA if unsafe math.
17         (insert_var_expansion_initialization): Handle FMA.
18         (combine_var_copies_in_loop_exit): Likewise.
19
20 2010-11-15  Richard Henderson  <rth@redhat.com>
21
22         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
23         * config/ia64/ia64.opt: Remove mfused-madd.
24         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
25         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
26         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
27         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
28         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
29         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
30         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
31         (fmav2sf4): Rename from fpma; use FMA code.
32         (fmsv2sf4): Rename from fpms; use FMA code.
33         (fnmav2sf4): Rename from *fpnma; use FMA code.
34         * config/ia64/ia64.md (MODE_SDF): New iterator.
35         (suffix): New mode attribute.
36         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
37         (fmssf4): Rename from *fmssf4.
38         (fnmasf4): Rename from *nfmasf4.
39         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
40         (*nmadddf4, *nmadddf4_truncsf): Remove.
41         (fmsdf4): Rename from *fmsdf4.
42         (fnmadf4): Rename from *nfmadf4.
43         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
44         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
45         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
46         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
47         (fmsxf4): Rename from *fmsxf4.
48         (fnmaxf4): Rename from *nfmaxf4.
49         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
50         (*fnmaxf_trunc_<MODE_SDF>): New.
51
52 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
53
54         PR tree-optimization/46461
55         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
56         a gimple val.
57
58 2010-11-15  Ian Lance Taylor  <iant@google.com>
59
60         * godump.c: New file.
61         * common.opt (fdump-go-spec=): New option.
62         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
63         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
64         (TYPE_SYMTAB_IS_DIE): Define.
65         (struct tree_type): Change GTY for symtab field to use
66         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
67         to pick the union field.
68         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
69         (dump_go_spec_init): Declare.
70         * toplev.c (process_options): Handle flag_dump_go_spec.
71         * debug.c: Include "tree.h".
72         (do_nothing_debug_hooks): Set tree_type_symtab_field.
73         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
74         * dbxout.c (dbx_debug_hooks): Likewise.
75         (xcoff_debug_hooks): Likewise.
76         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
77         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
78         SDB_DEBUGGING_INFO is not defined.
79         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
80         (Overall Options): Document -fdump-go-spec.
81         * Makefile.in (OBJS-common): Add godump.o.
82         (debug.o): Add dependency on $(TREE_H).
83         (godump.o): New target.
84         (GTFILES): Add $(srcdir)/godump.c.
85
86 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
87
88         PR debug/46095
89         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
90         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
91         style < 0, add REG_FRAME_RELATED_EXPR.
92
93         PR debug/46387
94         * rtl.h (vt_equate_reg_base_value): New prototype.
95         * alias.c (vt_equate_reg_base_value): New function.
96         * var-tracking.c (vt_init_cfa_base): Use it.
97
98 2010-11-15  Jan Hubicka  <jh@suse.cz>
99             Diego Novillo  <dnovillo@google.com>
100
101         PR lto/41528
102         * doc/lto.texi: Add.
103         * doc/gccint.texi: Add reference to lto.texi.
104         * doc/invoke.texi: Update user documentation for LTO.
105         Move internal flags to lto.texi
106
107 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
108
109         * c-typeck.c (build_unary_op): Use
110         objc_build_incr_expr_for_property_ref to build the pre/post
111         increment/decrement of an Objective-C property ref, and skip the
112         lvalue_or_else check in that case.
113
114 2010-11-15  Martin Jambor  <mjambor@suse.cz>
115
116         PR tree-optimization/46349
117         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
118         (contains_vce_or_bfcref_p): Likewise.
119         (sra_modify_assign): Use them.
120
121 2010-11-15  Richard Guenther  <rguenther@suse.de>
122
123         PR tree-optimization/46467
124         * tree-ssa-structalias.c (do_structure_copy): Properly treat
125         variables without subvars.
126
127 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
128
129         * config/picochip/picochip.c (file header): Picochip name change.
130         * config/picochip/picochip.md (file header): Likewise.
131         * config/picochip/predicates.md (file header): Likewise.
132         * config/picochip/dfa_space.md (file header): Likewise.
133         * config/picochip/dfa_speed.md (file header): Likewise.
134         * config/picochip/picochip.h(file header): Likewise.
135         * config/picochip/constraints.md (file header): Likewise.
136         * config/picochip/picochip-protos.h (file header): Likewise.
137         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
138         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
139         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
140         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
141         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
142         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
143         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
144         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
145         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
146         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
147         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
148         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
149         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
150         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
151
152 2010-11-15  Richard Guenther  <rguenther@suse.de>
153
154         PR bootstrap/46474
155         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
156
157 2010-11-15  Nick Clifton  <nickc@redhat.com>
158
159         * config/stormy16/stormy16.c (direct_return): Do not generate a
160         direct return for interrupt handlers.
161
162 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
163
164         * Makefile.in (tm.texi): Replace with rule for:
165         ($(srcdir)/doc/tm.texi).
166         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
167         $(srcdir)/doc/tm.texi .
168         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
169         tm.texi .
170
171         PR target/46427
172         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
173
174         PR bootstrap/45444
175         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
176         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
177
178         PR target/46432
179         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
180
181 2010-11-15  Richard Guenther  <rguenther@suse.de>
182
183         PR lto/44150
184         * lto-opts.c (lto_write_options): Write -fexceptions even if
185         not set by the user.
186
187 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
188
189         PR c/46462
190         * c-decl.c (declspecs_add_type): Make variables with error types
191         integers.
192         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
193         do not start a declaration before an Objective-C foreach.
194         (c_parser_declaration_or_fndef): Improve recovery after unknown
195         type name.
196         (c_parser_for_statement): Hoist entrance of "foreach context"
197         before ifs, add corresponding reset where it was missing.  Do
198         not set objc_could_be_foreach_context for C.
199
200 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
201
202         PR tree-optimization/45722
203         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
204         this is a reference to a component.
205         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
206         (ipa_note_param_call): Adjust comment.
207
208 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
209
210         * config/mips/mips.c (machine_function): Remove
211         initialized_mips16_gp_pseudo_p.
212         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
213         detect whether a pseudo has already been created.  Unconditionally
214         create a new one if not.
215         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
216         expanding to rtl.  Create a new pseudo otherwise, if allowed.
217
218 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
219
220         PR target/43440
221         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
222         * tm.texi: Regenerated.
223         * output.h (decode_reg_name_and_count): Declare.
224         * varasm.c (decode_reg_name_and_count): New function.
225         (decode_reg_name): Reimplement using decode_reg_name_and_count.
226         * reginfo.c (fix_register): Use decode_reg_name_and_count and
227         iterate over all regs used.
228         * stmt.c (expand_asm_operands): Likewise.
229         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
230         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
231         multiple machine registers.
232
233 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
234
235         * stor-layout.c (place_union_field): Do not put location information
236         on offset expressions.
237         (place_field): Likewise.
238         (finalize_record_size): Likewise on size expressions.
239         (finalize_type_size): Likewise.
240         (layout_type): Likewise.
241
242 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
243
244         PR debug/42889
245         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
246         * df-core.c (df_set_bb_dirty_nonrl): Remove.
247         * df.h (df_set_bb_dirty_nonlr): Likewise.
248
249 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
250
251         * config/mips/mips.md (call_internal): Pass curr_insn to
252         mips_split_call.
253         (call_internal_direct): Ditto.
254         (call_value_internal): Ditto.
255         (call_value_internal_direct): Ditto.
256         (call_value_multiple_internal): Ditto.
257         * config/mips/mips.c (mips_split_call): Do not copy
258         CALL_INSN_FUNCTION_USAGE here.
259
260 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
261
262         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
263         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
264         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
265         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
266         (TUNE_LOONGSON_3A): Define.
267         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
268         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
269         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
270         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
271         (mips_rtx_cost_data): Add Loongson-3A.
272
273 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
274
275         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
276         switches.
277
278 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
279
280         * dwarf2out.c (macinfo_entry): New struct.
281         (output_comp_unit): Emit the section start label here and flag that we
282         will emit an info section.
283         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
284         emitting directly.
285         (dwarf2out_end_source_file): Likewise.
286         (dwarf2out_define): Likewise.
287         (dwarf2out_undef): Likewise.
288         (output_macinfo): New.
289         (dwarf2out_init): Do not emit debug section switches here, allocate a
290         vec for macinfo, when required.
291         (dwarf2out_finish): First switch to debug_abbrev_section here.
292         debug_line_section,  debug_macinfo_section, Likewise.  
293         Check that the pubtypes table has at least one unpruned entry before
294         trying to emit it.
295
296 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
297
298         PR c/20385
299         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
300         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
301         token lookahead.
302         (c_parser_compound_statement_nostart, c_parser_label,
303         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
304         (c_parser_declaration_or_fndef): Detect the case now matched by
305         c_parser_next_tokens_start_declaration, give error and correct it.
306
307 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
308
309         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
310         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
311         with typespec_kind.
312         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
313         (shadow_tag_warned, check_compound_literal_type): Adjust
314         uses of tag_defined_p.
315         (declspecs_add_type): Set typespec_kind.
316         * c-parser.c (c_parser_declaration_or_fndef,
317         c_parser_declspecs, c_parser_struct_declaration,
318         c_parser_parameter_declaration, c_parser_type_name,
319         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
320         of type_seen_p.
321         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
322         tag_defined_p, pass ctsk_firstref through.
323
324 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
325
326         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
327         (struct format_wanted_type): Replace field "name" with "kind", add
328         "format_start" and "format_length".
329         (check_format_info_main): Fill in new fields.  Fill in
330         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
331         after the final NUL outside the while loop.  Do not include
332         width and precision modifiers in the format_start/format_length
333         of the main format.
334         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
335         arguments.  Compute WANTED_TYPE first so that format_type_warning
336         can be called for missing arguments.  Adjust calls to
337         format_type_warning.
338         (format_type_warning): Fetch as much information as possible
339         from format_wanted_type.  Adjust printing now that every
340         warning has a "descr", as well as for missing argument warnings
341         and to include % sign for format specifiers.
342
343 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
344
345         PR rtl-optimization/46204
346         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
347         Update all callers.  Do not recompute topological order.  Adjust
348         fallthrough edges following a degenerate conditional jump.
349
350 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
351
352         * opts-common.c (control_warning_option): New.
353         * opts.c (set_default_handlers): New.
354         (decode_options): Use set_default_handlers and
355         control_warning_option.
356         (common_handle_option): Update call to enable_warning_as_error.
357         (enable_warning_as_error): Take gcc_options parameters.  Use
358         control_warning_option.
359         * opts.h (set_default_handlers, control_warning_option): Declare.
360
361 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
362
363         * Makefile.in (OPTS_H): Define.
364         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
365         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
366         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
367         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
368         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
369         * gcc.c (driver_handle_option): Take location_t parameter.
370         (process_command, do_self_spec): Update calls to
371         read_cmdline_option.
372         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
373         * langhooks.c (lhd_handle_option): Take location_t parameter.
374         * langhooks.h (handle_option): Take location_t parameter.
375         * lto-opts.c (lto_reissue_options): Update call to set_option.
376         * opts-common.c (handle_option): Make static.  Take location_t
377         parameter and pass it to other functions.
378         (handle_generated_option): Take location_t parameter and pass it
379         to other functions.
380         (read_cmdline_option): Take location_t parameter and pass it to
381         other functions.  Use warning_at and error_at.
382         (set_option): Take location_t parameter and pass it to other
383         functions.
384         * opts.c (common_handle_option): Take location_t parameter and
385         pass it to other functions.
386         (enable_warning_as_error): Make static.  Take location_t parameter
387         and pass it to other functions.
388         (lang_handle_option): Take location_t parameter and pass it to
389         other functions.
390         (target_handle_option): Take location_t parameter.
391         (read_cmdline_options, maybe_default_option,
392         maybe_default_options, default_options_optimization,
393         decode_options): Take location_t parameter and pass it to other
394         functions.
395         * opts.h: Include input.h.
396         (struct cl_option_handler_func, decode_options, set_option,
397         handle_generated_option, read_cmdline_option): Take location_t
398         parameters.
399         (handle_option, enable_warning_as_error): Remove.
400         * toplev.c (toplev_main): Update call to decode_options.
401
402 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
403
404         * graphite-cloog-util.c (oppose_constraint,
405         cloog_matrix_to_ppl_constraint,
406         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
407         CLooG isl uses unsigned integers.  This triggered a warning.
408
409 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
410
411         PR target/46438
412         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
413         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
414         (xtensa_function_arg_1): De-constify cum.
415         (xtensa_expand_prologue): Use add_reg_note.
416
417         PR target/46435
418         * config/cris/cris.c (saved_regs_mentioned): Delete.
419         (cris_reload_address_legitimized): Cast itype to enum reload_type.
420         Remove unused variable op0p.
421         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
422         (cris_emit_movem_store): Use add_reg_note.
423
424         PR bootstrap/46456
425         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
426
427 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
428
429         * function.c (expand_function_end): Set the locator of the prologue on
430         the stack checking insns.
431
432 2010-11-12  Richard Henderson  <rth@redhat.com>
433
434         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
435         * config/xtensa/xtensa.opt (mfused-madd): Remove.
436         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
437         MASK_FUSED_MADD.
438         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
439         (fnmasf4): Rename from mulsubsf3; use fma.
440
441 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
442             Richard Henderson  <rth@redhat.com>
443
444         PR target/46428
445         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
446         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
447         comparison.
448
449 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
450
451         * opts-common.c (decode_cmdline_option): Initialize separate_args.
452
453 2010-11-12  Jan Hubicka  <jh@suse.cz>
454
455         * doc/invoke.texi (early-inlining-insns): Update default.
456         * params.def (early-inlining-insns): Default to 10.
457
458 2010-11-12  Olivier Hainque  <hainque@adacore.com>
459
460         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
461
462 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
463
464         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
465         (SUPPORTS_INIT_PRIORITY): Define.
466
467 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
468
469         PR target/46430
470         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
471         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
472         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
473         (avr_device_to_devicelib): Likewise.
474         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
475         into block.
476         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
477         (zero_extendhidi2, zero_extendsidi2): Likewise.
478         * config/avr/avr.c (avr_num_arg_regs): Constify type.
479         (avr_return_addr_rtx): De-constify tem.
480         (avr_rotate_bytes): Move declarations to start of block.
481         Don't use variable length array.
482         Put nested if/else into block.
483
484         PR rtl-optimization/46433
485         * var-tracking.c: Include tm_p.h .
486
487         PR bootstrap/44756
488         PR build/44767
489         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
490         should be unsigned.
491         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
492         * doc/tm.texi: Regenerate.
493
494         PR target/46412
495         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
496         * config/bfin/bfin.c: Include sel-sched.h .
497         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
498         (expand_interrupt_handler_prologue): Remove unused variable insn.
499         (bfin_load_pic_reg): Likewise.
500         (bfin_rtx_costs): Make code / outer_code variables of type
501         enum rtx_code, copied from re-named parameters.
502         (bfin_local_alignment): Change align argument and return type
503         to unsigned.
504         (bfin_adjust_cost): Remove unused variable insn_type.
505         Declare variables at start of block.
506         (struct loop_info): Rename to...
507         (struct loop_info_d).
508         (workaround_rts_anomaly): Change type of icode to int.
509         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
510         with int-typed variable.
511         (note_np_check_stores): Likewise.
512         (trapping_loads_p): Remove unused variable pat.
513         (bfin_expand_binop_builtin): Use expand_normal.
514         (bfin_expand_unop_builtin): Likewise.
515         (bfin_expand_builtin): Likewise.
516         Set tmode before use.
517
518         PR middle-end/44769
519         * final.c (split_double): Don't use BITS_PER_WORD directly in
520         shift count.
521
522         PR target/46431
523         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
524         assignment.
525
526         PR target/46450
527         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
528         Use add_reg_note.
529         (xstormy16_function_arg): Dereference cum.
530         (xstormy16_expand_builtin): Use expand_normal.
531         Change type of omode to enum machine_mode.
532         (combine_bnp): Rename and to and_insn.
533
534         PR target/46437
535         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
536         localreg.
537
538 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
539
540         PR debug/46375
541         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
542
543 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
544
545         PR lto/46376
546         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
547
548 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
549
550         PR c/44782
551         * common.opt (fmax-errors=): New option.
552         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
553         * diagnostic.h (struct diagnostic_context): Add max_errors field.
554         * diagnostic.c (diagnostic_initialize): Initialize it.
555         (diagnostic_action_after_output): Exit if more than max_errors
556         have been output.
557         * doc/invoke.texi (Warning Options): Add -fmax-errors.
558         (-fmax-errors): Document.
559
560 2010-11-11  Richard Henderson  <rth@redhat.com>
561
562         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
563
564 2010-11-11  Richard Henderson  <rth@redhat.com>
565
566         * config/fused-madd.opt: New file.
567         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
568         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
569         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
570         * config/i386/i386.opt (mfused-madd): Remove.
571         * config/i386/sse.md (split_fma): Remove.
572         (split_fms, split_fnma, split_fnms): Remove.
573
574 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
575
576         PR target/46088
577         * config/i386/i386.md (*ashl<mode>3_cconly,
578         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
579         change nonimmediate_operand predicate to register_operand.
580
581 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
582
583         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
584
585 2010-11-11  Jan Hubicka  <jh@suse.cz>
586
587         * opts.c (finish_options): Do not error on -flto-partition alone.
588
589         * doc/invoke.texi (-fwhopr): Merge into -flto section.
590         (-flto-partition): Document none.
591         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
592         * lto-wrapper.c: Update comment.
593         (run_gcc): Update LTO option parsing.
594         * opts.c (finish_options): add support -flto-partition=none
595         (common_handle_option): Remove fwhopr.
596         * common.opt: Turn fwhopr into flto.
597         * collect2.c (main): Update option handling.
598         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
599         * ipa-split.c (execute_split_functions): Remove flag_whopr.
600         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
601         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
602         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
603
604 2010-11-11  Jan Hubicka  <jh@suse.cz>
605
606         PR tree-optimize/40436
607         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
608         (eliminated_by_inlining_prob): ... this one; return 50% probability for
609         SRA.
610         (estimate_function_body_sizes): Update use of eliminated_by_inlining_prob;
611         estimate static function size for 2 instructions.
612
613 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
614
615         PR target/44749
616         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
617         declare.  Change type of argument four to type int.
618         (mep_secondary_input_reload_class): Returns enum reg_class.
619         (mep_secondary_output_reload_class): Likewise.
620         (mep_function_value): Change types of arguments to cont_tree.
621         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
622         argument four to type int.
623         (mep_secondary_input_reload_class): Returns enum reg_class.
624         (mep_secondary_output_reload_class): Likewise.
625         (mep_function_value): Change types of arguments to cont_tree.
626         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
627         mep_regno_reg_class to enum reg_class.
628
629 2010-11-11  Richard Henderson  <rth@redhat.com>
630
631         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
632         that the target has the exact fma operation that we matched.
633
634 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
635
636         * reginfo.c (fix_register): Avoid inserting English word in
637         diagnostic sentence.  Use %qs for quoting and %'.
638
639 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
640
641         * config/i386/driver-i386.c (host_detect_local_cpu): Support
642         Intel processor family 6, model 0x2c.
643
644 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
645
646         * opts.c (warning_as_error_callback,
647         register_warning_as_error_callback): Remove.
648         (enable_warning_as_error): Don't use warning_as_error_callback.
649         * opts.h (register_warning_as_error_callback): Remove.
650
651 2010-11-11  Richard Henderson  <rth@redhat.com>
652
653         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
654         in between the MULT and the PLUS/MINUS.
655
656 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
657
658         PR middle-end/46388
659         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
660         BLKmode mode for it.
661         (expand_expr_real_1): Similarly for op0.
662
663 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
664
665         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
666         Document optional target selector.
667
668 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
669
670         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
671         assembling high and low parts of size if not using 32-bit HWINT; else
672         use DECL_SIZE_UNITS, not DECL_SIZE.
673
674 2010-11-11  Martin Jambor  <mjambor@suse.cz>
675
676         PR tree-optimization/46383
677         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
678         offsets.
679         (compute_complex_ancestor_jump_func): Likewise.
680         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
681
682 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
683
684         PR debug/46150
685         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
686         true if expr1->hash != expr2->hash.
687
688 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
689
690         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
691         diagnostics with lowercase letters.
692         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
693         lowercase letters.
694         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
695         diagnostic.
696         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
697         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
698         lowercase letters.
699         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
700         Remove trailing ' ' from diagnostic.
701         * config/avr/avr.c (print_operand_address): Start diagnostic with
702         a lowercase letter and remove trailing '.'.
703         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
704         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
705         with lowercase letters.  Use %' in diagnostics.  Remove trailing
706         '.' from diagnostics.
707         (bfin_handle_longcall_attribute): Use %' in diagnostic.
708         * config/cris/cris.c (cris_split_movdx,
709         cris_expand_pic_call_address): Start diagnostics with lowercase
710         letters.
711         (cris_asm_output_label_ref): Use %' in diagnostic.
712         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
713         letter.
714         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
715         lowercase letter.
716         * config/darwin-c.c (version_as_macro): Start diagnostic with a
717         lowercase letter.
718         * config/darwin-driver.c (darwin_default_min_version): Use %' in
719         diagnostic.
720         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
721         diagnostic.
722         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
723         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
724         diagnostics.
725         * config/i386/i386.c (ix86_option_override_internal): Write
726         diagnostic as a single sentence without trailing '.'.  Use %' in
727         diagnostics.
728         (ix86_function_sseregparm, classify_argument): Start diagnostics
729         with lowercase letters.
730         (ix86_expand_prologue): Use %' in diagnostic.
731         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
732         diagnostic.
733         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
734         lowercase letter.
735         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
736         diagnostic.
737         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
738         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
739         '`' in help text.
740         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
741         lowercase letter.
742         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
743         lowercase letters.
744         * config/microblaze/microblaze.c (microblaze_handle_option):
745         Remove trailing '.' from diagnostic.
746         (print_operand): Start diagnostic with a lowercase letter.
747         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
748         lowercase letters.  Avoid '`' in diagnostics.
749         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
750         lowercase letters.  Avoid '`' in diagnostics.
751         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
752         lowercase letters.  Avoid '`' in diagnostics.
753         * config/picochip/picochip.c (picochip_option_override,
754         picochip_emit_save_register, picochip_function_arg,
755         picochip_output_label, picochip_output_internal_label,
756         picochip_asm_output_opcode, picochip_output_cbranch,
757         picochip_output_compare, picochip_output_branch,
758         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
759         diagnostics. Start diagnostics with lowercase letters.  Use %' in
760         diagnostics.
761         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
762         "SPE" capitalization.  Start diagnostic with a lowercase letter.
763         (rs6000_handle_option): Start diagnostics with lowercase letters.
764         (def_builtin): Remove trailing '.' from diagnostic.
765         (rs6000_savres_routine_name): Start diagnostic with a lowercase
766         letter.
767         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
768         diagnostic.
769         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
770         lowercase letter.
771         * config/s390/s390.c (s390_option_override) Start diagnostics with
772         lowercase letters.  Use %' in diagnostic.
773         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
774         lowercase letters.
775         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
776         diagnostic.
777         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
778         diagnostic.
779         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
780         diagnostic.
781         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
782         * config/spu/spu.c (spu_option_override): Start diagnostics with
783         lowercase letters.  Use %qs for quoting in diagnostics.
784         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
785         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
786         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
787         from diagnostic.
788         * convert.c (convert_to_integer, convert_to_vector): Use %' in
789         diagnostics.
790         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
791         letter and use "cannot" spelling.
792         * expmed.c (extract_fixed_bit_field): Start diagnostic with
793         lowercase letter and format as a single sentence without '.'.
794         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
795         Use %' in diagnostics.
796         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
797         Use %' in diagnostics.
798         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
799         Use %' in diagnostics.
800         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
801         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
802         with lowercase letters and remove tailing '.' and '\n'.
803         * lto-cgraph.c (input_profile_summary): Start diagnostic with
804         lowercase letter and remove trailing '.'.
805         (input_cgraph): Start diagnostics with lowercase letters and
806         remove trailing '\n'.
807         * opts.c (finish_options, common_handle_option): Start diagnostics
808         with lowercase letters and remove trailing '.'.  Fix typo in
809         diagnostic.
810         * passes.c (position_pass): Start diagnostic with lowercase
811         letter. 
812         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
813         register_callback, try_init_one_plugin): Start diagnostics with
814         lowercase letters.
815         * reload1.c (spill_failure): Use %' in diagnostic.
816         (gen_reload): Start diagnostic with a lowercase letter.
817         * stor-layout.c (place_field): Start diagnostic with a lowercase
818         letter.
819         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
820         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
821         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
822         Start diagnostics with lowercase letters, remove trailing '.' and
823         use %' in diagnostics.
824         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
825         (verify_ssa): Don't split diagnostic across two error calls.
826         Spell out "number" and use %' in diagnostic.
827         * value-prof.c (visit_hist, check_counter): Start diagnostics with
828         lowercase letters.
829
830 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
831
832         PR middle-end/46419
833         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
834         (_mm_cvtpu16_ps): Ditto.
835
836 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
837
838         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
839         warn_larger_than, larger_than_size, warn_frame_larger_than,
840         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
841         default_visibility, flag_tls_default): New Variable declarations.
842         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
843         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
844         (v): Declare as Common and document here.
845         * flags.h (default_visibility, flag_generate_lto,
846         warn_larger_than, larger_than_size, warn_frame_larger_than,
847         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
848         flag_shlib, flag_excess_precision_cmdline): Remove.
849         (set_Wstrict_aliasing): Update prototype.
850         * gcc.c (verbose_flag): Remove.
851         (driver_handle_option): Add diagnostic_context parameter.  Don't
852         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
853         incrementing it.
854         * opts-common.c (handle_option): Pass dc to handler.
855         * opts.c (warn_larger_than, larger_than_size,
856         warn_frame_larger_than, frame_larger_than_size,
857         default_visibility): Remove.
858         (common_handle_option): Add diagnostic_context parameter.
859         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
860         gcc_options parameters.
861         (lang_handle_option, target_handle_option, read_cmdline_options,
862         decode_options): Add diagnostic_context parameters.
863         (finish_options): Access option state through opts pointer where
864         possible.
865         (common_handle_option): Access option state through opts pointer
866         where possible.  Do not set local static variable verbose.  Do not
867         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
868         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
869         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
870         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
871         OPT_fwhopr_.  Do not explicitly set .opt file variables for
872         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
873         (set_Wstrict_aliasing): Add gcc_options parameter.
874         * opts.h (struct cl_option_handler_func): Add diagnostic_context
875         parameter to handler.
876         (decode_options): Add diagnostic_context parameter.
877         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
878         asm_file_name, flag_generate_lto, flag_gen_aux_info,
879         aux_info_file_name, flag_shlib, flag_tls_default,
880         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
881         (toplev_main): Pass global_dc to decode_options.
882         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
883         aux_info_file_name, asm_file_name): Remove.
884         * tree.h (flag_tls_default): Remove.
885
886 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
887
888         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
889         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
890
891 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
892
893         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
894         (x86_64-*-*): Likewise.
895         * config/i386/cpuid.h: Define TBM bit.
896         * config/i386/driver-i386.c (host_detect_local_cpu): Define
897         and set has_tbm.
898         * config/i386/i386-c.c (ix86_target_macros_internal): Check
899         isa_flag for TBM.
900         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
901         (OPTION_MASK_ISA_TBM_UNSET): New.
902         (ix86_handle_option): Handle -mtbm.
903         (isa_opts): Add -mtbm.
904         (enum pta_flags): Add PTA_TBM.
905         (ix86_option_override_internal): Add TBM support.
906         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
907         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
908         (IX86_BUILTIN_BEXTRI64): Likewise.
909         (bdesc_args): Add TBM intrinsics.
910         (ix86_expand_builtin): Add TBM specific case.
911         * config/i386/i386.h (TARGET_TBM): New for TBM.
912         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
913         (tbm_bextri_<mode>): Likewise.
914         (*tbm_blcfill_<mode>): Likewise.
915         (*tbm_blci_<mode>): Likewise.
916         (*tbm_blcic_<mode>): Likewise.
917         (*tbm_blcmsk_<mode>): Likewise.
918         (*tbm_blcs_<mode>): Likewise.
919         (*tbm_blsfill_<mode>): Likewise.
920         (*tbm_blsic_<mode>): Likewise.
921         (*tbm_t1mskc_<mode>): Likewise.
922         (*tbm_tzmsk_<mode>): Likewise.
923         * config/i386/i386.opt: Add -mtbm.
924         * config/i386/tbmintrin.h (__bextri_u32): New.
925         (__blcfill_u32): Likewise.
926         (__blci_u32): Likewise.
927         (__blcic_u32): Likewise.
928         (__blcmsk_u32): Likewise.
929         (__blcs_u32): Likewise.
930         (__blsfill_u32): Likewise.
931         (__blsic_u32): Likewise.
932         (__t1mskc_u32): Likewise.
933         (__tzmsk_u32): Likewise.
934         (__bextri_u64): Likewise.
935         (__blcfill_u64): Likewise.
936         (__blci_u64): Likewise.
937         (__blcic_u64): Likewise.
938         (__blcmsk_u64): Likewise.
939         (__blcs_u64): Likewise.
940         (__blsfill_u64): Likewise.
941         (__blsic_u64): Likewise.
942         (__t1mskc_u64): Likewise.
943         (__tzmsk_u64): Likewise.
944         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
945         * doc/invoke.texi: Document -mtbm.
946         * doc/extend.texi: Document TBM built-in functions.
947
948 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
949
950         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
951         (x86_64-*-*): Likewise.
952         * config/i386/cpuid.h: Define BMI bit.
953         * config/i386/driver-i386.c (host_detect_local_cpu): Define
954         and set has_bmi.
955         * config/i386/i386-c.c (ix86_target_macros_internal): Check
956         isa_flag for BMI.
957         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
958         (OPTION_MASK_ISA_BMI_UNSET): New.
959         (ix86_handle_option): Handle -mbmi.
960         (isa_opts): Add -mbmi.
961         (enum pta_flags): Add PTA_BMI.
962         (ix86_option_override_internal): Add BMI support.
963         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
964         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
965         (IX86_BUILTIN_BEXTR64): Likewise.
966         (IX86_BUILTIN_CTZS): Likewise.
967         (bdesc_args): Add BMI intrinsics.
968         (ix86_expand_args_builtin): Add BMI specific cases.
969         * config/i386/i386.h (TARGET_BMI): New for BMI.
970         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
971         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
972         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
973         (UNSPEC_TZCNT): Likewise.
974         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
975         (bmi_andn_<mode>): New for BMI.
976         (bmi_bextr_<mode>): Likewise.
977         (bmi_blsi_<mode>): Likewise.
978         (bmi_blsmsk_<mode>): Likewise.
979         (bmi_blsr_<mode>): Likewise.
980         * config/i386/i386.opt: Add -mbmi.
981         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
982         * config/i386/bmiintrin.h (__lzcnt_u16): New.
983         (__tzcnt_u16): Likewise.
984         (__andn_u32): Likewise.
985         (__bextr_u32): Likewise.
986         (__blsi_u32): Likewise.
987         (__blsmsk_u32): Likewise.
988         (__blsr_u32): Likewise.
989         (__lzcnt_u32): Likewise.
990         (__tzcnt_u32): Likewise.
991         (__andn_u64): Likewise.
992         (__bextr_u64): Likewise.
993         (__blsi_u64): Likewise.
994         (__blsmsk_u64): Likewise.
995         (__blsr_u64): Likewise.
996         (__lzcnt_u64): Likewise.
997         (__tzcnt_u64): Likewise.
998         * doc/invoke.texi: Document -mbmi and -mno-bmi.
999         * doc/extend.texi: Document BMI built-in functions.
1000
1001 2010-11-10  Jan Hubicka  <jh@suse.cz>
1002
1003         PR tree-optimize/46228
1004         * doc/invoke.texi (comdat-sharing-probability): Document.
1005         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
1006         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
1007
1008 2010-11-10  Jan Hubicka  <jh@suse.cz>
1009
1010         PR tree-optimize/46228
1011         * cgraph.c (cgraph_propagate_frequency): Fix typo.
1012
1013 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
1014
1015         PR tree-optimization/46414
1016         * tree-inline.c (estimate_move_cost): Check preferred vector
1017         mode for vector type.
1018
1019 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1020
1021         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
1022
1023 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
1024
1025         PR tree-optimization/45971
1026         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
1027         for phi nodes analyzable by scev.
1028
1029 2010-11-10  Richard Guenther  <rguenther@suse.de>
1030
1031         PR tree-optimization/44964
1032         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
1033
1034 2010-11-10  Martin Jambor  <mjambor@suse.cz>
1035
1036         PR tree-optimization/46351
1037         PR tree-optimization/46377
1038         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
1039         aggregate bit-fields.
1040
1041 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
1042
1043         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1044         * doc/tm.texi: Regenerate.
1045         * opts-common.c (tm.h): Don't include.
1046         (target_option_translations): Remove.
1047         (decode_cmdline_options_to_array): Don't handle translating options.
1048         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
1049         * config/darwin-driver.c: Don't condition includes on
1050         CROSS_DIRECTORY_STRUCTURE.
1051         (darwin_default_min_version): Make static.
1052         (darwin_driver_init): New.  Call darwin_default_min_version if not
1053         CROSS_DIRECTORY_STRUCTURE.
1054         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1055         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
1056         (ASM_SPEC): Add %{static}.
1057         (darwin_default_min_version): Don't declare.
1058         (darwin_driver_init): Declare.
1059         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
1060         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
1061         * config/darwin.opt (all_load, allowable_client,
1062         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
1063         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
1064         exported_symbols_list, filelist, findirect-virtual-calls,
1065         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
1066         framework, fterminated-vtables, gfull, gused, image_base, init,
1067         install_name, multi_module, multiply_defined,
1068         multiply_defined_unused, no_dead_strip_inits_and_terms,
1069         seg_addr_table, seg_addr_table_filename, segaddr,
1070         segs_read_only_addr, segs_read_write_addr, single_module,
1071         umbrella, unexported_symbols_list, weak_reference_mismatches,
1072         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
1073         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
1074         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
1075         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
1076         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
1077         (ASM_SPEC): Add %{static}.
1078         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
1079         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1080         (DRIVER_SELF_SPECS): Handle options formerly in
1081         TARGET_OPTION_TRANSLATE_TABLE.
1082         * config/mep/mep.opt (mfar): New.
1083         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1084         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
1085         TARGET_OPTION_TRANSLATE_TABLE.
1086         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
1087         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
1088         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
1089         ffix-and-continue, findirect-data): New.
1090         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1091         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
1092         (mnofpu): Define mask and use Report here.
1093
1094 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1095
1096         * config/s390/s390.c (s390_emit_prologue): Report the stack
1097         size if -fstack-usage is used.
1098
1099 2010-11-10  Richard Guenther  <rguenther@suse.de>
1100
1101         PR tree-optimization/46398
1102         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
1103
1104 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
1105
1106         PR target/44760
1107         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
1108         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
1109         GP_REG_OR_PSEUDO_STRICT_P.
1110         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
1111         unexpected alternative.
1112         (*movsf_internal): Likewise.
1113         (indirect_jump): Replace call to non-existant function with call to
1114         internal_error.
1115         (tablejump): Likewise.
1116         * config/iq2000/iq2000.c: Include df.h .
1117         (iq2000_function_arg_advance): Use CONST_CAST2.
1118         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
1119         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
1120         a non-zero function address.
1121         (iq2000_initial_elimination_offset): Add gcc_unreachable for
1122         unexpected value of FROM.
1123         (symbolic_expression_p): Delete.
1124         (iq2000_function_value): Constify func.
1125         (expand_one_builtin): Use expand_normal.
1126         (iq2000_print_operand): Don't print VALUE if calculating it failed.
1127
1128         PR rtl-optimization/44764
1129         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
1130
1131         PR target/46407
1132         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
1133         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
1134         with ATTRIBUTE_UNUSED.
1135         (valid_psw_flag): Constify parameter which.
1136         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
1137
1138         PR target/46415
1139         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
1140         (mmix_dbx_register_number): Likewise.
1141         * config/mmix/mmix.c: Include df.h .
1142         (mmix_local_alignment): Change argument basic_align and return type
1143         to unsigned.
1144         (mmix_dbx_register_number): Change argument and return type to
1145         unsigned.
1146         (mmix_expand_prologue): Use add_reg_note.
1147
1148         PR target/46417
1149         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
1150         (spu_split_store): Use aform.
1151         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
1152
1153 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1154
1155         PR/46268
1156         * doc/gty.texi (GTY Options): Clarify that variable_size produces
1157         allocators taking size in bytes, compare with length option.  Add
1158         size calculation example.
1159         (Invoking the garbage collector): Ensure that sentences are
1160         followed by two spaces.  Describe that pointer fields must be
1161         initialized at ggc_collect call.
1162         (Troubleshooting): New section.
1163
1164 2010-11-09  Jan Hubicka  <jh@suse.cz>
1165
1166         PR tree-optimization/40436
1167         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
1168         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
1169         normal instructions; be sure bultin is not implemented in this file;
1170         compute non-zero return cost.
1171         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
1172         * tree-inline.h (eni_weights_d): Add return cost.
1173
1174 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
1175
1176         * c-parser.c (c_parser_struct_declaration): Handle declaration
1177         specifiers followed by CPP_CLOSE_BRACE.
1178
1179 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
1180
1181         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
1182         split occurs before reload, and we allocate memory at the time of
1183         the split, not during expansion.  Add attributes.
1184         (floatsi<mode>2_lfiwax_mem): Ditto.
1185         (floatunssi<mode>2_lfiwzx): Ditto.
1186         (floatunssi<mode>2_lfiwzx_mem): Ditto.
1187         (floatsidf2): Ditto.
1188         (floatunssisf2): Ditto.
1189         (floatunssidf2): Ditto.
1190         (fix_trunc<mode>si2): Ditto.
1191         (fix_trunc<mode>si2_stfiwx): Ditto.
1192         (fix_trunc<mode>si2_internal): Ditto.
1193         (fix_trunc<mode>si2): Ditto.
1194         (fix_trunc<mode>di2): Ditto.
1195         (fixuns_trunc<mode>si2_stfiwx): Ditto.
1196         (floatsisf2): Ditto.
1197         (floatdidf2_mem): Ditto.
1198         (floatunsdidf2_mem): Ditto.
1199         (floatunsdidf2): Ditto.
1200         (floatdisf2_internal1): Ditto.
1201         (floatdisf2_mem): Ditto.
1202         (floatunsdisf2_mem): Ditto.
1203         (floatsi<mode>2_lfiwax_mem2): Delete.
1204         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
1205         (fix_trunc<mode>si2_mem): Ditto.
1206         (fixuns_trunc<mode>si2_mem): Ditto.
1207         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
1208         type operations to reduce copying the values to multiple memory slots.
1209         (roundu32<mode>2_fprs): Ditto.
1210
1211         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
1212         PRE_INC, PRE_DEC, PRE_MODIFY.
1213         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
1214
1215         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
1216         Delete prototype.
1217
1218 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
1219
1220         PR target/43808
1221         * cfgexpand.c (partition_stack_vars): Call
1222         update_alias_info_with_stack_vars unconditionally.
1223         (update_alias_info_with_stack_vars): Allow unused
1224         unreferenced vars when not optimizing.
1225
1226 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
1227
1228         PR tree-optimization/46036
1229         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
1230         add_to_dst_predicate_list.
1231
1232 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
1233
1234         PR debug/46171
1235         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
1236         earlier.
1237         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
1238         argument, call dead_debug_reset when adding REG_UNUSED note.
1239         (dead_debug_reset): New function.
1240         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
1241         df_create_unused_note callers.
1242
1243 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
1244
1245         * config/fr30/fr30.c: Include "df.h".
1246
1247 2010-11-09  Richard Guenther  <rguenther@suse.de>
1248
1249         PR tree-optimization/46355
1250         * tree-loop-distribution.c (tree_loop_distribution): Do not
1251         distribute loops without a single exit.
1252
1253 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1254
1255         PR rtl-optimization/46237
1256         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
1257         saved hard regs if they might get partially clobbered.
1258
1259 2010-11-09  Paul Koning  <ni1d@arrl.net>
1260
1261         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
1262
1263 2010-11-09  Richard Guenther  <rguenther@suse.de>
1264
1265         PR tree-optimization/46177
1266         * tree-loop-distribution.c (prop_phis): Remove.
1267         (generate_builtin): Re-use the old loop exit edge to avoid
1268         needing to update PHI nodes.
1269
1270 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
1271
1272         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
1273         type of args_size to unsigned HOST_WIDE_INT.
1274
1275         PR target/44755
1276         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
1277         * config/t-pnt16-warn: New file.
1278         * config/picochip/picochip.c (picochip_emit_stack_allocate):
1279         Use add_reg_note.
1280         (picochip_emit_save_register): Likewise.
1281         (picochip_emit_restore_register): Remove variable insn.
1282         (picochip_legitimize_address): Don't use C++ style comments.
1283         (picochip_legitimize_reload_address): Likewise.
1284         (reorder_var_tracking_notes): Remove variable vliw_start.
1285         (picochip_reorg): Cast first arguemnt to emit_note_after to
1286         enum insn_note.
1287         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
1288         (picochip_expand_builtin_3op): Likewise.
1289         (picochip_expand_builtin_2opvoid): Likewise.
1290         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
1291         (picochip_expand_array_testport): Likewise.
1292         (picochip_init_builtins): Remove unused variables.
1293         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
1294         to unsigned long, and output it as such.
1295         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
1296         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
1297         (schedType): Cast result of picochip_schedule_type to
1298         enum attr_schedType.
1299
1300         PR target/44759
1301         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
1302         conditional to type of S.
1303         (mn10300_function_arg): Remove unused variable align.
1304         (mn10300_arg_partial_bytes): Likewise.
1305         * config/mn10300/mn10300.md (attribute cpu): Cast value to
1306         enum attr_cpu.
1307
1308 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
1309
1310         PR bootstrap/46392
1311         * gengtype-parse.c (type): Call get_input_file_name to get file name.
1312
1313 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
1314
1315         * tree.h (contains_placeholder_p): Fix comment.
1316         (type_contains_placeholder_p): Adjust comment.
1317         * tree.c (contains_placeholder_p): Fix comment.
1318         (type_contains_placeholder_1): Do not recurse on pointed-to types and
1319         adjust comment.
1320         (type_contains_placeholder_p): Add comment.
1321
1322 2010-11-09  Paul Koning  <ni1d@arrl.net>
1323
1324         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
1325         output of byte values.
1326
1327 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
1328
1329         PR middle-end/46360
1330         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
1331         not in SSA mode.
1332
1333 2010-11-09  Richard Guenther  <rguenther@suse.de>
1334
1335         PR middle-end/46221
1336         * varasm.c (compute_visible_aliases): New function.
1337         (remove_unreachable_alias_pairs): Aliases make a target available
1338         even though we reclaimed the cgraph node.
1339         (finish_aliases_1): Likewise.
1340         * Makefile.in (varasm.o): Add pointer-set.h dependency.
1341
1342 2010-11-09  Nick Clifton  <nickc@redhat.com>
1343
1344         * config/mn10300/mn10300-modes.def: New file.
1345
1346 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
1347             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1348
1349         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
1350         (plugin_files, get_file_basename, get_file_realbasename)
1351         (get_file_langdir, error_at_line, gt_files, this_file)
1352         (system_h_file, read_input_list, create_field_all)
1353         (get_file_srcdir_relative_path, get_file_basename)
1354         (get_file_langdir, get_file_gtfilename)
1355         (get_output_file_with_visibility, get_output_file_name)
1356         (struct flist, put_mangled_filename, walk_type)
1357         (put_mangled_filename, finish_root_table, write_roots): Use
1358         input_file-s.
1359         (lang_dir_names, num_lang_dirs): Remove static.
1360         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
1361         (main): Use input_file-s.
1362
1363         * gengtype.h: (struct input_file_st, input_file): New type.
1364         (struct fileloc): Use it.
1365         (gt_files, num_gt_files, this_file, system_h_file)
1366         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
1367         (get_input_file_name): New function.
1368         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
1369         use input_file.
1370         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
1371         (get_output_file_name): Ditto.
1372
1373         * gengtype-lex.l (yybegin): Use input_file.
1374
1375         * gengtype-parse.c (parse_error): Use input_file.
1376
1377 2010-11-08  Xinliang David Li  <davidxl@google.com>
1378
1379         PR tree-optimization/46316
1380         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
1381         * double-int.h (double_int_mul_with_sign): New function.
1382         * double-int.c (double_int_mul_with_sign): New function.
1383
1384 2010-11-08  Paul Koning  <ni1d@arrl.net>
1385
1386         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
1387
1388 2010-11-08  Paul Koning  <ni1d@arrl.net>
1389
1390         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
1391
1392 2010-11-08  Paul Koning  <ni1d@arrl.net>
1393
1394         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
1395         to 8 bits.
1396
1397 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
1398
1399         PR target/46378
1400         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
1401         turn on ISA 2.04 rounding instructions for power5.
1402
1403         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
1404         not ISA 2.02.
1405
1406         PR target/45585
1407         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
1408         in FPR registers.
1409         (movdi_low_st): Ditto.
1410
1411 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
1412             Richard Henderson  <rth@redhat.com>
1413
1414         PR target/44758
1415         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
1416         (attribute acc_group): Cast value to enum attr_acc_group.
1417         (*movdi_nodouble+6): Use gen_int_mode.
1418         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
1419         if RTX_CODE is defined or not.
1420         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
1421         struct frv_io.
1422         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
1423         (frv_frame_access, frv_expand_prologue): Remove unused variables.
1424         (frv_expand_block_clear): Likewise.
1425         (frv_trampoline_init): Use LCT_NORMAL.
1426         (struct frv_packet_group): New struct, broken out of type of
1427         frv_packet.
1428         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
1429         use cast in loop counter increment.
1430         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
1431         assigning to io->type.
1432         (bdesc_set): Use rtx_code UNKNOWN in initializer.
1433         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
1434         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
1435         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
1436         (frv_read_argument): Use expand_normal.
1437
1438         PR target/44757
1439         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
1440         lm32_legitimate_constant_p.
1441         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
1442         * config/lm32/lm32.c (gen_int_relational): Make new block for
1443         LE / LT / LEU / LTU case.  Declare variables at start of block.
1444         (lm32_block_move_inline): Use XALLOCAVEC.
1445
1446 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1447
1448         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
1449
1450 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
1451
1452         * gengtype (get_output_file_for_structure): Ensure type is union
1453         or struct.
1454         (write_splay_tree_allocator_def): Use
1455         get_output_file_with_visibility.
1456
1457 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1458
1459         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
1460         to defined values in case of an error.
1461         (s390_option_override): Skip further processing if the -march
1462         parameter wasn't recognized.
1463
1464 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
1465
1466         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
1467         assert that REG is a hard register number before using it as an index.
1468
1469         PR bootstrap/46358
1470         * config/i386/i386.c (ix86_expand_split_stack_prologue):
1471         Avoid warnings when HOST_WIDE_INT is 32 bit.
1472
1473 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
1474
1475         PR target/46208
1476         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
1477         (sparc_promote_prototypes): Likewise.
1478         (sparc_promote_function_mode): Promote in 32-bit mode as well.
1479         (sparc_return_in_memory): Remove superfluous parentheses.
1480         (sparc_struct_value_rtx): Fix long lines.
1481         (sparc_function_value_1): Promote in 32-bit mode as well.
1482
1483 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
1484
1485         PR rtl-optimization/45352
1486         * sel-sched.c (find_best_expr): Do not set pneed_stall when
1487         the variable_issue hook is not implemented.
1488         (fill_insns): Remove dead variable stall_iterations.
1489         (init_seqno_1): Force EBB start for resetting sched cycles on any
1490         successor blocks of the rescheduled region.
1491         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
1492         (reset_sched_cycles_in_current_ebb): Add debug printing.
1493         New variable issued_insns.  Advance state when we have issued
1494         issue_rate insns.
1495
1496 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
1497
1498         * gengtype (main): Get here's position using POS_HERE macro for
1499         do*typedef calls.
1500
1501 2010-11-07  Ian Lance Taylor  <iant@google.com>
1502
1503         PR target/46089
1504         * config/i386/i386.c (split_stack_fn_large): New static variable.
1505         (ix86_expand_split_stack_prologue): Handle large model.
1506
1507 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
1508
1509         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
1510         all possible addressing modes.
1511
1512 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
1513
1514         PR tree-optimization/46346
1515         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
1516
1517 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
1518
1519         * config/mips/mips.c: Revert previous patch.
1520         * config/mips/mips.md: Likewise.
1521
1522 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
1523
1524         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
1525         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
1526         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
1527         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
1528         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
1529         to use FMA.
1530         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
1531         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
1532         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
1533         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
1534
1535 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
1536
1537         PR c/43384
1538         * c-decl.c (lookup_label): Labels can only be referenced in a
1539         function's scope.
1540         (store_parm_decls_oldstyle): Skip erroneous parameters.
1541
1542 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
1543
1544         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
1545         LIBCALL_VALUE): Remove macros.
1546         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1547         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1548         (fr30_function_value_regno_p, fr30_function_value,
1549         fr30_libcall_value): New functions.
1550
1551 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
1552
1553         PR middle-end/46314
1554         * target.def (generate_internal_label): New asm_out hook.
1555         * output.h (default_generate_internal_label): Declare.
1556         * varasm.c (default_generate_internal_label): Define.
1557
1558 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
1559
1560         PR target/44981
1561         * doc/extend.tex (format): Document NSString extension.
1562         (format_arg): Likewise.
1563         (Darwin Format Checks): New section.
1564         * doc/tm.texi: Document string object hooks (generated).
1565         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
1566         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
1567         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
1568         * target.def (objc_construct_string_object): Rename, amend
1569         documentation.
1570         (string_object_ref_type_p): New hook.
1571         (check_string_object_format_arg): New hook.
1572         * c-parser.c (c_parser_attributes): Allow objective-c class names as
1573         attribute identifiers.
1574         * config/darwin-c.c (darwin_cfstring_ref_p): New.
1575         (darwin_check_cfstring_format_arg): New.
1576         (darwin_additional_format_types): New.
1577         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
1578         (darwin_check_cfstring_format_arg): New.
1579         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
1580         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
1581         (TARGET_N_FORMAT_TYPES): New.
1582         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
1583
1584 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
1585             Pascal Obry  <obry@adacore.com>
1586
1587         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
1588         in 64-bit mode and 17 otherwise.
1589
1590 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1591
1592         PR debug/45939
1593         * var-tracking.c (emit_note_insn_var_location): Make sure that
1594         call related var location notes come before the normal ones.
1595
1596 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
1597
1598         PR target/46326
1599         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
1600         in the last change.
1601
1602 2010-11-05  Ian Lance Taylor  <iant@google.com>
1603
1604         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
1605
1606 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
1607
1608         PR c/44772
1609         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
1610         pointer_set_contains if DECL_NAME is NULL.
1611
1612 2010-11-05  Ian Lance Taylor  <iant@google.com>
1613
1614         PR target/46084
1615         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
1616         request enough additional space for alignment, and force alignment.
1617
1618 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
1619
1620         * config/i386/i386.c (legitimate_pic_address_disp_p):
1621         Handle UNSPEC_PCREL.
1622         (ix86_legitimate_address_p): Likewise.
1623         (legitimize_pic_address): Likewise.
1624         (output_pic_addr_const): Likewise.
1625         (ix86_delegitimize_address): Likewise.
1626         (ix86_find_base_term): Likewise.
1627         (memory_address_length): Likewise.
1628         (x86_output_mi_thunk): Handle special case x64
1629         for non local binding.
1630         * config/i386/i386.md (UNSPEC_PCREL): New.
1631         * config/i386/winnt.c (i386_pe_binds_local_p):
1632         Allow weak symbol for x64 windows with non-local binding.
1633
1634 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
1635
1636         PR target/45670
1637         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
1638         instead of EXPAND_NORMAL for base expansion.
1639
1640 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
1641
1642         * config.gcc: Support --with-fpmath=avx for x86.
1643         * config/i386/avxmath.h: New.
1644         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
1645
1646 2010-11-05  Ian Lance Taylor  <iant@google.com>
1647
1648         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
1649         * gengtype.c (walk_type): Don't recognize descbits option.
1650
1651 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
1652
1653         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
1654         WORD_SWITCH_TAKES_ARG): Remove.
1655         * doc/options.texi (Args): Document.
1656         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
1657         * doc/tm.texi: Regenerate.
1658         * opt-functions.awk (switch_flags): Handle Args.
1659         * opts-common.c: Update comment on tm.h include.
1660         (decode_cmdline_option): Handle options with multiple arguments.
1661         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
1662         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
1663         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
1664         CL_COMMON): Update values.
1665         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
1666         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
1667         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
1668         sectobjectsymbols, sectorder, segcreate, segprot): New.
1669
1670 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
1671             Uros Bizjak  <ubizjak@gmail.com>
1672
1673         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
1674         256bit AVX register is used.
1675         (ix86_expand_vector_move_misalign): Likewise.
1676         (ix86_expand_vector_move): Replace use_avx256_p with
1677         VALID_AVX256_REG_MODE.
1678
1679 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
1680
1681          PR target/44750
1682         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
1683         change.  Set $@-warn.o to -Wno-error.
1684
1685         PR bootstrap/44756
1686         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
1687         comparing it to a signed value.
1688
1689         PR middle-end/44766
1690         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
1691         PR bootstrap/44770
1692         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
1693         to i.
1694
1695         PR target/44754
1696         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
1697         (m32c_function_arg).  Add comma between arguments two and three.
1698         (m32c_promote_prototypes): Remove declaration.
1699         (current_function_special_page_vector): Likewise.
1700         (m32c_regno_reg_class): Change return type to enum reg_class.
1701         (m32c_pushm_popm): Use add_reg_note.
1702         (m32c_push_rounding): Change return type to unsigned int.
1703         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
1704         enum reload_type.
1705         (m32c_insert_attributes): Constify variable name.
1706         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
1707         (m32c_prepare_shift): Remove variable lref.
1708         (m32c_expand_movcc): Remove variable cmp.
1709         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
1710         (m32c_compare_redundant): Remove variable op2.
1711         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
1712         (m32c_pragma_memregs): Assign the number to target_memregs.
1713         (m32c_pragma_address): Remove variable var_str.
1714         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
1715         enum reg_class.
1716         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
1717         * config/m32c/bitops.md (andsi3): Add default case to switch.
1718         (iorsi3, xorsi3): Likewise.
1719         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
1720         * config/m32c/jump.md (call, call_value): Likewise.
1721         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
1722         (m32c_regno_reg_class): Likewise.
1723         (current_function_special_page_vector): Declare.
1724
1725 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
1726
1727         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
1728
1729         PR tree-optimization/46099
1730         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
1731         if it is NULL and uid wasn't found in the hash table.  Just fold the
1732         result if it is NULL otherwise.  Insert other potentially needed
1733         stmts right before current stmt instead of on the entry edge.
1734         (struct elv_data): Add gsi and reset fields.
1735         (eliminate_local_variables_1): Adjust caller.  If take_address_of
1736         failed for debug stmt, set dta->reset and return.
1737         (eliminate_local_variables_stmt): Change STMT argument for GSI,
1738         pass GSI through to the callback, handle resetting of debug stmts.
1739         (eliminate_local_variables): Adjust caller.  Process debug stmts
1740         in second phase.
1741
1742         PR middle-end/43690
1743         * gimplify.c (gimplify_asm_expr): If a "m" input is a
1744         {pre,post}{in,de}crement, fail.
1745
1746         PR debug/46307
1747         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
1748         * tree-pretty-print.c (dump_generic_node): Likewise.
1749         (op_code_prio): Likewise.
1750         * cfgexpand.c (expand_debug_expr): Likewise.
1751
1752 2010-11-04  Paul Koning  <ni1d@arrl.net>
1753
1754         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
1755         constraints.
1756
1757 2010-11-04  Chao-ying Fu  <fu@mips.com>
1758
1759         * configure.ac: Test assembler support for DSP Rev1 mult.
1760         * configure: Regenerate.
1761         * config.in: Regenerate.
1762         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
1763         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
1764         (CODE_FOR_mips_multu): New define.
1765         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
1766         dspr2_32 to dsp_32.
1767         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
1768         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
1769         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
1770         New define_expand patterns.
1771         * config/mips/constraints.md (ka): Update the constraint to test
1772         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
1773         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
1774         mips_multu): Delete.
1775         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
1776         Change target constraint to "ka".
1777         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
1778         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
1779         Emit the accumulator destination when ISA_HAS_DSP_MULT.
1780         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
1781         Emit the accumulator destination when ISA_HAS_DSP_MULT.
1782         (<u>maddsidi4): Likewise.
1783         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
1784         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
1785
1786 2010-11-04  Paul Koning  <ni1d@arrl.net>
1787
1788         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
1789
1790 2010-11-04  Paul Koning  <ni1d@arrl.net>
1791
1792         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
1793
1794 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
1795
1796         Fixed using the Objective-C 2.0 dot-syntax with class names.
1797         * c-parser.c (c_parser_next_token_starts_declspecs): In
1798         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
1799         (c_parser_next_token_starts_declaration): Same.
1800         (c_parser_postfix_expression): Parse the Objective-C 2.0
1801         dot-syntax with a class name.
1802
1803 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
1804
1805         * final.c (compute_alignments): Compute/free loop info all the time.
1806         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
1807         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
1808         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
1809         * config/rs6000/rs6000.c (cfgloop.h): Include.
1810         (can_override_loop_align): New.
1811         (rs6000_option_override_internal): Set it.
1812         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
1813         (rs6000_loop_align): New function.
1814         (rs6000_loop_align_max_skip): Likewise.
1815
1816 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1817
1818         PR driver/45703
1819         * collect2.c (main): Print --help output to stdout.  Do not
1820         exit right away, so ld --help is appended.  Add empty lines
1821         to separate output suitably.
1822
1823 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
1824
1825         PR tree-optimization/46233
1826         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
1827         after calling analyze_function, not before.
1828
1829         PR target/46234
1830         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
1831         instead of build_va_arg_indirect_ref.
1832         * config/spu/spu.c (spu_va_start): Likewise.
1833         * config/s390/s390.c (s390_va_start): Likewise.
1834
1835 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
1836
1837         PR middle-end/46292
1838         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
1839         if the innermode is not vector mode, determine the mode of a subreg
1840         by using mode_for_size of inner_size.
1841
1842 2010-11-04  Richard Guenther  <rguenther@suse.de>
1843
1844         PR rtl-optimization/46183
1845         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
1846         (execute_rtl_pre): Likewise.
1847         (execute_rtl_hoist): Likewise.
1848
1849 2010-11-04  Richard Guenther  <rguenther@suse.de>
1850
1851         PR tree-optimization/46068
1852         * ipa-split.c (consider_split): Remove gcc_unreachable.
1853
1854 2010-11-04  Richard Guenther  <rguenther@suse.de>
1855
1856         * tree-nested.c (build_addr): Use build_fold_addr_expr.
1857
1858 2010-11-04  Richard Guenther  <rguenther@suse.de>
1859
1860         PR tree-optimization/45991
1861         * gimplify.c (force_gimple_operand_1): Use the provded test
1862         function in the initial test.
1863
1864 2010-11-04  Jeff Law  <law@redhat.com>
1865
1866         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
1867         of readonly memory equivalances for const/pure calls.
1868
1869 2010-11-04  Richard Guenther  <rguenther@suse.de>
1870
1871         PR tree-optimization/45733
1872         * tree-vect-stmts.c (reverse_vec_elements): Honor the
1873         permute builtins function return type.
1874
1875 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
1876
1877         PR middle-end/44765
1878         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
1879         as an index, check it is not INVALID_REGNUM.
1880
1881         PR bootstrap/44756
1882         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
1883         unsignedp.
1884         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
1885
1886         PR bootstrap/44756
1887         * function.c (thread_prologue_and_epilogue_insns): Add
1888         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
1889
1890         PR bootstrap/44756
1891         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
1892
1893         PR target/44750
1894         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
1895         (pdp11_preferred_reload_class): Rename class to rclass.
1896         (pdp11_preferred_output_reload_class): Likewise.
1897         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
1898         ALL_COMPILERFLAGS .
1899         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
1900
1901         PR bootstrap/44756
1902         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
1903         iteration variables to enum machine_mode.
1904
1905         PR target/44751
1906         * config/h8300/h8300.c: Include df.h.
1907         (push, pop): Use add_reg_note.
1908         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
1909         (compute_a_shift_cc): Likewise.
1910         (expand_a_shift): Argument code has type enum rtx_code.
1911         (struct shift_insn): Member cc_valid has type enum attr_cc.
1912         (struct shift_info) <cc_inline, cc_special>: Likewise.
1913         enum attr_cc.
1914         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
1915         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
1916
1917 2010-11-04  Ira Rosen  <irar@il.ibm.com>
1918
1919         PR tree-optimization/46213
1920         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
1921         MINUS_EXPR only if the first operand is reduction operand.
1922
1923 2010-11-04  Richard Guenther  <rguenther@suse.de>
1924             Richard Henderson  <rth@redhat.com>
1925
1926         * tree.def (FMA_EXPR): New tree code.
1927         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
1928         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
1929         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
1930         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
1931         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
1932         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
1933         (execute_optimize_widening_mul): Call it.  Reorganize to allow
1934         dead stmt removal.  Move TODO flags ...
1935         (pass_optimize_widening_mul): ... here.
1936         * flag-types.h (enum fp_contract_mode): New enum.
1937         * common.opt (flag_fp_contract_mode): New variable.
1938         (-ffp-contract): New option.
1939         * opts.c (common_handle_option): Handle it.
1940         * doc/invoke.texi (-ffp-contract): Document.
1941         * tree.h (fold_fma): Declare.
1942         * builtins.c (fold_fma): New function.
1943         (fold_builtin_fma): Likewise.
1944         (fold_builtin_3): Call it for fma.
1945         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
1946         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
1947         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
1948         New expanders.
1949         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
1950         named patterns.
1951         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
1952         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
1953         (fms_optab, fnma_optab, fnms_optab): New defines.
1954         * gimplify.c (gimplify_expr): Handle binary truth expressions
1955         explicitly.  Handle FMA_EXPR.
1956         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
1957         operations.
1958
1959 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
1960             Richard Guenther  <rguenther@suse.de>
1961
1962         * passes.c (init_optimization_passes): Move veclower after SSA.
1963         * tree-vect-generic.c (uniform_vector_p): New function.
1964         (expand_vector_operations_1): Handle conversion.
1965         (pass_lower_vector): Update SSA form.
1966
1967 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
1968
1969         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
1970         plugin capabilities.
1971         * configure: Regenerate.
1972
1973 2010-11-03  Xinliang David Li  <davidxl@google.com>
1974
1975         PR target/46200
1976         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
1977         Adjust cbase if the use stmt is after iv update.
1978
1979 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
1980
1981         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
1982
1983 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
1984
1985         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
1986         comment.  Pass true to the last argument of output_stack_adjust.
1987
1988 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
1989
1990         PR target/46295
1991         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
1992         if 256bit AVX register is used.
1993
1994 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
1995
1996         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
1997         xsmindp/xsmaxdp on VSX for single precision min/max.
1998         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
1999         (vsx_sminsf3): Ditto.
2000
2001 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
2002
2003         * combine.c (try_combine): Fix formatting issues, improve comments and
2004         fix a pasto.
2005
2006 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
2007
2008         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
2009         of the result before building binary expressions.
2010
2011 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
2012
2013         PR rtl-optimization/45865
2014         * Makefile.in (df-problems.o): Revert revision 164552.
2015         * basic-block.h (enum bb_flags): Likewise.
2016         * cfgcleanup.c (block_was_dirty): Likewise.
2017         (try_forward_edges): Likewise.
2018         (try_crossjump_bb): Likewise.
2019         (try_head_merge_bb): Likewise.
2020         (try_optimize_cfg): Likewise.
2021         (cleanup_cfg): Likewise.
2022         * df-core.c (df_set_bb_dirty): Likewise.
2023         * df-problems.c: Likewise.
2024         (df_simulate_find_uses): Likewise.
2025         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
2026         (find_memory, find_memory_store): Likewise.
2027         (can_move_insns_across): Likewise.
2028         * df.h (can_move_insns_across): Likewise.
2029         * ifcvt.c (find_memory): Likewise.
2030         (dead_or_predicable): Likewise.
2031
2032 2010-11-03  Richard Guenther  <rguenther@suse.de>
2033
2034         PR middle-end/46288
2035         * predict.c (strip_predict_hints): Simply DCE builtin expect if
2036         the result is unused.
2037
2038 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
2039
2040         PR tree-optimization/46009
2041         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
2042         cond_if_else_store_replacement if bb1 and bb2 have the same
2043         single successor.
2044         (cond_store_replacement): Use gimple_assign_single_p, don't
2045         check if rhs is SSA_NAME or invariant.  Call release_defs for
2046         assign.
2047         (cond_if_else_store_replacement): New function.
2048
2049 2010-11-03  Richard Guenther  <rguenther@suse.de>
2050
2051         * opts.c (finish_options): Properly check for all WHOPR
2052         flags before complaining about -flto-partition.
2053
2054 2010-11-04  Alan Modra  <amodra@gmail.com>
2055
2056         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
2057         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
2058         TARGET_SECURE_PLT.
2059         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
2060         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
2061         on input, "r" on output.
2062
2063 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
2064
2065         Implemented -fobjc-std=objc1 flag.
2066         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
2067         option.
2068         * doc/standards.texi (Standards): Updated the section on
2069         Objective-C; mention support for Objective-C 2.0 features and the
2070         new -fstd-objc=objc1 flag to disable them.
2071
2072 2010-11-03  Richard Guenther  <rguenther@suse.de>
2073
2074         PR middle-end/46241
2075         * dwarf2out.c (scope_die_for): Properly detect global scope.
2076
2077 2010-11-03  Richard Guenther  <rguenther@suse.de>
2078
2079         PR tree-optimization/46190
2080         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2081         Properly compute peel iterations.
2082
2083 2010-11-03  Richard Guenther  <rguenther@suse.de>
2084
2085         PR tree-optimization/46286
2086         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
2087         re-allocated vector data.
2088
2089 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
2090
2091         PR target/46285
2092         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
2093         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
2094         is completed.
2095
2096 2010-11-03  Richard Guenther  <rguenther@suse.de>
2097
2098         PR tree-optimization/46217
2099         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
2100         flag matches.
2101         (execute_update_addresses_taken): Likewise.
2102
2103 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
2104
2105         PR bootstrap/44335
2106         * targhooks.c (targhook_words_big_endian): New function.
2107         (targhook_float_words_big_endian): Likewise.
2108         * targhooks.h (targhook_words_big_endian): Declare.
2109         (targhook_float_words_big_endian): Likewise.
2110         * target.def (words_big_endian, float_words_big_endian): New hooks.
2111
2112 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
2113
2114         PR tree-optimization/46165
2115         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
2116         a normal call into noreturn call.
2117
2118 2010-11-03  Richard Guenther  <rguenther@suse.de>
2119
2120         PR middle-end/46251
2121         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
2122         not INDIRECT_REFs.
2123
2124 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
2125
2126         PR tree-optimization/46107
2127         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
2128         if cfg_hook_duplicate_loop_to_header_edge failed.
2129
2130 2010-11-03  Ian Lance Taylor  <iant@google.com>
2131
2132         PR lto/46273
2133         * config.gcc: Don't set lto_binary_reader.
2134         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
2135         (Configuration): Mention --disable-lto.  Remove --with-libelf
2136         paragraph.
2137
2138 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
2139
2140         PR debug/46252
2141         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
2142         prev_real_insn.
2143         * gcse.c (insert_insn_end_basic_block): Likewise.
2144
2145         PR rtl-optimization/46034
2146         PR rtl-optimization/46212
2147         PR rtl-optimization/46248
2148         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
2149         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
2150         before i0dest -> i0src substitution and pass 1 instead of 0 as last
2151         argument to subst on i2pat.
2152
2153 2010-11-02  Ian Lance Taylor  <iant@google.com>
2154
2155         * configure.ac: Use AC_SYS_LARGEFILE.
2156         * configure: Rebuild.
2157         * config.in: Rebuild.
2158
2159 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
2160
2161         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
2162         fold_convert.
2163         * c-typeck.c (build_function_call_vec): Likewise.
2164         * cfgexpand.c (expand_debug_expr): Likewise.
2165         * cgraphunit.c (assemble_thunk): Likewise.
2166         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
2167         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
2168         (fold_binary_loc, fold_ternary_loc): Likewise.
2169         * gimple-fold.c (get_symbol_constant_value): Likewise.
2170         * gimple-low.c (lower_builtin_setjmp): Likewise.
2171         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
2172         * gimplify.c (gimplify_init_constructor): Likewise.
2173         * lambda.h (build_linear_expr): Likewise.
2174         * omp-low.c (omp_reduction_init): Likewise.
2175         * tree-inline.c (remap_ssa_name): Likewise.
2176         * tree-object-size.c (compute_object_sizes): Likewise.
2177         * tree-sra.c (init_subtree_with_zero): Likewise.
2178         (sra_ipa_modify_assign): Likewise.
2179         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
2180         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
2181         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
2182         (undistribute_ops_list): Likewise.
2183         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
2184         * tree-vect-stmts.c (vectorizable_call): Likewise.
2185         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
2186         (build_zero_cst): Handle more cases directly.  Update comment.
2187
2188 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
2189
2190         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
2191         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
2192
2193         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
2194         and call ix86_split_call_vzeroupper instead of
2195         ix86_split_call_pop_vzeroupper.
2196         (*call_pop_1_vzeroupper): Likewise.
2197         (*sibcall_pop_1_vzeroupper): Likewise.
2198         (*call_value_pop_0_vzeroupper): Likewise.
2199         (*call_value_pop_1_vzeroupper): Likewise.
2200         (*sibcall_value_pop_1_vzeroupper): Likewise.
2201
2202 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
2203
2204         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
2205
2206 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
2207
2208         * basic-block.h (insert_insn_end_bb_new): Delete.
2209         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
2210
2211 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
2212             H.J. Lu  <hongjiu.lu@intel.com>
2213
2214         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
2215         (ix86_split_call_pop_vzeroupper): Likewise.
2216
2217         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
2218         (ix86_expand_call): Conditionally decorate calls with
2219         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
2220         (ix86_split_call_vzeroupper): New.
2221         (ix86_split_call_pop_vzeroupper): Likewise.
2222
2223         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
2224         (*call_pop_0_vzeroupper): New insn_and_split pattern.
2225         (*call_pop_1_vzeroupper): Likewise.
2226         (*sibcall_pop_1_vzeroupper): Likewise.
2227         (*call_0_vzeroupper): Likewise.
2228         (*call_1_vzeroupper): Likewise.
2229         (*sibcall_1_vzeroupper): Likewise.
2230         (*call_1_rex64_vzeroupper): Likewise.
2231         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
2232         (*call_1_rex64_large_vzeroupper): Likewise.
2233         (*sibcall_1_rex64_vzeroupper): Likewise.
2234         (*call_value_pop_0_vzeroupper): Likewise.
2235         (*call_value_pop_1_vzeroupper): Likewise.
2236         (*sibcall_value_pop_1_vzeroupper): Likewise.
2237         (*call_value_0_vzeroupper): Likewise.
2238         (*call_value_0_rex64_vzeroupper): Likewise.
2239         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
2240         (*call_value_1_vzeroupper): Likewise.
2241         (*sibcall_value_1_vzeroupper): Likewise.
2242         (*call_value_1_rex64_vzeroupper): Likewise.
2243         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
2244         (*call_value_1_rex64_large_vzeroupper): Likewise.
2245         (*sibcall_value_1_rex64_vzeroupper): Likewise.
2246
2247 2010-11-02  Ian Lance Taylor  <iant@google.com>
2248
2249         PR lto/46273
2250         * config.gcc: Revert last patch: set lto_binary_reader.
2251
2252 2010-11-02  Richard Guenther  <rguenther@suse.de>
2253
2254         PR tree-optimization/46149
2255         * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
2256         non-indirect MEM_REF variants.
2257
2258 2010-11-02  Richard Guenther  <rguenther@suse.de>
2259
2260         PR tree-optimization/46216
2261         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
2262         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
2263
2264 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2265
2266         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
2267         (*-*-osf*): Likewise.
2268         * configure: Regenerate.
2269
2270 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
2271
2272         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
2273         for Intel Core 2 and Core i7.
2274
2275 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
2276
2277         Model decoder of Core 2/i7 for multipass scheduling.
2278
2279         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
2280         New type to hold target-specific data for multipass scheduling.
2281         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
2282         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
2283         Core 2/i7.
2284         (core2i7_secondary_decoder_max_insn_size,)
2285         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
2286         New static variables.
2287         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
2288         ([_]ix86_first_cycle_multipass_data): New static variable.
2289         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
2290         Implement targetm.sched hooks.
2291         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
2292         of ...
2293         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
2294         Implement new targetm.sched hooks.
2295         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
2296         targetm.sched hook to install multipass scheduling hooks on demand.
2297
2298         * doc/tm.texi.in: Document new targetm.sched hooks.
2299         * doc/tm.texi: Regenerate.
2300
2301         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
2302         (first_cycle_multipass_data_t): New typedef.
2303         (struct choice_entry: target_data): New field.
2304         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
2305         to allow target model restrictions not represented in DFA.
2306         (choose_ready, schedule_block): Update.
2307         (sched_extend_ready_list, sched_finish_ready_list): Call new target
2308         hooks to initialize target-specific data for multipass scheduling.
2309         * sched-int.h (max_issue): Update declaration.
2310         * sel-sched.c (choose_best_insn): Update.
2311         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
2312         (first_cycle_multipass_{init, fini}): Define and document new
2313         targetm.sched hooks.
2314
2315 2010-11-02  Richard Guenther  <rguenther@suse.de>
2316
2317         PR tree-optimization/46184
2318         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
2319         input vector type from the reduction operand as well.
2320
2321 2010-11-02  Richard Guenther  <rguenther@suse.de>
2322
2323         PR tree-optimization/46177
2324         * tree-loop-distribution.c (prop_phis): Use
2325         mark_virtual_phi_result_for_renaming.
2326
2327 2010-11-02  Martin Jambor  <mjambor@suse.cz>
2328
2329         PR middle-end/46120
2330         * tree.c (get_binfo_at_offset): Bail out on artificial
2331         fields.  Identify primary bases according to their offsets.
2332
2333 2010-11-02  Martin Jambor  <mjambor@suse.cz>
2334
2335         PR tree-optimization/45875
2336         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
2337         (gimple_get_relevant_ref_binfo): Detect primary bases according to
2338         their field offset.
2339
2340 2010-11-02  Ian Lance Taylor  <iant@google.com>
2341
2342         * doc/install.texi (Configuration): Note in two places that Java
2343         is not enabled by default.
2344
2345 2010-11-02  Ian Lance Taylor  <iant@google.com>
2346
2347         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
2348         (Configuration): Mention --disable-lto.  Remove --with-libelf
2349         paragraph.
2350
2351 2010-11-02  Ian Lance Taylor  <iant@google.com>
2352
2353         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
2354         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
2355         LIBELFINC.  Remove HAVE_libelf.
2356         * config.gcc: Don't set lto_binary_reader.
2357         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
2358         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
2359         (LIBS): Remove $(LIBELFLIBS).
2360         (INCLUDES): Remove $(LIBELFINC).
2361         * configure: Rebuild.
2362         * config.in: Rebuild.
2363
2364 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
2365
2366         * config/microblaze/microblaze-protos.h (function_arg): Delete.
2367         (function_arg_advance): Delete.
2368         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
2369         (FUNCTION_ARG): Delete.
2370         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
2371         (microblaze_function_arg_advance): ...this.  Make static.  Take a
2372         const_tree and a bool.
2373         (function-arg): Rename to...
2374         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
2375         and a bool.
2376         (microblaze_expand_prologue): Call targetm.calls.function_arg and
2377         targetm.calls.function_arg_advance.
2378         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2379
2380 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
2381
2382         Merge from FSF "apple/trunk" branch.
2383
2384         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
2385         * config/darwin.opt: .. to here.
2386         (matt-stubs): New option.
2387         * config/i386/darwin.opt: Delete.
2388         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
2389         (MACHO_DYNAMIC_NO_PIC_P): New.
2390         (MACHOPIC_INDIRECT): New.
2391         (MACHOPIC_PURE): New.
2392         * config/i386/darwin.h (DARWIN_X86) Define to 1.
2393         (MACHOPIC_ATT_STUB): New.
2394         (CC1_SPEC): Do not remove mdynamic-no-pic.
2395         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
2396         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
2397         (FUNCTION_PROFILER): Correct over-length line.
2398         (SUBTARGET_OVERRIDE_OPTIONS): New.
2399         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
2400         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
2401         (legitimate_constant_p): Handle mdynamic-no-pic.
2402         (ix86_legitimate_address_p): Likewise.
2403         (ix86_legitimize_address): Likewise.
2404         (ix86_expand_move): Likewise.
2405         (machopic_output_stub): Update for ATT-style stubs and
2406         mdynamic-no-pic.
2407         * config/darwin-protos.h (machopic_symbol_defined_p): New.
2408         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
2409         TARGET_DYNAMIC_NO_PIC: Remove.
2410         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
2411         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
2412         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
2413         Remove handling of mdynamic-no-pic.
2414         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
2415         Define if required.
2416         (machopic_symbol_defined_p): Do not try to use current_function_decl
2417         when generating _get_pc thunks within stubs.
2418         (machopic_indirect_data_reference): Rework for direct conditionals
2419         rather than #ifdefs, add x86 mdynamic-no-pic
2420         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
2421         defined value.
2422         (darwin_override_options): Handle mdynamic-no-pic here.
2423         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
2424         (machopic_lazy_symbol_ptr3_section): New.
2425         (machopic_picsymbol_stub2_section): New.
2426         (machopic_picsymbol_stub3_section): New.
2427         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
2428         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
2429         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
2430         Moved common definition from x86 and rs6000.
2431         (MACHO_DYNAMIC_NO_PIC_P): Override value.
2432         (MACHOPIC_INDIRECT): Likewise.
2433         (MACHOPIC_PURE): Likewise.
2434         * config.gcc (x86-darwin-*): Remove darwin.opt.
2435
2436 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
2437
2438         PR debug/46255
2439         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
2440         instead of gsi_last_bb.
2441
2442 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
2443             Maxim Kuvyrkov  <maxim@codesourcery.com>
2444
2445         * config/i386/i386.c (cpu_names): Add "corei7".
2446         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
2447
2448 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
2449             Maxim Kuvyrkov  <maxim@codesourcery.com>
2450
2451         Tune alignment for Intel Core i7
2452
2453         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
2454         (enum processor_type): Update comment.  Add entries for Core i7.
2455         * config/i386-c.c (ix86_target_macros_internal): Update.
2456         * config/i386.c (m_COREI7{_32,_64}): New macros.
2457         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
2458         (processor_target_table): Tune alignment for Core i7.
2459         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
2460
2461         * doc/invoke.texi: Document "corei7" option value.
2462
2463 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
2464             Maxim Kuvyrkov  <maxim@codesourcery.com>
2465             H.J. Lu  <hjl.tools@gmail.com>
2466
2467         Basic support for Intel Core i7
2468
2469         * i386.c (ix86_option_override_internal): Add entry for corei7, use
2470         generic tuning.  Use generic32 when compiling for 32-bit ABI.
2471
2472 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
2473
2474         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
2475         sections and call darwin_asm_dwarf_section() to handle them.
2476         (darwin_asm_dwarf_section): New.
2477         (darwin_file_start): Remove code emitting dwarf section symbols.
2478
2479 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
2480
2481         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
2482         explicitly disable stack protection when building libgcc.
2483         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
2484
2485 2010-11-01  Jason Merrill  <jason@redhat.com>
2486
2487         * fold-const.c (fold_indirect_ref_1): Handle folding
2488         POINTER_PLUS_EXPR to ARRAY_REF.
2489
2490 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
2491
2492         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
2493         (sh_delegitimize_address): New function.
2494
2495 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
2496
2497         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
2498         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
2499         (CC1_SPEC): Don't handle -target.
2500         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
2501         options.
2502         * config/darwin.opt (Zallowable_client, Zbundle_loader,
2503         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
2504         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
2505         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
2506         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
2507         Zweak_reference_mismatches, client_name, compatibility_version,
2508         current_version, dylinker_install_name, pagezero_size,
2509         read_only_relocs, seg1addr, segs_read_only_addr,
2510         segs_read_write_addr, sub_library, sub_umbrella): New.
2511         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
2512         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
2513         * config/freebsd.opt: New.
2514         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
2515         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
2516         * config/rpath.opt: New.
2517         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
2518         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
2519         Use rpath.opt.
2520
2521 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
2522
2523         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
2524         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
2525         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
2526         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
2527         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
2528         Document that options in .opt files do not need to be included.
2529         * doc/tm.texi: Regenerate.
2530         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
2531         * opts-common.c: Update comment on tm.h include.
2532         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
2533         * system.h (SWITCH_TAKES_ARG): Poison.
2534         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
2535         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
2536         in darwin.opt.
2537         (LINK_COMMAND_SPEC_A): Don't include %{x}.
2538         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
2539         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
2540         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
2541         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
2542         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
2543         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
2544         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
2545         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
2546         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
2547         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
2548         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
2549         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
2550         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
2551         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
2552         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
2553         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
2554         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
2555         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
2556         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
2557         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
2558         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
2559         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
2560         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
2561
2562 2010-11-01  Paul Koning  <ni1d@arrl.net>
2563
2564         * config/pdp11/pdp11.md: Use iterators.
2565         (addqi3, subqi3, iorsi3, xorsi3): Delete.
2566
2567 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
2568
2569         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
2570         GCC_INSN_FLAGS_H.
2571         * libgcov.c (__gcov_indirect_call_profiler): Set
2572         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
2573         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
2574
2575 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
2576
2577         PR tree-optimization/46259
2578
2579         Revert:
2580         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
2581         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
2582         build_vector_from_val.
2583
2584 2010-11-01  DJ Delorie  <dj@redhat.com>
2585
2586         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
2587         as well as an assertion.
2588
2589 2010-11-01  Paul Koning  <ni1d@arrl.net>
2590
2591         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
2592         complex modes in memory.
2593
2594 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
2595
2596         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
2597
2598 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
2599
2600         PR target/45250
2601         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
2602         (cfa_base_offset): New variable.
2603         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
2604         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
2605         is NULL.
2606         (vt_init_cfa_base): Initialize cfa_base_offset.
2607
2608 2010-11-01  Alan Modra  <amodra@gmail.com>
2609
2610         PR target/46030
2611         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
2612         and savres_strategy.
2613         (stack_info): New file scope var.
2614         (rs6000_init_machine_status): Init stack_info.
2615         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
2616         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
2617         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
2618         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
2619         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
2620         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
2621         (rs6000_savres_strategy): Rewrite.
2622         (rs6000_stack_info): Use "stack_info" in place of local "info".
2623         Return cached stack info when reload_completed unless ENABLE_CHECKING
2624         in which case confirm newly calculated stack info matches old info.
2625         Delay calculation of lr_save_p, set it for out of line gp save/restore
2626         as well as fp.  Call rs6000_savres_strategy from here..
2627         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
2628         (rs6000_output_function_prologue): Use info->savres_strategy to
2629         determine whether fp save/restore externs need to be emitted.
2630
2631 2010-10-31  Jason Merrill  <jason@redhat.com>
2632
2633         * tree.h (EXPR_LOC_OR_HERE): New macro.
2634         * builtins.c (c_strlen): Use it.
2635         * c-decl.c (build_enumerator): Likewise.
2636         * gimplify.c (internal_get_tmp_var): Likewise.
2637         (shortcut_cond_expr): Likewise.
2638         (gimplify_one_sizepos): Likewise.
2639
2640 2010-10-31  Richard Henderson  <rth@redhat.com>
2641
2642         * config/i386/cygming.h (TARGET_SEH): New.
2643         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
2644         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
2645         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
2646         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
2647         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
2648         (ASM_DECLARE_FUNCTION_SIZE): New.
2649         * config/i386/i386-protos.h: Update.
2650         * config/i386/i386.c (ix86_option_override_internal): Enable
2651         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
2652         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
2653         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
2654         (ix86_compute_frame_layout): For SEH, disable
2655         use_fast_prologue_epilogue, move frame pointer to the end of
2656         the frame.  Initialize hfp_save_offset.
2657         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
2658         at end of prologue for SEH.
2659         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
2660         emit blockage at beginning of epilogue.
2661         (ix86_expand_binary_operator): After reload, emit LEA if needed.
2662         (ix86_output_call_insn): New.
2663         * config/i386/i386.h (TARGET_SEH): New.
2664         (struct machine_function): Add member seh.
2665         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
2666         * config/i386/winnt.c (struct seh_frame_state): New.
2667         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
2668         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
2669         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
2670         i386_pe_start_function, i386_pe_end_function): New.
2671
2672         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
2673         as CFA_STORE in rules 12 and 13.
2674
2675 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
2676
2677         PR tree-optimization/46142
2678         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
2679         accommodate third function argument.
2680
2681 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
2682
2683         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
2684
2685 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
2686
2687         * fold-const.c (build_zero_vector): Use build_vector_from_val.
2688         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
2689         (get_initial_def_for_reduction): Likewise.
2690         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
2691         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
2692         * tree.c (build_one_cst): Likewise.
2693         (build_vector_from_val): Use types_compatible_p for assert.
2694
2695 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
2696
2697         * emit-rtl.c (mark_used_flags): New function.
2698         (set_used_flags, reset_used_flags): Call it.
2699
2700 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
2701
2702         PR middle-end/44569
2703         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
2704         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
2705
2706 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
2707
2708         PR target/46195
2709         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
2710         (ix86_compat_aligned_value_p): This.
2711         (ix86_old_function_arg_boundary): Renamed to ...
2712         (ix86_compat_function_arg_boundary): This.  Updated.
2713         (ix86_contains_aligned_value_p): New.
2714         (ix86_function_arg_boundary): Align long double parameters on
2715         stack to 4byte in 32bit.
2716
2717 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
2718
2719         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
2720         * c-parser.c (c_parser_objc_at_property_declaration): Removed
2721         parsing of RID_COPIES and RID_IVAR.  Updated call to
2722         objc_add_property_declaration.
2723         * c-typecheck.c (build_component_ref): Call
2724         objc_maybe_build_component_ref instead of objc_build_setter_call.
2725         Use objc_is_property_ref to improve Objective-C checks.
2726         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
2727         of objc_build_getter_call.
2728
2729 2010-10-29  Paul Koning  <ni1d@arrl.net>
2730
2731         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
2732         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
2733         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
2734         (REG_OK_STRICT): Move description.
2735
2736 2010-10-29  Paul Koning  <ni1d@arrl.net>
2737
2738         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
2739
2740 2010-10-29  Paul Koning  <ni1d@arrl.net>
2741
2742         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
2743
2744 2010-10-29  Paul Koning  <ni1d@arrl.net>
2745
2746         PR/41822
2747         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
2748
2749 2010-10-29  Richard Henderson  <rth@redhat.com>
2750
2751         PR rtl-opt/46226
2752         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
2753         for asm goto.
2754
2755 2010-10-29  Paul Koning  <ni1d@arrl.net>
2756
2757         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
2758         register to register move.
2759
2760 2010-10-29  Paul Koning  <ni1d@arrl.net>
2761
2762         * config/pdp11/pdp11.c (print_operand_address): Correct handling
2763         of integer constant addresses, delete vax-only logic.
2764
2765 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
2766
2767         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
2768         a conditional expression.
2769
2770 2010-10-29  Paul Koning  <ni1d@arrl.net>
2771
2772         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
2773         instruction encoding.
2774
2775 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
2776             Andrew Pinski  <pinskia@gmail.com>
2777
2778         * tree.h (build_vector_from_val): Declare.
2779         * tree.c (build_vector_from_val): New function.
2780         * c-typeck.c (build_binary_op): Handle vector shifting.
2781         * doc/extend.texi: Description of the vector shifting operation.
2782
2783 2010-10-29  Paul Koning  <pkoning@equallogic.com>
2784
2785         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
2786         pdp11_secondary_memory_needed): Declare.
2787         * config/pdp11/predicates.md (float_operand): New predicate.
2788         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
2789         (cbranchdf4, movdf): Change predicate.
2790         (movsf): Handle FPU register case.
2791         (truncdfsf2, extendsfdf2): Add FPU register case.
2792         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
2793         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
2794         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2795         (pdp11_register_move_cost): Update cost matrix.
2796         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
2797         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
2798         pdp11_secondary_memory_needed): New function.
2799         (pdp11_return_in_memory): Add other float types.
2800         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
2801         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
2802         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
2803         REGISTER_MOVE_COST): Delete.
2804         (BASE_RETURN_VALUE_REG): Add other float types.
2805
2806 2010-10-29  Nick Clifton  <nickc@redhat.com>
2807
2808         * doc/invoke.texi: Document -mam34 and -mtune options.
2809         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
2810         (mn10300_tune_cpu): New variable.
2811         (mn10300_handle_option): Handle -mam34 and -mtune options.
2812         (mn10300_option_override): Convert tune string into tune cpu variable.
2813         (mn10300_legitimate_constant_p): Delete unused local variable.
2814         (is_load_insn): New function.
2815         (is_store_insn): New function.
2816         (mn10300_adjust_schedule_cost): New function.
2817         (TARGET_SCHED_ADJUST_COST): Define.
2818         * config/mn10300/mn10300.opt (mam34): New option.
2819         (mtune): New option.
2820         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
2821         (enum processor_type): Add AM34.
2822         (TARGET_AM34): Define.
2823         * config/mn10300/mn10300.md (attr cpu): Add am34.
2824         Add pipeline description.
2825         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
2826         Remove unneeded alternatives.  Add timing attribute.
2827         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
2828         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
2829         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
2830         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
2831         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
2832         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
2833         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
2834         float_conditional_branch, jump, indirect_jump, tablejump,
2835         call_internal, call_value_internal, zero_extendqisi2_am33,
2836         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
2837         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
2838         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
2839         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
2840         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
2841         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
2842         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
2843         return_internal_regs, store_movm, return, call_next_insn):
2844         Add timing attribute.
2845         (am33_subsi3): Add missing clobber of CC_REG.
2846         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
2847         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
2848         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
2849         extendqisi2): Fix predicates.
2850         (call_internal, call_internal_value): Separate alternatives.
2851         * config/mn10300/t-mn10300: Add AM34 multilib.
2852
2853 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
2854
2855         * config/sh/sh.c (sh_promote_function_mode): Use
2856         default_promote_function_mode if !sh_promote_prototypes.
2857
2858 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
2859
2860         * recog.c (split_all_insns): Remove dead code.
2861
2862 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2863
2864         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2865
2866 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2867
2868         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
2869         (FUNCTION_ARG_ADVANCE): Delete.
2870         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
2871         functions.
2872         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
2873         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
2874         (TARGET_FUNCTION_ARG_ADVANCE): Define.
2875
2876 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2877
2878         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
2879         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2880         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
2881         Take a const_tree and a bool.
2882         (mcore_function_arg_advance): New function.
2883         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2884
2885 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2886
2887         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
2888         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2889         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
2890         Take a const_tree and a bool.
2891         (mcore_function_arg_advance): New function.
2892         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2893
2894 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2895
2896         * config/h8300/h8300-protos.h (function_arg): Delete.
2897         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2898         * config/h8300/h8300.c (function_arg): Rename to...
2899         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
2900         a bool.
2901         (h8300_function_arg_advance): New function.
2902         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2903
2904 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2905
2906         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
2907         to...
2908         * config/arc/arc.c (arc_function_arg): ...here and...
2909         (arc_function_arg_advance): ...here.  New functions.
2910         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2911
2912 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2913
2914         * config/crx/crx-protos.h (crx_function_arg): Delete.
2915         (crx_function_arg_advance): Delete.
2916         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2917         * config/crx/crx.c (crx_function_arg): Make static.  Take a
2918         const_tree and a bool.
2919         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
2920         (enough_regs_for_param): Take a const_tree.
2921         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2922
2923 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2924
2925         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
2926         (m68hc11_function_arg_advance): Delete.
2927         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
2928         (FUNCTION_ARG_ADVANCE): Delete.
2929         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
2930         Take a const_tree and a bool.
2931         (m68hc11_function_arg_advance): Likewise.
2932         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2933
2934 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2935
2936         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
2937         (xstormy16_function_arg_advance): Delete.
2938         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
2939         (FUNCTION_ARG_ADVANCE): Delete.
2940         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
2941         Take a const_tree and a bool.
2942         (xstormy16_function_arg_advance): Likewise.  Return void, updating
2943         the CUM parameter instead.
2944         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2945
2946 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2947
2948         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
2949         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2950         (MOXIE_FUNCTION_ARG_SIZE): Move to...
2951         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
2952         (moxie_function_arg): Make static.  Take a const_tree and a bool.
2953         (moxie_function_arg_advance): New function.
2954         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2955
2956 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2957
2958         * config/mn10300/mn10300-protos.h (function_arg): Delete.
2959         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
2960         (FUNCTION_ARG_ADVANCE): Delete.
2961         * config/mn10300/mn10300.c (function_arg): Rename to...
2962         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
2963         and a bool.
2964         (mn10300_function_arg_advance): New function.
2965         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2966
2967 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2968
2969         * config/iq2000/iq2000-protos.h (function_arg): Delete.
2970         (function_arg_advance): Delete.
2971         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2972         * config/iq2000/iq2000.c (function_arg): Rename to...
2973         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
2974         a bool.
2975         (function_arg_advance): Rename to...
2976         (iq2000_function_arg_advance): ...this.  Make static.  Take a
2977         const_tree and a bool.
2978         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
2979         iq2000_function_arg.
2980         (iq2000_pass_by_reference): Call iq2000_function_arg).
2981         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2982
2983 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2984
2985         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
2986         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2987         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
2988         const_tree.
2989         (fr30_function_arg): New function.
2990         (fr30_function_arg_advance): New function.
2991         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2992
2993 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2994
2995         * config/frv/frv-protos.h (frv_function_arg): Delete.
2996         (frv_function_arg_advance): Delete.
2997         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2998         * config/frv/frv.c (frv_function_arg): Rename to...
2999         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
3000         (frv_function_arg, frv_function_incoming_arg): New functions.
3001         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
3002         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
3003         (TARGET_FUNCTION_ARG_ADVANCE): Define.
3004
3005 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
3006
3007         PR target/46153
3008         * config/i386/sse.md (sse_movhlps_exp): Use destination
3009         returned from ix86_fixup_binary_operands to expand insn.
3010         (sse_movlhps_exp): Ditto.
3011         (sse_loadhps_exp): Ditto.
3012         (sse_loadlps_exp): Ditto.
3013         (sse2_loadhpd_exp): Ditto.
3014         (sse2_loadlpd_exp): Ditto.
3015
3016 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
3017
3018         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
3019         constants in thumb2.
3020
3021 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
3022
3023         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
3024         arithmetics in masking operations.
3025         (contains_muldiv): Likewise.
3026         (try_combine): Likewise.
3027         (find_split_point): Likewise.
3028         (combine_simplify_rtx): Likewise.
3029         (simplify_if_then_else): Likewise.
3030         (simplify_set): Likewise.
3031         (expand_compound_operation): Likewise.
3032         (expand_field_assignment): Likewise.
3033         (make_extraction): Likewise.
3034         (extract_left_shift): Likewise.
3035         (make_compound_operation): Likewise.
3036         (force_to_mode): Likewise.
3037         (make_field_assignment): Likewise.
3038         (reg_nonzero_bits_for_combine): Likewise.
3039         (simplify_shift_const_1): Likewise.
3040         (simplify_comparison): Likewise.
3041
3042 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
3043
3044         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
3045         (ia64_function_arg_advance): Delete.
3046         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
3047         (FUNCTION_ARG_ADVANCE): Delete.
3048         * config/ia64/ia64.c (ia64_function_arg): Rename to...
3049         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
3050         bool arguments.
3051         (ia64_function_arg, ia64_function_incoming_arg): New functions.
3052         (ia64_function_arg_advance): Make static.  Take a const_tree and
3053         a bool.
3054         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
3055         (TARGET_FUNCTION_ARG_ADVANCE): Define.
3056
3057 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
3058
3059         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
3060         (TARGET_GET_RAW_ARG_MODE): New.
3061         * doc/tm.texi: Regenerate.
3062         * target.def (get_raw_result_mode): New.
3063         (get_raw_arg_mode): New.
3064         * targhooks.c (default_get_reg_raw_mode): New.
3065         * targhooks.h (default_get_reg_raw_mode): New.
3066         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
3067         (apply_result_size): Ditto.
3068         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
3069         (TARGET_GET_RAW_RESULT_MODE): Define.
3070         (TARGET_GET_RAW_ARG_MODE): Ditto.
3071
3072 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
3073
3074         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
3075         for newer Solaris 10 release.
3076         (sparc_fallback_frame_state): Likewise.
3077
3078 2010-10-27  Jason Merrill  <jason@redhat.com>
3079
3080         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
3081         variables sooner.
3082
3083 2010-10-27  Jie Zhang  <jie@codesourcery.com>
3084             Maxim Kuvyrkov  <maxim@codesourcery.com>
3085
3086         * haifa-sched.c (ISSUE_POINTS): Remove.
3087         (max_issue): Don't issue more than issue_rate instructions.
3088
3089 2010-10-27  Ian Lance Taylor  <iant@google.com>
3090
3091         PR target/46197
3092         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
3093         (split_stack_return): Replace UNSPEC_STACK_CHECK with
3094         UNSPECV_SPLIT_STACK_RETURN.
3095
3096 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
3097
3098         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
3099
3100         * config/i386/i386.c (block_info): New.
3101         (BLOCK_INFO): Likewise.
3102         (call_avx256_state): Likewise.
3103         (check_avx256_stores): Likewise.
3104         (move_or_delete_vzeroupper_2): Likewise.
3105         (move_or_delete_vzeroupper_1): Likewise.
3106         (move_or_delete_vzeroupper): Likewise.
3107         (use_avx256_p): Likewise.
3108         (function_pass_avx256_p): Likewise.
3109         (flag_opts): Add -mvzeroupper.
3110         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
3111         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
3112         is disabled.
3113         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
3114         generate vzeroupper.
3115         (init_cumulative_args): Add an int to indicate caller.  Set
3116         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
3117         based on return type.
3118         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
3119         caller_pass_avx256_p based on argument type.
3120         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
3121         is used, but not returned by caller.
3122         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
3123         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
3124         is used.
3125         (ix86_minimum_alignment): Likewise.
3126         (ix86_expand_special_args_builtin): Set target to
3127         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
3128         (ix86_reorg): Run the vzeroupper optimization if needed.
3129
3130         * config/i386/i386.h (ix86_args): Add caller.
3131         (INIT_CUMULATIVE_ARGS): Updated.
3132         (machine_function): Add use_vzeroupper_p, use_avx256_p,
3133         caller_pass_avx256_p, caller_return_avx256_p,
3134         callee_pass_avx256_p and callee_return_avx256_p.
3135
3136         * config/i386/i386.opt (-mvzeroupper): New.
3137
3138         * config/i386/predicates.md (vzeroupper_operation): Removed.
3139
3140         * config/i386/sse.md (avx_vzeroupper): Removed.
3141         (*avx_vzeroupper): Removed.
3142         (avx_vzeroupper): New.
3143
3144         * doc/invoke.texi: Document -mvzeroupper.
3145
3146 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
3147
3148         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
3149         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
3150         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
3151
3152 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
3153             Olivier Hainque  <hainque@adacore.com>
3154
3155         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
3156         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
3157         fs->signal_frame instead.
3158
3159 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
3160
3161         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
3162         parsing of RID_COPIES and RID_IVAR.
3163
3164 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
3165
3166         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
3167         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
3168         Do not use objc_set_property_attr, but use local variables
3169         instead.  Detect repeated usage of setter, getter and ivar
3170         attributes.  Improved error processing when a setter name does not
3171         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
3172         that the token is a keyword.  Updated call to
3173         objc_add_property_declaration.
3174
3175 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
3176
3177         * c-parser.c (c_parser_objc_at_property): Renamed to
3178         c_parser_objc_at_property_declaration.  Updated calls to
3179         objc_add_property_variable, now objc_add_property_declaration.
3180         Code rewritten to be much more robust in recovering from syntax
3181         errors.  Added comments.
3182         (c_parser_objc_property_attrlist): Removed.
3183         (c_parser_external_declaration): Updated calls to
3184         c_parser_objc_at_property, now
3185         c_parser_objc_at_property_declaration.
3186         (c_parser_objc_methodprotolist): Same change.
3187
3188 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
3189
3190         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
3191
3192 2010-10-26  Jan Hubicka  <jh@suse.cz>
3193
3194         * ipa.c (process_references): Enqueue all referenced nodes;
3195         mark as reachable only non-external nodes.
3196         (cgraph_remove_unreachable_nodes): All referenced nodes should
3197         be enqueued; remove bogues node->needed check.
3198
3199 2010-10-26  Jan Hubicka  <jh@suse.cz>
3200
3201         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
3202         to represent OMP.
3203
3204 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
3205
3206         * config/i386/i386.md (split_stack_return): Replace
3207         unspec_volatile with unspec.
3208
3209 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
3210
3211         * doc/install.texi: Fix typo in --with-sysroot description.
3212
3213 2010-10-26  Jan Hubicka  <jh@suse.cz>
3214
3215         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
3216         Use info provided by linker plugin.
3217
3218 2010-10-26  Jason Merrill  <jason@redhat.com>
3219
3220         * varasm.c (constructor_static_from_elts_p): Don't require a
3221         CONSTRUCTOR to have elements to be suitable for static
3222         initialization.  Allow ARRAY_TYPE as well.
3223
3224 2010-10-26  Jan Hubicka  <jh@suse.cz>
3225
3226         PR middle-end/45736
3227         * cgraph.c (cgraph_set_readonly_flag): Rename to...
3228         (cgraph_set_const_flags) ... this one; get also looping argument;
3229         clear constructor/destructor flags.
3230         (cgraph_set_pure_flag): Likewise.
3231         (cgraph_set_looping_const_or_pure_flag): Remove.
3232         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
3233         to optimize away static ctors/dtors; it does not work on inline clones;
3234         external functions can always be rmeoved.
3235         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
3236         inline clones; in LTO external functions always can go.
3237         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
3238         (cgraph_mark_address_taken_node): Assert that we are not taking
3239         address of inline clone.
3240         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
3241         external functions.
3242         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
3243         address taken.
3244         (ipcp_initialize_node_lattices): Only local functions can be
3245         handled without cloning.
3246         * cgraph.h (cgraph_set_readonly_flag,
3247         cgraph_set_looping_const_or_pure_flag): Remove.
3248         (cgraph_set_const_flag): Declare.
3249         (cgraph_set_pure_flag): Update.
3250         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
3251         flags setting code.
3252         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
3253         look at inline clones; fix handling of external definitions.
3254         (cgraph_postorder): Do not look at inline clones in the first pass.
3255         (function_and_variable_visibility): Drop constructors/destructor
3256         flags at pure and const functions.
3257         * tree-profile.c (tree_profiling): Update.
3258         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
3259         address taken; external functions do not account to whole program size.
3260         (cgraph_decide_inlining): Likewise; do not try to inline
3261         functions already inlined.
3262
3263 2010-10-26  Jie Zhang  <jie@codesourcery.com>
3264
3265         * doc/invoke.texi: Improve documentation of
3266         -fstrict-volatile-bitfields.
3267
3268 2010-10-26  Ira Rosen  <irar@il.ibm.com>
3269
3270         PR tree-optimization/46167
3271         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
3272         is basic block for the statement.
3273
3274 2010-10-26  Paul Koning  <ni1d@arrl.net>
3275
3276         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
3277         current definition of struct_real_format.
3278
3279 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
3280
3281         PR target/44948
3282         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
3283         (ix86_function_arg_boundary): Always align parameters on stack
3284         in 64bit and align parameters with alignment >= 16byte on stack
3285         in 32bit.  Warn alignment change.
3286
3287 2010-10-26  Ian Lance Taylor  <iant@google.com>
3288
3289         PR middle-end/45687
3290         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
3291         offset.
3292
3293 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
3294
3295         Implement opaque-enum-specifiesr for C++0x
3296         * tree.h (ENUM_IS_OPAQUE): New.
3297         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
3298
3299 2010-10-26  Jie Zhang  <jie@codesourcery.com>
3300
3301         * stor-layout.c (layout_decl): Use the field's type to
3302         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
3303         * config/arm/arm.c (arm_override_options): Default to
3304         -fstrict-volatile-bitfields.
3305
3306 2010-10-25  Paul Koning  <ni1d@arrl.net>
3307
3308         * config/pdp11/pdp11.md: Add define_constants for register
3309         numbers, branch offset limits.
3310         * config/pdp11/pdp11.c: Use named constants instead of numbers.
3311         * config/pdp11.pdp11.h: Ditto.
3312
3313 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
3314
3315         * configure.ac: Use $cpu_type instead of $target to define the nop.
3316         * configure: Regenerate.
3317
3318 2010-10-25  Jie Zhang  <jie@codesourcery.com>
3319
3320         * combine.c (try_combine): If insns need to be kept around, check that
3321         they can be copied in the merged instruction.
3322
3323 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
3324
3325         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
3326         has been modified.
3327         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
3328         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
3329         it has been modified.
3330
3331 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
3332
3333         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
3334
3335 2010-10-24  Paul Koning  <ni1d@arrl.net>
3336
3337         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
3338         * config/pdp11/pdp11.c (output_jump): Ditto.
3339
3340 2010-10-24  Ian Lance Taylor  <iant@google.com>
3341
3342         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
3343
3344 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
3345
3346         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
3347         least one insn with a locus corresponding to an edge's goto_locus,
3348         disregard non-fallthru edges to the exit block and merge the blocks
3349         created for the same goto_locus.
3350
3351 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
3352
3353         * gcc.c (n_switches_alloc_debug_check): New.
3354         (set_option_handlers): New.
3355         (process_command): Use set_option_handlers.
3356         (do_self_spec): Pass spec-generated options through option handlers.
3357         (main): Also save and restore n_switches_alloc when swapping
3358         switch arrays.
3359
3360 2010-10-23  Richard Henderson  <rth@redhat.com>
3361
3362         PR target/46144
3363         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
3364         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
3365         Honor matching operands when splitting to XOR.
3366
3367 2010-10-23  Ian Lance Taylor  <iant@google.com>
3368
3369         * tree-vrp.c (extract_range_from_binary_expr): If
3370         flag_non_call_exceptions don't eliminate division by zero.
3371         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
3372
3373 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
3374
3375         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
3376         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
3377         __ORDER_PDP_ENDIAN__.
3378         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3379         (struct DWstruct): Define based on __BYTE_ORDER__.
3380         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3381         (struct INTstruct): Define based on __BYTE_ORDER__.
3382         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3383         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
3384         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
3385         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3386         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3387         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3388         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3389         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3390         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3391         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3392         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3393         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3394         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3395         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3396         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3397         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3398         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3399         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3400         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3401         * doc/tm.texi: Regenerate.
3402         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
3403         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
3404
3405 2010-10-23  Jie Zhang  <jie@codesourcery.com>
3406
3407         PR rtl-optimization/37360
3408         * config/mips/mips.c (cached_can_issue_more): New local variable.
3409         (mips_sched_reorder_1): New.
3410         (mips_sched_reorder): Use mips_sched_reorder_1.
3411         (mips_sched_reorder2): New.
3412         (mips_variable_issue): Set cached_can_issue_more.
3413         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
3414         instead of mips_sched_reorder.
3415
3416         Revert:
3417         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>