OSDN Git Service

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